From 3ec27c55f40d64a5f18490b0a373754e60c4c0a7 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Wed, 5 Jun 2024 18:59:49 +0000 Subject: [PATCH] rebuilt TTG master docs via GitHub Actions build: 1537 --- _config.yml | 17 + dox-master/_c_i-_administration-_notes.html | 126 + .../_c_i-_administration-_notes_8md.html | 122 + dox-master/_coding-_standards.html | 137 + dox-master/_coding-_standards_8md.html | 122 + dox-master/_design-_device.html | 304 ++ dox-master/_design-_device_8md.html | 122 + dox-master/_design-_pull.html | 165 + dox-master/_documenting-_t_t_g.html | 128 + dox-master/_documenting-_t_t_g_8md.html | 122 + dox-master/_pull-terminal-design-doc_8md.html | 122 + dox-master/_r_e_a_d_m_e_8md.html | 122 + .../_recommended-_workflow-_elements.html | 123 + dox-master/_t_t_g-_build-_infrastructure.html | 130 + .../_t_t_g-_build-_infrastructure_8md.html | 122 + dox-master/_workflow_8md.html | 122 + dox-master/add__member__const_8hpp.html | 156 + .../add__member__const_8hpp_source.html | 241 + dox-master/add__member__cv_8hpp.html | 156 + dox-master/add__member__cv_8hpp_source.html | 237 + .../add__member__lvalue__reference_8hpp.html | 156 + ...member__lvalue__reference_8hpp_source.html | 250 + .../add__member__rvalue__reference_8hpp.html | 156 + ...member__rvalue__reference_8hpp_source.html | 249 + dox-master/add__member__volatile_8hpp.html | 156 + .../add__member__volatile_8hpp_source.html | 236 + dox-master/add__noexcept_8hpp.html | 145 + dox-master/add__noexcept_8hpp_source.html | 242 + dox-master/add__transaction__safe_8hpp.html | 145 + .../add__transaction__safe_8hpp_source.html | 244 + dox-master/add__varargs_8hpp.html | 156 + dox-master/add__varargs_8hpp_source.html | 224 + dox-master/allocator_8h.html | 127 + dox-master/allocator_8h_source.html | 149 + dox-master/annotated.html | 550 ++ dox-master/apply__member__pointer_8hpp.html | 165 + .../apply__member__pointer_8hpp_source.html | 267 + dox-master/apply__return_8hpp.html | 160 + dox-master/apply__return_8hpp_source.html | 248 + dox-master/archive_8h.html | 514 ++ dox-master/archive_8h_source.html | 563 ++ dox-master/args_8hpp.html | 156 + dox-master/args_8hpp_source.html | 232 + dox-master/array_8h.html | 127 + dox-master/array_8h_source.html | 156 + dox-master/backends_8h.html | 128 + dox-master/backends_8h_source.html | 139 + dox-master/backtrace_8cpp.html | 141 + dox-master/backtrace_8cpp_source.html | 310 ++ dox-master/backtrace_8h.html | 145 + dox-master/backtrace_8h_source.html | 185 + dox-master/base_2terminal_8h.html | 155 + dox-master/base_2terminal_8h_source.html | 278 + dox-master/base_2tt_8h.html | 199 + dox-master/base_2tt_8h_source.html | 447 ++ dox-master/base_2world_8h.html | 165 + dox-master/base_2world_8h_source.html | 381 ++ dox-master/bc_s.png | Bin 0 -> 676 bytes dox-master/bdwn.png | Bin 0 -> 147 bytes dox-master/boost_8h.html | 177 + dox-master/boost_8h_source.html | 305 ++ dox-master/broadcast_8h.html | 148 + dox-master/broadcast_8h_source.html | 200 + dox-master/buffer_8h.html | 143 + dox-master/buffer_8h_source.html | 142 + dox-master/buffer__archive_8cpp.html | 127 + dox-master/buffer__archive_8cpp_source.html | 132 + dox-master/buffer__archive_8h.html | 126 + dox-master/buffer__archive_8h_source.html | 134 + dox-master/bug_8cpp.html | 200 + dox-master/bug_8cpp_source.html | 601 ++ dox-master/bug_8h.html | 169 + dox-master/bug_8h_source.html | 486 ++ dox-master/callable_8h.html | 190 + dox-master/callable_8h_source.html | 305 ++ dox-master/callable__traits_8hpp.html | 160 + dox-master/callable__traits_8hpp_source.html | 207 + dox-master/class__of_8hpp.html | 156 + dox-master/class__of_8hpp_source.html | 209 + .../class_callable_wrap_t_t-members.html | 139 + dox-master/class_callable_wrap_t_t.html | 456 ++ dox-master/class_callable_wrap_t_t.png | Bin 0 -> 2236 bytes .../class_callable_wrap_t_t_args-members.html | 148 + dox-master/class_callable_wrap_t_t_args.html | 832 +++ dox-master/class_callable_wrap_t_t_args.png | Bin 0 -> 2619 bytes ...e_s_p_a_c_e___n_a_m_e_1_1span-members.html | 178 + ...__n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html | 1380 +++++ dox-master/classes.html | 199 + ...an_3_93b789f899ee7baa4f7d754ce2758ef3.html | 171 + ...an_3_b4393163ebe23c44ce8b3514a3083d49.html | 138 + ...1_element_type_00_01_extent_01_4_01_4.html | 149 + ...01_element_type_00_01_extent_01_4_01_4.png | Bin 0 -> 1327 bytes ...sttg_1_1_binary_spanning_tree-members.html | 143 + .../classttg_1_1_binary_spanning_tree.html | 352 ++ ...ttg_1_1_binary_tree_broadcast-members.html | 264 + .../classttg_1_1_binary_tree_broadcast.html | 606 +++ .../classttg_1_1_binary_tree_broadcast.png | Bin 0 -> 3437 bytes ...assttg_1_1_binary_tree_reduce-members.html | 264 + .../classttg_1_1_binary_tree_reduce.html | 619 +++ .../classttg_1_1_binary_tree_reduce.png | Bin 0 -> 4285 bytes dox-master/classttg_1_1_debugger-members.html | 170 + dox-master/classttg_1_1_debugger.html | 1182 ++++ dox-master/classttg_1_1_dot-members.html | 146 + dox-master/classttg_1_1_dot.html | 461 ++ dox-master/classttg_1_1_dot.png | Bin 0 -> 508 bytes dox-master/classttg_1_1_edge-members.html | 149 + dox-master/classttg_1_1_edge.html | 548 ++ dox-master/classttg_1_1_in-members.html | 188 + dox-master/classttg_1_1_in.html | 1058 ++++ dox-master/classttg_1_1_in.png | Bin 0 -> 998 bytes ...classttg_1_1_in_terminal_base-members.html | 168 + dox-master/classttg_1_1_in_terminal_base.html | 611 +++ dox-master/classttg_1_1_in_terminal_base.png | Bin 0 -> 705 bytes dox-master/classttg_1_1_out-members.html | 177 + dox-master/classttg_1_1_out.html | 764 +++ dox-master/classttg_1_1_out.png | Bin 0 -> 1038 bytes ...lassttg_1_1_out_terminal_base-members.html | 165 + .../classttg_1_1_out_terminal_base.html | 526 ++ dox-master/classttg_1_1_out_terminal_base.png | Bin 0 -> 1059 bytes dox-master/classttg_1_1_sink_t_t-members.html | 182 + dox-master/classttg_1_1_sink_t_t.html | 513 ++ dox-master/classttg_1_1_sink_t_t.png | Bin 0 -> 704 bytes dox-master/classttg_1_1_t_t_base-members.html | 180 + dox-master/classttg_1_1_t_t_base.html | 1654 ++++++ dox-master/classttg_1_1_t_t_base.png | Bin 0 -> 9110 bytes dox-master/classttg_1_1_t_t_g-members.html | 185 + dox-master/classttg_1_1_t_t_g.html | 654 +++ dox-master/classttg_1_1_t_t_g.png | Bin 0 -> 821 bytes .../classttg_1_1_terminal_base-members.html | 159 + dox-master/classttg_1_1_terminal_base.html | 884 +++ dox-master/classttg_1_1_terminal_base.png | Bin 0 -> 2226 bytes dox-master/classttg_1_1_traverse-members.html | 142 + dox-master/classttg_1_1_traverse.html | 359 ++ dox-master/classttg_1_1_traverse.png | Bin 0 -> 877 bytes dox-master/classttg_1_1_void-members.html | 139 + dox-master/classttg_1_1_void.html | 210 + dox-master/classttg_1_1_world-members.html | 156 + dox-master/classttg_1_1_world.html | 194 + dox-master/classttg_1_1_world.png | Bin 0 -> 757 bytes .../classttg_1_1base_1_1_world-members.html | 156 + dox-master/classttg_1_1base_1_1_world.html | 744 +++ ...g_1_1base_1_1_world_impl_base-members.html | 161 + .../classttg_1_1base_1_1_world_impl_base.html | 917 ++++ .../classttg_1_1base_1_1_world_impl_base.png | Bin 0 -> 912 bytes ...ssttg_1_1detail_1_1_backtrace-members.html | 141 + .../classttg_1_1detail_1_1_backtrace.html | 268 + ...ttg_1_1detail_1_1_f_n_vhasher-members.html | 141 + .../classttg_1_1detail_1_1_f_n_vhasher.html | 292 + ..._1_memory_watchpoint__x86__64-members.html | 164 + ...detail_1_1_memory_watchpoint__x86__64.html | 527 ++ ..._watchpoint__x86__64_1_1_pool-members.html | 144 + ...1_memory_watchpoint__x86__64_1_1_pool.html | 443 ++ ...assttg_1_1detail_1_1_traverse-members.html | 145 + .../classttg_1_1detail_1_1_traverse.html | 413 ++ .../classttg_1_1detail_1_1_traverse.png | Bin 0 -> 1217 bytes ...1_1boost__optimized__iarchive-members.html | 160 + ...1detail_1_1boost__optimized__iarchive.html | 931 ++++ ..._1detail_1_1boost__optimized__iarchive.png | Bin 0 -> 2439 bytes ...1_1boost__optimized__oarchive-members.html | 160 + ...1detail_1_1boost__optimized__oarchive.html | 932 ++++ ..._1detail_1_1boost__optimized__oarchive.png | Bin 0 -> 2516 bytes ...1_1detail_1_1byte__istreambuf-members.html | 141 + ...lassttg_1_1detail_1_1byte__istreambuf.html | 308 ++ ...classttg_1_1detail_1_1byte__istreambuf.png | Bin 0 -> 643 bytes ...1_1detail_1_1byte__ostreambuf-members.html | 141 + ...lassttg_1_1detail_1_1byte__ostreambuf.html | 308 ++ ...classttg_1_1detail_1_1byte__ostreambuf.png | Bin 0 -> 648 bytes ...detail_1_1counting__streambuf-members.html | 139 + ...sttg_1_1detail_1_1counting__streambuf.html | 229 + ...ssttg_1_1detail_1_1counting__streambuf.png | Bin 0 -> 654 bytes ..._1detail_1_1iovec__istreambuf-members.html | 139 + ...assttg_1_1detail_1_1iovec__istreambuf.html | 230 + ...lassttg_1_1detail_1_1iovec__istreambuf.png | Bin 0 -> 639 bytes ..._1detail_1_1iovec__ostreambuf-members.html | 139 + ...assttg_1_1detail_1_1iovec__ostreambuf.html | 228 + ...lassttg_1_1detail_1_1iovec__ostreambuf.png | Bin 0 -> 647 bytes ...classttg_1_1device_1_1_device-members.html | 145 + dox-master/classttg_1_1device_1_1_device.html | 391 ++ .../classttg__madness_1_1_t_t-members.html | 239 + dox-master/classttg__madness_1_1_t_t.html | 2703 +++++++++ dox-master/classttg__madness_1_1_t_t.png | Bin 0 -> 2034 bytes ...ssttg__madness_1_1_world_impl-members.html | 172 + .../classttg__madness_1_1_world_impl.html | 593 ++ .../classttg__madness_1_1_world_impl.png | Bin 0 -> 660 bytes .../classttg__parsec_1_1_t_t-members.html | 261 + dox-master/classttg__parsec_1_1_t_t.html | 3745 +++++++++++++ dox-master/classttg__parsec_1_1_t_t.png | Bin 0 -> 1613 bytes ...assttg__parsec_1_1_world_impl-members.html | 182 + .../classttg__parsec_1_1_world_impl.html | 1147 ++++ .../classttg__parsec_1_1_world_impl.png | Bin 0 -> 646 bytes ...ail_1_1rma__delayed__activate-members.html | 139 + ...c_1_1detail_1_1rma__delayed__activate.html | 238 + dox-master/closed.png | Bin 0 -> 132 bytes dox-master/config_8hpp.html | 367 ++ dox-master/config_8hpp_source.html | 237 + dox-master/config_8in_8h.html | 342 ++ dox-master/config_8in_8h_source.html | 156 + dox-master/contrib_2top_8md.html | 122 + dox-master/contribguide.html | 134 + dox-master/core_8hpp.html | 132 + dox-master/core_8hpp_source.html | 151 + dox-master/coroutine_8h.html | 183 + dox-master/coroutine_8h_source.html | 356 ++ dox-master/customdoxygen.css | 485 ++ dox-master/data__descriptor_8h.html | 159 + dox-master/data__descriptor_8h_source.html | 355 ++ .../default__callable__traits_8hpp.html | 144 + ...default__callable__traits_8hpp_source.html | 394 ++ dox-master/demangle_8h.html | 164 + dox-master/demangle_8h_source.html | 175 + dox-master/dev_2top_8md.html | 122 + dox-master/devguide.html | 117 + dox-master/device_2device_8h.html | 208 + dox-master/device_2device_8h_source.html | 340 ++ dox-master/device_2task_8h.html | 132 + dox-master/device_2task_8h_source.html | 745 +++ dox-master/devicefunc_8h.html | 162 + dox-master/devicefunc_8h_source.html | 323 ++ dox-master/devicescope_8h.html | 143 + dox-master/devicescope_8h_source.html | 141 + dox-master/devicescratch_8h.html | 151 + dox-master/devicescratch_8h_source.html | 151 + dox-master/diagnose_8h.html | 149 + dox-master/diagnose_8h_source.html | 149 + .../dir_07c857364c0556d18e94a3f35298c4a6.html | 132 + .../dir_13fd119dab1db984ce4477363886eeb4.html | 151 + .../dir_1d76dac96d2bc88cf9e6140a5146aa51.html | 132 + .../dir_2360215b1f4ba8a53485d6c71904a906.html | 144 + .../dir_36f15a76b34aab76fd15ad9ec0b06ea0.html | 136 + .../dir_48acf8476fa974f8d8d52fac470b66ad.html | 132 + .../dir_518e89f1c0c8b70cdfc5d2d3d6ce7940.html | 134 + .../dir_77fdb2182ae76ba6fbafe3d120eaee6b.html | 132 + .../dir_78211b2f39597c5113304cbc04c54190.html | 132 + .../dir_78e60d79325cd27436b0d8d9522e9c57.html | 132 + .../dir_8803a465e44b75ca1e251be94c39e69d.html | 201 + .../dir_9821395bc66cf1f03c298ff9baab0fee.html | 156 + .../dir_a17c6c13d389f7faedce3089b14133b4.html | 139 + .../dir_a825e1ba92545c3b5c2d3ccdfd8c48c1.html | 137 + .../dir_a8c24be98ee2a1ad71d381b4091fdbf8.html | 165 + .../dir_bc97ab6845a366ec7354b4363128df1d.html | 134 + .../dir_bcda4f8537b20778c16ba7f9dd698de8.html | 132 + .../dir_c1a36a68cc63344d9be0575bb7d87b8b.html | 138 + .../dir_d14c430f5eb3e5ce89bbe9044e7ab1f9.html | 164 + .../dir_d4db2781be3a279fb15a1d58748414cc.html | 132 + .../dir_d6fd4865185b9faac2b34d4b3d207028.html | 132 + .../dir_deef7e8046556dd51a354e77490c821e.html | 126 + .../dir_df54c121214d62d549578fca829a256a.html | 137 + .../dir_e1343a3dc90010149b86ffe6d9c5dcc4.html | 144 + .../dir_e67ae4b516638ba86976c7f6d8216122.html | 138 + .../dir_e68e8157741866f444e17edd764ebbae.html | 132 + .../dir_eadfcb2e6dc630a96ad146c380f23e4d.html | 191 + .../dir_fb38b30f47951bfe30ef4589dd313e50.html | 181 + dox-master/disjunction_8hpp.html | 175 + dox-master/disjunction_8hpp_source.html | 160 + dox-master/distributed_8cc-example.html | 199 + dox-master/distributed_8cc.html | 254 + dox-master/distributed_8cc_source.html | 210 + dox-master/doc.png | Bin 0 -> 746 bytes dox-master/dot_8h.html | 147 + dox-master/dot_8h_source.html | 352 ++ dox-master/doxy-boot.js | 278 + dox-master/doxygen.css | 1793 ++++++ dox-master/doxygen.svg | 26 + dox-master/dynsections.js | 128 + dox-master/edge_8h.html | 165 + dox-master/edge_8h_source.html | 345 ++ dox-master/env_8cpp.html | 150 + dox-master/env_8cpp_source.html | 175 + dox-master/env_8h.html | 146 + dox-master/env_8h_source.html | 148 + dox-master/examples.html | 132 + dox-master/execution_8h.html | 163 + dox-master/execution_8h_source.html | 174 + dox-master/files.html | 316 ++ dox-master/folderclosed.png | Bin 0 -> 616 bytes dox-master/folderopen.png | Bin 0 -> 597 bytes dox-master/forward__declarations_8hpp.html | 160 + .../forward__declarations_8hpp_source.html | 197 + dox-master/func_8h.html | 346 ++ dox-master/func_8h_source.html | 635 +++ dox-master/function_8hpp.html | 447 ++ dox-master/function_8hpp_source.html | 345 ++ dox-master/function__2_8hpp.html | 170 + dox-master/function__2_8hpp_source.html | 150 + dox-master/function__3_8hpp.html | 136 + dox-master/function__3_8hpp_source.html | 457 ++ dox-master/function__object_8hpp.html | 150 + dox-master/function__object_8hpp_source.html | 282 + dox-master/function__ptr_8hpp.html | 170 + dox-master/function__ptr_8hpp_source.html | 152 + dox-master/function__ptr__2_8hpp.html | 170 + dox-master/function__ptr__2_8hpp_source.html | 150 + dox-master/function__ptr__3_8hpp.html | 134 + dox-master/function__ptr__3_8hpp_source.html | 248 + dox-master/function__ptr__varargs_8hpp.html | 170 + .../function__ptr__varargs_8hpp_source.html | 150 + .../function__ptr__varargs__2_8hpp.html | 170 + ...function__ptr__varargs__2_8hpp_source.html | 150 + .../function__ptr__varargs__3_8hpp.html | 134 + ...function__ptr__varargs__3_8hpp_source.html | 253 + dox-master/function__type_8hpp.html | 156 + dox-master/function__type_8hpp_source.html | 232 + dox-master/functions.html | 173 + dox-master/functions_a.html | 313 ++ dox-master/functions_b.html | 249 + dox-master/functions_c.html | 291 + dox-master/functions_d.html | 335 ++ dox-master/functions_e.html | 246 + dox-master/functions_enum.html | 157 + dox-master/functions_eval.html | 202 + dox-master/functions_f.html | 260 + dox-master/functions_func.html | 171 + dox-master/functions_func_a.html | 193 + dox-master/functions_func_b.html | 215 + dox-master/functions_func_c.html | 244 + dox-master/functions_func_d.html | 287 + dox-master/functions_func_e.html | 195 + dox-master/functions_func_f.html | 226 + dox-master/functions_func_g.html | 275 + dox-master/functions_func_h.html | 188 + dox-master/functions_func_i.html | 316 ++ dox-master/functions_func_l.html | 189 + dox-master/functions_func_m.html | 199 + dox-master/functions_func_n.html | 183 + dox-master/functions_func_o.html | 272 + dox-master/functions_func_p.html | 249 + dox-master/functions_func_r.html | 270 + dox-master/functions_func_s.html | 389 ++ dox-master/functions_func_t.html | 240 + dox-master/functions_func_u.html | 192 + dox-master/functions_func_v.html | 177 + dox-master/functions_func_w.html | 178 + dox-master/functions_func_x.html | 177 + dox-master/functions_func_~.html | 234 + dox-master/functions_g.html | 289 + dox-master/functions_h.html | 218 + dox-master/functions_i.html | 441 ++ dox-master/functions_k.html | 237 + dox-master/functions_l.html | 194 + dox-master/functions_m.html | 279 + dox-master/functions_n.html | 239 + dox-master/functions_o.html | 301 + dox-master/functions_p.html | 316 ++ dox-master/functions_q.html | 189 + dox-master/functions_r.html | 399 ++ dox-master/functions_rela.html | 186 + dox-master/functions_s.html | 455 ++ dox-master/functions_t.html | 406 ++ dox-master/functions_type.html | 283 + dox-master/functions_type_b.html | 181 + dox-master/functions_type_c.html | 190 + dox-master/functions_type_d.html | 171 + dox-master/functions_type_e.html | 198 + dox-master/functions_type_f.html | 188 + dox-master/functions_type_h.html | 181 + dox-master/functions_type_i.html | 260 + dox-master/functions_type_k.html | 175 + dox-master/functions_type_l.html | 168 + dox-master/functions_type_m.html | 168 + dox-master/functions_type_n.html | 175 + dox-master/functions_type_o.html | 177 + dox-master/functions_type_p.html | 207 + dox-master/functions_type_q.html | 181 + dox-master/functions_type_r.html | 273 + dox-master/functions_type_s.html | 184 + dox-master/functions_type_t.html | 294 + dox-master/functions_type_v.html | 174 + dox-master/functions_type_w.html | 168 + dox-master/functions_u.html | 195 + dox-master/functions_v.html | 223 + dox-master/functions_vars.html | 647 +++ dox-master/functions_w.html | 186 + dox-master/functions_x.html | 179 + dox-master/functions_~.html | 236 + dox-master/future_8h.html | 146 + dox-master/future_8h_source.html | 150 + dox-master/fwd_8h.html | 183 + dox-master/fwd_8h_source.html | 197 + dox-master/globals.html | 447 ++ dox-master/globals_defs.html | 385 ++ dox-master/globals_func.html | 160 + dox-master/globals_type.html | 134 + dox-master/globals_vars.html | 134 + dox-master/group__resumable__task.html | 242 + dox-master/has__member__qualifiers_8hpp.html | 150 + .../has__member__qualifiers_8hpp_source.html | 233 + dox-master/has__varargs_8hpp.html | 150 + dox-master/has__varargs_8hpp_source.html | 228 + dox-master/has__void__return_8hpp.html | 150 + dox-master/has__void__return_8hpp_source.html | 227 + dox-master/hash_8h.html | 190 + dox-master/hash_8h_source.html | 285 + dox-master/hierarchy.html | 596 ++ dox-master/impl__selector_8h.html | 126 + dox-master/impl__selector_8h_source.html | 145 + dox-master/index.html | 331 ++ dox-master/iovec_8h.html | 142 + dox-master/iovec_8h_source.html | 145 + dox-master/is__const__member_8hpp.html | 150 + dox-master/is__const__member_8hpp_source.html | 231 + dox-master/is__invocable_8hpp.html | 156 + dox-master/is__invocable_8hpp_source.html | 241 + dox-master/is__invocable__impl_8hpp.html | 190 + .../is__invocable__impl_8hpp_source.html | 313 ++ .../is__lvalue__reference__member_8hpp.html | 150 + ...lvalue__reference__member_8hpp_source.html | 229 + dox-master/is__noexcept_8hpp.html | 150 + dox-master/is__noexcept_8hpp_source.html | 229 + dox-master/is__reference__member_8hpp.html | 150 + .../is__reference__member_8hpp_source.html | 232 + .../is__rvalue__reference__member_8hpp.html | 150 + ...rvalue__reference__member_8hpp_source.html | 231 + dox-master/is__transaction__safe_8hpp.html | 150 + .../is__transaction__safe_8hpp_source.html | 232 + dox-master/is__volatile__member_8hpp.html | 150 + .../is__volatile__member_8hpp_source.html | 234 + dox-master/iterative_8cc-example.html | 191 + dox-master/iterative_8cc.html | 252 + dox-master/iterative_8cc_source.html | 201 + dox-master/jquery.js | 35 + dox-master/jquery.smartmenus.bootstrap.css | 122 + dox-master/jquery.smartmenus.bootstrap.js | 174 + dox-master/jquery.smartmenus.js | 1223 +++++ dox-master/jquery.smartmenus.keyboard.js | 215 + dox-master/keymap_8h.html | 149 + dox-master/keymap_8h_source.html | 192 + dox-master/list_8h.html | 128 + dox-master/list_8h_source.html | 158 + dox-master/macro_8h.html | 192 + dox-master/macro_8h_source.html | 143 + dox-master/madness_2buffer_8h.html | 143 + dox-master/madness_2buffer_8h_source.html | 463 ++ dox-master/madness_2device_8h.html | 141 + dox-master/madness_2device_8h_source.html | 137 + dox-master/madness_2fwd_8h.html | 196 + dox-master/madness_2fwd_8h_source.html | 240 + dox-master/madness_2import_8h.html | 204 + dox-master/madness_2import_8h_source.html | 156 + dox-master/madness_2ttvalue_8h.html | 141 + dox-master/madness_2ttvalue_8h_source.html | 142 + dox-master/madness_8h.html | 172 + dox-master/madness_8h_source.html | 247 + dox-master/make__index__sequence_8hpp.html | 208 + .../make__index__sequence_8hpp_source.html | 181 + dox-master/make__tt_8h.html | 534 ++ dox-master/make__tt_8h_source.html | 773 +++ dox-master/menudata.js | 212 + dox-master/meta_8h.html | 328 ++ dox-master/meta_8h_source.html | 1081 ++++ dox-master/modules.html | 120 + dox-master/multiindex_8h.html | 149 + dox-master/multiindex_8h_source.html | 258 + ...s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html | 498 ++ ...n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html | 435 ++ dox-master/namespaceboost.html | 140 + dox-master/namespaceboost_1_1archive.html | 132 + .../namespaceboost_1_1callable__traits.html | 1034 ++++ ...ceboost_1_1callable__traits_1_1detail.html | 1317 +++++ .../namespaceboost_1_1serialization.html | 163 + dox-master/namespacemembers.html | 210 + dox-master/namespacemembers_b.html | 202 + dox-master/namespacemembers_c.html | 216 + dox-master/namespacemembers_d.html | 207 + dox-master/namespacemembers_e.html | 192 + dox-master/namespacemembers_enum.html | 156 + dox-master/namespacemembers_f.html | 201 + dox-master/namespacemembers_func.html | 172 + dox-master/namespacemembers_func_b.html | 170 + dox-master/namespacemembers_func_c.html | 184 + dox-master/namespacemembers_func_d.html | 187 + dox-master/namespacemembers_func_e.html | 178 + dox-master/namespacemembers_func_f.html | 178 + dox-master/namespacemembers_func_g.html | 193 + dox-master/namespacemembers_func_h.html | 178 + dox-master/namespacemembers_func_i.html | 178 + dox-master/namespacemembers_func_l.html | 172 + dox-master/namespacemembers_func_m.html | 198 + dox-master/namespacemembers_func_n.html | 168 + dox-master/namespacemembers_func_o.html | 194 + dox-master/namespacemembers_func_p.html | 183 + dox-master/namespacemembers_func_r.html | 183 + dox-master/namespacemembers_func_s.html | 179 + dox-master/namespacemembers_func_t.html | 240 + dox-master/namespacemembers_func_v.html | 163 + dox-master/namespacemembers_func_w.html | 172 + dox-master/namespacemembers_g.html | 201 + dox-master/namespacemembers_h.html | 243 + dox-master/namespacemembers_i.html | 348 ++ dox-master/namespacemembers_l.html | 177 + dox-master/namespacemembers_m.html | 209 + dox-master/namespacemembers_n.html | 173 + dox-master/namespacemembers_o.html | 203 + dox-master/namespacemembers_p.html | 233 + dox-master/namespacemembers_q.html | 168 + dox-master/namespacemembers_r.html | 230 + dox-master/namespacemembers_s.html | 226 + dox-master/namespacemembers_t.html | 288 + dox-master/namespacemembers_type.html | 529 ++ dox-master/namespacemembers_u.html | 168 + dox-master/namespacemembers_v.html | 178 + dox-master/namespacemembers_vars.html | 499 ++ dox-master/namespacemembers_w.html | 174 + dox-master/namespaces.html | 529 ++ dox-master/namespacettg.html | 4745 ++++++++++++++++ dox-master/namespacettg_1_1base.html | 143 + dox-master/namespacettg_1_1detail.html | 2566 +++++++++ dox-master/namespacettg_1_1device.html | 273 + .../namespacettg_1_1device_1_1detail.html | 132 + dox-master/namespacettg_1_1iostream.html | 401 ++ dox-master/namespacettg_1_1meta.html | 1956 +++++++ .../namespacettg_1_1meta_1_1detail.html | 142 + dox-master/namespacettg_1_1overload.html | 155 + dox-master/namespacettg__madness.html | 1018 ++++ .../namespacettg__madness_1_1detail.html | 168 + dox-master/namespacettg__parsec.html | 1111 ++++ .../namespacettg__parsec_1_1detail.html | 1658 ++++++ dox-master/nav_f.png | Bin 0 -> 153 bytes dox-master/nav_g.png | Bin 0 -> 95 bytes dox-master/nav_h.png | Bin 0 -> 98 bytes dox-master/nth-fib-trace-2proc-2thr.png | Bin 0 -> 66020 bytes dox-master/open.png | Bin 0 -> 123 bytes dox-master/pages.html | 117 + dox-master/parsec-ext_8h.html | 151 + dox-master/parsec-ext_8h_source.html | 133 + dox-master/parsec_2buffer_8h.html | 160 + dox-master/parsec_2buffer_8h_source.html | 571 ++ dox-master/parsec_2device_8h.html | 155 + dox-master/parsec_2device_8h_source.html | 178 + dox-master/parsec_2devicescratch_8h.html | 180 + .../parsec_2devicescratch_8h_source.html | 291 + dox-master/parsec_2fwd_8h.html | 193 + dox-master/parsec_2fwd_8h_source.html | 248 + dox-master/parsec_2import_8h.html | 216 + dox-master/parsec_2import_8h_source.html | 158 + dox-master/parsec_2ptr_8h.html | 169 + dox-master/parsec_2ptr_8h_source.html | 455 ++ dox-master/parsec_2task_8h.html | 196 + dox-master/parsec_2task_8h_source.html | 558 ++ dox-master/parsec_2ttvalue_8h.html | 158 + dox-master/parsec_2ttvalue_8h_source.html | 246 + dox-master/pmd_8hpp.html | 151 + dox-master/pmd_8hpp_source.html | 200 + dox-master/pmf_8hpp.html | 274 + dox-master/pmf_8hpp_source.html | 238 + dox-master/pmf__2_8hpp.html | 182 + dox-master/pmf__2_8hpp_source.html | 210 + dox-master/pmf__3_8hpp.html | 170 + dox-master/pmf__3_8hpp_source.html | 150 + dox-master/pmf__4_8hpp.html | 134 + dox-master/pmf__4_8hpp_source.html | 327 ++ dox-master/pmf__varargs_8hpp.html | 566 ++ dox-master/pmf__varargs_8hpp_source.html | 216 + dox-master/pmf__varargs__2_8hpp.html | 182 + dox-master/pmf__varargs__2_8hpp_source.html | 214 + dox-master/pmf__varargs__3_8hpp.html | 170 + dox-master/pmf__varargs__3_8hpp_source.html | 150 + dox-master/pmf__varargs__4_8hpp.html | 134 + dox-master/pmf__varargs__4_8hpp_source.html | 330 ++ dox-master/print_8h.html | 210 + dox-master/print_8h_source.html | 258 + dox-master/ptr_8h.html | 153 + dox-master/ptr_8h_source.html | 226 + dox-master/qualified__class__of_8hpp.html | 156 + .../qualified__class__of_8hpp_source.html | 215 + dox-master/qualifier__flags_8hpp.html | 207 + dox-master/qualifier__flags_8hpp_source.html | 266 + dox-master/reduce_8h.html | 146 + dox-master/reduce_8h_source.html | 273 + dox-master/reducing_8cc-example.html | 195 + dox-master/reducing_8cc.html | 254 + dox-master/reducing_8cc_source.html | 205 + dox-master/remove__member__const_8hpp.html | 156 + .../remove__member__const_8hpp_source.html | 219 + dox-master/remove__member__cv_8hpp.html | 156 + .../remove__member__cv_8hpp_source.html | 221 + .../remove__member__reference_8hpp.html | 156 + ...remove__member__reference_8hpp_source.html | 219 + dox-master/remove__member__volatile_8hpp.html | 156 + .../remove__member__volatile_8hpp_source.html | 219 + dox-master/remove__noexcept_8hpp.html | 156 + dox-master/remove__noexcept_8hpp_source.html | 229 + .../remove__transaction__safe_8hpp.html | 156 + ...remove__transaction__safe_8hpp_source.html | 229 + dox-master/remove__varargs_8hpp.html | 156 + dox-master/remove__varargs_8hpp_source.html | 225 + dox-master/return__type_8hpp.html | 156 + dox-master/return__type_8hpp_source.html | 226 + dox-master/run_8h.html | 173 + dox-master/run_8h_source.html | 226 + dox-master/runtimes_8h.html | 154 + dox-master/runtimes_8h_source.html | 177 + dox-master/search/all_0.html | 37 + dox-master/search/all_0.js | 5 + dox-master/search/all_1.html | 37 + dox-master/search/all_1.js | 80 + dox-master/search/all_10.html | 37 + dox-master/search/all_10.js | 13 + dox-master/search/all_11.html | 37 + dox-master/search/all_11.js | 112 + dox-master/search/all_12.html | 37 + dox-master/search/all_12.js | 130 + dox-master/search/all_13.html | 37 + dox-master/search/all_13.js | 170 + dox-master/search/all_14.html | 37 + dox-master/search/all_14.js | 15 + dox-master/search/all_15.html | 37 + dox-master/search/all_15.js | 21 + dox-master/search/all_16.html | 37 + dox-master/search/all_16.js | 19 + dox-master/search/all_17.html | 37 + dox-master/search/all_17.js | 5 + dox-master/search/all_18.html | 37 + dox-master/search/all_18.js | 24 + dox-master/search/all_2.html | 37 + dox-master/search/all_2.js | 81 + dox-master/search/all_3.html | 37 + dox-master/search/all_3.js | 94 + dox-master/search/all_4.html | 37 + dox-master/search/all_4.js | 101 + dox-master/search/all_5.html | 37 + dox-master/search/all_5.js | 40 + dox-master/search/all_6.html | 37 + dox-master/search/all_6.js | 81 + dox-master/search/all_7.html | 37 + dox-master/search/all_7.js | 48 + dox-master/search/all_8.html | 37 + dox-master/search/all_8.js | 67 + dox-master/search/all_9.html | 37 + dox-master/search/all_9.js | 219 + dox-master/search/all_a.html | 37 + dox-master/search/all_a.js | 27 + dox-master/search/all_b.html | 37 + dox-master/search/all_b.js | 18 + dox-master/search/all_c.html | 37 + dox-master/search/all_c.js | 72 + dox-master/search/all_d.html | 37 + dox-master/search/all_d.js | 32 + dox-master/search/all_e.html | 37 + dox-master/search/all_e.js | 41 + dox-master/search/all_f.html | 37 + dox-master/search/all_f.js | 118 + dox-master/search/classes_0.html | 37 + dox-master/search/classes_0.js | 4 + dox-master/search/classes_1.html | 37 + dox-master/search/classes_1.js | 37 + dox-master/search/classes_10.html | 37 + dox-master/search/classes_10.js | 36 + dox-master/search/classes_11.html | 37 + dox-master/search/classes_11.js | 26 + dox-master/search/classes_12.html | 37 + dox-master/search/classes_12.js | 48 + dox-master/search/classes_13.html | 37 + dox-master/search/classes_13.js | 6 + dox-master/search/classes_14.html | 37 + dox-master/search/classes_14.js | 8 + dox-master/search/classes_15.html | 37 + dox-master/search/classes_15.js | 7 + dox-master/search/classes_2.html | 37 + dox-master/search/classes_2.js | 12 + dox-master/search/classes_3.html | 37 + dox-master/search/classes_3.js | 30 + dox-master/search/classes_4.html | 37 + dox-master/search/classes_4.js | 32 + dox-master/search/classes_5.html | 37 + dox-master/search/classes_5.js | 9 + dox-master/search/classes_6.html | 37 + dox-master/search/classes_6.js | 33 + dox-master/search/classes_7.html | 37 + dox-master/search/classes_7.js | 6 + dox-master/search/classes_8.html | 37 + dox-master/search/classes_8.js | 22 + dox-master/search/classes_9.html | 37 + dox-master/search/classes_9.js | 80 + dox-master/search/classes_a.html | 37 + dox-master/search/classes_a.js | 5 + dox-master/search/classes_b.html | 37 + dox-master/search/classes_b.js | 14 + dox-master/search/classes_c.html | 37 + dox-master/search/classes_c.js | 8 + dox-master/search/classes_d.html | 37 + dox-master/search/classes_d.js | 7 + dox-master/search/classes_e.html | 37 + dox-master/search/classes_e.js | 43 + dox-master/search/classes_f.html | 37 + dox-master/search/classes_f.js | 6 + dox-master/search/close.svg | 31 + dox-master/search/defines_0.html | 37 + dox-master/search/defines_0.js | 31 + dox-master/search/defines_1.html | 37 + dox-master/search/defines_1.js | 4 + dox-master/search/defines_2.html | 37 + dox-master/search/defines_2.js | 4 + dox-master/search/defines_3.html | 37 + dox-master/search/defines_3.js | 4 + dox-master/search/defines_4.html | 37 + dox-master/search/defines_4.js | 38 + dox-master/search/enums_0.html | 37 + dox-master/search/enums_0.js | 4 + dox-master/search/enums_1.html | 37 + dox-master/search/enums_1.js | 4 + dox-master/search/enums_2.html | 37 + dox-master/search/enums_2.js | 4 + dox-master/search/enums_3.html | 37 + dox-master/search/enums_3.js | 5 + dox-master/search/enums_4.html | 37 + dox-master/search/enums_4.js | 4 + dox-master/search/enums_5.html | 37 + dox-master/search/enums_5.js | 4 + dox-master/search/enums_6.html | 37 + dox-master/search/enums_6.js | 6 + dox-master/search/enums_7.html | 37 + dox-master/search/enums_7.js | 6 + dox-master/search/enumvalues_0.html | 37 + dox-master/search/enumvalues_0.js | 5 + dox-master/search/enumvalues_1.html | 37 + dox-master/search/enumvalues_1.js | 7 + dox-master/search/enumvalues_2.html | 37 + dox-master/search/enumvalues_2.js | 4 + dox-master/search/enumvalues_3.html | 37 + dox-master/search/enumvalues_3.js | 5 + dox-master/search/enumvalues_4.html | 37 + dox-master/search/enumvalues_4.js | 6 + dox-master/search/enumvalues_5.html | 37 + dox-master/search/enumvalues_5.js | 19 + dox-master/search/enumvalues_6.html | 37 + dox-master/search/enumvalues_6.js | 4 + dox-master/search/enumvalues_7.html | 37 + dox-master/search/enumvalues_7.js | 12 + dox-master/search/enumvalues_8.html | 37 + dox-master/search/enumvalues_8.js | 4 + dox-master/search/enumvalues_9.html | 37 + dox-master/search/enumvalues_9.js | 4 + dox-master/search/enumvalues_a.html | 37 + dox-master/search/enumvalues_a.js | 5 + dox-master/search/enumvalues_b.html | 37 + dox-master/search/enumvalues_b.js | 6 + dox-master/search/enumvalues_c.html | 37 + dox-master/search/enumvalues_c.js | 4 + dox-master/search/files_0.html | 37 + dox-master/search/files_0.js | 17 + dox-master/search/files_1.html | 37 + dox-master/search/files_1.js | 13 + dox-master/search/files_10.html | 37 + dox-master/search/files_10.js | 4 + dox-master/search/files_11.html | 37 + dox-master/search/files_11.js | 7 + dox-master/search/files_12.html | 37 + dox-master/search/files_12.js | 6 + dox-master/search/files_2.html | 37 + dox-master/search/files_2.js | 12 + dox-master/search/files_3.html | 37 + dox-master/search/files_3.js | 16 + dox-master/search/files_4.html | 37 + dox-master/search/files_4.js | 7 + dox-master/search/files_5.html | 37 + dox-master/search/files_5.js | 18 + dox-master/search/files_6.html | 37 + dox-master/search/files_6.js | 7 + dox-master/search/files_7.html | 37 + dox-master/search/files_7.js | 16 + dox-master/search/files_8.html | 37 + dox-master/search/files_8.js | 4 + dox-master/search/files_9.html | 37 + dox-master/search/files_9.js | 4 + dox-master/search/files_a.html | 37 + dox-master/search/files_a.js | 9 + dox-master/search/files_b.html | 37 + dox-master/search/files_b.js | 17 + dox-master/search/files_c.html | 37 + dox-master/search/files_c.js | 5 + dox-master/search/files_d.html | 37 + dox-master/search/files_d.js | 16 + dox-master/search/files_e.html | 37 + dox-master/search/files_e.js | 10 + dox-master/search/files_f.html | 37 + dox-master/search/files_f.js | 20 + dox-master/search/functions_0.html | 37 + dox-master/search/functions_0.js | 4 + dox-master/search/functions_1.html | 37 + dox-master/search/functions_1.js | 15 + dox-master/search/functions_10.html | 37 + dox-master/search/functions_10.js | 68 + dox-master/search/functions_11.html | 37 + dox-master/search/functions_11.js | 47 + dox-master/search/functions_12.html | 37 + dox-master/search/functions_12.js | 10 + dox-master/search/functions_13.html | 37 + dox-master/search/functions_13.js | 7 + dox-master/search/functions_14.html | 37 + dox-master/search/functions_14.js | 12 + dox-master/search/functions_15.html | 37 + dox-master/search/functions_15.js | 5 + dox-master/search/functions_16.html | 37 + dox-master/search/functions_16.js | 24 + dox-master/search/functions_2.html | 37 + dox-master/search/functions_2.js | 22 + dox-master/search/functions_3.html | 37 + dox-master/search/functions_3.js | 34 + dox-master/search/functions_4.html | 37 + dox-master/search/functions_4.js | 46 + dox-master/search/functions_5.html | 37 + dox-master/search/functions_5.js | 16 + dox-master/search/functions_6.html | 37 + dox-master/search/functions_6.js | 23 + dox-master/search/functions_7.html | 37 + dox-master/search/functions_7.js | 41 + dox-master/search/functions_8.html | 37 + dox-master/search/functions_8.js | 15 + dox-master/search/functions_9.html | 37 + dox-master/search/functions_9.js | 53 + dox-master/search/functions_a.html | 37 + dox-master/search/functions_a.js | 14 + dox-master/search/functions_b.html | 37 + dox-master/search/functions_b.js | 26 + dox-master/search/functions_c.html | 37 + dox-master/search/functions_c.js | 10 + dox-master/search/functions_d.html | 37 + dox-master/search/functions_d.js | 32 + dox-master/search/functions_e.html | 37 + dox-master/search/functions_e.js | 33 + dox-master/search/functions_f.html | 37 + dox-master/search/functions_f.js | 38 + dox-master/search/groups_0.html | 37 + dox-master/search/groups_0.js | 4 + dox-master/search/mag_sel.svg | 74 + dox-master/search/namespaces_0.html | 37 + dox-master/search/namespaces_0.js | 8 + dox-master/search/namespaces_1.html | 37 + dox-master/search/namespaces_1.js | 13 + dox-master/search/nomatches.html | 13 + dox-master/search/pages_0.html | 37 + dox-master/search/pages_0.js | 5 + dox-master/search/pages_1.html | 37 + dox-master/search/pages_1.js | 6 + dox-master/search/pages_2.html | 37 + dox-master/search/pages_2.js | 4 + dox-master/search/pages_3.html | 37 + dox-master/search/pages_3.js | 4 + dox-master/search/pages_4.html | 37 + dox-master/search/pages_4.js | 4 + dox-master/search/pages_5.html | 37 + dox-master/search/pages_5.js | 5 + dox-master/search/related_0.html | 37 + dox-master/search/related_0.js | 6 + dox-master/search/related_1.html | 37 + dox-master/search/related_1.js | 5 + dox-master/search/related_2.html | 37 + dox-master/search/related_2.js | 4 + dox-master/search/related_3.html | 37 + dox-master/search/related_3.js | 4 + dox-master/search/related_4.html | 37 + dox-master/search/related_4.js | 5 + dox-master/search/related_5.html | 37 + dox-master/search/related_5.js | 6 + dox-master/search/related_6.html | 37 + dox-master/search/related_6.js | 4 + dox-master/search/related_7.html | 37 + dox-master/search/related_7.js | 5 + dox-master/search/search.css | 271 + dox-master/search/search.js | 816 +++ dox-master/search/search_l.png | Bin 0 -> 567 bytes dox-master/search/search_m.png | Bin 0 -> 158 bytes dox-master/search/search_r.png | Bin 0 -> 553 bytes dox-master/search/searchdata.js | 51 + dox-master/search/typedefs_0.html | 37 + dox-master/search/typedefs_0.js | 27 + dox-master/search/typedefs_1.html | 37 + dox-master/search/typedefs_1.js | 17 + dox-master/search/typedefs_10.html | 37 + dox-master/search/typedefs_10.js | 33 + dox-master/search/typedefs_11.html | 37 + dox-master/search/typedefs_11.js | 19 + dox-master/search/typedefs_12.html | 37 + dox-master/search/typedefs_12.js | 15 + dox-master/search/typedefs_13.html | 37 + dox-master/search/typedefs_13.js | 5 + dox-master/search/typedefs_14.html | 37 + dox-master/search/typedefs_14.js | 6 + dox-master/search/typedefs_15.html | 37 + dox-master/search/typedefs_15.js | 4 + dox-master/search/typedefs_2.html | 37 + dox-master/search/typedefs_2.js | 16 + dox-master/search/typedefs_3.html | 37 + dox-master/search/typedefs_3.js | 7 + dox-master/search/typedefs_4.html | 37 + dox-master/search/typedefs_4.js | 11 + dox-master/search/typedefs_5.html | 37 + dox-master/search/typedefs_5.js | 13 + dox-master/search/typedefs_6.html | 37 + dox-master/search/typedefs_6.js | 5 + dox-master/search/typedefs_7.html | 37 + dox-master/search/typedefs_7.js | 16 + dox-master/search/typedefs_8.html | 37 + dox-master/search/typedefs_8.js | 26 + dox-master/search/typedefs_9.html | 37 + dox-master/search/typedefs_9.js | 5 + dox-master/search/typedefs_a.html | 37 + dox-master/search/typedefs_a.js | 4 + dox-master/search/typedefs_b.html | 37 + dox-master/search/typedefs_b.js | 6 + dox-master/search/typedefs_c.html | 37 + dox-master/search/typedefs_c.js | 5 + dox-master/search/typedefs_d.html | 37 + dox-master/search/typedefs_d.js | 8 + dox-master/search/typedefs_e.html | 37 + dox-master/search/typedefs_e.js | 16 + dox-master/search/typedefs_f.html | 37 + dox-master/search/typedefs_f.js | 7 + dox-master/search/variables_0.html | 37 + dox-master/search/variables_0.js | 4 + dox-master/search/variables_1.html | 37 + dox-master/search/variables_1.js | 4 + dox-master/search/variables_10.html | 37 + dox-master/search/variables_10.js | 10 + dox-master/search/variables_11.html | 37 + dox-master/search/variables_11.js | 17 + dox-master/search/variables_12.html | 37 + dox-master/search/variables_12.js | 17 + dox-master/search/variables_13.html | 37 + dox-master/search/variables_13.js | 4 + dox-master/search/variables_14.html | 37 + dox-master/search/variables_14.js | 8 + dox-master/search/variables_15.html | 37 + dox-master/search/variables_15.js | 4 + dox-master/search/variables_2.html | 37 + dox-master/search/variables_2.js | 11 + dox-master/search/variables_3.html | 37 + dox-master/search/variables_3.js | 18 + dox-master/search/variables_4.html | 37 + dox-master/search/variables_4.js | 7 + dox-master/search/variables_5.html | 37 + dox-master/search/variables_5.js | 7 + dox-master/search/variables_6.html | 37 + dox-master/search/variables_6.js | 6 + dox-master/search/variables_7.html | 37 + dox-master/search/variables_7.js | 19 + dox-master/search/variables_8.html | 37 + dox-master/search/variables_8.js | 63 + dox-master/search/variables_9.html | 37 + dox-master/search/variables_9.js | 6 + dox-master/search/variables_a.html | 37 + dox-master/search/variables_a.js | 4 + dox-master/search/variables_b.html | 37 + dox-master/search/variables_b.js | 22 + dox-master/search/variables_c.html | 37 + dox-master/search/variables_c.js | 16 + dox-master/search/variables_d.html | 37 + dox-master/search/variables_d.js | 5 + dox-master/search/variables_e.html | 37 + dox-master/search/variables_e.js | 26 + dox-master/search/variables_f.html | 37 + dox-master/search/variables_f.js | 4 + dox-master/serialization_2std_2pair_8h.html | 127 + .../serialization_2std_2pair_8h_source.html | 156 + dox-master/serialization_8h.html | 128 + dox-master/serialization_8h_source.html | 140 + .../set__function__qualifiers_8hpp.html | 202 + ...set__function__qualifiers_8hpp_source.html | 256 + dox-master/sfinae__errors_8hpp.html | 294 + dox-master/sfinae__errors_8hpp_source.html | 230 + dox-master/simple_8cc-example.html | 170 + dox-master/simple_8cc.html | 168 + dox-master/simple_8cc_source.html | 181 + dox-master/span_8h.html | 435 ++ dox-master/span_8h_source.html | 721 +++ dox-master/splitbar.png | Bin 0 -> 314 bytes dox-master/splitmd__data__descriptor_8h.html | 146 + .../splitmd__data__descriptor_8h_source.html | 156 + dox-master/stream_8h.html | 158 + dox-master/stream_8h_source.html | 272 + ...ct_callable_wrap_t_t_args_as_typelist.html | 139 + ...utter1ea4a15775597eac016882f437f297ec.html | 134 + ...utter3b664cb5b00006baf66fbd21bf698429.html | 167 + ...utter40d1bb60d677324c85caad54df01ae30.html | 134 + ...uttere72486ff9ca2e41e31e519c9a3ec32f0.html | 167 + ...uct_callable_wrap_t_t_unwrap_typelist.html | 139 + ...0_01k39ff4e52f207da634b4900c72be1d0bf.html | 167 + ...0_01k590d9bc3999c471ee4613e34344250fa.html | 167 + ...0_01k630a561a47b71aa9e3edd09485b80306.html | 134 + ...0_01kcc606679f9dc6a631b54e9ba76088b42.html | 134 + ...m_e_1_1detail_1_1has__size__and__data.html | 149 + ..._m_e_1_1detail_1_1has__size__and__data.png | Bin 0 -> 1152 bytes ..._t_00fcf51269242c64e6f704600d32eb2114.html | 149 + ...1_t_00fcf51269242c64e6f704600d32eb2114.png | Bin 0 -> 1734 bytes ...e___n_a_m_e_1_1detail_1_1is__complete.html | 149 + ..._e___n_a_m_e_1_1detail_1_1is__complete.png | Bin 0 -> 1102 bytes ...t_00_01decltype_07sizeof_07_t_08_08_4.html | 149 + ..._t_00_01decltype_07sizeof_07_t_08_08_4.png | Bin 0 -> 1126 bytes ..._e_1_1detail_1_1is__container-members.html | 138 + ...___n_a_m_e_1_1detail_1_1is__container.html | 181 + ...ype__0c28d3e6adf337284cfc3b0cc90ba466.html | 149 + ...type__0c28d3e6adf337284cfc3b0cc90ba466.png | Bin 0 -> 2916 bytes ..._container__element__type__compatible.html | 149 + ...__container__element__type__compatible.png | Bin 0 -> 1433 bytes ...a_c_e___n_a_m_e_1_1detail_1_1is__span.html | 149 + ..._a_c_e___n_a_m_e_1_1detail_1_1is__span.png | Bin 0 -> 1035 bytes ...pan_3_01span_3_01_t_00_01_s_01_4_01_4.html | 149 + ...span_3_01span_3_01_t_00_01_s_01_4_01_4.png | Bin 0 -> 1013 bytes ...__n_a_m_e_1_1detail_1_1is__std__array.html | 149 + ...___n_a_m_e_1_1detail_1_1is__std__array.png | Bin 0 -> 1085 bytes ...std_1_1array_3_01_t_00_01_n_01_4_01_4.html | 149 + ...1std_1_1array_3_01_t_00_01_n_01_4_01_4.png | Bin 0 -> 1078 bytes ..._e_1_1detail_1_1span__storage-members.html | 141 + ...___n_a_m_e_1_1detail_1_1span__storage.html | 279 + ...1_e_00_01dynamic__extent_01_4-members.html | 141 + ...rage_3_01_e_00_01dynamic__extent_01_4.html | 267 + ...allable__traits_1_1add__member__const.html | 152 + ...callable__traits_1_1add__member__const.png | Bin 0 -> 1152 bytes ..._1callable__traits_1_1add__member__cv.html | 152 + ...1_1callable__traits_1_1add__member__cv.png | Bin 0 -> 1109 bytes ...its_1_1add__member__lvalue__reference.html | 152 + ...aits_1_1add__member__lvalue__reference.png | Bin 0 -> 1317 bytes ...its_1_1add__member__rvalue__reference.html | 152 + ...aits_1_1add__member__rvalue__reference.png | Bin 0 -> 1319 bytes ...able__traits_1_1add__member__volatile.html | 152 + ...lable__traits_1_1add__member__volatile.png | Bin 0 -> 1199 bytes ..._1_1callable__traits_1_1add__noexcept.html | 143 + ...1callable__traits_1_1add__noexcept__t.html | 143 + ...ble__traits_1_1add__transaction__safe.html | 143 + ...__traits_1_1add__transaction__safe__t.html | 143 + ...t_1_1callable__traits_1_1add__varargs.html | 152 + ...st_1_1callable__traits_1_1add__varargs.png | Bin 0 -> 1072 bytes ...ble__traits_1_1apply__member__pointer.html | 152 + ...able__traits_1_1apply__member__pointer.png | Bin 0 -> 1279 bytes ..._1_1callable__traits_1_1apply__return.html | 152 + ...t_1_1callable__traits_1_1apply__return.png | Bin 0 -> 1130 bytes ...ructboost_1_1callable__traits_1_1args.html | 152 + ...tructboost_1_1callable__traits_1_1args.png | Bin 0 -> 1130 bytes ...oost_1_1callable__traits_1_1class__of.html | 152 + ...boost_1_1callable__traits_1_1class__of.png | Bin 0 -> 968 bytes ...1_1detail_1_1add__member__const__impl.html | 152 + ..._1_1detail_1_1add__member__const__impl.png | Bin 0 -> 1271 bytes ...01std018f61a8862fc2629928c441f161eab1.html | 171 + ...01std56bb8e2a8f0593073908b0decb19be64.html | 138 + ...ts_1_1detail_1_1add__member__cv__impl.html | 152 + ...its_1_1detail_1_1add__member__cv__impl.png | Bin 0 -> 1237 bytes ...td_1_0b856619f2d297a34588232e4fa7973b.html | 171 + ...td_1_83b60a30644facc5f0bab83ea098611d.html | 138 + ...1add__member__lvalue__reference__impl.html | 152 + ..._1add__member__lvalue__reference__impl.png | Bin 0 -> 1411 bytes ..._01ty9620283d24ed158fca1b918a307fe323.html | 171 + ..._01tyff44cc4850b3a4633597bdb961256a19.html | 138 + ...1add__member__rvalue__reference__impl.html | 152 + ..._1add__member__rvalue__reference__impl.png | Bin 0 -> 1412 bytes ..._01ty2d08890afc0f73addb5b72bea496e815.html | 138 + ..._01ty9bdbecc1be3360679c58a08c7659e104.html | 171 + ...detail_1_1add__member__volatile__impl.html | 152 + ...1detail_1_1add__member__volatile__impl.png | Bin 0 -> 1290 bytes ...me_01719e7e0b0ab813d03818dbe55d63cd7a.html | 171 + ...me_01c2c4d79dfb3abee4db06507780fe31db.html | 138 + ...raits_1_1detail_1_1add__varargs__impl.html | 152 + ...traits_1_1detail_1_1add__varargs__impl.png | Bin 0 -> 1193 bytes ...1_1isebb1b3f4b3764f1094c0ca20cf2ce92f.html | 171 + ...1_1isfe78175a0696b8b2f3b6ea52d7862fab.html | 138 + ...etail_1_1apply__member__pointer__impl.html | 152 + ...detail_1_1apply__member__pointer__impl.png | Bin 0 -> 1375 bytes ..._01ty0a144a4dd30e92adde7aba9499a0bfad.html | 171 + ..._01ty45d0e28829ba15daa2f7438931851359.html | 138 + ...tail_1_1apply__return__helper-members.html | 138 + ...ts_1_1detail_1_1apply__return__helper.html | 171 + ..._args_8_8_8_01_4_00_01_r_01_4-members.html | 138 + ...ple_3_01_args_8_8_8_01_4_00_01_r_01_4.html | 171 + ...aits_1_1detail_1_1apply__return__impl.html | 152 + ...raits_1_1detail_1_1apply__return__impl.png | Bin 0 -> 1234 bytes ...me_01dc086bcf6ecebbd3cb4f7b2899547359.html | 171 + ...me_01dd0aa3663d06c437cce146010919b49f.html | 138 + ...lable__traits_1_1detail_1_1args__impl.html | 143 + ...e_01s65aca34815eb983bc28f03c21801711f.html | 138 + ...e_01s92f831328f1271dca9640f7a9c11c3e4.html | 171 + ..._1_1detail_1_1callable__dummy-members.html | 138 + ...__traits_1_1detail_1_1callable__dummy.html | 177 + ...detail_1_1can__dereference__t-members.html | 140 + ...aits_1_1detail_1_1can__dereference__t.html | 268 + ...etail_1_1can__dereference__t_1_1check.html | 144 + ...lable__traits_1_1detail_1_1cdecl__tag.html | 140 + ...__traits_1_1detail_1_1class__of__impl.html | 152 + ...e__traits_1_1detail_1_1class__of__impl.png | Bin 0 -> 1092 bytes ...is__s2c0f73beedfc9579616bdd28bf7381e4.html | 171 + ...is__s567e0db3bba1a7f7c6933d6ab654eaca.html | 138 + ...1callable__traits_1_1detail_1_1concat.html | 143 + ...00_012936f69efba7e09eaa0299dd503da79c.html | 161 + ..._00_012936f69efba7e09eaa0299dd503da79c.png | Bin 0 -> 1446 bytes ...00_01c73230de040ac25c70bcfc609d5065a2.html | 138 + ..._1_1default__callable__traits-members.html | 191 + ..._1detail_1_1default__callable__traits.html | 1314 +++++ ...1_1detail_1_1default__callable__traits.png | Bin 0 -> 1662 bytes ...able__traits_1_1detail_1_1disjunction.html | 149 + ...lable__traits_1_1detail_1_1disjunction.png | Bin 0 -> 763 bytes ...isjunction_3_01_t_00_01_ts_8_8_8_01_4.html | 149 + ...disjunction_3_01_t_00_01_ts_8_8_8_01_4.png | Bin 0 -> 923 bytes ..._1_1detail_1_1disjunction_3_01_t_01_4.html | 149 + ...s_1_1detail_1_1disjunction_3_01_t_01_4.png | Bin 0 -> 627 bytes ..._1callable__traits_1_1detail_1_1dummy.html | 140 + ...ble__traits_1_1detail_1_1fail-members.html | 138 + ...1_1callable__traits_1_1detail_1_1fail.html | 171 + ..._traits_1_1detail_1_1fail__if-members.html | 138 + ...allable__traits_1_1detail_1_1fail__if.html | 185 + ...callable__traits_1_1detail_1_1fail__if.png | Bin 0 -> 621 bytes ...le__traits_1_1detail_1_1fastcall__tag.html | 140 + ...traits_1_1detail_1_1flag__map-members.html | 138 + ...llable__traits_1_1detail_1_1flag__map.html | 179 + ...1_1flag__map_3_01_t_01_6_01_4-members.html | 138 + ...1detail_1_1flag__map_3_01_t_01_6_01_4.html | 179 + ...1flag__map_3_01_t_01_6_6_01_4-members.html | 138 + ...etail_1_1flag__map_3_01_t_01_6_6_01_4.html | 179 + ...flag__map_3_01_t_01const_01_4-members.html | 138 + ...tail_1_1flag__map_3_01_t_01const_01_4.html | 179 + ..._map_3_01_t_01const_01_6_01_4-members.html | 138 + ...1_1flag__map_3_01_t_01const_01_6_01_4.html | 179 + ...ap_3_01_t_01const_01_6_6_01_4-members.html | 138 + ...1flag__map_3_01_t_01const_01_6_6_01_4.html | 179 + ..._01_t_01const_01volatile_01_4-members.html | 138 + ...g__map_3_01_t_01const_01volatile_01_4.html | 179 + ..._01const_01volatile_01_6_01_4-members.html | 138 + ...p_3_01_t_01const_01volatile_01_6_01_4.html | 179 + ...1const_01volatile_01_6_6_01_4-members.html | 138 + ...3_01_t_01const_01volatile_01_6_6_01_4.html | 179 + ...g__map_3_01_t_01volatile_01_4-members.html | 138 + ...l_1_1flag__map_3_01_t_01volatile_01_4.html | 179 + ...p_3_01_t_01volatile_01_6_01_4-members.html | 138 + ...flag__map_3_01_t_01volatile_01_6_01_4.html | 179 + ...3_01_t_01volatile_01_6_6_01_4-members.html | 138 + ...ag__map_3_01_t_01volatile_01_6_6_01_4.html | 179 + ...ts_1_1detail_1_1force__sfinae-members.html | 138 + ...le__traits_1_1detail_1_1force__sfinae.html | 171 + ..._traits_1_1detail_1_1function-members.html | 191 + ...allable__traits_1_1detail_1_1function.html | 268 + ...callable__traits_1_1detail_1_1function.png | Bin 0 -> 1038 bytes ..._1_1function_3_01_t_01_6_01_4-members.html | 161 + ..._1detail_1_1function_3_01_t_01_6_01_4.html | 674 +++ ...1_1detail_1_1function_3_01_t_01_6_01_4.png | Bin 0 -> 765 bytes ...1_1detail_1_1function__object-members.html | 178 + ..._traits_1_1detail_1_1function__object.html | 1036 ++++ ...__traits_1_1detail_1_1function__object.png | Bin 0 -> 854 bytes ..._t_01_u_1_1_5_00_01_base_01_4-members.html | 191 + ...ect_3_01_t_01_u_1_1_5_00_01_base_01_4.html | 280 + ...ject_3_01_t_01_u_1_1_5_00_01_base_01_4.png | Bin 0 -> 1160 bytes ...its_1_1detail_1_1function__type__impl.html | 152 + ...aits_1_1detail_1_1function__type__impl.png | Bin 0 -> 1183 bytes ...d_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html | 171 + ...d_1_16153bbd73cc24a93057a75e362696c2b.html | 138 + ...ts_1_1detail_1_1generalize__t-members.html | 138 + ...le__traits_1_1detail_1_1generalize__t.html | 171 + ...nce__wrapper_3_01_t_01_4_01_4-members.html | 138 + ...__reference__wrapper_3_01_t_01_4_01_4.html | 171 + ...stantc69da1decd87c87d6dc41d70ad9e6a59.html | 171 + ...stantde9ed24eb11409e30caec873af951e37.html | 138 + ..._1has__normal__call__operator-members.html | 140 + ...detail_1_1has__normal__call__operator.html | 258 + ...rmal__call__operator_1_1check-members.html | 138 + ...1has__normal__call__operator_1_1check.html | 186 + ..._1_1detail_1_1index__sequence-members.html | 138 + ...__traits_1_1detail_1_1index__sequence.html | 171 + ...ts_1_1detail_1_1invalid__type-members.html | 138 + ...le__traits_1_1detail_1_1invalid__type.html | 175 + ...detail_1_1is__invocable__impl-members.html | 141 + ...aits_1_1detail_1_1is__invocable__impl.html | 231 + ..._01void_00_01_args_8_8_8_01_4-members.html | 138 + ...__impl_3_01void_00_01_args_8_8_8_01_4.html | 171 + ...ail_1_1is__invocable__r__impl-members.html | 141 + ...s_1_1detail_1_1is__invocable__r__impl.html | 231 + ...00_015389578951f830f232eef552205e806c.html | 138 + ...00_01dbd2d0c720052db3138bd454c53645b8.html | 171 + ..._1_1is__reference__wrapper__t-members.html | 138 + ..._1detail_1_1is__reference__wrapper__t.html | 171 + ...nce__wrapper_3_01_t_01_4_01_4-members.html | 138 + ..._1reference__wrapper_3_01_t_01_4_01_4.html | 171 + ...1_1detail_1_1make__index__sequence__t.html | 149 + ..._1_1detail_1_1make__index__sequence__t.png | Bin 0 -> 948 bytes ...index__sequence__t_3_010_01_4-members.html | 138 + ..._1make__index__sequence__t_3_010_01_4.html | 158 + ...1_1make__index__sequence__t_3_010_01_4.png | Bin 0 -> 1162 bytes ...index__sequence__t_3_011_01_4-members.html | 138 + ..._1make__index__sequence__t_3_011_01_4.html | 158 + ...1_1make__index__sequence__t_3_011_01_4.png | Bin 0 -> 1170 bytes ...ts_1_1detail_1_1make__member__pointer.html | 143 + ..._01_t_00_01_c_00_01false_01_4-members.html | 138 + ...ointer_3_01_t_00_01_c_00_01false_01_4.html | 171 + ...3_01_t_00_01_c_00_01true_01_4-members.html | 138 + ...pointer_3_01_t_00_01_c_00_01true_01_4.html | 171 + ...01void_00_01_c_00_01true_01_4-members.html | 138 + ...inter_3_01void_00_01_c_00_01true_01_4.html | 171 + ...able__traits_1_1detail_1_1pascal__tag.html | 140 + ...able__traits_1_1detail_1_1pmd-members.html | 191 + ..._1_1callable__traits_1_1detail_1_1pmd.html | 268 + ...t_1_1callable__traits_1_1detail_1_1pmd.png | Bin 0 -> 1024 bytes ...1_1pmd_3_01_d_01_t_1_1_5_01_4-members.html | 192 + ...1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html | 584 ++ ..._1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.png | Bin 0 -> 1039 bytes ...able__traits_1_1detail_1_1pmf-members.html | 191 + ..._1_1callable__traits_1_1detail_1_1pmf.html | 268 + ...t_1_1callable__traits_1_1detail_1_1pmf.png | Bin 0 -> 1022 bytes ...1detail_1_1qualified__class__of__impl.html | 152 + ..._1detail_1_1qualified__class__of__impl.png | Bin 0 -> 1264 bytes ...e_01s9049e4f0d8e2024b48f9e7d76437037c.html | 171 + ...e_01sf1eae7dcbad90b54b733dcae1d0cb837.html | 138 + ...1_1detail_1_1reference__error-members.html | 138 + ..._traits_1_1detail_1_1reference__error.html | 175 + ...detail_1_1remove__member__const__impl.html | 152 + ...1detail_1_1remove__member__const__impl.png | Bin 0 -> 1280 bytes ...me_011c0a3f05fa6d6f61b45e00a925a532b1.html | 138 + ...me_019e8cd1e448ccaa2db9ded8e44d619208.html | 171 + ...1_1detail_1_1remove__member__cv__impl.html | 152 + ..._1_1detail_1_1remove__member__cv__impl.png | Bin 0 -> 1263 bytes ...01std99af42c2d930b49b9e0bb89d70e45288.html | 138 + ...01std9f11a0bb55c06b01bc141d013b293bf9.html | 171 + ...il_1_1remove__member__reference__impl.html | 152 + ...ail_1_1remove__member__reference__impl.png | Bin 0 -> 1343 bytes ...penamcb09f71f583ed9400b45e4d1a52d5e8f.html | 171 + ...pename97178921170e35157f80d4750b275e4.html | 138 + ...ail_1_1remove__member__volatile__impl.html | 152 + ...tail_1_1remove__member__volatile__impl.png | Bin 0 -> 1318 bytes ...ename840d08baa5b91ddd7f3c8f52c1fe666f.html | 171 + ...ename901daecd373581942227fe927da06ec8.html | 138 + ...s_1_1detail_1_1remove__noexcept__impl.html | 152 + ...ts_1_1detail_1_1remove__noexcept__impl.png | Bin 0 -> 1221 bytes ...std_108531a4ded9318ca1f5f9203ab6f69d3.html | 138 + ...std_16b5ca708e995625b68fa189b1a23b15d.html | 171 + ...il_1_1remove__transaction__safe__impl.html | 152 + ...ail_1_1remove__transaction__safe__impl.png | Bin 0 -> 1308 bytes ...penam7da72e815539234eb4006e02d3d4bb8c.html | 138 + ...penameca1ecca0a34d523c59c5175ddcc68df.html | 171 + ...ts_1_1detail_1_1remove__varargs__impl.html | 152 + ...its_1_1detail_1_1remove__varargs__impl.png | Bin 0 -> 1224 bytes ...td_1_849da51b465f742977b3ccb6675ce887.html | 138 + ...td_1_d14524997250b853250880107614de71.html | 171 + ...raits_1_1detail_1_1return__type__impl.html | 152 + ...traits_1_1detail_1_1return__type__impl.png | Bin 0 -> 1178 bytes ...1_1is8171c436aed47a28fb523b4bc18609ca.html | 138 + ...1_1isf29076499afcf36253341959f762e26a.html | 171 + ...1set__function__qualifiers__t-members.html | 138 + ...etail_1_1set__function__qualifiers__t.html | 171 + ...1set__member__function__qualifiers__t.html | 143 + ...args__function__qualifiers__t-members.html | 138 + ...set__varargs__function__qualifiers__t.html | 171 + ...args__member__function__qualifiers__t.html | 143 + ...le__traits_1_1detail_1_1sfinae__error.html | 140 + ...ble__traits_1_1detail_1_1stdcall__tag.html | 140 + ...ts_1_1detail_1_1substitution__failure.html | 146 + ...its_1_1detail_1_1substitution__failure.png | Bin 0 -> 862 bytes ...__traits_1_1detail_1_1success-members.html | 138 + ...callable__traits_1_1detail_1_1success.html | 185 + ...ts_1_1detail_1_1success_1_1__-members.html | 138 + ...le__traits_1_1detail_1_1success_1_1__.html | 171 + ...its_1_1detail_1_1test__invoke-members.html | 139 + ...ble__traits_1_1detail_1_1test__invoke.html | 218 + ...on_3_01_f_01_4_00_01true_01_4-members.html | 138 + ...01function_3_01_f_01_4_00_01true_01_4.html | 173 + ...1_pmd_01_4_00_01_ignored_01_4-members.html | 140 + ...1pmd_3_01_pmd_01_4_00_01_ignored_01_4.html | 243 + ...1_pmf_01_4_00_01_ignored_01_4-members.html | 140 + ...1pmf_3_01_pmf_01_4_00_01_ignored_01_4.html | 249 + ...etail_1_1unwrap__reference__t-members.html | 138 + ...its_1_1detail_1_1unwrap__reference__t.html | 171 + ...nce__wrapper_3_01_t_01_4_01_4-members.html | 138 + ...__reference__wrapper_3_01_t_01_4_01_4.html | 171 + ...1_1callable__traits_1_1function__type.html | 152 + ..._1_1callable__traits_1_1function__type.png | Bin 0 -> 1081 bytes ...ts_1_1has__member__qualifiers-members.html | 138 + ...le__traits_1_1has__member__qualifiers.html | 177 + ...ble__traits_1_1has__member__qualifiers.png | Bin 0 -> 1039 bytes ...lable__traits_1_1has__varargs-members.html | 138 + ...t_1_1callable__traits_1_1has__varargs.html | 177 + ...st_1_1callable__traits_1_1has__varargs.png | Bin 0 -> 811 bytes ...callable__traits_1_1has__void__return.html | 149 + ...1callable__traits_1_1has__void__return.png | Bin 0 -> 1275 bytes ...__traits_1_1is__const__member-members.html | 138 + ...callable__traits_1_1is__const__member.html | 177 + ...1callable__traits_1_1is__const__member.png | Bin 0 -> 849 bytes ...able__traits_1_1is__invocable-members.html | 138 + ..._1_1callable__traits_1_1is__invocable.html | 177 + ...t_1_1callable__traits_1_1is__invocable.png | Bin 0 -> 941 bytes ...e__traits_1_1is__invocable__r-members.html | 138 + ...1callable__traits_1_1is__invocable__r.html | 177 + ..._1callable__traits_1_1is__invocable__r.png | Bin 0 -> 1043 bytes ...is__lvalue__reference__member-members.html | 138 + ...aits_1_1is__lvalue__reference__member.html | 177 + ...raits_1_1is__lvalue__reference__member.png | Bin 0 -> 1117 bytes ...lable__traits_1_1is__noexcept-members.html | 138 + ...t_1_1callable__traits_1_1is__noexcept.html | 177 + ...st_1_1callable__traits_1_1is__noexcept.png | Bin 0 -> 786 bytes ...aits_1_1is__reference__member-members.html | 138 + ...able__traits_1_1is__reference__member.html | 177 + ...lable__traits_1_1is__reference__member.png | Bin 0 -> 1024 bytes ...is__rvalue__reference__member-members.html | 138 + ...aits_1_1is__rvalue__reference__member.html | 177 + ...raits_1_1is__rvalue__reference__member.png | Bin 0 -> 1130 bytes ...aits_1_1is__transaction__safe-members.html | 138 + ...able__traits_1_1is__transaction__safe.html | 177 + ...lable__traits_1_1is__transaction__safe.png | Bin 0 -> 936 bytes ...raits_1_1is__volatile__member-members.html | 138 + ...lable__traits_1_1is__volatile__member.html | 177 + ...llable__traits_1_1is__volatile__member.png | Bin 0 -> 947 bytes ...lable__traits_1_1qualified__class__of.html | 152 + ...llable__traits_1_1qualified__class__of.png | Bin 0 -> 1138 bytes ...able__traits_1_1remove__member__const.html | 152 + ...lable__traits_1_1remove__member__const.png | Bin 0 -> 1187 bytes ...allable__traits_1_1remove__member__cv.html | 152 + ...callable__traits_1_1remove__member__cv.png | Bin 0 -> 1166 bytes ...__traits_1_1remove__member__reference.html | 152 + ...e__traits_1_1remove__member__reference.png | Bin 0 -> 1240 bytes ...e__traits_1_1remove__member__volatile.html | 152 + ...le__traits_1_1remove__member__volatile.png | Bin 0 -> 1221 bytes ...1callable__traits_1_1remove__noexcept.html | 152 + ..._1callable__traits_1_1remove__noexcept.png | Bin 0 -> 1111 bytes ...__traits_1_1remove__transaction__safe.html | 152 + ...e__traits_1_1remove__transaction__safe.png | Bin 0 -> 1208 bytes ..._1callable__traits_1_1remove__varargs.html | 152 + ...1_1callable__traits_1_1remove__varargs.png | Bin 0 -> 1111 bytes ...t_1_1callable__traits_1_1return__type.html | 152 + ...st_1_1callable__traits_1_1return__type.png | Bin 0 -> 1066 bytes ...erialization_1_1unsigned__int-members.html | 140 + ...ost_1_1serialization_1_1unsigned__int.html | 231 + ...t_r_t0c524e1ccdbd085584c50c29db361da9.html | 153 + ...t_r_t5ad59d6265ecfbefdc95861379aa9867.html | 154 + ...t_r_t69354928696edfd1a845c0b5fed36de2.html | 595 ++ ..._t_r_t69354928696edfd1a845c0b5fed36de2.png | Bin 0 -> 2008 bytes ...t_r_tfa0f2bde06c215e8b279a5d59902e039.html | 575 ++ ..._t_r_tfa0f2bde06c215e8b279a5d59902e039.png | Bin 0 -> 1837 bytes ..._c_l_1c6229b724c94722af6b6c9dcabc07a1.html | 798 +++ ...n_c_l_1c6229b724c94722af6b6c9dcabc07a1.png | Bin 0 -> 2135 bytes ..._c_l_22b08dfc0c075ef0054028c243933480.html | 164 + ...e___q11352dae41c00b7ccc8c78763a6b4958.html | 798 +++ ..._e___q11352dae41c00b7ccc8c78763a6b4958.png | Bin 0 -> 2113 bytes ...e___q9ee57cf5b972ff500f970ea87ef88435.html | 164 + ..._01_b3467b605d2109a501ede96ad17595c2c.html | 167 + ..._01_b71b6d99e77689be47e355e95a9447b0d.html | 858 +++ ...8_01_b71b6d99e77689be47e355e95a9447b0d.png | Bin 0 -> 2321 bytes ...07_ar464c9119384a36ebad34ca263de89271.html | 878 +++ ..._07_ar464c9119384a36ebad34ca263de89271.png | Bin 0 -> 2422 bytes ...07_ara4a438379983c82f0d282aa21eba601b.html | 168 + ..._r_t_029142579edd1a1cf548d1bca0fd5761.html | 134 + ..._r_t_1c18edc59a2019afca42a631893d51c8.html | 167 + ..._r_t_50a10f2130208fa901015041276054db.html | 167 + ..._r_t_6db63c10757c5f95ea1190d9340a71b1.html | 167 + ..._r_t_8f27920b07be788af4b14fa74ab6c8e7.html | 134 + ..._r_t_98cd823caee39c1d888317bd7ddf63d7.html | 167 + ..._r_t_e17909365ebfe7dc985ec2393be739c4.html | 134 + ..._r_t_e59d34b4b04397eb771f8153718965e4.html | 134 + ...l_b_l13e3adf5660090152d6378acb0ee1ddd.html | 167 + ...l_b_l1403bce593315b52596d003c74c12842.html | 134 + ...l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html | 167 + ...l_b_l8219ff0173a71bed585046e56f789a21.html | 134 + ...l_b_l866f84d37c225bcc784181297cde7239.html | 134 + ...l_b_lb01eeda135a2f04805aeb33b22aba4f3.html | 167 + ...l_b_lc294e6bb55fae33ba3b3e252417e9710.html | 134 + ...l_b_le54d88fc783385cccf76974f1ad48e14.html | 167 + ...1_1hash_3_01ttg_1_1_void_01_4-members.html | 138 + ...ructstd_1_1hash_3_01ttg_1_1_void_01_4.html | 181 + ...elist_3_01_ts_8_8_8_01_4_01_4-members.html | 138 + ...a_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html | 171 + ...elist_3_01_ts_8_8_8_01_4_01_4-members.html | 138 + ...a_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html | 179 + .../structttg_1_1_multi_index-members.html | 148 + dox-master/structttg_1_1_multi_index.html | 541 ++ ...ructttg_1_1_split_metadata_descriptor.html | 148 + ...tructttg_1_1default__data__descriptor.html | 145 + ...emcpydf674d562b76332f750f1fcf6ffeee42.html | 141 + ...emcpyf8148233cc6c31164130a9122ddd6b31.html | 367 ++ ...it__m7b97af3698ab80a6204d3eb38af1e244.html | 367 ++ ...it__mf4fe25a443b4ca7dfa7b6c7cbcd60208.html | 141 + ...1detail_1_1_container_wrapper-members.html | 144 + ...ctttg_1_1detail_1_1_container_wrapper.html | 367 ++ ...pper_3_01key_t_00_01void_01_4-members.html | 139 + ...iner_wrapper_3_01key_t_00_01void_01_4.html | 191 + ...tg_1_1_void_00_01value_t_01_4-members.html | 139 + ...er_3_01ttg_1_1_void_00_01value_t_01_4.html | 191 + ...er_3_01void_00_01value_t_01_4-members.html | 139 + ...er_wrapper_3_01void_00_01value_t_01_4.html | 191 + ...apper_3_01void_00_01void_01_4-members.html | 139 + ...ainer_wrapper_3_01void_00_01void_01_4.html | 184 + ...1_1_traverse_1_1null__visitor-members.html | 139 + ...1detail_1_1_traverse_1_1null__visitor.html | 227 + ..._1_1detail_1_1default__keymap-members.html | 139 + ...tructttg_1_1detail_1_1default__keymap.html | 221 + ...structttg_1_1detail_1_1default__keymap.png | Bin 0 -> 888 bytes ...tg_1_1detail_1_1default__keymap__impl.html | 153 + ...ttg_1_1detail_1_1default__keymap__impl.png | Bin 0 -> 1061 bytes ..._1has123945d9d792a00bb2cb6ba800d86ff2.html | 282 + ..._1hasd353ef25466bbdd7edbf73cb6ea42fbf.html | 141 + ...1_1detail_1_1default__priomap-members.html | 141 + ...ructttg_1_1detail_1_1default__priomap.html | 198 + ...tructttg_1_1detail_1_1default__priomap.png | Bin 0 -> 908 bytes ...ail_1_1default__priomap__impl-members.html | 140 + ...g_1_1detail_1_1default__priomap__impl.html | 260 + ...tg_1_1detail_1_1default__priomap__impl.png | Bin 0 -> 915 bytes .../structttg_1_1detail_1_1edges__tuple.html | 143 + ..._3_01values_t_8_8_8_01_4_01_4-members.html | 138 + ...1_1tuple_3_01values_t_8_8_8_01_4_01_4.html | 171 + ...detail_1_1hash__combine__impl-members.html | 138 + ...tttg_1_1detail_1_1hash__combine__impl.html | 189 + ...il_1_1input__terminals__tuple-members.html | 138 + ..._1_1detail_1_1input__terminals__tuple.html | 171 + ..._3_01values_t_8_8_8_01_4_01_4-members.html | 138 + ...1_1tuple_3_01values_t_8_8_8_01_4_01_4.html | 171 + ...ail_1_1is__boost__array__serializable.html | 143 + ...erializable_3_01_archive_00_01_t_01_4.html | 149 + ...serializable_3_01_archive_00_01_t_01_4.png | Bin 0 -> 966 bytes ...il_1_1is__boost__buffer__serializable.html | 149 + ...ail_1_1is__boost__buffer__serializable.png | Bin 0 -> 930 bytes ..._boost__default__buffer__serializable.html | 149 + ...__boost__default__buffer__serializable.png | Bin 0 -> 998 bytes ...l_1_1is__boost__default__serializable.html | 149 + ...il_1_1is__boost__default__serializable.png | Bin 0 -> 1025 bytes ..._1_1detail_1_1is__boost__serializable.html | 149 + ...g_1_1detail_1_1is__boost__serializable.png | Bin 0 -> 1172 bytes ..._1_1is__madness__buffer__serializable.html | 149 + ...l_1_1is__madness__buffer__serializable.png | Bin 0 -> 957 bytes ...l_1_1is__madness__input__serializable.html | 149 + ...il_1_1is__madness__input__serializable.png | Bin 0 -> 1045 bytes ..._1_1is__madness__output__serializable.html | 149 + ...l_1_1is__madness__output__serializable.png | Bin 0 -> 1046 bytes ...__madness__user__buffer__serializable.html | 149 + ...s__madness__user__buffer__serializable.png | Bin 0 -> 1013 bytes ...structttg_1_1detail_1_1is__memcpyable.html | 151 + .../structttg_1_1detail_1_1is__memcpyable.png | Bin 0 -> 1283 bytes .../structttg_1_1detail_1_1is__printable.html | 149 + .../structttg_1_1detail_1_1is__printable.png | Bin 0 -> 728 bytes ...al_3_a5774f3d043eeeee157069b2b78993f2.html | 149 + ...val_3_a5774f3d043eeeee157069b2b78993f2.png | Bin 0 -> 1392 bytes ...ail_1_1is__user__buffer__serializable.html | 150 + ...tail_1_1is__user__buffer__serializable.png | Bin 0 -> 948 bytes ...is__m0b1b0fef265c42eba757df512051490f.html | 149 + ...1is__m0b1b0fef265c42eba757df512051490f.png | Bin 0 -> 1570 bytes ..._1_1detail_1_1printer__helper-members.html | 138 + ...tructttg_1_1detail_1_1printer__helper.html | 183 + ...ntable_3_01_t_01_4_1_1value_01_4_01_4.html | 183 + ..._01_te4d74e9a4b6d34170b7dc6d3ce62121f.html | 138 + ...etail_1_1value__copy__handler-members.html | 138 + ...ttg_1_1detail_1_1value__copy__handler.html | 187 + ...1_runtime_1_1_pa_r_s_e_c_01_4-members.html | 146 + ...01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html | 423 ++ ...ctttg_1_1edges__to__output__terminals.html | 143 + ...e_3_01edges_t_8_8_8_01_4_01_4-members.html | 138 + ..._1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html | 171 + dox-master/structttg_1_1event-members.html | 139 + dox-master/structttg_1_1event.html | 208 + .../structttg_1_1has__split__metadata.html | 149 + .../structttg_1_1has__split__metadata.png | Bin 0 -> 756 bytes ...declv04e799e75aff1843c5d29b807a5d2544.html | 149 + ...1declv04e799e75aff1843c5d29b807a5d2544.png | Bin 0 -> 1573 bytes dox-master/structttg_1_1iovec-members.html | 139 + dox-master/structttg_1_1iovec.html | 191 + ...meta_1_1candidate__argument__bindings.html | 149 + ...1_1is7a159ba0312787ffbc0ba26aaf2230c7.html | 138 + ...1_1iseab74741ca34f59dff800d7fbc4a7674.html | 171 + ...01const_01void_00_01void_01_4-members.html | 138 + ...dings_3_01const_01void_00_01void_01_4.html | 166 + ...dings_3_01void_00_01void_01_4-members.html | 138 + ...ent__bindings_3_01void_00_01void_01_4.html | 166 + ..._1decays__to__output__terminal__tuple.html | 149 + ...1_1decays__to__output__terminal__tuple.png | Bin 0 -> 1185 bytes ...a_1_1detail_1_1keep__or__drop-members.html | 138 + ...g_1_1meta_1_1detail_1_1keep__or__drop.html | 174 + ...keep__or__drop_3_01false_01_4-members.html | 138 + ...tail_1_1keep__or__drop_3_01false_01_4.html | 169 + .../structttg_1_1meta_1_1drop__first__n.html | 144 + ...01std288f286725e3f182c5b395c9e416f1c0.html | 138 + ...01std6f4f1519ded77a1f92dfe0f077f96239.html | 171 + ..._00_01std_1_1size__t_070_08_4-members.html | 138 + ...8_8_01_4_00_01std_1_1size__t_070_08_4.html | 171 + ...d_1_119cabae0b548f4342060256f691646f6.html | 171 + ...d_1_16cbd3198e82281bcbc7e48e4cebcb5d1.html | 138 + ..._00_01std_1_1size__t_070_08_4-members.html | 138 + ...8_8_01_4_00_01std_1_1size__t_070_08_4.html | 171 + .../structttg_1_1meta_1_1drop__last__n.html | 144 + .../structttg_1_1meta_1_1filtered__tuple.html | 143 + ...es_8_8_8_01_4_00_01_pred_01_4-members.html | 138 + ...le_3_01_es_8_8_8_01_4_00_01_pred_01_4.html | 171 + ..._1meta_1_1has__member__function__hash.html | 149 + ...1_1meta_1_1has__member__function__hash.png | Bin 0 -> 940 bytes ...std_1f4964d2720bb5e0fa5e45d0cbc913910.html | 149 + ...7std_1f4964d2720bb5e0fa5e45d0cbc913910.png | Bin 0 -> 1370 bytes ...eta_1_1has__ttg__hash__specialization.html | 149 + ...meta_1_1has__ttg__hash__specialization.png | Bin 0 -> 955 bytes ...declt91c1b3738036f1921f53ffe2f01abf5a.html | 149 + ...1declt91c1b3738036f1921f53ffe2f01abf5a.png | Bin 0 -> 1579 bytes .../structttg_1_1meta_1_1is__buffer.html | 149 + .../structttg_1_1meta_1_1is__buffer.png | Bin 0 -> 642 bytes ...g_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html | 149 + ...tg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png | Bin 0 -> 873 bytes ...g_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html | 149 + ...tg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png | Bin 0 -> 753 bytes ...1meta_1_1is__const__lvalue__reference.html | 149 + ..._1meta_1_1is__const__lvalue__reference.png | Bin 0 -> 1069 bytes ...tructttg_1_1meta_1_1is__devicescratch.html | 149 + ...structttg_1_1meta_1_1is__devicescratch.png | Bin 0 -> 708 bytes ...ttg_1_1devicescratch_3_01_t_01_4_01_4.html | 149 + ...1ttg_1_1devicescratch_3_01_t_01_4_01_4.png | Bin 0 -> 928 bytes ...ttg_1_1devicescratch_3_01_t_01_4_01_4.html | 149 + ...1ttg_1_1devicescratch_3_01_t_01_4_01_4.png | Bin 0 -> 871 bytes ...tttg_1_1meta_1_1is__generic__callable.html | 149 + ...ctttg_1_1meta_1_1is__generic__callable.png | Bin 0 -> 938 bytes ...ost_151aa9d2cdd456888b9c46d5838d5db34.html | 149 + ...oost_151aa9d2cdd456888b9c46d5838d5db34.png | Bin 0 -> 1431 bytes ...uctttg_1_1meta_1_1is__input__terminal.html | 149 + ...ructttg_1_1meta_1_1is__input__terminal.png | Bin 0 -> 947 bytes .../structttg_1_1meta_1_1is__last__void.html | 152 + .../structttg_1_1meta_1_1is__last__void.png | Bin 0 -> 857 bytes ...ta_1_1is__nonconst__lvalue__reference.html | 149 + ...eta_1_1is__nonconst__lvalue__reference.png | Bin 0 -> 1123 bytes ...eference__to__output__terminal__tuple.html | 149 + ...reference__to__output__terminal__tuple.png | Bin 0 -> 1430 bytes .../structttg_1_1meta_1_1is__nonvoid.html | 149 + .../structttg_1_1meta_1_1is__nonvoid.png | Bin 0 -> 765 bytes ...ctttg_1_1meta_1_1is__output__terminal.html | 149 + ...uctttg_1_1meta_1_1is__output__terminal.png | Bin 0 -> 975 bytes ..._1meta_1_1is__output__terminal__tuple.html | 149 + ...1_1meta_1_1is__output__terminal__tuple.png | Bin 0 -> 757 bytes ...1std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1798 bytes dox-master/structttg_1_1meta_1_1is__ptr.html | 149 + dox-master/structttg_1_1meta_1_1is__ptr.png | Bin 0 -> 579 bytes ..._ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.html | 149 + ...__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.png | Bin 0 -> 686 bytes .../structttg_1_1meta_1_1is__terminal.html | 149 + .../structttg_1_1meta_1_1is__terminal.png | Bin 0 -> 790 bytes .../structttg_1_1meta_1_1is__typelist.html | 149 + .../structttg_1_1meta_1_1is__typelist.png | Bin 0 -> 656 bytes ..._3_01typelist_3_01_ts_8_8_8_01_4_01_4.html | 149 + ...t_3_01typelist_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 725 bytes dox-master/structttg_1_1meta_1_1is__void.html | 149 + dox-master/structttg_1_1meta_1_1is__void.png | Bin 0 -> 728 bytes .../structttg_1_1meta_1_1nonref__tuple.html | 143 + ...tuple_3_01_ts_8_8_8_01_4_01_4-members.html | 138 + ...1std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html | 171 + .../structttg_1_1meta_1_1probe__all.html | 156 + .../structttg_1_1meta_1_1probe__all.png | Bin 0 -> 1069 bytes ...1std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1661 bytes ...g_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...tg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1689 bytes .../structttg_1_1meta_1_1probe__any.html | 156 + .../structttg_1_1meta_1_1probe__any.png | Bin 0 -> 1043 bytes ...1std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1671 bytes ...g_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...tg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1695 bytes .../structttg_1_1meta_1_1probe__first.html | 151 + ..._default_00_01_t1_00_01_ts_8_8_8_01_4.html | 149 + ...1_default_00_01_t1_00_01_ts_8_8_8_01_4.png | Bin 0 -> 1109 bytes ...1std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1253 bytes ...g_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...tg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1267 bytes ...rst_3_01_predicate_00_01_default_01_4.html | 149 + ...irst_3_01_predicate_00_01_default_01_4.png | Bin 0 -> 848 bytes .../structttg_1_1meta_1_1probe__last.html | 151 + ..._default_00_01_t1_00_01_ts_8_8_8_01_4.html | 152 + ...1_default_00_01_t1_00_01_ts_8_8_8_01_4.png | Bin 0 -> 1146 bytes ..._predicate_00_01_default_00_01_t_01_4.html | 149 + ...1_predicate_00_01_default_00_01_t_01_4.png | Bin 0 -> 963 bytes ...1std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1230 bytes ...g_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html | 152 + ...tg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png | Bin 0 -> 1252 bytes ...ast_3_01_predicate_00_01_default_01_4.html | 149 + ...last_3_01_predicate_00_01_default_01_4.png | Bin 0 -> 840 bytes .../structttg_1_1meta_1_1take__first__n.html | 144 + ...01_ts_8_8_8_01_4_00_01_n_01_4-members.html | 138 + ...tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html | 171 + ...01_ts_8_8_8_01_4_00_01_n_01_4-members.html | 138 + ...elist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html | 171 + ...ttg_1_1meta_1_1take__first__n__helper.html | 143 + ...1tupl087bc2aa09466f7a41eb421fa6dc2189.html | 171 + ...1tupl57f596bcb60dd4ff3651f207d2d36354.html | 138 + ...1tuplf939f30af9801e3babea00f194da9b08.html | 171 + ...1tuplfd14cb50a1d89382e947b83efb2a8c80.html | 138 + ..._01_u41dc57dc65984b72b52c1483694d56f9.html | 138 + ..._01_u54fb7a43cd9eba128cee33299969c5bb.html | 171 + ..._01_u5e0d670a402dd96d35d59fa67f97571e.html | 138 + ..._01_u8bdbd1c6f92a8347a098fe714bb57d38.html | 171 + .../structttg_1_1meta_1_1tuple__concat.html | 143 + ...01_us0a9bdd37818c6c83e28bcbaf9b2dfc3f.html | 138 + ...3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html | 171 + ...tuple_3_01_ts_8_8_8_01_4_01_4-members.html | 138 + ...1std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html | 171 + ...ttg_1_1meta_1_1type__identity-members.html | 138 + .../structttg_1_1meta_1_1type__identity.html | 171 + ...structttg_1_1meta_1_1typelist-members.html | 139 + dox-master/structttg_1_1meta_1_1typelist.html | 219 + ...uctttg_1_1meta_1_1typelist__is__empty.html | 149 + ...ructttg_1_1meta_1_1typelist__is__empty.png | Bin 0 -> 986 bytes ...g_1_1meta_1_1typelist__is__not__empty.html | 149 + ...tg_1_1meta_1_1typelist__is__not__empty.png | Bin 0 -> 1058 bytes .../structttg_1_1meta_1_1typelist__size.html | 143 + ...elist_3_01_ts_8_8_8_01_4_01_4-members.html | 138 + ..._3_01typelist_3_01_ts_8_8_8_01_4_01_4.html | 179 + ...uctttg_1_1meta_1_1typelist__to__tuple.html | 143 + ...pelist_3_01_t_8_8_8_01_4_01_4-members.html | 138 + ...e_3_01typelist_3_01_t_8_8_8_01_4_01_4.html | 171 + ...tg_1_1meta_1_1void__to___void-members.html | 138 + .../structttg_1_1meta_1_1void__to___void.html | 171 + ...void__to___void_3_01void_01_4-members.html | 138 + ...meta_1_1void__to___void_3_01void_01_4.html | 166 + dox-master/structttg_1_1overload_1_1hash.html | 145 + ...ction4bfc12a19cd65f57d26589241cdb555a.html | 138 + ...nction__hash__v_3_01_t_01_4_01_4_01_4.html | 184 + ...hash_3_01_void_00_01void_01_4-members.html | 138 + ...load_1_1hash_3_01_void_00_01void_01_4.html | 179 + ..._t_3_2a4854418d5ad9e9a07628b11c4bc252.html | 183 + ..._t_3_742e6ee90400eb8af68965db2186c9b8.html | 138 + ...1hash_3_01void_00_01void_01_4-members.html | 139 + ...rload_1_1hash_3_01void_00_01void_01_4.html | 208 + .../structttg_1_1resumable__task-members.html | 144 + dox-master/structttg_1_1resumable__task.html | 263 + dox-master/structttg_1_1resumable__task.png | Bin 0 -> 886 bytes ...tg_1_1resumable__task__events-members.html | 141 + .../structttg_1_1resumable__task__events.html | 283 + ...ttg_1_1resumable__task__state-members.html | 153 + .../structttg_1_1resumable__task__state.html | 617 +++ dox-master/structttg_1_1runtime__traits.html | 143 + ..._runtime_1_1_m_a_d_world_01_4-members.html | 142 + ...its_3_01_runtime_1_1_m_a_d_world_01_4.html | 275 + ...1_runtime_1_1_pa_r_s_e_c_01_4-members.html | 142 + ...aits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html | 275 + .../structttg_1_1terminals__to__edges.html | 143 + ...e_3_01terms_t_8_8_8_01_4_01_4-members.html | 138 + ..._1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html | 171 + .../structttg__data__descriptor-members.html | 138 + dox-master/structttg__data__descriptor.html | 271 + ...structttg__madness_1_1_buffer-members.html | 169 + dox-master/structttg__madness_1_1_buffer.html | 1155 ++++ dox-master/structttg__madness_1_1_buffer.png | Bin 0 -> 671 bytes dox-master/structttg__madness_1_1_ptr.html | 143 + .../structttg__madness_1_1_t_t_value.html | 143 + .../structttg__madness_1_1devicescratch.html | 143 + .../structttg__parsec_1_1_buffer-members.html | 189 + dox-master/structttg__parsec_1_1_buffer.html | 1269 +++++ dox-master/structttg__parsec_1_1_buffer.png | Bin 0 -> 1313 bytes .../structttg__parsec_1_1_ptr-members.html | 151 + dox-master/structttg__parsec_1_1_ptr.html | 591 ++ ...ructttg__parsec_1_1_t_t_value-members.html | 191 + .../structttg__parsec_1_1_t_t_value.html | 574 ++ .../structttg__parsec_1_1_t_t_value.png | Bin 0 -> 2298 bytes ...1_1detail_1_1_parsec_t_t_base-members.html | 139 + ..._parsec_1_1detail_1_1_parsec_t_t_base.html | 213 + ...__parsec_1_1detail_1_1_parsec_t_t_base.png | Bin 0 -> 6097 bytes ...c_1_1detail_1_1device__ptr__t-members.html | 142 + ...g__parsec_1_1detail_1_1device__ptr__t.html | 238 + ...1_1detail_1_1device__state__t-members.html | 141 + ..._parsec_1_1detail_1_1device__state__t.html | 279 + ...evice__state__t_3_01true_01_4-members.html | 142 + ...ail_1_1device__state__t_3_01true_01_4.html | 274 + ...parsec_1_1detail_1_1is__ttvalue__base.html | 149 + ..._parsec_1_1detail_1_1is__ttvalue__base.png | Bin 0 -> 910 bytes ...alue_6d3aa991efc6cbb2e8250bf7d4769adb.html | 149 + ...value_6d3aa991efc6cbb2e8250bf7d4769adb.png | Bin 0 -> 1370 bytes ...g__parsec_1_1detail_1_1msg__t-members.html | 142 + ...structttg__parsec_1_1detail_1_1msg__t.html | 310 ++ ...1_1parsec__ttg__task__base__t-members.html | 156 + ...1detail_1_1parsec__ttg__task__base__t.html | 705 +++ ..._1detail_1_1parsec__ttg__task__base__t.png | Bin 0 -> 1918 bytes ...k__base__t_1_1stream__info__t-members.html | 141 + ...ttg__task__base__t_1_1stream__info__t.html | 220 + ...etail_1_1parsec__ttg__task__t-members.html | 169 + ...sec_1_1detail_1_1parsec__ttg__task__t.html | 645 +++ ...rsec_1_1detail_1_1parsec__ttg__task__t.png | Bin 0 -> 1106 bytes ...sk__t_3_01_t_t_00_01true_01_4-members.html | 165 + ..._ttg__task__t_3_01_t_t_00_01true_01_4.html | 528 ++ ...__ttg__task__t_3_01_t_t_00_01true_01_4.png | Bin 0 -> 1038 bytes ...ail_1_1persistent__value__ref-members.html | 141 + ...c_1_1detail_1_1persistent__value__ref.html | 236 + ...parsec_1_1detail_1_1ptr__impl-members.html | 148 + ...uctttg__parsec_1_1detail_1_1ptr__impl.html | 472 ++ ...1_1detail_1_1reducer__task__t-members.html | 160 + ..._parsec_1_1detail_1_1reducer__task__t.html | 345 ++ ...__parsec_1_1detail_1_1reducer__task__t.png | Bin 0 -> 858 bytes ...data__copy__container__setter-members.html | 138 + ...1_1ttg__data__copy__container__setter.html | 183 + ...l_1_1ttg__data__copy__self__t-members.html | 140 + ...1_1detail_1_1ttg__data__copy__self__t.html | 230 + ..._1_1detail_1_1ttg__data__copy__self__t.png | Bin 0 -> 2257 bytes ...1detail_1_1ttg__data__copy__t-members.html | 182 + ...arsec_1_1detail_1_1ttg__data__copy__t.html | 1389 +++++ ...parsec_1_1detail_1_1ttg__data__copy__t.png | Bin 0 -> 2255 bytes ..._1_1ttg__data__value__copy__t-members.html | 191 + ..._1detail_1_1ttg__data__value__copy__t.html | 571 ++ ...1_1detail_1_1ttg__data__value__copy__t.png | Bin 0 -> 2383 bytes ...ttg__parsec__data__wrapper__t-members.html | 155 + ...tail_1_1ttg__parsec__data__wrapper__t.html | 708 +++ ...etail_1_1ttg__parsec__data__wrapper__t.png | Bin 0 -> 910 bytes ...tttg__parsec_1_1devicescratch-members.html | 150 + .../structttg__parsec_1_1devicescratch.html | 568 ++ ...ttg__parsec_1_1msg__header__t-members.html | 155 + .../structttg__parsec_1_1msg__header__t.html | 461 ++ dox-master/structttg__parsec_1_1ptr.html | 143 + dox-master/sync_off.png | Bin 0 -> 853 bytes dox-master/sync_on.png | Bin 0 -> 845 bytes dox-master/tab_a.png | Bin 0 -> 142 bytes dox-master/tab_b.png | Bin 0 -> 169 bytes dox-master/tab_h.png | Bin 0 -> 177 bytes dox-master/tab_s.png | Bin 0 -> 184 bytes dox-master/tabs.css | 61 + dox-master/terminal_8h.html | 228 + dox-master/terminal_8h_source.html | 841 +++ dox-master/test_8cpp.html | 166 + dox-master/test_8cpp_source.html | 139 + dox-master/thread__local_8h.html | 149 + dox-master/thread__local_8h_source.html | 154 + dox-master/trace_8h.html | 159 + dox-master/trace_8h_source.html | 179 + dox-master/traits_8h.html | 246 + dox-master/traits_8h_source.html | 296 + dox-master/traits_8hpp.html | 147 + dox-master/traits_8hpp_source.html | 166 + dox-master/traverse_8h.html | 160 + dox-master/traverse_8h_source.html | 376 ++ dox-master/tree_8h.html | 144 + dox-master/tree_8h_source.html | 188 + dox-master/tt_8h.html | 230 + dox-master/tt_8h_source.html | 361 ++ dox-master/ttg_2madness_2ttg_8h.html | 239 + dox-master/ttg_2madness_2ttg_8h_source.html | 1545 ++++++ dox-master/ttg_2parsec_2ttg_8h.html | 420 ++ dox-master/ttg_2parsec_2ttg_8h_source.html | 4828 +++++++++++++++++ dox-master/ttg_8h.html | 157 + dox-master/ttg_8h_source.html | 205 + dox-master/ttg__data__copy_8h.html | 161 + dox-master/ttg__data__copy_8h_source.html | 800 +++ dox-master/ttvalue_8h.html | 143 + dox-master/ttvalue_8h_source.html | 142 + dox-master/tuple_8h.html | 127 + dox-master/tuple_8h_source.html | 180 + dox-master/typelist_8h.html | 196 + dox-master/typelist_8h_source.html | 247 + dox-master/unguarded_2function_8hpp.html | 170 + .../unguarded_2function_8hpp_source.html | 150 + dox-master/unguarded_2pmf_8hpp.html | 566 ++ dox-master/unguarded_2pmf_8hpp_source.html | 221 + dox-master/user_2top_8md.html | 122 + dox-master/usergroup0.html | 125 + dox-master/usergroup1.html | 128 + dox-master/userguide.html | 454 ++ dox-master/util_2hash_2std_2pair_8h.html | 146 + .../util_2hash_2std_2pair_8h_source.html | 154 + dox-master/utility_8hpp.html | 208 + dox-master/utility_8hpp_source.html | 271 + dox-master/variant_8h.html | 127 + dox-master/variant_8h_source.html | 207 + dox-master/vector_8h.html | 128 + dox-master/vector_8h_source.html | 158 + dox-master/version_8cc.html | 146 + dox-master/version_8cc_source.html | 146 + dox-master/void_8h.html | 164 + dox-master/void_8h_source.html | 184 + dox-master/watch_8h.html | 156 + dox-master/watch_8h_source.html | 217 + dox-master/world_8h.html | 179 + dox-master/world_8h_source.html | 238 + index.md | 305 ++ 1751 files changed, 292273 insertions(+) create mode 100644 _config.yml create mode 100644 dox-master/_c_i-_administration-_notes.html create mode 100644 dox-master/_c_i-_administration-_notes_8md.html create mode 100644 dox-master/_coding-_standards.html create mode 100644 dox-master/_coding-_standards_8md.html create mode 100644 dox-master/_design-_device.html create mode 100644 dox-master/_design-_device_8md.html create mode 100644 dox-master/_design-_pull.html create mode 100644 dox-master/_documenting-_t_t_g.html create mode 100644 dox-master/_documenting-_t_t_g_8md.html create mode 100644 dox-master/_pull-terminal-design-doc_8md.html create mode 100644 dox-master/_r_e_a_d_m_e_8md.html create mode 100644 dox-master/_recommended-_workflow-_elements.html create mode 100644 dox-master/_t_t_g-_build-_infrastructure.html create mode 100644 dox-master/_t_t_g-_build-_infrastructure_8md.html create mode 100644 dox-master/_workflow_8md.html create mode 100644 dox-master/add__member__const_8hpp.html create mode 100644 dox-master/add__member__const_8hpp_source.html create mode 100644 dox-master/add__member__cv_8hpp.html create mode 100644 dox-master/add__member__cv_8hpp_source.html create mode 100644 dox-master/add__member__lvalue__reference_8hpp.html create mode 100644 dox-master/add__member__lvalue__reference_8hpp_source.html create mode 100644 dox-master/add__member__rvalue__reference_8hpp.html create mode 100644 dox-master/add__member__rvalue__reference_8hpp_source.html create mode 100644 dox-master/add__member__volatile_8hpp.html create mode 100644 dox-master/add__member__volatile_8hpp_source.html create mode 100644 dox-master/add__noexcept_8hpp.html create mode 100644 dox-master/add__noexcept_8hpp_source.html create mode 100644 dox-master/add__transaction__safe_8hpp.html create mode 100644 dox-master/add__transaction__safe_8hpp_source.html create mode 100644 dox-master/add__varargs_8hpp.html create mode 100644 dox-master/add__varargs_8hpp_source.html create mode 100644 dox-master/allocator_8h.html create mode 100644 dox-master/allocator_8h_source.html create mode 100644 dox-master/annotated.html create mode 100644 dox-master/apply__member__pointer_8hpp.html create mode 100644 dox-master/apply__member__pointer_8hpp_source.html create mode 100644 dox-master/apply__return_8hpp.html create mode 100644 dox-master/apply__return_8hpp_source.html create mode 100644 dox-master/archive_8h.html create mode 100644 dox-master/archive_8h_source.html create mode 100644 dox-master/args_8hpp.html create mode 100644 dox-master/args_8hpp_source.html create mode 100644 dox-master/array_8h.html create mode 100644 dox-master/array_8h_source.html create mode 100644 dox-master/backends_8h.html create mode 100644 dox-master/backends_8h_source.html create mode 100644 dox-master/backtrace_8cpp.html create mode 100644 dox-master/backtrace_8cpp_source.html create mode 100644 dox-master/backtrace_8h.html create mode 100644 dox-master/backtrace_8h_source.html create mode 100644 dox-master/base_2terminal_8h.html create mode 100644 dox-master/base_2terminal_8h_source.html create mode 100644 dox-master/base_2tt_8h.html create mode 100644 dox-master/base_2tt_8h_source.html create mode 100644 dox-master/base_2world_8h.html create mode 100644 dox-master/base_2world_8h_source.html create mode 100644 dox-master/bc_s.png create mode 100644 dox-master/bdwn.png create mode 100644 dox-master/boost_8h.html create mode 100644 dox-master/boost_8h_source.html create mode 100644 dox-master/broadcast_8h.html create mode 100644 dox-master/broadcast_8h_source.html create mode 100644 dox-master/buffer_8h.html create mode 100644 dox-master/buffer_8h_source.html create mode 100644 dox-master/buffer__archive_8cpp.html create mode 100644 dox-master/buffer__archive_8cpp_source.html create mode 100644 dox-master/buffer__archive_8h.html create mode 100644 dox-master/buffer__archive_8h_source.html create mode 100644 dox-master/bug_8cpp.html create mode 100644 dox-master/bug_8cpp_source.html create mode 100644 dox-master/bug_8h.html create mode 100644 dox-master/bug_8h_source.html create mode 100644 dox-master/callable_8h.html create mode 100644 dox-master/callable_8h_source.html create mode 100644 dox-master/callable__traits_8hpp.html create mode 100644 dox-master/callable__traits_8hpp_source.html create mode 100644 dox-master/class__of_8hpp.html create mode 100644 dox-master/class__of_8hpp_source.html create mode 100644 dox-master/class_callable_wrap_t_t-members.html create mode 100644 dox-master/class_callable_wrap_t_t.html create mode 100644 dox-master/class_callable_wrap_t_t.png create mode 100644 dox-master/class_callable_wrap_t_t_args-members.html create mode 100644 dox-master/class_callable_wrap_t_t_args.html create mode 100644 dox-master/class_callable_wrap_t_t_args.png create mode 100644 dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span-members.html create mode 100644 dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html create mode 100644 dox-master/classes.html create mode 100644 dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html create mode 100644 dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_b4393163ebe23c44ce8b3514a3083d49.html create mode 100644 dox-master/classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.html create mode 100644 dox-master/classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.png create mode 100644 dox-master/classttg_1_1_binary_spanning_tree-members.html create mode 100644 dox-master/classttg_1_1_binary_spanning_tree.html create mode 100644 dox-master/classttg_1_1_binary_tree_broadcast-members.html create mode 100644 dox-master/classttg_1_1_binary_tree_broadcast.html create mode 100644 dox-master/classttg_1_1_binary_tree_broadcast.png create mode 100644 dox-master/classttg_1_1_binary_tree_reduce-members.html create mode 100644 dox-master/classttg_1_1_binary_tree_reduce.html create mode 100644 dox-master/classttg_1_1_binary_tree_reduce.png create mode 100644 dox-master/classttg_1_1_debugger-members.html create mode 100644 dox-master/classttg_1_1_debugger.html create mode 100644 dox-master/classttg_1_1_dot-members.html create mode 100644 dox-master/classttg_1_1_dot.html create mode 100644 dox-master/classttg_1_1_dot.png create mode 100644 dox-master/classttg_1_1_edge-members.html create mode 100644 dox-master/classttg_1_1_edge.html create mode 100644 dox-master/classttg_1_1_in-members.html create mode 100644 dox-master/classttg_1_1_in.html create mode 100644 dox-master/classttg_1_1_in.png create mode 100644 dox-master/classttg_1_1_in_terminal_base-members.html create mode 100644 dox-master/classttg_1_1_in_terminal_base.html create mode 100644 dox-master/classttg_1_1_in_terminal_base.png create mode 100644 dox-master/classttg_1_1_out-members.html create mode 100644 dox-master/classttg_1_1_out.html create mode 100644 dox-master/classttg_1_1_out.png create mode 100644 dox-master/classttg_1_1_out_terminal_base-members.html create mode 100644 dox-master/classttg_1_1_out_terminal_base.html create mode 100644 dox-master/classttg_1_1_out_terminal_base.png create mode 100644 dox-master/classttg_1_1_sink_t_t-members.html create mode 100644 dox-master/classttg_1_1_sink_t_t.html create mode 100644 dox-master/classttg_1_1_sink_t_t.png create mode 100644 dox-master/classttg_1_1_t_t_base-members.html create mode 100644 dox-master/classttg_1_1_t_t_base.html create mode 100644 dox-master/classttg_1_1_t_t_base.png create mode 100644 dox-master/classttg_1_1_t_t_g-members.html create mode 100644 dox-master/classttg_1_1_t_t_g.html create mode 100644 dox-master/classttg_1_1_t_t_g.png create mode 100644 dox-master/classttg_1_1_terminal_base-members.html create mode 100644 dox-master/classttg_1_1_terminal_base.html create mode 100644 dox-master/classttg_1_1_terminal_base.png create mode 100644 dox-master/classttg_1_1_traverse-members.html create mode 100644 dox-master/classttg_1_1_traverse.html create mode 100644 dox-master/classttg_1_1_traverse.png create mode 100644 dox-master/classttg_1_1_void-members.html create mode 100644 dox-master/classttg_1_1_void.html create mode 100644 dox-master/classttg_1_1_world-members.html create mode 100644 dox-master/classttg_1_1_world.html create mode 100644 dox-master/classttg_1_1_world.png create mode 100644 dox-master/classttg_1_1base_1_1_world-members.html create mode 100644 dox-master/classttg_1_1base_1_1_world.html create mode 100644 dox-master/classttg_1_1base_1_1_world_impl_base-members.html create mode 100644 dox-master/classttg_1_1base_1_1_world_impl_base.html create mode 100644 dox-master/classttg_1_1base_1_1_world_impl_base.png create mode 100644 dox-master/classttg_1_1detail_1_1_backtrace-members.html create mode 100644 dox-master/classttg_1_1detail_1_1_backtrace.html create mode 100644 dox-master/classttg_1_1detail_1_1_f_n_vhasher-members.html create mode 100644 dox-master/classttg_1_1detail_1_1_f_n_vhasher.html create mode 100644 dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64-members.html create mode 100644 dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64.html create mode 100644 dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool-members.html create mode 100644 dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html create mode 100644 dox-master/classttg_1_1detail_1_1_traverse-members.html create mode 100644 dox-master/classttg_1_1detail_1_1_traverse.html create mode 100644 dox-master/classttg_1_1detail_1_1_traverse.png create mode 100644 dox-master/classttg_1_1detail_1_1boost__optimized__iarchive-members.html create mode 100644 dox-master/classttg_1_1detail_1_1boost__optimized__iarchive.html create mode 100644 dox-master/classttg_1_1detail_1_1boost__optimized__iarchive.png create mode 100644 dox-master/classttg_1_1detail_1_1boost__optimized__oarchive-members.html create mode 100644 dox-master/classttg_1_1detail_1_1boost__optimized__oarchive.html create mode 100644 dox-master/classttg_1_1detail_1_1boost__optimized__oarchive.png create mode 100644 dox-master/classttg_1_1detail_1_1byte__istreambuf-members.html create mode 100644 dox-master/classttg_1_1detail_1_1byte__istreambuf.html create mode 100644 dox-master/classttg_1_1detail_1_1byte__istreambuf.png create mode 100644 dox-master/classttg_1_1detail_1_1byte__ostreambuf-members.html create mode 100644 dox-master/classttg_1_1detail_1_1byte__ostreambuf.html create mode 100644 dox-master/classttg_1_1detail_1_1byte__ostreambuf.png create mode 100644 dox-master/classttg_1_1detail_1_1counting__streambuf-members.html create mode 100644 dox-master/classttg_1_1detail_1_1counting__streambuf.html create mode 100644 dox-master/classttg_1_1detail_1_1counting__streambuf.png create mode 100644 dox-master/classttg_1_1detail_1_1iovec__istreambuf-members.html create mode 100644 dox-master/classttg_1_1detail_1_1iovec__istreambuf.html create mode 100644 dox-master/classttg_1_1detail_1_1iovec__istreambuf.png create mode 100644 dox-master/classttg_1_1detail_1_1iovec__ostreambuf-members.html create mode 100644 dox-master/classttg_1_1detail_1_1iovec__ostreambuf.html create mode 100644 dox-master/classttg_1_1detail_1_1iovec__ostreambuf.png create mode 100644 dox-master/classttg_1_1device_1_1_device-members.html create mode 100644 dox-master/classttg_1_1device_1_1_device.html create mode 100644 dox-master/classttg__madness_1_1_t_t-members.html create mode 100644 dox-master/classttg__madness_1_1_t_t.html create mode 100644 dox-master/classttg__madness_1_1_t_t.png create mode 100644 dox-master/classttg__madness_1_1_world_impl-members.html create mode 100644 dox-master/classttg__madness_1_1_world_impl.html create mode 100644 dox-master/classttg__madness_1_1_world_impl.png create mode 100644 dox-master/classttg__parsec_1_1_t_t-members.html create mode 100644 dox-master/classttg__parsec_1_1_t_t.html create mode 100644 dox-master/classttg__parsec_1_1_t_t.png create mode 100644 dox-master/classttg__parsec_1_1_world_impl-members.html create mode 100644 dox-master/classttg__parsec_1_1_world_impl.html create mode 100644 dox-master/classttg__parsec_1_1_world_impl.png create mode 100644 dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate-members.html create mode 100644 dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate.html create mode 100644 dox-master/closed.png create mode 100644 dox-master/config_8hpp.html create mode 100644 dox-master/config_8hpp_source.html create mode 100644 dox-master/config_8in_8h.html create mode 100644 dox-master/config_8in_8h_source.html create mode 100644 dox-master/contrib_2top_8md.html create mode 100644 dox-master/contribguide.html create mode 100644 dox-master/core_8hpp.html create mode 100644 dox-master/core_8hpp_source.html create mode 100644 dox-master/coroutine_8h.html create mode 100644 dox-master/coroutine_8h_source.html create mode 100644 dox-master/customdoxygen.css create mode 100644 dox-master/data__descriptor_8h.html create mode 100644 dox-master/data__descriptor_8h_source.html create mode 100644 dox-master/default__callable__traits_8hpp.html create mode 100644 dox-master/default__callable__traits_8hpp_source.html create mode 100644 dox-master/demangle_8h.html create mode 100644 dox-master/demangle_8h_source.html create mode 100644 dox-master/dev_2top_8md.html create mode 100644 dox-master/devguide.html create mode 100644 dox-master/device_2device_8h.html create mode 100644 dox-master/device_2device_8h_source.html create mode 100644 dox-master/device_2task_8h.html create mode 100644 dox-master/device_2task_8h_source.html create mode 100644 dox-master/devicefunc_8h.html create mode 100644 dox-master/devicefunc_8h_source.html create mode 100644 dox-master/devicescope_8h.html create mode 100644 dox-master/devicescope_8h_source.html create mode 100644 dox-master/devicescratch_8h.html create mode 100644 dox-master/devicescratch_8h_source.html create mode 100644 dox-master/diagnose_8h.html create mode 100644 dox-master/diagnose_8h_source.html create mode 100644 dox-master/dir_07c857364c0556d18e94a3f35298c4a6.html create mode 100644 dox-master/dir_13fd119dab1db984ce4477363886eeb4.html create mode 100644 dox-master/dir_1d76dac96d2bc88cf9e6140a5146aa51.html create mode 100644 dox-master/dir_2360215b1f4ba8a53485d6c71904a906.html create mode 100644 dox-master/dir_36f15a76b34aab76fd15ad9ec0b06ea0.html create mode 100644 dox-master/dir_48acf8476fa974f8d8d52fac470b66ad.html create mode 100644 dox-master/dir_518e89f1c0c8b70cdfc5d2d3d6ce7940.html create mode 100644 dox-master/dir_77fdb2182ae76ba6fbafe3d120eaee6b.html create mode 100644 dox-master/dir_78211b2f39597c5113304cbc04c54190.html create mode 100644 dox-master/dir_78e60d79325cd27436b0d8d9522e9c57.html create mode 100644 dox-master/dir_8803a465e44b75ca1e251be94c39e69d.html create mode 100644 dox-master/dir_9821395bc66cf1f03c298ff9baab0fee.html create mode 100644 dox-master/dir_a17c6c13d389f7faedce3089b14133b4.html create mode 100644 dox-master/dir_a825e1ba92545c3b5c2d3ccdfd8c48c1.html create mode 100644 dox-master/dir_a8c24be98ee2a1ad71d381b4091fdbf8.html create mode 100644 dox-master/dir_bc97ab6845a366ec7354b4363128df1d.html create mode 100644 dox-master/dir_bcda4f8537b20778c16ba7f9dd698de8.html create mode 100644 dox-master/dir_c1a36a68cc63344d9be0575bb7d87b8b.html create mode 100644 dox-master/dir_d14c430f5eb3e5ce89bbe9044e7ab1f9.html create mode 100644 dox-master/dir_d4db2781be3a279fb15a1d58748414cc.html create mode 100644 dox-master/dir_d6fd4865185b9faac2b34d4b3d207028.html create mode 100644 dox-master/dir_deef7e8046556dd51a354e77490c821e.html create mode 100644 dox-master/dir_df54c121214d62d549578fca829a256a.html create mode 100644 dox-master/dir_e1343a3dc90010149b86ffe6d9c5dcc4.html create mode 100644 dox-master/dir_e67ae4b516638ba86976c7f6d8216122.html create mode 100644 dox-master/dir_e68e8157741866f444e17edd764ebbae.html create mode 100644 dox-master/dir_eadfcb2e6dc630a96ad146c380f23e4d.html create mode 100644 dox-master/dir_fb38b30f47951bfe30ef4589dd313e50.html create mode 100644 dox-master/disjunction_8hpp.html create mode 100644 dox-master/disjunction_8hpp_source.html create mode 100644 dox-master/distributed_8cc-example.html create mode 100644 dox-master/distributed_8cc.html create mode 100644 dox-master/distributed_8cc_source.html create mode 100644 dox-master/doc.png create mode 100644 dox-master/dot_8h.html create mode 100644 dox-master/dot_8h_source.html create mode 100644 dox-master/doxy-boot.js create mode 100644 dox-master/doxygen.css create mode 100644 dox-master/doxygen.svg create mode 100644 dox-master/dynsections.js create mode 100644 dox-master/edge_8h.html create mode 100644 dox-master/edge_8h_source.html create mode 100644 dox-master/env_8cpp.html create mode 100644 dox-master/env_8cpp_source.html create mode 100644 dox-master/env_8h.html create mode 100644 dox-master/env_8h_source.html create mode 100644 dox-master/examples.html create mode 100644 dox-master/execution_8h.html create mode 100644 dox-master/execution_8h_source.html create mode 100644 dox-master/files.html create mode 100644 dox-master/folderclosed.png create mode 100644 dox-master/folderopen.png create mode 100644 dox-master/forward__declarations_8hpp.html create mode 100644 dox-master/forward__declarations_8hpp_source.html create mode 100644 dox-master/func_8h.html create mode 100644 dox-master/func_8h_source.html create mode 100644 dox-master/function_8hpp.html create mode 100644 dox-master/function_8hpp_source.html create mode 100644 dox-master/function__2_8hpp.html create mode 100644 dox-master/function__2_8hpp_source.html create mode 100644 dox-master/function__3_8hpp.html create mode 100644 dox-master/function__3_8hpp_source.html create mode 100644 dox-master/function__object_8hpp.html create mode 100644 dox-master/function__object_8hpp_source.html create mode 100644 dox-master/function__ptr_8hpp.html create mode 100644 dox-master/function__ptr_8hpp_source.html create mode 100644 dox-master/function__ptr__2_8hpp.html create mode 100644 dox-master/function__ptr__2_8hpp_source.html create mode 100644 dox-master/function__ptr__3_8hpp.html create mode 100644 dox-master/function__ptr__3_8hpp_source.html create mode 100644 dox-master/function__ptr__varargs_8hpp.html create mode 100644 dox-master/function__ptr__varargs_8hpp_source.html create mode 100644 dox-master/function__ptr__varargs__2_8hpp.html create mode 100644 dox-master/function__ptr__varargs__2_8hpp_source.html create mode 100644 dox-master/function__ptr__varargs__3_8hpp.html create mode 100644 dox-master/function__ptr__varargs__3_8hpp_source.html create mode 100644 dox-master/function__type_8hpp.html create mode 100644 dox-master/function__type_8hpp_source.html create mode 100644 dox-master/functions.html create mode 100644 dox-master/functions_a.html create mode 100644 dox-master/functions_b.html create mode 100644 dox-master/functions_c.html create mode 100644 dox-master/functions_d.html create mode 100644 dox-master/functions_e.html create mode 100644 dox-master/functions_enum.html create mode 100644 dox-master/functions_eval.html create mode 100644 dox-master/functions_f.html create mode 100644 dox-master/functions_func.html create mode 100644 dox-master/functions_func_a.html create mode 100644 dox-master/functions_func_b.html create mode 100644 dox-master/functions_func_c.html create mode 100644 dox-master/functions_func_d.html create mode 100644 dox-master/functions_func_e.html create mode 100644 dox-master/functions_func_f.html create mode 100644 dox-master/functions_func_g.html create mode 100644 dox-master/functions_func_h.html create mode 100644 dox-master/functions_func_i.html create mode 100644 dox-master/functions_func_l.html create mode 100644 dox-master/functions_func_m.html create mode 100644 dox-master/functions_func_n.html create mode 100644 dox-master/functions_func_o.html create mode 100644 dox-master/functions_func_p.html create mode 100644 dox-master/functions_func_r.html create mode 100644 dox-master/functions_func_s.html create mode 100644 dox-master/functions_func_t.html create mode 100644 dox-master/functions_func_u.html create mode 100644 dox-master/functions_func_v.html create mode 100644 dox-master/functions_func_w.html create mode 100644 dox-master/functions_func_x.html create mode 100644 dox-master/functions_func_~.html create mode 100644 dox-master/functions_g.html create mode 100644 dox-master/functions_h.html create mode 100644 dox-master/functions_i.html create mode 100644 dox-master/functions_k.html create mode 100644 dox-master/functions_l.html create mode 100644 dox-master/functions_m.html create mode 100644 dox-master/functions_n.html create mode 100644 dox-master/functions_o.html create mode 100644 dox-master/functions_p.html create mode 100644 dox-master/functions_q.html create mode 100644 dox-master/functions_r.html create mode 100644 dox-master/functions_rela.html create mode 100644 dox-master/functions_s.html create mode 100644 dox-master/functions_t.html create mode 100644 dox-master/functions_type.html create mode 100644 dox-master/functions_type_b.html create mode 100644 dox-master/functions_type_c.html create mode 100644 dox-master/functions_type_d.html create mode 100644 dox-master/functions_type_e.html create mode 100644 dox-master/functions_type_f.html create mode 100644 dox-master/functions_type_h.html create mode 100644 dox-master/functions_type_i.html create mode 100644 dox-master/functions_type_k.html create mode 100644 dox-master/functions_type_l.html create mode 100644 dox-master/functions_type_m.html create mode 100644 dox-master/functions_type_n.html create mode 100644 dox-master/functions_type_o.html create mode 100644 dox-master/functions_type_p.html create mode 100644 dox-master/functions_type_q.html create mode 100644 dox-master/functions_type_r.html create mode 100644 dox-master/functions_type_s.html create mode 100644 dox-master/functions_type_t.html create mode 100644 dox-master/functions_type_v.html create mode 100644 dox-master/functions_type_w.html create mode 100644 dox-master/functions_u.html create mode 100644 dox-master/functions_v.html create mode 100644 dox-master/functions_vars.html create mode 100644 dox-master/functions_w.html create mode 100644 dox-master/functions_x.html create mode 100644 dox-master/functions_~.html create mode 100644 dox-master/future_8h.html create mode 100644 dox-master/future_8h_source.html create mode 100644 dox-master/fwd_8h.html create mode 100644 dox-master/fwd_8h_source.html create mode 100644 dox-master/globals.html create mode 100644 dox-master/globals_defs.html create mode 100644 dox-master/globals_func.html create mode 100644 dox-master/globals_type.html create mode 100644 dox-master/globals_vars.html create mode 100644 dox-master/group__resumable__task.html create mode 100644 dox-master/has__member__qualifiers_8hpp.html create mode 100644 dox-master/has__member__qualifiers_8hpp_source.html create mode 100644 dox-master/has__varargs_8hpp.html create mode 100644 dox-master/has__varargs_8hpp_source.html create mode 100644 dox-master/has__void__return_8hpp.html create mode 100644 dox-master/has__void__return_8hpp_source.html create mode 100644 dox-master/hash_8h.html create mode 100644 dox-master/hash_8h_source.html create mode 100644 dox-master/hierarchy.html create mode 100644 dox-master/impl__selector_8h.html create mode 100644 dox-master/impl__selector_8h_source.html create mode 100644 dox-master/index.html create mode 100644 dox-master/iovec_8h.html create mode 100644 dox-master/iovec_8h_source.html create mode 100644 dox-master/is__const__member_8hpp.html create mode 100644 dox-master/is__const__member_8hpp_source.html create mode 100644 dox-master/is__invocable_8hpp.html create mode 100644 dox-master/is__invocable_8hpp_source.html create mode 100644 dox-master/is__invocable__impl_8hpp.html create mode 100644 dox-master/is__invocable__impl_8hpp_source.html create mode 100644 dox-master/is__lvalue__reference__member_8hpp.html create mode 100644 dox-master/is__lvalue__reference__member_8hpp_source.html create mode 100644 dox-master/is__noexcept_8hpp.html create mode 100644 dox-master/is__noexcept_8hpp_source.html create mode 100644 dox-master/is__reference__member_8hpp.html create mode 100644 dox-master/is__reference__member_8hpp_source.html create mode 100644 dox-master/is__rvalue__reference__member_8hpp.html create mode 100644 dox-master/is__rvalue__reference__member_8hpp_source.html create mode 100644 dox-master/is__transaction__safe_8hpp.html create mode 100644 dox-master/is__transaction__safe_8hpp_source.html create mode 100644 dox-master/is__volatile__member_8hpp.html create mode 100644 dox-master/is__volatile__member_8hpp_source.html create mode 100644 dox-master/iterative_8cc-example.html create mode 100644 dox-master/iterative_8cc.html create mode 100644 dox-master/iterative_8cc_source.html create mode 100644 dox-master/jquery.js create mode 100644 dox-master/jquery.smartmenus.bootstrap.css create mode 100644 dox-master/jquery.smartmenus.bootstrap.js create mode 100644 dox-master/jquery.smartmenus.js create mode 100644 dox-master/jquery.smartmenus.keyboard.js create mode 100644 dox-master/keymap_8h.html create mode 100644 dox-master/keymap_8h_source.html create mode 100644 dox-master/list_8h.html create mode 100644 dox-master/list_8h_source.html create mode 100644 dox-master/macro_8h.html create mode 100644 dox-master/macro_8h_source.html create mode 100644 dox-master/madness_2buffer_8h.html create mode 100644 dox-master/madness_2buffer_8h_source.html create mode 100644 dox-master/madness_2device_8h.html create mode 100644 dox-master/madness_2device_8h_source.html create mode 100644 dox-master/madness_2fwd_8h.html create mode 100644 dox-master/madness_2fwd_8h_source.html create mode 100644 dox-master/madness_2import_8h.html create mode 100644 dox-master/madness_2import_8h_source.html create mode 100644 dox-master/madness_2ttvalue_8h.html create mode 100644 dox-master/madness_2ttvalue_8h_source.html create mode 100644 dox-master/madness_8h.html create mode 100644 dox-master/madness_8h_source.html create mode 100644 dox-master/make__index__sequence_8hpp.html create mode 100644 dox-master/make__index__sequence_8hpp_source.html create mode 100644 dox-master/make__tt_8h.html create mode 100644 dox-master/make__tt_8h_source.html create mode 100644 dox-master/menudata.js create mode 100644 dox-master/meta_8h.html create mode 100644 dox-master/meta_8h_source.html create mode 100644 dox-master/modules.html create mode 100644 dox-master/multiindex_8h.html create mode 100644 dox-master/multiindex_8h_source.html create mode 100644 dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html create mode 100644 dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html create mode 100644 dox-master/namespaceboost.html create mode 100644 dox-master/namespaceboost_1_1archive.html create mode 100644 dox-master/namespaceboost_1_1callable__traits.html create mode 100644 dox-master/namespaceboost_1_1callable__traits_1_1detail.html create mode 100644 dox-master/namespaceboost_1_1serialization.html create mode 100644 dox-master/namespacemembers.html create mode 100644 dox-master/namespacemembers_b.html create mode 100644 dox-master/namespacemembers_c.html create mode 100644 dox-master/namespacemembers_d.html create mode 100644 dox-master/namespacemembers_e.html create mode 100644 dox-master/namespacemembers_enum.html create mode 100644 dox-master/namespacemembers_f.html create mode 100644 dox-master/namespacemembers_func.html create mode 100644 dox-master/namespacemembers_func_b.html create mode 100644 dox-master/namespacemembers_func_c.html create mode 100644 dox-master/namespacemembers_func_d.html create mode 100644 dox-master/namespacemembers_func_e.html create mode 100644 dox-master/namespacemembers_func_f.html create mode 100644 dox-master/namespacemembers_func_g.html create mode 100644 dox-master/namespacemembers_func_h.html create mode 100644 dox-master/namespacemembers_func_i.html create mode 100644 dox-master/namespacemembers_func_l.html create mode 100644 dox-master/namespacemembers_func_m.html create mode 100644 dox-master/namespacemembers_func_n.html create mode 100644 dox-master/namespacemembers_func_o.html create mode 100644 dox-master/namespacemembers_func_p.html create mode 100644 dox-master/namespacemembers_func_r.html create mode 100644 dox-master/namespacemembers_func_s.html create mode 100644 dox-master/namespacemembers_func_t.html create mode 100644 dox-master/namespacemembers_func_v.html create mode 100644 dox-master/namespacemembers_func_w.html create mode 100644 dox-master/namespacemembers_g.html create mode 100644 dox-master/namespacemembers_h.html create mode 100644 dox-master/namespacemembers_i.html create mode 100644 dox-master/namespacemembers_l.html create mode 100644 dox-master/namespacemembers_m.html create mode 100644 dox-master/namespacemembers_n.html create mode 100644 dox-master/namespacemembers_o.html create mode 100644 dox-master/namespacemembers_p.html create mode 100644 dox-master/namespacemembers_q.html create mode 100644 dox-master/namespacemembers_r.html create mode 100644 dox-master/namespacemembers_s.html create mode 100644 dox-master/namespacemembers_t.html create mode 100644 dox-master/namespacemembers_type.html create mode 100644 dox-master/namespacemembers_u.html create mode 100644 dox-master/namespacemembers_v.html create mode 100644 dox-master/namespacemembers_vars.html create mode 100644 dox-master/namespacemembers_w.html create mode 100644 dox-master/namespaces.html create mode 100644 dox-master/namespacettg.html create mode 100644 dox-master/namespacettg_1_1base.html create mode 100644 dox-master/namespacettg_1_1detail.html create mode 100644 dox-master/namespacettg_1_1device.html create mode 100644 dox-master/namespacettg_1_1device_1_1detail.html create mode 100644 dox-master/namespacettg_1_1iostream.html create mode 100644 dox-master/namespacettg_1_1meta.html create mode 100644 dox-master/namespacettg_1_1meta_1_1detail.html create mode 100644 dox-master/namespacettg_1_1overload.html create mode 100644 dox-master/namespacettg__madness.html create mode 100644 dox-master/namespacettg__madness_1_1detail.html create mode 100644 dox-master/namespacettg__parsec.html create mode 100644 dox-master/namespacettg__parsec_1_1detail.html create mode 100644 dox-master/nav_f.png create mode 100644 dox-master/nav_g.png create mode 100644 dox-master/nav_h.png create mode 100644 dox-master/nth-fib-trace-2proc-2thr.png create mode 100644 dox-master/open.png create mode 100644 dox-master/pages.html create mode 100644 dox-master/parsec-ext_8h.html create mode 100644 dox-master/parsec-ext_8h_source.html create mode 100644 dox-master/parsec_2buffer_8h.html create mode 100644 dox-master/parsec_2buffer_8h_source.html create mode 100644 dox-master/parsec_2device_8h.html create mode 100644 dox-master/parsec_2device_8h_source.html create mode 100644 dox-master/parsec_2devicescratch_8h.html create mode 100644 dox-master/parsec_2devicescratch_8h_source.html create mode 100644 dox-master/parsec_2fwd_8h.html create mode 100644 dox-master/parsec_2fwd_8h_source.html create mode 100644 dox-master/parsec_2import_8h.html create mode 100644 dox-master/parsec_2import_8h_source.html create mode 100644 dox-master/parsec_2ptr_8h.html create mode 100644 dox-master/parsec_2ptr_8h_source.html create mode 100644 dox-master/parsec_2task_8h.html create mode 100644 dox-master/parsec_2task_8h_source.html create mode 100644 dox-master/parsec_2ttvalue_8h.html create mode 100644 dox-master/parsec_2ttvalue_8h_source.html create mode 100644 dox-master/pmd_8hpp.html create mode 100644 dox-master/pmd_8hpp_source.html create mode 100644 dox-master/pmf_8hpp.html create mode 100644 dox-master/pmf_8hpp_source.html create mode 100644 dox-master/pmf__2_8hpp.html create mode 100644 dox-master/pmf__2_8hpp_source.html create mode 100644 dox-master/pmf__3_8hpp.html create mode 100644 dox-master/pmf__3_8hpp_source.html create mode 100644 dox-master/pmf__4_8hpp.html create mode 100644 dox-master/pmf__4_8hpp_source.html create mode 100644 dox-master/pmf__varargs_8hpp.html create mode 100644 dox-master/pmf__varargs_8hpp_source.html create mode 100644 dox-master/pmf__varargs__2_8hpp.html create mode 100644 dox-master/pmf__varargs__2_8hpp_source.html create mode 100644 dox-master/pmf__varargs__3_8hpp.html create mode 100644 dox-master/pmf__varargs__3_8hpp_source.html create mode 100644 dox-master/pmf__varargs__4_8hpp.html create mode 100644 dox-master/pmf__varargs__4_8hpp_source.html create mode 100644 dox-master/print_8h.html create mode 100644 dox-master/print_8h_source.html create mode 100644 dox-master/ptr_8h.html create mode 100644 dox-master/ptr_8h_source.html create mode 100644 dox-master/qualified__class__of_8hpp.html create mode 100644 dox-master/qualified__class__of_8hpp_source.html create mode 100644 dox-master/qualifier__flags_8hpp.html create mode 100644 dox-master/qualifier__flags_8hpp_source.html create mode 100644 dox-master/reduce_8h.html create mode 100644 dox-master/reduce_8h_source.html create mode 100644 dox-master/reducing_8cc-example.html create mode 100644 dox-master/reducing_8cc.html create mode 100644 dox-master/reducing_8cc_source.html create mode 100644 dox-master/remove__member__const_8hpp.html create mode 100644 dox-master/remove__member__const_8hpp_source.html create mode 100644 dox-master/remove__member__cv_8hpp.html create mode 100644 dox-master/remove__member__cv_8hpp_source.html create mode 100644 dox-master/remove__member__reference_8hpp.html create mode 100644 dox-master/remove__member__reference_8hpp_source.html create mode 100644 dox-master/remove__member__volatile_8hpp.html create mode 100644 dox-master/remove__member__volatile_8hpp_source.html create mode 100644 dox-master/remove__noexcept_8hpp.html create mode 100644 dox-master/remove__noexcept_8hpp_source.html create mode 100644 dox-master/remove__transaction__safe_8hpp.html create mode 100644 dox-master/remove__transaction__safe_8hpp_source.html create mode 100644 dox-master/remove__varargs_8hpp.html create mode 100644 dox-master/remove__varargs_8hpp_source.html create mode 100644 dox-master/return__type_8hpp.html create mode 100644 dox-master/return__type_8hpp_source.html create mode 100644 dox-master/run_8h.html create mode 100644 dox-master/run_8h_source.html create mode 100644 dox-master/runtimes_8h.html create mode 100644 dox-master/runtimes_8h_source.html create mode 100644 dox-master/search/all_0.html create mode 100644 dox-master/search/all_0.js create mode 100644 dox-master/search/all_1.html create mode 100644 dox-master/search/all_1.js create mode 100644 dox-master/search/all_10.html create mode 100644 dox-master/search/all_10.js create mode 100644 dox-master/search/all_11.html create mode 100644 dox-master/search/all_11.js create mode 100644 dox-master/search/all_12.html create mode 100644 dox-master/search/all_12.js create mode 100644 dox-master/search/all_13.html create mode 100644 dox-master/search/all_13.js create mode 100644 dox-master/search/all_14.html create mode 100644 dox-master/search/all_14.js create mode 100644 dox-master/search/all_15.html create mode 100644 dox-master/search/all_15.js create mode 100644 dox-master/search/all_16.html create mode 100644 dox-master/search/all_16.js create mode 100644 dox-master/search/all_17.html create mode 100644 dox-master/search/all_17.js create mode 100644 dox-master/search/all_18.html create mode 100644 dox-master/search/all_18.js create mode 100644 dox-master/search/all_2.html create mode 100644 dox-master/search/all_2.js create mode 100644 dox-master/search/all_3.html create mode 100644 dox-master/search/all_3.js create mode 100644 dox-master/search/all_4.html create mode 100644 dox-master/search/all_4.js create mode 100644 dox-master/search/all_5.html create mode 100644 dox-master/search/all_5.js create mode 100644 dox-master/search/all_6.html create mode 100644 dox-master/search/all_6.js create mode 100644 dox-master/search/all_7.html create mode 100644 dox-master/search/all_7.js create mode 100644 dox-master/search/all_8.html create mode 100644 dox-master/search/all_8.js create mode 100644 dox-master/search/all_9.html create mode 100644 dox-master/search/all_9.js create mode 100644 dox-master/search/all_a.html create mode 100644 dox-master/search/all_a.js create mode 100644 dox-master/search/all_b.html create mode 100644 dox-master/search/all_b.js create mode 100644 dox-master/search/all_c.html create mode 100644 dox-master/search/all_c.js create mode 100644 dox-master/search/all_d.html create mode 100644 dox-master/search/all_d.js create mode 100644 dox-master/search/all_e.html create mode 100644 dox-master/search/all_e.js create mode 100644 dox-master/search/all_f.html create mode 100644 dox-master/search/all_f.js create mode 100644 dox-master/search/classes_0.html create mode 100644 dox-master/search/classes_0.js create mode 100644 dox-master/search/classes_1.html create mode 100644 dox-master/search/classes_1.js create mode 100644 dox-master/search/classes_10.html create mode 100644 dox-master/search/classes_10.js create mode 100644 dox-master/search/classes_11.html create mode 100644 dox-master/search/classes_11.js create mode 100644 dox-master/search/classes_12.html create mode 100644 dox-master/search/classes_12.js create mode 100644 dox-master/search/classes_13.html create mode 100644 dox-master/search/classes_13.js create mode 100644 dox-master/search/classes_14.html create mode 100644 dox-master/search/classes_14.js create mode 100644 dox-master/search/classes_15.html create mode 100644 dox-master/search/classes_15.js create mode 100644 dox-master/search/classes_2.html create mode 100644 dox-master/search/classes_2.js create mode 100644 dox-master/search/classes_3.html create mode 100644 dox-master/search/classes_3.js create mode 100644 dox-master/search/classes_4.html create mode 100644 dox-master/search/classes_4.js create mode 100644 dox-master/search/classes_5.html create mode 100644 dox-master/search/classes_5.js create mode 100644 dox-master/search/classes_6.html create mode 100644 dox-master/search/classes_6.js create mode 100644 dox-master/search/classes_7.html create mode 100644 dox-master/search/classes_7.js create mode 100644 dox-master/search/classes_8.html create mode 100644 dox-master/search/classes_8.js create mode 100644 dox-master/search/classes_9.html create mode 100644 dox-master/search/classes_9.js create mode 100644 dox-master/search/classes_a.html create mode 100644 dox-master/search/classes_a.js create mode 100644 dox-master/search/classes_b.html create mode 100644 dox-master/search/classes_b.js create mode 100644 dox-master/search/classes_c.html create mode 100644 dox-master/search/classes_c.js create mode 100644 dox-master/search/classes_d.html create mode 100644 dox-master/search/classes_d.js create mode 100644 dox-master/search/classes_e.html create mode 100644 dox-master/search/classes_e.js create mode 100644 dox-master/search/classes_f.html create mode 100644 dox-master/search/classes_f.js create mode 100644 dox-master/search/close.svg create mode 100644 dox-master/search/defines_0.html create mode 100644 dox-master/search/defines_0.js create mode 100644 dox-master/search/defines_1.html create mode 100644 dox-master/search/defines_1.js create mode 100644 dox-master/search/defines_2.html create mode 100644 dox-master/search/defines_2.js create mode 100644 dox-master/search/defines_3.html create mode 100644 dox-master/search/defines_3.js create mode 100644 dox-master/search/defines_4.html create mode 100644 dox-master/search/defines_4.js create mode 100644 dox-master/search/enums_0.html create mode 100644 dox-master/search/enums_0.js create mode 100644 dox-master/search/enums_1.html create mode 100644 dox-master/search/enums_1.js create mode 100644 dox-master/search/enums_2.html create mode 100644 dox-master/search/enums_2.js create mode 100644 dox-master/search/enums_3.html create mode 100644 dox-master/search/enums_3.js create mode 100644 dox-master/search/enums_4.html create mode 100644 dox-master/search/enums_4.js create mode 100644 dox-master/search/enums_5.html create mode 100644 dox-master/search/enums_5.js create mode 100644 dox-master/search/enums_6.html create mode 100644 dox-master/search/enums_6.js create mode 100644 dox-master/search/enums_7.html create mode 100644 dox-master/search/enums_7.js create mode 100644 dox-master/search/enumvalues_0.html create mode 100644 dox-master/search/enumvalues_0.js create mode 100644 dox-master/search/enumvalues_1.html create mode 100644 dox-master/search/enumvalues_1.js create mode 100644 dox-master/search/enumvalues_2.html create mode 100644 dox-master/search/enumvalues_2.js create mode 100644 dox-master/search/enumvalues_3.html create mode 100644 dox-master/search/enumvalues_3.js create mode 100644 dox-master/search/enumvalues_4.html create mode 100644 dox-master/search/enumvalues_4.js create mode 100644 dox-master/search/enumvalues_5.html create mode 100644 dox-master/search/enumvalues_5.js create mode 100644 dox-master/search/enumvalues_6.html create mode 100644 dox-master/search/enumvalues_6.js create mode 100644 dox-master/search/enumvalues_7.html create mode 100644 dox-master/search/enumvalues_7.js create mode 100644 dox-master/search/enumvalues_8.html create mode 100644 dox-master/search/enumvalues_8.js create mode 100644 dox-master/search/enumvalues_9.html create mode 100644 dox-master/search/enumvalues_9.js create mode 100644 dox-master/search/enumvalues_a.html create mode 100644 dox-master/search/enumvalues_a.js create mode 100644 dox-master/search/enumvalues_b.html create mode 100644 dox-master/search/enumvalues_b.js create mode 100644 dox-master/search/enumvalues_c.html create mode 100644 dox-master/search/enumvalues_c.js create mode 100644 dox-master/search/files_0.html create mode 100644 dox-master/search/files_0.js create mode 100644 dox-master/search/files_1.html create mode 100644 dox-master/search/files_1.js create mode 100644 dox-master/search/files_10.html create mode 100644 dox-master/search/files_10.js create mode 100644 dox-master/search/files_11.html create mode 100644 dox-master/search/files_11.js create mode 100644 dox-master/search/files_12.html create mode 100644 dox-master/search/files_12.js create mode 100644 dox-master/search/files_2.html create mode 100644 dox-master/search/files_2.js create mode 100644 dox-master/search/files_3.html create mode 100644 dox-master/search/files_3.js create mode 100644 dox-master/search/files_4.html create mode 100644 dox-master/search/files_4.js create mode 100644 dox-master/search/files_5.html create mode 100644 dox-master/search/files_5.js create mode 100644 dox-master/search/files_6.html create mode 100644 dox-master/search/files_6.js create mode 100644 dox-master/search/files_7.html create mode 100644 dox-master/search/files_7.js create mode 100644 dox-master/search/files_8.html create mode 100644 dox-master/search/files_8.js create mode 100644 dox-master/search/files_9.html create mode 100644 dox-master/search/files_9.js create mode 100644 dox-master/search/files_a.html create mode 100644 dox-master/search/files_a.js create mode 100644 dox-master/search/files_b.html create mode 100644 dox-master/search/files_b.js create mode 100644 dox-master/search/files_c.html create mode 100644 dox-master/search/files_c.js create mode 100644 dox-master/search/files_d.html create mode 100644 dox-master/search/files_d.js create mode 100644 dox-master/search/files_e.html create mode 100644 dox-master/search/files_e.js create mode 100644 dox-master/search/files_f.html create mode 100644 dox-master/search/files_f.js create mode 100644 dox-master/search/functions_0.html create mode 100644 dox-master/search/functions_0.js create mode 100644 dox-master/search/functions_1.html create mode 100644 dox-master/search/functions_1.js create mode 100644 dox-master/search/functions_10.html create mode 100644 dox-master/search/functions_10.js create mode 100644 dox-master/search/functions_11.html create mode 100644 dox-master/search/functions_11.js create mode 100644 dox-master/search/functions_12.html create mode 100644 dox-master/search/functions_12.js create mode 100644 dox-master/search/functions_13.html create mode 100644 dox-master/search/functions_13.js create mode 100644 dox-master/search/functions_14.html create mode 100644 dox-master/search/functions_14.js create mode 100644 dox-master/search/functions_15.html create mode 100644 dox-master/search/functions_15.js create mode 100644 dox-master/search/functions_16.html create mode 100644 dox-master/search/functions_16.js create mode 100644 dox-master/search/functions_2.html create mode 100644 dox-master/search/functions_2.js create mode 100644 dox-master/search/functions_3.html create mode 100644 dox-master/search/functions_3.js create mode 100644 dox-master/search/functions_4.html create mode 100644 dox-master/search/functions_4.js create mode 100644 dox-master/search/functions_5.html create mode 100644 dox-master/search/functions_5.js create mode 100644 dox-master/search/functions_6.html create mode 100644 dox-master/search/functions_6.js create mode 100644 dox-master/search/functions_7.html create mode 100644 dox-master/search/functions_7.js create mode 100644 dox-master/search/functions_8.html create mode 100644 dox-master/search/functions_8.js create mode 100644 dox-master/search/functions_9.html create mode 100644 dox-master/search/functions_9.js create mode 100644 dox-master/search/functions_a.html create mode 100644 dox-master/search/functions_a.js create mode 100644 dox-master/search/functions_b.html create mode 100644 dox-master/search/functions_b.js create mode 100644 dox-master/search/functions_c.html create mode 100644 dox-master/search/functions_c.js create mode 100644 dox-master/search/functions_d.html create mode 100644 dox-master/search/functions_d.js create mode 100644 dox-master/search/functions_e.html create mode 100644 dox-master/search/functions_e.js create mode 100644 dox-master/search/functions_f.html create mode 100644 dox-master/search/functions_f.js create mode 100644 dox-master/search/groups_0.html create mode 100644 dox-master/search/groups_0.js create mode 100644 dox-master/search/mag_sel.svg create mode 100644 dox-master/search/namespaces_0.html create mode 100644 dox-master/search/namespaces_0.js create mode 100644 dox-master/search/namespaces_1.html create mode 100644 dox-master/search/namespaces_1.js create mode 100644 dox-master/search/nomatches.html create mode 100644 dox-master/search/pages_0.html create mode 100644 dox-master/search/pages_0.js create mode 100644 dox-master/search/pages_1.html create mode 100644 dox-master/search/pages_1.js create mode 100644 dox-master/search/pages_2.html create mode 100644 dox-master/search/pages_2.js create mode 100644 dox-master/search/pages_3.html create mode 100644 dox-master/search/pages_3.js create mode 100644 dox-master/search/pages_4.html create mode 100644 dox-master/search/pages_4.js create mode 100644 dox-master/search/pages_5.html create mode 100644 dox-master/search/pages_5.js create mode 100644 dox-master/search/related_0.html create mode 100644 dox-master/search/related_0.js create mode 100644 dox-master/search/related_1.html create mode 100644 dox-master/search/related_1.js create mode 100644 dox-master/search/related_2.html create mode 100644 dox-master/search/related_2.js create mode 100644 dox-master/search/related_3.html create mode 100644 dox-master/search/related_3.js create mode 100644 dox-master/search/related_4.html create mode 100644 dox-master/search/related_4.js create mode 100644 dox-master/search/related_5.html create mode 100644 dox-master/search/related_5.js create mode 100644 dox-master/search/related_6.html create mode 100644 dox-master/search/related_6.js create mode 100644 dox-master/search/related_7.html create mode 100644 dox-master/search/related_7.js create mode 100644 dox-master/search/search.css create mode 100644 dox-master/search/search.js create mode 100644 dox-master/search/search_l.png create mode 100644 dox-master/search/search_m.png create mode 100644 dox-master/search/search_r.png create mode 100644 dox-master/search/searchdata.js create mode 100644 dox-master/search/typedefs_0.html create mode 100644 dox-master/search/typedefs_0.js create mode 100644 dox-master/search/typedefs_1.html create mode 100644 dox-master/search/typedefs_1.js create mode 100644 dox-master/search/typedefs_10.html create mode 100644 dox-master/search/typedefs_10.js create mode 100644 dox-master/search/typedefs_11.html create mode 100644 dox-master/search/typedefs_11.js create mode 100644 dox-master/search/typedefs_12.html create mode 100644 dox-master/search/typedefs_12.js create mode 100644 dox-master/search/typedefs_13.html create mode 100644 dox-master/search/typedefs_13.js create mode 100644 dox-master/search/typedefs_14.html create mode 100644 dox-master/search/typedefs_14.js create mode 100644 dox-master/search/typedefs_15.html create mode 100644 dox-master/search/typedefs_15.js create mode 100644 dox-master/search/typedefs_2.html create mode 100644 dox-master/search/typedefs_2.js create mode 100644 dox-master/search/typedefs_3.html create mode 100644 dox-master/search/typedefs_3.js create mode 100644 dox-master/search/typedefs_4.html create mode 100644 dox-master/search/typedefs_4.js create mode 100644 dox-master/search/typedefs_5.html create mode 100644 dox-master/search/typedefs_5.js create mode 100644 dox-master/search/typedefs_6.html create mode 100644 dox-master/search/typedefs_6.js create mode 100644 dox-master/search/typedefs_7.html create mode 100644 dox-master/search/typedefs_7.js create mode 100644 dox-master/search/typedefs_8.html create mode 100644 dox-master/search/typedefs_8.js create mode 100644 dox-master/search/typedefs_9.html create mode 100644 dox-master/search/typedefs_9.js create mode 100644 dox-master/search/typedefs_a.html create mode 100644 dox-master/search/typedefs_a.js create mode 100644 dox-master/search/typedefs_b.html create mode 100644 dox-master/search/typedefs_b.js create mode 100644 dox-master/search/typedefs_c.html create mode 100644 dox-master/search/typedefs_c.js create mode 100644 dox-master/search/typedefs_d.html create mode 100644 dox-master/search/typedefs_d.js create mode 100644 dox-master/search/typedefs_e.html create mode 100644 dox-master/search/typedefs_e.js create mode 100644 dox-master/search/typedefs_f.html create mode 100644 dox-master/search/typedefs_f.js create mode 100644 dox-master/search/variables_0.html create mode 100644 dox-master/search/variables_0.js create mode 100644 dox-master/search/variables_1.html create mode 100644 dox-master/search/variables_1.js create mode 100644 dox-master/search/variables_10.html create mode 100644 dox-master/search/variables_10.js create mode 100644 dox-master/search/variables_11.html create mode 100644 dox-master/search/variables_11.js create mode 100644 dox-master/search/variables_12.html create mode 100644 dox-master/search/variables_12.js create mode 100644 dox-master/search/variables_13.html create mode 100644 dox-master/search/variables_13.js create mode 100644 dox-master/search/variables_14.html create mode 100644 dox-master/search/variables_14.js create mode 100644 dox-master/search/variables_15.html create mode 100644 dox-master/search/variables_15.js create mode 100644 dox-master/search/variables_2.html create mode 100644 dox-master/search/variables_2.js create mode 100644 dox-master/search/variables_3.html create mode 100644 dox-master/search/variables_3.js create mode 100644 dox-master/search/variables_4.html create mode 100644 dox-master/search/variables_4.js create mode 100644 dox-master/search/variables_5.html create mode 100644 dox-master/search/variables_5.js create mode 100644 dox-master/search/variables_6.html create mode 100644 dox-master/search/variables_6.js create mode 100644 dox-master/search/variables_7.html create mode 100644 dox-master/search/variables_7.js create mode 100644 dox-master/search/variables_8.html create mode 100644 dox-master/search/variables_8.js create mode 100644 dox-master/search/variables_9.html create mode 100644 dox-master/search/variables_9.js create mode 100644 dox-master/search/variables_a.html create mode 100644 dox-master/search/variables_a.js create mode 100644 dox-master/search/variables_b.html create mode 100644 dox-master/search/variables_b.js create mode 100644 dox-master/search/variables_c.html create mode 100644 dox-master/search/variables_c.js create mode 100644 dox-master/search/variables_d.html create mode 100644 dox-master/search/variables_d.js create mode 100644 dox-master/search/variables_e.html create mode 100644 dox-master/search/variables_e.js create mode 100644 dox-master/search/variables_f.html create mode 100644 dox-master/search/variables_f.js create mode 100644 dox-master/serialization_2std_2pair_8h.html create mode 100644 dox-master/serialization_2std_2pair_8h_source.html create mode 100644 dox-master/serialization_8h.html create mode 100644 dox-master/serialization_8h_source.html create mode 100644 dox-master/set__function__qualifiers_8hpp.html create mode 100644 dox-master/set__function__qualifiers_8hpp_source.html create mode 100644 dox-master/sfinae__errors_8hpp.html create mode 100644 dox-master/sfinae__errors_8hpp_source.html create mode 100644 dox-master/simple_8cc-example.html create mode 100644 dox-master/simple_8cc.html create mode 100644 dox-master/simple_8cc_source.html create mode 100644 dox-master/span_8h.html create mode 100644 dox-master/span_8h_source.html create mode 100644 dox-master/splitbar.png create mode 100644 dox-master/splitmd__data__descriptor_8h.html create mode 100644 dox-master/splitmd__data__descriptor_8h_source.html create mode 100644 dox-master/stream_8h.html create mode 100644 dox-master/stream_8h_source.html create mode 100644 dox-master/struct_callable_wrap_t_t_args_as_typelist.html create mode 100644 dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter1ea4a15775597eac016882f437f297ec.html create mode 100644 dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html create mode 100644 dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter40d1bb60d677324c85caad54df01ae30.html create mode 100644 dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html create mode 100644 dox-master/struct_callable_wrap_t_t_unwrap_typelist.html create mode 100644 dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html create mode 100644 dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html create mode 100644 dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k630a561a47b71aa9e3edd09485b80306.html create mode 100644 dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01kcc606679f9dc6a631b54e9ba76088b42.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container-members.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__compatible.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__compatible.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span_3_01span_3_01_t_00_01_s_01_4_01_4.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span_3_01span_3_01_t_00_01_s_01_4_01_4.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array_3_01std_1_1array_3_01_t_00_01_n_01_4_01_4.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array_3_01std_1_1array_3_01_t_00_01_n_01_4_01_4.png create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage-members.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4-members.html create mode 100644 dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__const.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__const.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__cv.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__cv.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__lvalue__reference.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__lvalue__reference.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__rvalue__reference.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__rvalue__reference.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__volatile.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__member__volatile.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__noexcept.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__noexcept__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__transaction__safe.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__transaction__safe__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__varargs.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1add__varargs.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1apply__member__pointer.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1apply__member__pointer.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1apply__return.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1apply__return.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1args.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1args.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1class__of.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1class__of.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std56bb8e2a8f0593073908b0decb19be64.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_83b60a30644facc5f0bab83ea098611d.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01tyff44cc4850b3a4633597bdb961256a19.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty2d08890afc0f73addb5b72bea496e815.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01c2c4d79dfb3abee4db06507780fe31db.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isebb1b3f4b3764f1094c0ca20cf2ce92f.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isfe78175a0696b8b2f3b6ea52d7862fab.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty45d0e28829ba15daa2f7438931851359.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dd0aa3663d06c437cce146010919b49f.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s65aca34815eb983bc28f03c21801711f.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t_1_1check.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1cdecl__tag.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s567e0db3bba1a7f7c6933d6ab654eaca.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1concat.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_01c73230de040ac25c70bcfc609d5065a2.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_00_01_ts_8_8_8_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_00_01_ts_8_8_8_01_4.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1dummy.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1fail-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1fail.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1fastcall__tag.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_16153bbd73cc24a93057a75e362696c2b.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantde9ed24eb11409e30caec873af951e37.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_015389578951f830f232eef552205e806c.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pascal__tag.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01sf1eae7dcbad90b54b733dcae1d0cb837.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_011c0a3f05fa6d6f61b45e00a925a532b1.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std99af42c2d930b49b9e0bb89d70e45288.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typenamcb09f71f583ed9400b45e4d1a52d5e8f.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typename97178921170e35157f80d4750b275e4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename901daecd373581942227fe927da06ec8.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_108531a4ded9318ca1f5f9203ab6f69d3.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenam7da72e815539234eb4006e02d3d4bb8c.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_849da51b465f742977b3ccb6675ce887.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1is8171c436aed47a28fb523b4bc18609ca.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1set__member__function__qualifiers__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__member__function__qualifiers__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1sfinae__error.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1stdcall__tag.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1substitution__failure.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1substitution__failure.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1success-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1success.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1function__type.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1function__type.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__varargs-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__varargs.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__varargs.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__void__return.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1has__void__return.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__const__member-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__const__member.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__const__member.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__invocable-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__invocable.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__invocable.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__invocable__r-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__invocable__r.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__invocable__r.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__noexcept-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__noexcept.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__noexcept.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__reference__member-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__reference__member.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__reference__member.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__transaction__safe-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__transaction__safe.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__transaction__safe.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__volatile__member-members.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__volatile__member.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1is__volatile__member.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1qualified__class__of.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1qualified__class__of.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__const.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__const.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__cv.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__cv.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__reference.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__reference.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__volatile.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__member__volatile.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__noexcept.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__noexcept.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__transaction__safe.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__transaction__safe.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__varargs.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1remove__varargs.png create mode 100644 dox-master/structboost_1_1callable__traits_1_1return__type.html create mode 100644 dox-master/structboost_1_1callable__traits_1_1return__type.png create mode 100644 dox-master/structboost_1_1serialization_1_1unsigned__int-members.html create mode 100644 dox-master/structboost_1_1serialization_1_1unsigned__int.html create mode 100644 dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t0c524e1ccdbd085584c50c29db361da9.html create mode 100644 dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t5ad59d6265ecfbefdc95861379aa9867.html create mode 100644 dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html create mode 100644 dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.png create mode 100644 dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html create mode 100644 dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.png create mode 100644 dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html create mode 100644 dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.png create mode 100644 dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_22b08dfc0c075ef0054028c243933480.html create mode 100644 dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html create mode 100644 dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.png create mode 100644 dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q9ee57cf5b972ff500f970ea87ef88435.html create mode 100644 dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b3467b605d2109a501ede96ad17595c2c.html create mode 100644 dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html create mode 100644 dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.png create mode 100644 dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html create mode 100644 dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.png create mode 100644 dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ara4a438379983c82f0d282aa21eba601b.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_029142579edd1a1cf548d1bca0fd5761.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_8f27920b07be788af4b14fa74ab6c8e7.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e17909365ebfe7dc985ec2393be739c4.html create mode 100644 dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e59d34b4b04397eb771f8153718965e4.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l1403bce593315b52596d003c74c12842.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l8219ff0173a71bed585046e56f789a21.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l866f84d37c225bcc784181297cde7239.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lc294e6bb55fae33ba3b3e252417e9710.html create mode 100644 dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html create mode 100644 dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4-members.html create mode 100644 dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4.html create mode 100644 dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1_multi_index-members.html create mode 100644 dox-master/structttg_1_1_multi_index.html create mode 100644 dox-master/structttg_1_1_split_metadata_descriptor.html create mode 100644 dox-master/structttg_1_1default__data__descriptor.html create mode 100644 dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpydf674d562b76332f750f1fcf6ffeee42.html create mode 100644 dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html create mode 100644 dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html create mode 100644 dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__mf4fe25a443b4ca7dfa7b6c7cbcd60208.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper-members.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4-members.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4-members.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4-members.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4-members.html create mode 100644 dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor-members.html create mode 100644 dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor.html create mode 100644 dox-master/structttg_1_1detail_1_1default__keymap-members.html create mode 100644 dox-master/structttg_1_1detail_1_1default__keymap.html create mode 100644 dox-master/structttg_1_1detail_1_1default__keymap.png create mode 100644 dox-master/structttg_1_1detail_1_1default__keymap__impl.html create mode 100644 dox-master/structttg_1_1detail_1_1default__keymap__impl.png create mode 100644 dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html create mode 100644 dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1hasd353ef25466bbdd7edbf73cb6ea42fbf.html create mode 100644 dox-master/structttg_1_1detail_1_1default__priomap-members.html create mode 100644 dox-master/structttg_1_1detail_1_1default__priomap.html create mode 100644 dox-master/structttg_1_1detail_1_1default__priomap.png create mode 100644 dox-master/structttg_1_1detail_1_1default__priomap__impl-members.html create mode 100644 dox-master/structttg_1_1detail_1_1default__priomap__impl.html create mode 100644 dox-master/structttg_1_1detail_1_1default__priomap__impl.png create mode 100644 dox-master/structttg_1_1detail_1_1edges__tuple.html create mode 100644 dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1hash__combine__impl-members.html create mode 100644 dox-master/structttg_1_1detail_1_1hash__combine__impl.html create mode 100644 dox-master/structttg_1_1detail_1_1input__terminals__tuple-members.html create mode 100644 dox-master/structttg_1_1detail_1_1input__terminals__tuple.html create mode 100644 dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__array__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.png create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__buffer__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__buffer__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__default__buffer__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__default__buffer__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__default__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__default__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__boost__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__buffer__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__buffer__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__input__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__input__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__output__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__output__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__user__buffer__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__madness__user__buffer__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__memcpyable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__memcpyable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__printable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__printable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__printable_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1_1declval_3_a5774f3d043eeeee157069b2b78993f2.html create mode 100644 dox-master/structttg_1_1detail_1_1is__printable_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1_1declval_3_a5774f3d043eeeee157069b2b78993f2.png create mode 100644 dox-master/structttg_1_1detail_1_1is__user__buffer__serializable.html create mode 100644 dox-master/structttg_1_1detail_1_1is__user__buffer__serializable.png create mode 100644 dox-master/structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.html create mode 100644 dox-master/structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.png create mode 100644 dox-master/structttg_1_1detail_1_1printer__helper-members.html create mode 100644 dox-master/structttg_1_1detail_1_1printer__helper.html create mode 100644 dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html create mode 100644 dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_te4d74e9a4b6d34170b7dc6d3ce62121f.html create mode 100644 dox-master/structttg_1_1detail_1_1value__copy__handler-members.html create mode 100644 dox-master/structttg_1_1detail_1_1value__copy__handler.html create mode 100644 dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4-members.html create mode 100644 dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html create mode 100644 dox-master/structttg_1_1edges__to__output__terminals.html create mode 100644 dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1event-members.html create mode 100644 dox-master/structttg_1_1event.html create mode 100644 dox-master/structttg_1_1has__split__metadata.html create mode 100644 dox-master/structttg_1_1has__split__metadata.png create mode 100644 dox-master/structttg_1_1has__split__metadata_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01decltype_07std_1_1declv04e799e75aff1843c5d29b807a5d2544.html create mode 100644 dox-master/structttg_1_1has__split__metadata_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01decltype_07std_1_1declv04e799e75aff1843c5d29b807a5d2544.png create mode 100644 dox-master/structttg_1_1iovec-members.html create mode 100644 dox-master/structttg_1_1iovec.html create mode 100644 dox-master/structttg_1_1meta_1_1candidate__argument__bindings.html create mode 100644 dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1is7a159ba0312787ffbc0ba26aaf2230c7.html create mode 100644 dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html create mode 100644 dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1decays__to__output__terminal__tuple.html create mode 100644 dox-master/structttg_1_1meta_1_1decays__to__output__terminal__tuple.png create mode 100644 dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop-members.html create mode 100644 dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop.html create mode 100644 dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std288f286725e3f182c5b395c9e416f1c0.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_16cbd3198e82281bcbc7e48e4cebcb5d1.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html create mode 100644 dox-master/structttg_1_1meta_1_1drop__last__n.html create mode 100644 dox-master/structttg_1_1meta_1_1filtered__tuple.html create mode 100644 dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1has__member__function__hash.html create mode 100644 dox-master/structttg_1_1meta_1_1has__member__function__hash.png create mode 100644 dox-master/structttg_1_1meta_1_1has__member__function__hash_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1f4964d2720bb5e0fa5e45d0cbc913910.html create mode 100644 dox-master/structttg_1_1meta_1_1has__member__function__hash_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1f4964d2720bb5e0fa5e45d0cbc913910.png create mode 100644 dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization.html create mode 100644 dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization.png create mode 100644 dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01declt91c1b3738036f1921f53ffe2f01abf5a.html create mode 100644 dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01declt91c1b3738036f1921f53ffe2f01abf5a.png create mode 100644 dox-master/structttg_1_1meta_1_1is__buffer.html create mode 100644 dox-master/structttg_1_1meta_1_1is__buffer.png create mode 100644 dox-master/structttg_1_1meta_1_1is__buffer_3_01const_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1is__buffer_3_01const_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1is__const__lvalue__reference.html create mode 100644 dox-master/structttg_1_1meta_1_1is__const__lvalue__reference.png create mode 100644 dox-master/structttg_1_1meta_1_1is__devicescratch.html create mode 100644 dox-master/structttg_1_1meta_1_1is__devicescratch.png create mode 100644 dox-master/structttg_1_1meta_1_1is__devicescratch_3_01const_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1is__devicescratch_3_01const_01ttg_1_1devicescratch_3_01_t_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1is__generic__callable.html create mode 100644 dox-master/structttg_1_1meta_1_1is__generic__callable.png create mode 100644 dox-master/structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.html create mode 100644 dox-master/structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.png create mode 100644 dox-master/structttg_1_1meta_1_1is__input__terminal.html create mode 100644 dox-master/structttg_1_1meta_1_1is__input__terminal.png create mode 100644 dox-master/structttg_1_1meta_1_1is__last__void.html create mode 100644 dox-master/structttg_1_1meta_1_1is__last__void.png create mode 100644 dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference.html create mode 100644 dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference.png create mode 100644 dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference__to__output__terminal__tuple.html create mode 100644 dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference__to__output__terminal__tuple.png create mode 100644 dox-master/structttg_1_1meta_1_1is__nonvoid.html create mode 100644 dox-master/structttg_1_1meta_1_1is__nonvoid.png create mode 100644 dox-master/structttg_1_1meta_1_1is__output__terminal.html create mode 100644 dox-master/structttg_1_1meta_1_1is__output__terminal.png create mode 100644 dox-master/structttg_1_1meta_1_1is__output__terminal__tuple.html create mode 100644 dox-master/structttg_1_1meta_1_1is__output__terminal__tuple.png create mode 100644 dox-master/structttg_1_1meta_1_1is__output__terminal__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1is__output__terminal__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1is__ptr.html create mode 100644 dox-master/structttg_1_1meta_1_1is__ptr.png create mode 100644 dox-master/structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1is__terminal.html create mode 100644 dox-master/structttg_1_1meta_1_1is__terminal.png create mode 100644 dox-master/structttg_1_1meta_1_1is__typelist.html create mode 100644 dox-master/structttg_1_1meta_1_1is__typelist.png create mode 100644 dox-master/structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1is__void.html create mode 100644 dox-master/structttg_1_1meta_1_1is__void.png create mode 100644 dox-master/structttg_1_1meta_1_1nonref__tuple.html create mode 100644 dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__all.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__all.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__any.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__any.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__first.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__last.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.png create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl57f596bcb60dd4ff3651f207d2d36354.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplfd14cb50a1d89382e947b83efb2a8c80.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u41dc57dc65984b72b52c1483694d56f9.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u5e0d670a402dd96d35d59fa67f97571e.html create mode 100644 dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html create mode 100644 dox-master/structttg_1_1meta_1_1tuple__concat.html create mode 100644 dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us0a9bdd37818c6c83e28bcbaf9b2dfc3f.html create mode 100644 dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1type__identity-members.html create mode 100644 dox-master/structttg_1_1meta_1_1type__identity.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist-members.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__is__empty.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__is__empty.png create mode 100644 dox-master/structttg_1_1meta_1_1typelist__is__not__empty.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__is__not__empty.png create mode 100644 dox-master/structttg_1_1meta_1_1typelist__size.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__to__tuple.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg_1_1meta_1_1void__to___void-members.html create mode 100644 dox-master/structttg_1_1meta_1_1void__to___void.html create mode 100644 dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4-members.html create mode 100644 dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4.html create mode 100644 dox-master/structttg_1_1overload_1_1hash.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function4bfc12a19cd65f57d26589241cdb555a.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4-members.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_742e6ee90400eb8af68965db2186c9b8.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4-members.html create mode 100644 dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html create mode 100644 dox-master/structttg_1_1resumable__task-members.html create mode 100644 dox-master/structttg_1_1resumable__task.html create mode 100644 dox-master/structttg_1_1resumable__task.png create mode 100644 dox-master/structttg_1_1resumable__task__events-members.html create mode 100644 dox-master/structttg_1_1resumable__task__events.html create mode 100644 dox-master/structttg_1_1resumable__task__state-members.html create mode 100644 dox-master/structttg_1_1resumable__task__state.html create mode 100644 dox-master/structttg_1_1runtime__traits.html create mode 100644 dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4-members.html create mode 100644 dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html create mode 100644 dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4-members.html create mode 100644 dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html create mode 100644 dox-master/structttg_1_1terminals__to__edges.html create mode 100644 dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4-members.html create mode 100644 dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html create mode 100644 dox-master/structttg__data__descriptor-members.html create mode 100644 dox-master/structttg__data__descriptor.html create mode 100644 dox-master/structttg__madness_1_1_buffer-members.html create mode 100644 dox-master/structttg__madness_1_1_buffer.html create mode 100644 dox-master/structttg__madness_1_1_buffer.png create mode 100644 dox-master/structttg__madness_1_1_ptr.html create mode 100644 dox-master/structttg__madness_1_1_t_t_value.html create mode 100644 dox-master/structttg__madness_1_1devicescratch.html create mode 100644 dox-master/structttg__parsec_1_1_buffer-members.html create mode 100644 dox-master/structttg__parsec_1_1_buffer.html create mode 100644 dox-master/structttg__parsec_1_1_buffer.png create mode 100644 dox-master/structttg__parsec_1_1_ptr-members.html create mode 100644 dox-master/structttg__parsec_1_1_ptr.html create mode 100644 dox-master/structttg__parsec_1_1_t_t_value-members.html create mode 100644 dox-master/structttg__parsec_1_1_t_t_value.html create mode 100644 dox-master/structttg__parsec_1_1_t_t_value.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1device__ptr__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1device__ptr__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1device__state__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1device__state__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1msg__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1msg__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ptr__impl-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ptr__impl.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1reducer__task__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1reducer__task__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1reducer__task__t.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.png create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t-members.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html create mode 100644 dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.png create mode 100644 dox-master/structttg__parsec_1_1devicescratch-members.html create mode 100644 dox-master/structttg__parsec_1_1devicescratch.html create mode 100644 dox-master/structttg__parsec_1_1msg__header__t-members.html create mode 100644 dox-master/structttg__parsec_1_1msg__header__t.html create mode 100644 dox-master/structttg__parsec_1_1ptr.html create mode 100644 dox-master/sync_off.png create mode 100644 dox-master/sync_on.png create mode 100644 dox-master/tab_a.png create mode 100644 dox-master/tab_b.png create mode 100644 dox-master/tab_h.png create mode 100644 dox-master/tab_s.png create mode 100644 dox-master/tabs.css create mode 100644 dox-master/terminal_8h.html create mode 100644 dox-master/terminal_8h_source.html create mode 100644 dox-master/test_8cpp.html create mode 100644 dox-master/test_8cpp_source.html create mode 100644 dox-master/thread__local_8h.html create mode 100644 dox-master/thread__local_8h_source.html create mode 100644 dox-master/trace_8h.html create mode 100644 dox-master/trace_8h_source.html create mode 100644 dox-master/traits_8h.html create mode 100644 dox-master/traits_8h_source.html create mode 100644 dox-master/traits_8hpp.html create mode 100644 dox-master/traits_8hpp_source.html create mode 100644 dox-master/traverse_8h.html create mode 100644 dox-master/traverse_8h_source.html create mode 100644 dox-master/tree_8h.html create mode 100644 dox-master/tree_8h_source.html create mode 100644 dox-master/tt_8h.html create mode 100644 dox-master/tt_8h_source.html create mode 100644 dox-master/ttg_2madness_2ttg_8h.html create mode 100644 dox-master/ttg_2madness_2ttg_8h_source.html create mode 100644 dox-master/ttg_2parsec_2ttg_8h.html create mode 100644 dox-master/ttg_2parsec_2ttg_8h_source.html create mode 100644 dox-master/ttg_8h.html create mode 100644 dox-master/ttg_8h_source.html create mode 100644 dox-master/ttg__data__copy_8h.html create mode 100644 dox-master/ttg__data__copy_8h_source.html create mode 100644 dox-master/ttvalue_8h.html create mode 100644 dox-master/ttvalue_8h_source.html create mode 100644 dox-master/tuple_8h.html create mode 100644 dox-master/tuple_8h_source.html create mode 100644 dox-master/typelist_8h.html create mode 100644 dox-master/typelist_8h_source.html create mode 100644 dox-master/unguarded_2function_8hpp.html create mode 100644 dox-master/unguarded_2function_8hpp_source.html create mode 100644 dox-master/unguarded_2pmf_8hpp.html create mode 100644 dox-master/unguarded_2pmf_8hpp_source.html create mode 100644 dox-master/user_2top_8md.html create mode 100644 dox-master/usergroup0.html create mode 100644 dox-master/usergroup1.html create mode 100644 dox-master/userguide.html create mode 100644 dox-master/util_2hash_2std_2pair_8h.html create mode 100644 dox-master/util_2hash_2std_2pair_8h_source.html create mode 100644 dox-master/utility_8hpp.html create mode 100644 dox-master/utility_8hpp_source.html create mode 100644 dox-master/variant_8h.html create mode 100644 dox-master/variant_8h_source.html create mode 100644 dox-master/vector_8h.html create mode 100644 dox-master/vector_8h_source.html create mode 100644 dox-master/version_8cc.html create mode 100644 dox-master/version_8cc_source.html create mode 100644 dox-master/void_8h.html create mode 100644 dox-master/void_8h_source.html create mode 100644 dox-master/watch_8h.html create mode 100644 dox-master/watch_8h_source.html create mode 100644 dox-master/world_8h.html create mode 100644 dox-master/world_8h_source.html create mode 100644 index.md diff --git a/_config.yml b/_config.yml new file mode 100644 index 000000000..9b1c317b5 --- /dev/null +++ b/_config.yml @@ -0,0 +1,17 @@ +theme: jekyll-theme-minimal +include: + - _workflow_8md.html + - _design-_device_8md.html + - _design-_device.html + - _design-_pull.html + - _t_t_g-_build-_infrastructure_8md.html + - _c_i-_administration-_notes.html + - _documenting-_t_t_g_8md.html + - _pull-terminal-design-doc_8md.html + - _r_e_a_d_m_e_8md.html + - _c_i-_administration-_notes_8md.html + - _coding-_standards.html + - _recommended-_workflow-_elements.html + - _coding-_standards_8md.html + - _t_t_g-_build-_infrastructure.html + - _documenting-_t_t_g.html diff --git a/dox-master/_c_i-_administration-_notes.html b/dox-master/_c_i-_administration-_notes.html new file mode 100644 index 000000000..3b23cf353 --- /dev/null +++ b/dox-master/_c_i-_administration-_notes.html @@ -0,0 +1,126 @@ + + + + + + + + + + + ttg: Managing Continuous Intergration (CI) + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Managing Continuous Intergration (CI)
+
+
+

Basic Facts

+
    +
  • TTG uses GitHub Actions (GHA) for its CI service
  • +
  • GHA CI configuration is in file .github/workflows/cmake.yml. Only Linux and MacOS builds are currently supported.
  • +
  • Unlike earlier CI setups, there is no need to cache TTG prerequisites; default system-wide packages are used for most prerequisites, and the rest is compiled from source every time.
  • +
  • Doxygen documentation deployment uses a GitHub token that is defined as variable GH_TTG_TOKEN in GHA's TTG repo settings' secrets.
  • +
+

Debugging GitHub Actions jobs

+

Local debugging

+

GHA Linux jobs run on stock 20.04 Ubuntu, thus they can be reproduced easily in, e.g., a stock Ubuntu container. MacOS jobs run on (x86) MacOS virtual machines, thus require a local Mac to troubleshoot.

+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_c_i-_administration-_notes_8md.html b/dox-master/_c_i-_administration-_notes_8md.html new file mode 100644 index 000000000..e3febc18d --- /dev/null +++ b/dox-master/_c_i-_administration-_notes_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/CI-Administration-Notes.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/CI-Administration-Notes.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_coding-_standards.html b/dox-master/_coding-_standards.html new file mode 100644 index 000000000..60f020883 --- /dev/null +++ b/dox-master/_coding-_standards.html @@ -0,0 +1,137 @@ + + + + + + + + + + + ttg: Coding Standards + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Coding Standards
+
+
+

Code Organization

+

Logical organization

+

TTG namespaces:

+
    +
  • ttg: contains top-level runtime-agnostic components as well as the default runtime-specific components
  • +
  • ttg_RUNTIME: contains runtime-specific TTG components; two implementations are provided with TTG: ttg_madness and ttg_parsec
  • +
+

Physical organization

+

Directory structure:

+
    +
  • ttg:
      +
    • ttg/ttg: contains the entire TTG implementation
    • +
    • ttg/ttg/base: contains runtime-agnostic components
    • +
    • ttg/ttg/RUNTIME: contains TTG backend for specific runtime
    • +
    • ttg/ttg/common: contains runtime-specific components that are common to all runtimes
    • +
    • ttg/ttg/util: contains various utilities
    • +
    +
  • +
  • tests: contains unit tests
  • +
  • examples: contains examples
  • +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_coding-_standards_8md.html b/dox-master/_coding-_standards_8md.html new file mode 100644 index 000000000..1e7e2e0e7 --- /dev/null +++ b/dox-master/_coding-_standards_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/Coding-Standards.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/Coding-Standards.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_design-_device.html b/dox-master/_design-_device.html new file mode 100644 index 000000000..93c39d835 --- /dev/null +++ b/dox-master/_design-_device.html @@ -0,0 +1,304 @@ + + + + + + + + + + + ttg: Device Task Design + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Device Task Design
+
+
+

problem statement

+

TTG must be able to execute general user-defined graphs on machines with heterogeneous execution and address spaces, e.g., using multiple processes each having multiple CPU threads + device streams, with each thread/stream preferring or limited to a specific address range.

+

key concerns

+

The key issues are how to manage:

    +
  • the asynchrony of the device programming models, and
  • +
  • the heterogeneity of the address space.
  • +
+

There are multiple "solutions" to each issue, hence there are many possible designs. I'll discuss each issue first, then outline the aggregate designs we are pursuing.

+

Memory:

+
    +
  • Unified Memory (UM): where available, use single address space (unified memory visible to both host and device executors; it is also possible to use pinned host memory for device calls)
      +
    • pro: simplifies memory management by removing the capacity limitation
    • +
    • con: still needs user cooperation: all compute data must be allocated on UM heap, this impacts the design of user data types, e.g. making them allocator aware, etc.
    • +
    • con: the user will likely needs to use pooled memory management for efficiency reasons (e.g., TiledArray uses Umpire)
    • +
    • con: still necessary to provide hints to the kernel driver managing UM.
    • +
    • con: reasoning about UM driver performance is difficult, its details are opaque and platform dependent.
    • +
    +
  • +
  • Device Memory (DM): using "native" device memory.
      +
    • pro: simpler performance model due to greatest amount of control (by runtime) over execution
    • +
    • pro: can work with stack-capable data types
    • +
    • con: The amount is limited, hence this memory must be explicitly managed (akin to how a cache is managed).
    • +
    +
  • +
+

Additional memory-related concerns common to both models:

    +
  • only partial state needs to be transferred to/from the device
      +
    • which part of the state will differ from algorithm to algorithm, hence encoding/constructing such representation cannot use constexpr code (such as traits)
    • +
    • the need for explicit handling of object's partial state is shared by both models
        +
      • UM: such optimization may seem automatic (only the pages of the data actually used on the device are transfered) but in practice the data must be explicitly prefetched, hence partial state transfers are not automatic; furthermore, the unit of UM transfer is a page (4k or more), which is too coarse for many applications
      • +
      • DM: serialization of an entire object (which can leverage standard RDMA-like serialization), transfering partial state requires explicit annotation
      • +
      +
    • +
    • hence it makes sense to make representation of object's partial state (View) a first-class concept in both models.
    • +
    +
  • +
+

Asynchrony

+
    +
  • Continuations/stages: decompose tasks into continuations (stages), with runtime-managed scheduling of continutations for managing the asynchrony of the actions initiated by each continuation
      +
    • pro: most explicit, easier to reason about, fewest performance implications
    • +
    • con: most verbose; device-capable tasks look very different from host tasks
    • +
    • con: limited composability
        +
      • difficult to support general computation patterns (e.g. generator continuation, etc.,)
      • +
      +
    • +
    +
  • +
  • *"Threads"*: use threads to deal with the asynchrony (in principle could use user-space threads = fibers)
      +
    • pro: least host/device dichotomy
        +
      • tasks are ordinary (synchronous) functions
      • +
      • fully composable
      • +
      +
    • +
    • con: performance implications
        +
      • due to the need to context switch to "yield" to other tasks
      • +
      • thus even fully synchronous computations will suffer
      • +
      +
    • +
    • con: asynchrony artifacts still appear
        +
      • asynchronous calls must be in general annotated (to force synchronous execution and/or to provide hints to the thread scheduler)
      • +
      +
    • +
    +
  • +
  • *"Coroutines"*: use C++20 coroutines
      +
    • pro: less host/device dichotomy compared to continuations
        +
      • task functions "look" like ordinary functions (and can be made almost like normal functions using macros) but returning a custom return object (containing return status + handle to the coroutine) instead of void
      • +
      • fully composable
      • +
      +
    • +
    • performance implications
        +
      • pro: no impact on synchronous tasks
      • +
      • con: coroutine implementation details are complex and usually involve heap allocation
      • +
      • pro: custom allocators can be introduced to elide heap allocation (at the cost of limited generality)
      • +
      +
    • +
    • con: asynchrony artifacts still appear
        +
      • co_await annotate the spots where execution may need to be suspended
      • +
      +
    • +
    • con: less mature due to the need for C++20
        +
      • GCC (10+), LLVM (8+) support coroutines
      • +
      • TTG and all of its dependencies will be impacted by the raised standard requirement
      • +
      +
    • +
    +
  • +
+

other considerations

+
    +
  • it's not possible to manage memory from the device code, hence all program logic, including device-capable tasks, must execute on host executors. In principle if we restricted ourselves to a single-source language (SYLC-extended C++) we could write device capable tasks directly as device code, but current language limitations mandate wrapping everything into host code.
  • +
  • runtime is still responsible for managing the executor space heterogeneity (control where to launch a task) and asynchrony (events/host callbacks).
  • +
+

Current designs

+
    +
  • UM+threads: use UM for memory management + threads for asynchrony
  • +
  • DM+stages: use Parsec's device memory pool manager + stage-decomposed tasks
  • +
  • ?M+coroutines: UM/DM for memory + C++20 coroutines for handling the asynchrony
  • +
+

Example code: threads vs continuations vs coroutines

+

How should we map the following host task onto the device?

make_tt([](auto& key, auto& data1, auto& data2) -> void {
+
double data3 = blas::dot(data1.data(), data2.data());
+
if (data3 >= 0.)
+
send<0>(data1);
+
else
+
send<0>(data2);
+
}
+
auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
Factory function to assist in wrapping a callable with signature.
Definition: make_tt.h:560
+

Ideally the task will receive data1 and data2 already transferred to the memory space(s) accessible from the device execution space:

make_device_tt([](auto& key, auto& data1, auto& data2) -> void {
+
double data3 = blas::device_dot(data1.data(), data2.data());
+
if (data3 >= 0.)
+
send<0>(data1);
+
else
+
send<0>(data2);
+
}
+

But now data3 lives in the host memory so in general we must manage its transfer from the device. Hence either:

    +
  • all intermediate data must be managed explicitly within the task, or
  • +
  • except for the cases where user types are aware of multiple memory spaces (but this makes the state of such types asynchronous).
  • +
+

Here are the tentative device versions of this task in each of the 3 approaches (the memory details are omitted).

+

Threads

+
make_tt([](auto& key, auto& data1, auto& data2) -> void {
+
// stage 1
+
ConstView view1(data1);
+
ConstView view2(data2);
+
double data3;
+
View view3(data3, NewView | SyncView_D2H);
+
// depending on the memory model may need to wait here for the transfers to complete
+
// could build the waits into View ctors, or need an explicit await()
+
+
// stage 2
+
cublasDdot(view1.device_ptr(), view2.device_ptr(), view3.device_ptr());
+
// if called an async function need explicit await() here
+
// also: who/how will view3 be synchronized
+
+
if (data3 >= 0.)
+
send<0>(data1);
+
else
+
send<0>(data2);
+
}
+

N.B. make_tt: this is a regular task.

+

Continuations

+
make_device_tt(
+
// stage 1
+
[](auto& key, auto& data1, auto& data2) {
+
ConstView view1(data1);
+
ConstView view2(data2);
+
double data3;
+
View view3(data3, NewView | SyncView_D2H);
+
return {view1, view2, view3};
+
},
+
// stage 2
+
[](auto& key, auto& views) {
+
auto& [view1, view2, view3] = views;
+
cublasDdot(view1.device_ptr(), view2.device_ptr(), view3.device_ptr());
+
},
+
// stage 3
+
[](auto& key, auto& views) {
+
auto& [view1, view2, view3] = views;
+
if (*view3.host_ptr() >= 0.)
+
send<0>(data1);
+
else
+
send<0>(data2);
+
}
+
}
+

N.B. make_device_tt vs make_tt: this is a special task.

+

Coroutines

+
make_tt([](auto& key, auto& data1, auto& data2) -> ttg::resumable_task {
+
// stage 1
+
ConstView view1(data1);
+
ConstView view2(data2);
+
double data3;
+
View view3(data3, NewView | SyncView_D2H);
+
co_await sync_views(view1, view2, view3); // creates list of transfers to be fulfilled by the runtime
+
+
// stage 2
+
cublasDdot(view1.device_ptr(), view2.device_ptr(), view3.device_ptr());
+
co_await; // syncs view3; since transfers and kernels execute in different streams the runtime will sync kernel stream, then launch transfers, then resume here
+
+
if (data3 >= 0.)
+
send<0>(data1);
+
else
+
send<0>(data2);
+
co_return; // processes sends and destroys coroutine
+
}, ...);
+
task that can be resumed after some events occur
Definition: coroutine.h:53
+

N.B. make_tt and ttg::resumable_task: this is a regular task but with special return type.

+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_design-_device_8md.html b/dox-master/_design-_device_8md.html new file mode 100644 index 000000000..4d0e2ea76 --- /dev/null +++ b/dox-master/_design-_device_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/Design-Device.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/Design-Device.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_design-_pull.html b/dox-master/_design-_pull.html new file mode 100644 index 000000000..e694fa519 --- /dev/null +++ b/dox-master/_design-_pull.html @@ -0,0 +1,165 @@ + + + + + + + + + + + ttg: Pull Terminals Design Notes + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Pull Terminals Design Notes
+
+
+

Motivation

+
    +
  • This requirement cropped up from the wavefront example borrowed from Cpp-taskflow.
  • +
  • In TTG, every operation with different number of input dependencies is created as a separate Op.
  • +
  • However, some applications require data from various sources purely for computation, and do not necessarily imply a data dependency for execution of the task.
  • +
  • Current model of TTG only allows for data only to be PUSHed to subsequent tasks via terminals. In order to push data from different sources for computation, a 'reader' task is required which when run, instantiates all the tasks it can push data to, which is unnecessary. Tasks should be created when data dependencies are satisfied, and not when data is pushed from a source.
  • +
  • If data can be PULLed by a task when necessary, we can defer running the "reader" tasks until needed.
  • +
+

Prototype Implementation

+
    +
  • Create an Op for every pull task. Use the Edges to mark terminals as pull terminals.
  • +
  • A pull Op can contain 0 or 1 pull terminals as input.
  • +
  • Key of the puller is sent as input to the pull task to invoke the task.
  • +
  • If the pull task itself has a pull terminal as input, this would walk through the DAG in a reverse manner until necessary data is pulled.
  • +
  • Invoking a pull task is done via a callback.
  • +
  • A pull task can be invoked at task creation time (eager) or when the task is ready to run with all dependencies satisfied (lazy).
  • +
+

Pros

+
    +
  • Ensures unique task IDs for every pull task.
  • +
+

Cons

+
    +
  • No way to map a single datasource / key to multiple keys.
  • +
  • Helps with delaying tasks, however not very flexible in design.
  • +
+

Design Recommendations

+

Use a map for pull request

+
    +
  • Allows specifying a datasource different from the key.
  • +
  • Task keys will not be unique and currently there is no way to handle it.
  • +
+

Callback Model

+
    +
  • Implement a callback for every pull terminal which takes the request (Ex. set of keys) and returns the data.
  • +
  • Data may be remote, however send currently uses a callback model and can probably be used for pull requests as well.
  • +
+

Use Cases

+
    +
  • Wavefront Computation
  • +
  • Generator/Reader tasks
  • +
  • Adding 3 vectors - one vector is local and need to pull two other vectors.
  • +
  • SUMMA - pull data multiple times.
  • +
+

Questions

+
    +
  • Should Pull Op be able to send data to multiple successors? Use cases?
  • +
  • Cholesky - why pull ops are needed?
  • +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_documenting-_t_t_g.html b/dox-master/_documenting-_t_t_g.html new file mode 100644 index 000000000..7f30d3f35 --- /dev/null +++ b/dox-master/_documenting-_t_t_g.html @@ -0,0 +1,128 @@ + + + + + + + + + + + ttg: Documenting TTG + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Documenting TTG
+
+
+

Documenting Source

+

TTG C/C++ source should be documented using Doxygen. Doxygen supports in-source documentation and stand-alone documents. TTG's Doxygen configuration is contained in the Doxyfile.in. TTG enables support for Markdown both in in-source comments and for Markdown pages (with .md extension). The use of Markdown is encouraged.

+

Administration

+
    +
  • Generation and deployment of TTG's documentation is performed by successful CI jobs defined here. The Build+Deploy Dox step assembles the TTG website by combining
      +
    • the frontmatter: currently just TTG's README.md file),
    • +
    • the rest of the website content located on the gh-pages-template branch of the TTG repo
    • +
    • the Doxygen html documentation
    • +
    +
  • +
  • Dox deployment uses a GitHub token that is defined as variable GH_TTG_TOKEN in GHA's TTG repo settings' secrets.
  • +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_documenting-_t_t_g_8md.html b/dox-master/_documenting-_t_t_g_8md.html new file mode 100644 index 000000000..e0b187b32 --- /dev/null +++ b/dox-master/_documenting-_t_t_g_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/Documenting-TTG.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/Documenting-TTG.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_pull-terminal-design-doc_8md.html b/dox-master/_pull-terminal-design-doc_8md.html new file mode 100644 index 000000000..085e4a6a2 --- /dev/null +++ b/dox-master/_pull-terminal-design-doc_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/Pull-terminal-design-doc.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/Pull-terminal-design-doc.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_r_e_a_d_m_e_8md.html b/dox-master/_r_e_a_d_m_e_8md.html new file mode 100644 index 000000000..b9cfcddbb --- /dev/null +++ b/dox-master/_r_e_a_d_m_e_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: README.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
README.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_recommended-_workflow-_elements.html b/dox-master/_recommended-_workflow-_elements.html new file mode 100644 index 000000000..0a3465846 --- /dev/null +++ b/dox-master/_recommended-_workflow-_elements.html @@ -0,0 +1,123 @@ + + + + + + + + + + + ttg: Recommended Workflow Elements + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Recommended Workflow Elements
+
+
+

pre-commit git hooks

+

It is recommended to use the pre-commit hook manager to enforce coding conventions, perform static code analysis, and manage TTG-specific infrastructure. Simply install pre-commit as described here. Then run pre-commit install in the TTG source directory. File .pre-commit-config.yaml describes the hook configuration used by TTG; feel free to PR additional hooks.

+

Each time you try to commit a changeset in a repo in which pre-commit hooks have been installed each hook will be executed on each file added or changed in the changeset. Some hooks are designed to simply prevent nonconformant source code, documentation, infrastructure files, etc. from being committed, whereas other hooks will change the files to make them conformant. In either case, the commit will fail if any changes are needed. You will need to update the changeset ( by amending the commit with the changes performed by the hooks and/or any changes you performed manually) and try again.

+

N.B. Changes in files performed by the pre-commit hooks are not instantly "seen" by the IDE, so it is recommended to manually run git status after a failed commit.

+

The most important use case for pre-commit hooks is invoking clang-format automatically on each file added or changed in a commit

+

pre-commit git hook: clang-format

+

This hook runs clang-format to enforce the TTG code formatting conventions.

+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_t_t_g-_build-_infrastructure.html b/dox-master/_t_t_g-_build-_infrastructure.html new file mode 100644 index 000000000..e5e2f2f02 --- /dev/null +++ b/dox-master/_t_t_g-_build-_infrastructure.html @@ -0,0 +1,130 @@ + + + + + + + + + + + ttg: TTG Build Infrastructure + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
TTG Build Infrastructure
+
+
+

TTG uses CMake metabuild system. Each dependency can be either:

    +
  • found via find_package (thus it must be discoverable by e.g. adding its installation prefix to CMAKE_PREFIX_PATH), or
  • +
  • downloaded and built from source as a CMake subproject of the TTG repo.
  • +
+

Due to the fragility/sensitivity of ABI of C++ code to seemingly trivial toolchain/platform details (and even the API of preprocessor-infected C/C++ code) it is stronly recommended to let TTG download and build all prerequisites from source! Pre-building dependencies should be left to the package maintainers.

+

Managing subprojects in TTG

+

Dependency source code deployment is managed by the FetchContent module. It pulls the source from the origin (git repo, tarball URL, etc.) to the <BUILDDIR>/_deps/<SUBPROJECT>-src/ directory and sets up the code for building in the <BUILD_DIR>/_deps/<SUBPROJECT>-build directory. Although these directories are located in the build tree, they are made part of the source tree by add_subdirectory. Thus in effect this mechanism is equivalent to manually copying the source tree of the dependency into the TTG source tree. The only difference from building the dependency as a part of TTG and standalone is the CMake state: when configured as a subproject the dependency CMake code will see the cache and non-cache variables and targets defined by TTG itself and the prior dependency subprojects. Thus to be usable as a subproject dependency CMake code needs to be designed to avoid variable and target name clashes with the host project.

+

Keeping the subprojects in sync

+

In order to keep TTG in sync with each subproject, one needs to update the following files:

+
    +
  1. cmake/modules/FindOrFetch*.cmake : these files decide what is the source of the git repository for each project
  2. +
  3. cmake/modules/ExternalDependenciesVersions.cmake: define, for each subproject the {branch, tag, revision hash} to use.
  4. +
+

The build system should update the subproject source when these files are changed. However, for clean rebuild you should, in addition to wiping out CMakeCache.txt, remove the build/_deps directory.

+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_t_t_g-_build-_infrastructure_8md.html b/dox-master/_t_t_g-_build-_infrastructure_8md.html new file mode 100644 index 000000000..b73c80252 --- /dev/null +++ b/dox-master/_t_t_g-_build-_infrastructure_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/TTG-Build-Infrastructure.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/TTG-Build-Infrastructure.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/_workflow_8md.html b/dox-master/_workflow_8md.html new file mode 100644 index 000000000..b8c787984 --- /dev/null +++ b/dox-master/_workflow_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/Workflow.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/Workflow.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__const_8hpp.html b/dox-master/add__member__const_8hpp.html new file mode 100644 index 000000000..a9d6e7784 --- /dev/null +++ b/dox-master/add__member__const_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_const.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_member_const.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::add_member_const_impl< T, typename >
 
struct  boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >
 
struct  boost::callable_traits::add_member_const< T >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T >
using boost::callable_traits::add_member_const_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_const, member_qualifiers_are_illegal_for_this_type >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__const_8hpp_source.html b/dox-master/add__member__const_8hpp_source.html new file mode 100644 index 000000000..7d83bf1d8 --- /dev/null +++ b/dox-master/add__member__const_8hpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_const.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_member_const.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_ADD_MEMBER_CONST_HPP
+
10 #define BOOST_CLBL_TRTS_ADD_MEMBER_CONST_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ add_member_const_hpp
+
17 /*`
+
18 [section:ref_add_member_const add_member_const]
+
19 [heading Header]
+
20 ``#include <boost/callable_traits/add_member_const.hpp>``
+
21 [heading Definition]
+
22 */
+
23 
+
24 template<typename T>
+
25 using add_member_const_t = //see below
+
26 //<-
+
27 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
28 
+ + +
31 
+ +
33  detail::abominable_functions_not_supported_on_this_compiler,
+
34  this_compiler_doesnt_support_abominable_function_types>,
+
35 
+ +
37  member_qualifiers_are_illegal_for_this_type>>;
+
38 #else
+
39 
+ + +
42  member_qualifiers_are_illegal_for_this_type>;
+
43 
+
44 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
45 
+
46 namespace detail {
+
47 
+
48  template<typename T, typename = std::false_type>
+ +
50 
+
51  template<typename T>
+
52  struct add_member_const_impl <T, typename std::is_same<
+
53  add_member_const_t<T>, detail::dummy>::type>
+
54  {
+ +
56  };
+
57 }
+
58 
+
59 //->
+
60 
+
61 template<typename T>
+ +
63 
+
64 //<-
+
65 }} // namespace boost::callable_traits
+
66 //->
+
67 
+
68 
+
69 /*`
+
70 [heading Constraints]
+
71 * `T` must be a function type or a member function pointer type
+
72 * If `T` is a pointer, it may not be cv/ref qualified
+
73 
+
74 [heading Behavior]
+
75 * A substitution failure occurs if the constraints are violated.
+
76 * Adds a member `const` qualifier to `T`, if not already present.
+
77 
+
78 [heading Input/Output Examples]
+
79 [table
+
80  [[`T`] [`add_member_const_t<T>`]]
+
81  [[`int()`] [`int() const`]]
+
82  [[`int(foo::*)()`] [`int(foo::*)() const`]]
+
83  [[`int(foo::*)() &`] [`int(foo::*)() const &`]]
+
84  [[`int(foo::*)() &&`] [`int(foo::*)() const &&`]]
+
85  [[`int(foo::*)() const`] [`int(foo::*)() const`]]
+
86  [[`int(foo::*)() volatile`] [`int(foo::*)() const volatile`]]
+
87  [[`int(foo::*)() transaction_safe`] [`int(foo::*)() const transaction_safe`]]
+
88  [[`int`] [(substitution failure)]]
+
89  [[`int (&)()`] [(substitution failure)]]
+
90  [[`int (*)()`] [(substitution failure)]]
+
91  [[`int foo::*`] [(substitution failure)]]
+
92  [[`int (foo::* const)()`] [(substitution failure)]]
+
93 ]
+
94 
+
95 [heading Example Program]
+
96 [import ../example/add_member_const.cpp]
+
97 [add_member_const]
+
98 [endsect]
+
99 */
+
100 //]
+
101 
+
102 #endif // #ifndef BOOST_CLBL_TRTS_ADD_MEMBER_CONST_HPP
+
103 
+
104 
+
105 
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
+
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_const, member_qualifiers_are_illegal_for_this_type > add_member_const_t
+ + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__cv_8hpp.html b/dox-master/add__member__cv_8hpp.html new file mode 100644 index 000000000..6e9de15f4 --- /dev/null +++ b/dox-master/add__member__cv_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_cv.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_member_cv.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::add_member_cv_impl< T, typename >
 
struct  boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >
 
struct  boost::callable_traits::add_member_cv< T >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T >
using boost::callable_traits::add_member_cv_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_cv, member_qualifiers_are_illegal_for_this_type >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__cv_8hpp_source.html b/dox-master/add__member__cv_8hpp_source.html new file mode 100644 index 000000000..fcf9253da --- /dev/null +++ b/dox-master/add__member__cv_8hpp_source.html @@ -0,0 +1,237 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_cv.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_member_cv.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_ADD_MEMBER_CV_HPP
+
10 #define BOOST_CLBL_TRTS_ADD_MEMBER_CV_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ add_member_cv_hpp
+
17 /*`
+
18 [section:ref_add_member_cv add_member_cv]
+
19 [heading Header]
+
20 ``#include <boost/callable_traits/add_member_cv.hpp>``
+
21 [heading Definition]
+
22 */
+
23 
+
24 template<typename T>
+
25 using add_member_cv_t = //see below
+
26 //<-
+
27 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
28 
+ + +
31 
+ +
33  detail::abominable_functions_not_supported_on_this_compiler,
+
34  this_compiler_doesnt_support_abominable_function_types>,
+
35 
+ +
37  member_qualifiers_are_illegal_for_this_type>>;
+
38 #else
+
39 
+ + +
42  member_qualifiers_are_illegal_for_this_type>;
+
43 
+
44 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
45 
+
46 namespace detail {
+
47 
+
48  template<typename T, typename = std::false_type>
+
49  struct add_member_cv_impl {};
+
50 
+
51  template<typename T>
+
52  struct add_member_cv_impl <T, typename std::is_same<
+
53  add_member_cv_t<T>, detail::dummy>::type>
+
54  {
+ +
56  };
+
57 }
+
58 
+
59 //->
+
60 
+
61 template<typename T>
+ +
63 
+
64 //<-
+
65 }} // namespace boost::callable_traits
+
66 //->
+
67 
+
68 /*`
+
69 [heading Constraints]
+
70 * `T` must be a function type or a member function pointer type
+
71 * If `T` is a pointer, it may not be cv/ref qualified
+
72 
+
73 [heading Behavior]
+
74 * A substitution failure occurs if the constraints are violated.
+
75 * Adds member `const` and `volatile` qualifiers to `T`, if not already present.
+
76 
+
77 [heading Input/Output Examples]
+
78 [table
+
79  [[`T`] [`add_member_cv_t<T>`]]
+
80  [[`int()`] [`int() const volatile`]]
+
81  [[`int(foo::*)()`] [`int(foo::*)() const volatile`]]
+
82  [[`int(foo::*)() &`] [`int(foo::*)() const volatile &`]]
+
83  [[`int(foo::*)() &&`] [`int(foo::*)() const volatile &&`]]
+
84  [[`int(foo::*)() const`] [`int(foo::*)() const volatile`]]
+
85  [[`int(foo::*)() volatile`] [`int(foo::*)() const volatile`]]
+
86  [[`int(foo::*)() transaction_safe`] [`int(foo::*)() const volatile transaction_safe`]]
+
87  [[`int`] [(substitution failure)]]
+
88  [[`int (&)()`] [(substitution failure)]]
+
89  [[`int (*)()`] [(substitution failure)]]
+
90  [[`int foo::*`] [(substitution failure)]]
+
91  [[`int (foo::* const)()`] [(substitution failure)]]
+
92 ]
+
93 
+
94 [heading Example Program]
+
95 [import ../example/add_member_cv.cpp]
+
96 [add_member_cv]
+
97 [endsect]
+
98 */
+
99 //]
+
100 
+
101 #endif
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
+
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_cv, member_qualifiers_are_illegal_for_this_type > add_member_cv_t
+ + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__lvalue__reference_8hpp.html b/dox-master/add__member__lvalue__reference_8hpp.html new file mode 100644 index 000000000..62684f737 --- /dev/null +++ b/dox-master/add__member__lvalue__reference_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_lvalue_reference.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_member_lvalue_reference.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename >
 
struct  boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >
 
struct  boost::callable_traits::add_member_lvalue_reference< T >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T >
using boost::callable_traits::add_member_lvalue_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_lvalue_reference, member_qualifiers_are_illegal_for_this_type >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__lvalue__reference_8hpp_source.html b/dox-master/add__member__lvalue__reference_8hpp_source.html new file mode 100644 index 000000000..7039f2b7d --- /dev/null +++ b/dox-master/add__member__lvalue__reference_8hpp_source.html @@ -0,0 +1,250 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_lvalue_reference.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_member_lvalue_reference.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2018
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_ADD_MEMBER_LVALUE_REFERENCE_HPP
+
10 #define BOOST_CLBL_TRTS_ADD_MEMBER_LVALUE_REFERENCE_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ add_member_lvalue_reference_hpp
+
17 /*`
+
18 [section:ref_add_member_lvalue_reference add_member_lvalue_reference]
+
19 [heading Header]
+
20 ``#include <boost/callable_traits/add_member_lvalue_reference.hpp>``
+
21 [heading Definition]
+
22 */
+
23 //<-
+
24 #ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
+
25 
+
26 template<typename T>
+ +
28  static_assert(std::is_same<T, detail::dummy>::value,
+
29  "Reference member qualifiers are not supported by this configuration.");
+
30 };
+
31 
+
32 #else
+
33 //->
+
34 template<typename T>
+
35 using add_member_lvalue_reference_t = //see below
+
36 //<-
+
37 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
38 
+ + +
41 
+ +
43  detail::abominable_functions_not_supported_on_this_compiler,
+
44  this_compiler_doesnt_support_abominable_function_types>,
+
45 
+ + +
48  member_qualifiers_are_illegal_for_this_type>>;
+
49 #else
+
50 
+ + +
53  member_qualifiers_are_illegal_for_this_type>;
+
54 
+
55 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
56 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
+
57 
+
58 namespace detail {
+
59 
+
60  template<typename T, typename = std::false_type>
+ +
62 
+
63  template<typename T>
+
64  struct add_member_lvalue_reference_impl <T, typename std::is_same<
+
65  add_member_lvalue_reference_t<T>, detail::dummy>::type>
+
66  {
+ +
68  };
+
69 }
+
70 //->
+
71 
+
72 template<typename T>
+ + +
75 
+
76 //<-
+
77 }} // namespace boost::callable_traits
+
78 //->
+
79 
+
80 /*`
+
81 [heading Constraints]
+
82 * `T` must be a function type or a member function pointer type
+
83 * If `T` is a pointer, it may not be cv/ref qualified
+
84 
+
85 [heading Behavior]
+
86 * A substitution failure occurs if the constraints are violated.
+
87 * Adds a member lvalue reference qualifier (`&`) to `T`, if not already present.
+
88 * If an rvalue reference qualifier is present, the lvalue reference qualifier replaces it (in accordance with reference collapsing rules).
+
89 
+
90 [heading Input/Output Examples]
+
91 [table
+
92  [[`T`] [`add_member_lvalue_reference_t<T>`]]
+
93  [[`int()`] [`int() &`]]
+
94  [[`int(foo::*)()`] [`int(foo::*)() &`]]
+
95  [[`int(foo::*)() &`] [`int(foo::*)() &`]]
+
96  [[`int(foo::*)() &&`] [`int(foo::*)() &`]]
+
97  [[`int(foo::*)() const`] [`int(foo::*)() const &`]]
+
98  [[`int(foo::*)() transaction_safe`] [`int(foo::*)() & transaction_safe`]]
+
99  [[`int`] [(substitution failure)]]
+
100  [[`int (&)()`] [(substitution failure)]]
+
101  [[`int (*)()`] [(substitution failure)]]
+
102  [[`int foo::*`] [(substitution failure)]]
+
103  [[`int (foo::* const)()`] [(substitution failure)]]
+
104 ]
+
105 
+
106 [heading Example Program]
+
107 [import ../example/add_member_lvalue_reference.cpp]
+
108 [add_member_lvalue_reference]
+
109 [endsect]
+
110 */
+
111 //]
+
112 
+
113 #endif
+
114 
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
+
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_lvalue_reference, member_qualifiers_are_illegal_for_this_type > add_member_lvalue_reference_t
+ + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__rvalue__reference_8hpp.html b/dox-master/add__member__rvalue__reference_8hpp.html new file mode 100644 index 000000000..74299f91c --- /dev/null +++ b/dox-master/add__member__rvalue__reference_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_rvalue_reference.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_member_rvalue_reference.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename >
 
struct  boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >
 
struct  boost::callable_traits::add_member_rvalue_reference< T >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T >
using boost::callable_traits::add_member_rvalue_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_rvalue_reference, member_qualifiers_are_illegal_for_this_type >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__rvalue__reference_8hpp_source.html b/dox-master/add__member__rvalue__reference_8hpp_source.html new file mode 100644 index 000000000..8ac6adef6 --- /dev/null +++ b/dox-master/add__member__rvalue__reference_8hpp_source.html @@ -0,0 +1,249 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_rvalue_reference.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_member_rvalue_reference.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2018
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_ADD_MEMBER_RVALUE_REFERENCE_HPP
+
10 #define BOOST_CLBL_TRTS_ADD_MEMBER_RVALUE_REFERENCE_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ add_member_rvalue_reference_hpp
+
17 /*`
+
18 [section:ref_add_member_rvalue_reference add_member_rvalue_reference]
+
19 [heading Header]
+
20 ``#include <boost/callable_traits/add_member_rvalue_reference.hpp>``
+
21 [heading Definition]
+
22 */
+
23 //<-
+
24 #ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
+
25 
+
26 template<typename T>
+ +
28  static_assert(std::is_same<T, detail::dummy>::value,
+
29  "Reference member qualifiers are not supported by this configuration.");
+
30 };
+
31 
+
32 #else
+
33 //->
+
34 template<typename T>
+
35 using add_member_rvalue_reference_t = //see below
+
36 //<-
+
37 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
38 
+ + +
41 
+ +
43  detail::abominable_functions_not_supported_on_this_compiler,
+
44  this_compiler_doesnt_support_abominable_function_types>,
+
45 
+ +
47  member_qualifiers_are_illegal_for_this_type>>;
+
48 #else
+
49 
+ + +
52  member_qualifiers_are_illegal_for_this_type>;
+
53 
+
54 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
55 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
+
56 
+
57 namespace detail {
+
58 
+
59  template<typename T, typename = std::false_type>
+ +
61 
+
62  template<typename T>
+
63  struct add_member_rvalue_reference_impl <T, typename std::is_same<
+
64  add_member_rvalue_reference_t<T>, detail::dummy>::type>
+
65  {
+ +
67  };
+
68 }
+
69 //->
+
70 
+
71 
+
72 template<typename T>
+ + +
75 
+
76 //<-
+
77 }} // namespace boost::callable_traits
+
78 //->
+
79 
+
80 /*`
+
81 [heading Constraints]
+
82 * `T` must be a function type or a member function pointer type
+
83 * If `T` is a pointer, it may not be cv/ref qualified
+
84 
+
85 [heading Behavior]
+
86 * A substitution failure occurs if the constraints are violated.
+
87 * Adds a member rvalue reference qualifier (`&&`) to `T`, if not already present.
+
88 * If an lvalue reference qualifier is present, the lvalue reference qualifier remains (in accordance with reference collapsing rules).
+
89 
+
90 [heading Input/Output Examples]
+
91 [table
+
92  [[`T`] [`add_member_rvalue_reference_t<T>`]]
+
93  [[`int()`] [`int() &&`]]
+
94  [[`int(foo::*)()`] [`int(foo::*)() &&`]]
+
95  [[`int(foo::*)() &`] [`int(foo::*)() &`]]
+
96  [[`int(foo::*)() &&`] [`int(foo::*)() &&`]]
+
97  [[`int(foo::*)() const`] [`int(foo::*)() const &&`]]
+
98  [[`int(foo::*)() transaction_safe`] [`int(foo::*)() && transaction_safe`]]
+
99  [[`int`] [(substitution failure)]]
+
100  [[`int (&)()`] [(substitution failure)]]
+
101  [[`int (*)()`] [(substitution failure)]]
+
102  [[`int foo::*`] [(substitution failure)]]
+
103  [[`int (foo::* const)()`] [(substitution failure)]]
+
104 ]
+
105 
+
106 [heading Example Program]
+
107 [import ../example/add_member_rvalue_reference.cpp]
+
108 [add_member_rvalue_reference]
+
109 [endsect][/section:ref_add_member_rvalue_reference]
+
110 */
+
111 //]
+
112 
+
113 #endif
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
+
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_rvalue_reference, member_qualifiers_are_illegal_for_this_type > add_member_rvalue_reference_t
+ + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__volatile_8hpp.html b/dox-master/add__member__volatile_8hpp.html new file mode 100644 index 000000000..c4839db67 --- /dev/null +++ b/dox-master/add__member__volatile_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_volatile.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_member_volatile.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::add_member_volatile_impl< T, typename >
 
struct  boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >
 
struct  boost::callable_traits::add_member_volatile< T >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T >
using boost::callable_traits::add_member_volatile_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_volatile, member_qualifiers_are_illegal_for_this_type >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__member__volatile_8hpp_source.html b/dox-master/add__member__volatile_8hpp_source.html new file mode 100644 index 000000000..2733ad5d1 --- /dev/null +++ b/dox-master/add__member__volatile_8hpp_source.html @@ -0,0 +1,236 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_member_volatile.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_member_volatile.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_ADD_MEMBER_VOLATILE_HPP
+
10 #define BOOST_CLBL_TRTS_ADD_MEMBER_VOLATILE_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ add_member_volatile_hpp
+
17 /*`
+
18 [section:ref_add_member_volatile add_member_volatile]
+
19 [heading Header]
+
20 ``#include <boost/callable_traits/add_member_volatile.hpp>``
+
21 [heading Definition]
+
22 */
+
23 
+
24 template<typename T>
+
25 using add_member_volatile_t = //see below
+
26 //<-
+
27 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
28 
+ + +
31 
+ +
33  detail::abominable_functions_not_supported_on_this_compiler,
+
34  this_compiler_doesnt_support_abominable_function_types>,
+
35 
+ + +
38  member_qualifiers_are_illegal_for_this_type>>;
+
39 #else
+
40 
+ + +
43  member_qualifiers_are_illegal_for_this_type>;
+
44 
+
45 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
46 
+
47 namespace detail {
+
48 
+
49  template<typename T, typename = std::false_type>
+ +
51 
+
52  template<typename T>
+
53  struct add_member_volatile_impl <T, typename std::is_same<
+
54  add_member_volatile_t<T>, detail::dummy>::type>
+
55  {
+ +
57  };
+
58 }
+
59 //->
+
60 
+
61 template<typename T>
+ +
63 
+
64 //<-
+
65 }} // namespace boost::callable_traits
+
66 //->
+
67 
+
68 /*`
+
69 [heading Constraints]
+
70 * `T` must be a function type or a member function pointer type
+
71 * If `T` is a pointer, it may not be cv/ref qualified
+
72 
+
73 [heading Behavior]
+
74 * A substitution failure occurs if the constraints are violated.
+
75 * Adds a member volatile qualifier to `T`, if not already present.
+
76 
+
77 [heading Input/Output Examples]
+
78 [table
+
79  [[`T`] [`add_member_volatile_t<T>`]]
+
80  [[`int()`] [`int() volatile`]]
+
81  [[`int(foo::*)()`] [`int(foo::*)() volatile`]]
+
82  [[`int(foo::*)() &`] [`int(foo::*)() volatile &`]]
+
83  [[`int(foo::*)() &&`] [`int(foo::*)() volatile &&`]]
+
84  [[`int(foo::*)() const`] [`int(foo::*)() const volatile`]]
+
85  [[`int(foo::*)() transaction_safe`] [`int(foo::*)() volatile transaction_safe`]]
+
86  [[`int`] [(substitution failure)]]
+
87  [[`int (&)()`] [(substitution failure)]]
+
88  [[`int (*)()`] [(substitution failure)]]
+
89  [[`int foo::*`] [(substitution failure)]]
+
90  [[`int (foo::* const)()`] [(substitution failure)]]
+
91 ]
+
92 
+
93 [heading Example Program]
+
94 [import ../example/add_member_volatile.cpp]
+
95 [add_member_volatile]
+
96 [endsect][/section:ref_add_member_volatile]
+
97 */
+
98 //]
+
99 
+
100 #endif
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
+
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_volatile, member_qualifiers_are_illegal_for_this_type > add_member_volatile_t
+ + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__noexcept_8hpp.html b/dox-master/add__noexcept_8hpp.html new file mode 100644 index 000000000..e1c2405d2 --- /dev/null +++ b/dox-master/add__noexcept_8hpp.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_noexcept.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_noexcept.hpp File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__noexcept_8hpp_source.html b/dox-master/add__noexcept_8hpp_source.html new file mode 100644 index 000000000..f7109f566 --- /dev/null +++ b/dox-master/add__noexcept_8hpp_source.html @@ -0,0 +1,242 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_noexcept.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_noexcept.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 @file add_noexcept
+
3 
+
4 @Copyright Barrett Adair 2015-2017
+
5 Distributed under the Boost Software License, Version 1.0.
+
6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
7 
+
8 */
+
9 
+
10 #ifndef BOOST_CLBL_TRTS_ADD_NOEXCEPT_HPP
+
11 #define BOOST_CLBL_TRTS_ADD_NOEXCEPT_HPP
+
12 
+ +
14 
+
15 namespace boost { namespace callable_traits {
+
16 
+ +
18 BOOST_CLBL_TRTS_SFINAE_MSG(add_noexcept, cannot_add_noexcept_to_this_type)
+
19 
+
20 #ifndef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
+
21 template<typename T>
+ +
23  static_assert(std::is_same<T, detail::dummy>::value,
+
24  "noexcept types not supported by this configuration.");
+
25 };
+
26 
+
27 template<typename T>
+
28 struct add_noexcept {
+
29  static_assert(std::is_same<T, detail::dummy>::value,
+
30  "noexcept types not supported by this configuration.");
+
31 };
+
32 
+
33 #else
+
34 
+
35 //[ add_noexcept_hpp
+
36 /*`
+
37 [section:ref_add_noexcept add_noexcept]
+
38 [heading Header]
+
39 ``#include <boost/callable_traits/add_noexcept.hpp>``
+
40 [heading Definition]
+
41 */
+
42 
+
43 template<typename T>
+
44 using add_noexcept_t = //see below
+
45 //<-
+ + +
48  cannot_add_noexcept_to_this_type>;
+
49 
+
50 namespace detail {
+
51 
+
52  template<typename T, typename = std::false_type>
+
53  struct add_noexcept_impl {};
+
54 
+
55  template<typename T>
+
56  struct add_noexcept_impl <T, typename std::is_same<
+
57  add_noexcept_t<T>, detail::dummy>::type>
+
58  {
+
59  using type = add_noexcept_t<T>;
+
60  };
+
61 }
+
62 //->
+
63 
+
64 template<typename T>
+
65 struct add_noexcept : detail::add_noexcept_impl<T> {};
+
66 
+
67 //<-
+
68 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
+
69 }} // namespace boost::callable_traits
+
70 //->
+
71 
+
72 /*`
+
73 [heading Constraints]
+
74 * `T` must be one of the following:
+
75  * function type
+
76  * function pointer type
+
77  * function reference type
+
78  * member function pointer type
+
79 * If `T` is a pointer, it may not be cv/ref qualified
+
80 
+
81 [heading Behavior]
+
82 * A substitution failure occurs if the constraints are violated.
+
83 * Adds a `noexcept` specifier to `T`, if not already present.
+
84 
+
85 [heading Input/Output Examples]
+
86 [table
+
87  [[`T`] [`add_noexcept_t<T>`]]
+
88  [[`int()`] [`int() noexcept`]]
+
89  [[`int (&)()`] [`int(&)() noexcept`]]
+
90  [[`int (*)()`] [`int(*)() noexcept`]]
+
91  [[`int(foo::*)()`] [`int(foo::*)() noexcept`]]
+
92  [[`int(foo::*)() &`] [`int(foo::*)() & noexcept`]]
+
93  [[`int(foo::*)() &&`] [`int(foo::*)() && noexcept`]]
+
94  [[`int(foo::*)() const transaction_safe`] [`int(foo::*)() const transaction_safe noexcept`]]
+
95  [[`int(foo::*)() noexcept`] [`int(foo::*)() noexcept`]]
+
96  [[`int`] [(substitution failure)]]
+
97  [[`int foo::*`] [(substitution failure)]]
+
98  [[`int (*&)()`] [(substitution failure)]]
+
99 ]
+
100 
+
101 [heading Example Program]
+
102 [import ../example/add_noexcept.cpp]
+
103 [add_noexcept]
+
104 [endsect]
+
105 */
+
106 //]
+
107 
+
108 #endif // #ifndef BOOST_CLBL_TRTS_ADD_NOEXCEPT_HPP
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+ +
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
+
#define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__transaction__safe_8hpp.html b/dox-master/add__transaction__safe_8hpp.html new file mode 100644 index 000000000..653b4e668 --- /dev/null +++ b/dox-master/add__transaction__safe_8hpp.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_transaction_safe.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_transaction_safe.hpp File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__transaction__safe_8hpp_source.html b/dox-master/add__transaction__safe_8hpp_source.html new file mode 100644 index 000000000..a95b83c60 --- /dev/null +++ b/dox-master/add__transaction__safe_8hpp_source.html @@ -0,0 +1,244 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_transaction_safe.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_transaction_safe.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 @file add_transaction_safe
+
3 
+
4 @Copyright Barrett Adair 2015-2017
+
5 Distributed under the Boost Software License, Version 1.0.
+
6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
7 
+
8 */
+
9 
+
10 #ifndef BOOST_CLBL_TRTS_ADD_TRANSACTION_SAFE_HPP
+
11 #define BOOST_CLBL_TRTS_ADD_TRANSACTION_SAFE_HPP
+
12 
+ +
14 
+
15 namespace boost { namespace callable_traits {
+
16 
+ +
18 BOOST_CLBL_TRTS_SFINAE_MSG(add_transaction_safe, cannot_add_transaction_safe_to_this_type)
+
19 
+
20 #ifndef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
+
21 template<typename T>
+ +
23  static_assert(std::is_same<T, detail::dummy>::value,
+
24  "transaction_safe not supported by this configuration.");
+
25 };
+
26 
+
27 template<typename T>
+ +
29  static_assert(std::is_same<T, detail::dummy>::value,
+
30  "transaction_safe not supported by this configuration.");
+
31 };
+
32 
+
33 #else
+
34 
+
35 //[ add_transaction_safe_hpp
+
36 /*`
+
37 [section:ref_add_transaction_safe add_transaction_safe]
+
38 [heading Header]
+
39 ``#include <boost/callable_traits/add_transaction_safe.hpp>``
+
40 [heading Definition]
+
41 */
+
42 
+
43 
+
44 template<typename T>
+
45 using add_transaction_safe_t = //see below
+
46 //<-
+ + +
49  cannot_add_transaction_safe_to_this_type>;
+
50 
+
51 namespace detail {
+
52 
+
53  template<typename T, typename = std::false_type>
+
54  struct add_transaction_safe_impl {};
+
55 
+
56  template<typename T>
+
57  struct add_transaction_safe_impl <T, typename std::is_same<
+
58  add_transaction_safe_t<T>, detail::dummy>::type>
+
59  {
+
60  using type = add_transaction_safe_t<T>;
+
61  };
+
62 }
+
63 //->
+
64 
+
65 template<typename T>
+
66 struct add_transaction_safe
+
67  : detail::add_transaction_safe_impl<T> {};
+
68 
+
69 //<-
+
70 #endif // #ifndef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
+
71 }} // namespace boost::callable_traits
+
72 //->
+
73 
+
74 /*`
+
75 [heading Constraints]
+
76 * `T` must be one of the following:
+
77  * function type
+
78  * function pointer type
+
79  * function reference type
+
80  * member function pointer type
+
81 * If `T` is a pointer, it may not be cv/ref qualified
+
82 
+
83 [heading Behavior]
+
84 * A substitution failure occurs if the constraints are violated.
+
85 * Adds the `transaction_safe` specifier to `T`, if not already present.
+
86 
+
87 [heading Input/Output Examples]
+
88 [table
+
89  [[`T`] [`add_transaction_safe_t<T>`]]
+
90  [[`int()`] [`int() transaction_safe`]]
+
91  [[`int (&)()`] [`int(&)() transaction_safe`]]
+
92  [[`int (*)()`] [`int(*)() transaction_safe`]]
+
93  [[`int(foo::*)()`] [`int(foo::*)() transaction_safe`]]
+
94  [[`int(foo::*)() &`] [`int(foo::*)() & transaction_safe`]]
+
95  [[`int(foo::*)() &&`] [`int(foo::*)() && transaction_safe`]]
+
96  [[`int(foo::*)() const`] [`int(foo::*)() const transaction_safe`]]
+
97  [[`int(foo::*)() transaction_safe`] [`int(foo::*)() transaction_safe`]]
+
98  [[`int`] [(substitution failure)]]
+
99  [[`int foo::*`] [(substitution failure)]]
+
100  [[`int (*&)()`] [(substitution failure)]]
+
101 ]
+
102 
+
103 [heading Example Program]
+
104 [import ../example/add_transaction_safe.cpp]
+
105 [add_transaction_safe]
+
106 [endsect]
+
107 */
+
108 //]
+
109 
+
110 #endif // #ifndef BOOST_CLBL_TRTS_ADD_TRANSACTION_SAFE_HPP
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+ +
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
+
#define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__varargs_8hpp.html b/dox-master/add__varargs_8hpp.html new file mode 100644 index 000000000..a6419e6a7 --- /dev/null +++ b/dox-master/add__varargs_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_varargs.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
add_varargs.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::add_varargs_impl< T, typename >
 
struct  boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >
 
struct  boost::callable_traits::add_varargs< T >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T >
using boost::callable_traits::add_varargs_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_varargs, varargs_are_illegal_for_this_type >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/add__varargs_8hpp_source.html b/dox-master/add__varargs_8hpp_source.html new file mode 100644 index 000000000..43d4b2f28 --- /dev/null +++ b/dox-master/add__varargs_8hpp_source.html @@ -0,0 +1,224 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/add_varargs.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
add_varargs.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_ADD_VARARGS_HPP
+
10 #define BOOST_CLBL_TRTS_ADD_VARARGS_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ add_varargs_hpp
+
17 /*`
+
18 [section:ref_add_varargs add_varargs]
+
19 [heading Header]
+
20 ``#include <boost/callable_traits/add_varargs.hpp>``
+
21 [heading Definition]
+
22 */
+
23 
+
24 template<typename T>
+
25 using add_varargs_t = //see below
+
26 //<-
+ + +
29  varargs_are_illegal_for_this_type>;
+
30 
+
31 namespace detail {
+
32 
+
33  template<typename T, typename = std::false_type>
+
34  struct add_varargs_impl {};
+
35 
+
36  template<typename T>
+
37  struct add_varargs_impl <T, typename std::is_same<
+
38  add_varargs_t<T>, detail::dummy>::type>
+
39  {
+ +
41  };
+
42 }
+
43 //->
+
44 
+
45 template<typename T>
+ +
47 
+
48 //<-
+
49 }} // namespace boost::callable_traits
+
50 //->
+
51 
+
52 /*`
+
53 [heading Constraints]
+
54 * `T` must be one of the following:
+
55  * function type
+
56  * function pointer type
+
57  * function reference type
+
58  * member function pointer type
+
59 * If `T` is a pointer, it may not be cv/ref qualified
+
60 
+
61 [heading Behavior]
+
62 * A substitution failure occurs if the constraints are violated.
+
63 * Adds C-style variadics (`...`) to the signature of `T`, if not already present.
+
64 
+
65 [heading Input/Output Examples]
+
66 [table
+
67  [[`T`] [`add_varargs_t<T>`]]
+
68  [[`int()`] [`int(...)`]]
+
69  [[`int(int)`] [`int(int, ...)`]]
+
70  [[`int (&)()`] [`int(&)(...)`]]
+
71  [[`int (*)()`] [`int(*)(...)`]]
+
72  [[`int (*)(...)`] [`int(*)(...)`]]
+
73  [[`int(foo::*)()`] [`int(foo::*)(...)`]]
+
74  [[`int(foo::*)() &`] [`int(foo::*)(...) &`]]
+
75  [[`int(foo::*)() &&`] [`int(foo::*)(...) &&`]]
+
76  [[`int(foo::*)() const`] [`int(foo::*)(...) const`]]
+
77  [[`int(foo::*)() transaction_safe`] [`int(foo::*)(...) transaction_safe`]]
+
78  [[`int`] [(substitution failure)]]
+
79  [[`int foo::*`] [(substitution failure)]]
+
80  [[`int (*&)()`] [(substitution failure)]]
+
81 ]
+
82 
+
83 [heading Example Program]
+
84 [import ../example/add_varargs.cpp]
+
85 [add_varargs]
+
86 [endsect]
+
87 */
+
88 //]
+
89 
+
90 #endif
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
detail::try_but_fail_if_invalid< typename detail::traits< T >::add_varargs, varargs_are_illegal_for_this_type > add_varargs_t
Definition: add_varargs.hpp:29
+ + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/allocator_8h.html b/dox-master/allocator_8h.html new file mode 100644 index 000000000..14c7f7627 --- /dev/null +++ b/dox-master/allocator_8h.html @@ -0,0 +1,127 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/allocator.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
allocator.h File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/allocator_8h_source.html b/dox-master/allocator_8h_source.html new file mode 100644 index 000000000..8bc47243c --- /dev/null +++ b/dox-master/allocator_8h_source.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/allocator.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
allocator.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 5/11/21.
+
3 //
+
4 
+
5 #ifndef TTG_SERIALIZATION_STD_ALLOCATOR_H
+
6 #define TTG_SERIALIZATION_STD_ALLOCATOR_H
+
7 
+ +
9 
+
10 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
11 
+
12 namespace ttg::detail {
+
13  template <typename Archive, typename T>
+
14  inline static constexpr bool is_boost_serializable_v<Archive, std::allocator<T>> = is_boost_archive_v<Archive>;
+
15  template <typename Archive, typename T>
+
16  inline static constexpr bool is_boost_serializable_v<Archive, const std::allocator<T>> = is_boost_archive_v<Archive>;
+
17 } // namespace ttg::detail
+
18 
+
19 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
20 
+
21 #endif // TTG_SERIALIZATION_STD_ALLOCATOR_H
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/annotated.html b/dox-master/annotated.html new file mode 100644 index 000000000..28dc98f83 --- /dev/null +++ b/dox-master/annotated.html @@ -0,0 +1,550 @@ + + + + + + + + + + + ttg: Class List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Nboost
 Ncallable_traits
 Nserialization
 NstdSTL namespace
 Ctuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >
 Ctuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >
 Ctuple_size< ttg::meta::typelist< Ts... > >
 Ctuple_element< I, ttg::meta::typelist< Ts... > >
 Chash< ttg::Void >
 NTCB_SPAN_NAMESPACE_NAME
 Ndetail
 Cspan
 NttgTop-level TTG namespace contains runtime-neutral functionality
 Nbase
 Ndetail
 Ndevice
 Nmeta
 NoverloadPlace for overloading/instantiating hash and other functionality
 CTerminalBase
 CTTBaseA base class for all template tasks
 CBinaryTreeBroadcastGeneric binary broadcast of a value to a set of {key,value} pairs
 Cresumable_task_events
 CeventGeneric one-time event
 Cresumable_taskTask that can be resumed after some events occur
 Cresumable_task_state
 CEdgeEdge is used to connect In and Out terminals
 Cterminals_to_edges
 Cterminals_to_edges< std::tuple< termsT... > >
 Cedges_to_output_terminals
 Cedges_to_output_terminals< std::tuple< edgesT... > >
 CTTGTemplate task graph implementation
 CBinaryTreeReduceGeneric binary reduction of a set of key-value pairs
 Cruntime_traits
 Cruntime_traits< Runtime::PaRSEC >
 Cruntime_traits< Runtime::MADWorld >
 Cdefault_data_descriptorProvides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor
 Cdefault_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >Default_data_descriptor for trivially-copyable types
 Cdefault_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >Default_data_descriptor for types that support 2-stage serialization (metadata first, then the rest) for implementing zero-copy transfers
 CSplitMetadataDescriptor
 Chas_split_metadata
 Chas_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >
 CInTerminalBaseBase type for input terminals receiving messages annotated by task IDs of type keyT
 CIn
 COutTerminalBase
 COut
 CTraverseTraverses a graph of ops in depth-first manner following out edges
 CSinkTTA data sink for one input
 CDebugger
 CDotPrints the graph to a std::string in the format understood by GraphViz's dot program
 Ciovec
 CMultiIndex
 CBinarySpanningTreeBinary spanning tree of integers in the [0,size) interval
 CVoidA complete version of void
 CWorld
 Nttg_madnessThis contains MADNESS-based TTG functionality
 CBufferA runtime-managed buffer mirrored between host and device memory
 CTT
 CPtr
 Cdevicescratch
 CTTValue
 CWorldImpl
 Nttg_parsecThis contains PaRSEC-based TTG functionality
 Ndetail
 CBuffer
 Cdevicescratch
 CTT
 CPtr
 CTTValue
 Cptr
 Cmsg_header_t
 CWorldImpl
 CCallableWrapTT
 CCallableWrapTTArgs
 CCallableWrapTTArgsAsTypelist
 CCallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >
 CCallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
 CCallableWrapTTUnwrapTypelist
 CCallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >
 CCallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
 Cfunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
 Cfunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
 Cfunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
 Cfunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
 Cpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
 Cpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
 Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
 Cttg_data_descriptor
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/apply__member__pointer_8hpp.html b/dox-master/apply__member__pointer_8hpp.html new file mode 100644 index 000000000..1d07fad57 --- /dev/null +++ b/dox-master/apply__member__pointer_8hpp.html @@ -0,0 +1,165 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/apply_member_pointer.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
apply_member_pointer.hpp File Reference
+
+
+ + + + + + + + + + + + + + +

+Classes

struct  boost::callable_traits::detail::make_member_pointer< T, C, true >
 
struct  boost::callable_traits::detail::make_member_pointer< void, C, true >
 
struct  boost::callable_traits::detail::make_member_pointer< T, C, false >
 
struct  boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename >
 
struct  boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >
 
struct  boost::callable_traits::apply_member_pointer< T, C >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + + + + +

+Typedefs

template<typename T , typename C >
using boost::callable_traits::detail::make_member_pointer_t = typename make_member_pointer< T, C >::type
 
template<typename T , typename C >
using boost::callable_traits::apply_member_pointer_t = detail::sfinae_try< detail::fallback_if_invalid< typename detail::traits< T >::template apply_member_pointer< C >, typename detail::make_member_pointer< T, C >::type >, detail::fail_when_same< void, T, members_cannot_have_a_type_of_void >, detail::fail_if<!std::is_class< C >::value, second_template_argument_must_be_a_class_or_struct > >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/apply__member__pointer_8hpp_source.html b/dox-master/apply__member__pointer_8hpp_source.html new file mode 100644 index 000000000..f068e9db5 --- /dev/null +++ b/dox-master/apply__member__pointer_8hpp_source.html @@ -0,0 +1,267 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/apply_member_pointer.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
apply_member_pointer.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_APPLY_MEMBER_POINTER_HPP
+
10 #define BOOST_CLBL_TRTS_APPLY_MEMBER_POINTER_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+ +
17 BOOST_CLBL_TRTS_SFINAE_MSG(apply_member_pointer, members_cannot_have_a_type_of_void)
+
18 BOOST_CLBL_TRTS_SFINAE_MSG(apply_member_pointer, second_template_argument_must_be_a_class_or_struct)
+
19 
+
20 namespace detail {
+
21 
+
22  template<typename T, typename C, bool = std::is_class<C>::value>
+ +
24 
+
25  template<typename T, typename C>
+
26  struct make_member_pointer<T, C, true> {
+
27  using type = typename std::remove_reference<T>::type C::*;
+
28  };
+
29 
+
30  template<typename C>
+
31  struct make_member_pointer<void, C, true> {
+
32  using type = invalid_type;
+
33  };
+
34 
+
35  template<typename T, typename C>
+
36  struct make_member_pointer<T, C, false> {
+ +
38  };
+
39 
+
40  template<typename T, typename C>
+ +
42 }
+
43 
+
44 //[ apply_member_pointer_hpp
+
45 /*`
+
46 [section:ref_apply_member_pointer apply_member_pointer]
+
47 [heading Header]
+
48 ``#include <boost/callable_traits/apply_member_pointer.hpp>``
+
49 [heading Definition]
+
50 */
+
51 
+
52 template<typename T, typename C>
+
53 using apply_member_pointer_t = //see below
+
54 //<-
+ + + + +
59 
+ +
61 
+ +
63  second_template_argument_must_be_a_class_or_struct> >;
+
64 
+
65 namespace detail {
+
66 
+
67  template<typename T, typename C, typename = std::false_type>
+ +
69 
+
70  template<typename T, typename C>
+
71  struct apply_member_pointer_impl <T, C, typename std::is_same<
+
72  apply_member_pointer_t<T, C>, detail::dummy>::type>
+
73  {
+ +
75  };
+
76 }
+
77 
+
78 //->
+
79 
+
80 template<typename T, typename C>
+ +
82 
+
83 //<-
+
84 }} // namespace boost::callable_traits
+
85 //->
+
86 
+
87 /*`
+
88 [heading Constraints]
+
89 * `T` may be any type except `void`
+
90 * `C` must be a user-defined type
+
91 
+
92 [heading Behavior]
+
93 * A substitution failure occurs if the constraints are violated.
+
94 * When `T` is a function, function pointer (unqualified), or function reference, then the aliased type is a member function pointer of `C` with the same parameters and return type.
+
95 * When `T` is a member function pointer (unqualified) of any type, the aliased type is a member function pointer of `C` with the same parameters and return type.
+
96 * Otherwise, the aliased type is a member data pointer equivalent to `std::remove_reference_t<T> C::*`.
+
97 
+
98 [heading Input/Output Examples]
+
99 [table
+
100  [[`T`] [`apply_member_pointer_t<T, foo>`]]
+
101  [[`int()`] [`int(foo::*)()`]]
+
102  [[`int (&)()`] [`int(foo::*)()`]]
+
103  [[`int (*)()`] [`int(foo::*)()`]]
+
104  [[`int(bar::*)()`] [`int(foo::*)()`]]
+
105  [[`int(bar::*)() &`] [`int(foo::*)() &`]]
+
106  [[`int(bar::*)() &&`] [`int(foo::*)() &&`]]
+
107  [[`int(bar::*)() const`] [`int(foo::*)() const`]]
+
108  [[`int(bar::*)() transaction_safe`] [`int(foo::*)() transaction_safe`]]
+
109  [[`int bar::*`] [`int foo::*`]]
+
110  [[`int`] [`int foo::*`]]
+
111  [[`int &`] [`int foo::*`]]
+
112  [[`const int &`] [`const int foo::*`]]
+
113  [[`int (*const)()`] [`int (*const foo::*)()`]]
+
114  [[`void`] [(substitution failure)]]
+
115 ]
+
116 
+
117 [heading Example Program]
+
118 [import ../example/apply_member_pointer.cpp]
+
119 [apply_member_pointer]
+
120 [endsect]
+
121 */
+
122 //]
+
123 #endif
+ +
typename std::conditional< std::is_reference< T >::value, reference_error, invalid_type >::type error_type
Definition: utility.hpp:28
+
typename std::conditional< std::is_same< T, invalid_type >::value, Fallback, T >::type fallback_if_invalid
Definition: utility.hpp:70
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
typename make_member_pointer< T, C >::type make_member_pointer_t
+
typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
+
detail::sfinae_try< detail::fallback_if_invalid< typename detail::traits< T >::template apply_member_pointer< C >, typename detail::make_member_pointer< T, C >::type >, detail::fail_when_same< void, T, members_cannot_have_a_type_of_void >, detail::fail_if<!std::is_class< C >::value, second_template_argument_must_be_a_class_or_struct > > apply_member_pointer_t
+ +
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
+
#define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
+ + + + + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/apply__return_8hpp.html b/dox-master/apply__return_8hpp.html new file mode 100644 index 000000000..e30593770 --- /dev/null +++ b/dox-master/apply__return_8hpp.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/apply_return.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
apply_return.hpp File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/apply__return_8hpp_source.html b/dox-master/apply__return_8hpp_source.html new file mode 100644 index 000000000..9be038000 --- /dev/null +++ b/dox-master/apply__return_8hpp_source.html @@ -0,0 +1,248 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/apply_return.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
apply_return.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_APPLY_RETURN_HPP
+
10 #define BOOST_CLBL_TRTS_APPLY_RETURN_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+ +
17 BOOST_CLBL_TRTS_SFINAE_MSG(apply_return, invalid_types_for_apply_return)
+
18 
+
19 namespace detail {
+
20 
+
21  template<typename T, typename R>
+ + +
24  };
+
25 
+
26  //special case
+
27  template<typename... Args, typename R>
+
28  struct apply_return_helper<std::tuple<Args...>, R> {
+
29  using type = R(Args...);
+
30  };
+
31 }
+
32 
+
33 //[ apply_return_hpp
+
34 /*`
+
35 [section:ref_apply_return apply_return]
+
36 [heading Header]
+
37 ``#include <boost/callable_traits/apply_return.hpp>``
+
38 [heading Definition]
+
39 */
+
40 
+
41 template<typename T, typename R>
+
42 using apply_return_t = //see below
+
43 //<-
+ + +
46  invalid_types_for_apply_return>;
+
47 
+
48 namespace detail {
+
49 
+
50  template<typename T, typename R, typename = std::false_type>
+
51  struct apply_return_impl {};
+
52 
+
53  template<typename T, typename R>
+
54  struct apply_return_impl <T, R, typename std::is_same<
+
55  apply_return_t<T, R>, detail::dummy>::type>
+
56  {
+ +
58  };
+
59 }
+
60  //->
+
61 
+
62 template<typename T, typename R>
+ +
64 
+
65 //<-
+
66 }} // namespace boost::callable_traits
+
67 //->
+
68 
+
69 /*`
+
70 [heading Constraints]
+
71 * `T` must one of the following:
+
72  * `std::tuple` template instantiation
+
73  * function
+
74  * function pointer
+
75  * function reference
+
76  * member function pointer
+
77  * member data pointer
+
78 * If `T` is a pointer, it may not be cv/ref qualified
+
79 
+
80 [heading Behavior]
+
81 * When `T` is `std::tuple<Args...>`, the aliased type is `R(Args...)`.
+
82 * When `T` is a function, function pointer, function reference, or member function pointer, the aliased type's return type is `R`, but is otherwise identical to `T`.
+
83 * When `T` is a member data pointer of class `foo` to a `U` type (such that `T` is `U foo::*`), the aliased type is `R foo::*`.
+
84 
+
85 [heading Input/Output Examples]
+
86 [table
+
87  [[`T`] [`apply_return_t<T, float>`]]
+
88  [[`std::tuple<int, int>`] [`float(int, int)`]]
+
89  [[`int()`] [`float()`]]
+
90  [[`int (&)()`] [`float(&)()`]]
+
91  [[`int (*)()`] [`float(*)()`]]
+
92  [[`int (*)(...)`] [`float(*)()`]]
+
93  [[`int(foo::*)()`] [`float(foo::*)()`]]
+
94  [[`int(foo::*)() &`] [`float(foo::*)() &`]]
+
95  [[`int(foo::*)() &&`] [`float(foo::*)() &&`]]
+
96  [[`int(foo::*)() const`] [`float(foo::*)() const`]]
+
97  [[`int(foo::*)() transaction_safe`] [`float(foo::*)() transaction_safe`]]
+
98  [[`int foo::*`] [`float foo::*`]]
+
99  [[`int`] [(substitution failure)]]
+
100  [[`int (*const)()`] [(substitution failure)]]
+
101 ]
+
102 
+
103 [heading Example Program]
+
104 [/import ../example/apply_return.cpp]
+
105 [apply_return]
+
106 [endsect]
+
107 */
+
108 //]
+
109 #endif
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
detail::try_but_fail_if_invalid< typename detail::apply_return_helper< T, R >::type, invalid_types_for_apply_return > apply_return_t
+ +
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
+
#define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
+ + + +
typename detail::traits< T >::template apply_return< R > type
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/archive_8h.html b/dox-master/archive_8h.html new file mode 100644 index 000000000..e1a5275cd --- /dev/null +++ b/dox-master/archive_8h.html @@ -0,0 +1,514 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends/boost/archive.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
archive.h File Reference
+
+
+
#include <boost/archive/binary_iarchive.hpp>
+#include <boost/archive/binary_oarchive.hpp>
+#include <boost/iostreams/device/array.hpp>
+#include <boost/iostreams/stream.hpp>
+#include <boost/archive/impl/basic_binary_iarchive.ipp>
+#include <boost/archive/impl/basic_binary_iprimitive.ipp>
+#include <boost/archive/impl/basic_binary_oarchive.ipp>
+#include <boost/archive/impl/basic_binary_oprimitive.ipp>
+
+ + + + + + + +

+Classes

class  ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >
 optimized data-only serializer More...
 
class  ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >
 optimized data-only deserializer for boost_optimized_oarchive More...
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+ + + +

+Macros

#define BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(x)
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

using ttg::detail::boost_counting_oarchive = boost_optimized_oarchive< counting_streambuf >
 an archive that counts the size of serialized representation of an object More...
 
using ttg::detail::boost_iovec_oarchive = boost_optimized_oarchive< iovec_ostreambuf >
 an archive that constructs an IOVEC (= sequence of {pointer,size} pairs) representation of an object More...
 
using ttg::detail::boost_buffer_oarchive = boost_optimized_oarchive< boost::iostreams::stream< boost::iostreams::basic_array_sink< char > >>
 an archive that constructs serialized representation of an object in a memory buffer More...
 
using ttg::detail::boost_byte_oarchive = boost_optimized_oarchive< byte_ostreambuf >
 an archive that constructs serialized representation of an object in a memory buffer, in an optimized manner More...
 
using ttg::detail::boost_iovec_iarchive = boost_optimized_iarchive< iovec_istreambuf >
 the deserializer for boost_iovec_oarchive More...
 
using ttg::detail::boost_buffer_iarchive = boost_optimized_iarchive< boost::iostreams::stream< boost::iostreams::basic_array_source< char > >>
 the deserializer for boost_buffer_oarchive More...
 
using ttg::detail::boost_byte_iarchive = boost_optimized_iarchive< byte_istreambuf >
 the deserializer for boost_byte_oarchive More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename Archive , typename T >
void ttg::detail::oarchive_save_override_optimized_dispatch (Archive &ar, const T &t)
 
template<typename Archive , typename T >
void ttg::detail::iarchive_load_override_optimized_dispatch (Archive &ar, T &t)
 
auto ttg::detail::make_boost_buffer_oarchive (void *const buf, std::size_t size, std::size_t buf_offset=0)
 constructs a boost_buffer_oarchive object More...
 
template<std::size_t N>
auto ttg::detail::make_boost_buffer_oarchive (char(&buf)[N], std::size_t buf_offset=0)
 constructs a boost_buffer_oarchive object More...
 
auto ttg::detail::make_boost_buffer_iarchive (const void *const buf, std::size_t size, std::size_t buf_offset=0)
 constructs a boost_buffer_iarchive object More...
 
template<std::size_t N>
auto ttg::detail::make_boost_buffer_iarchive (const char(&buf)[N], std::size_t buf_offset=0)
 constructs a boost_buffer_iarchive object More...
 
 BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_counting_oarchive)
 
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_counting_oarchive)
 
 BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_iovec_oarchive)
 
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_iovec_oarchive)
 
 BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_buffer_oarchive)
 
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_buffer_oarchive)
 
 BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_iovec_iarchive)
 
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_iovec_iarchive)
 
 BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_buffer_iarchive)
 
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_buffer_iarchive)
 
 BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_byte_oarchive)
 
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_byte_oarchive)
 
 BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_byte_iarchive)
 
 BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_byte_iarchive)
 
+

Macro Definition Documentation

+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE

+ +
+
+ + + + + + + + +
#define BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE( x)
+
+Value:
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(x); \
+
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(x::base_type);
+
+

Definition at line 411 of file archive.h.

+ +
+
+

Function Documentation

+ +

◆ BOOST_SERIALIZATION_REGISTER_ARCHIVE() [1/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_buffer_iarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_REGISTER_ARCHIVE() [2/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_buffer_oarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_REGISTER_ARCHIVE() [3/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_byte_iarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_REGISTER_ARCHIVE() [4/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_byte_oarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_REGISTER_ARCHIVE() [5/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_counting_oarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_REGISTER_ARCHIVE() [6/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_iovec_iarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_REGISTER_ARCHIVE() [7/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_REGISTER_ARCHIVE (ttg::detail::boost_iovec_oarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE() [1/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_buffer_iarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE() [2/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_buffer_oarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE() [3/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_byte_iarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE() [4/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_byte_oarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE() [5/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_counting_oarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE() [6/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_iovec_iarchive )
+
+ +
+
+ +

◆ BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE() [7/7]

+ +
+
+ + + + + + + + +
BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE (ttg::detail::boost_iovec_oarchive )
+
+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/archive_8h_source.html b/dox-master/archive_8h_source.html new file mode 100644 index 000000000..93f820474 --- /dev/null +++ b/dox-master/archive_8h_source.html @@ -0,0 +1,563 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends/boost/archive.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
archive.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 5/17/21.
+
3 //
+
4 
+
5 #ifndef TTG_SERIALIZATION_BACKENDS_BOOST_ARCHIVE_H
+
6 #define TTG_SERIALIZATION_BACKENDS_BOOST_ARCHIVE_H
+
7 
+
8 #include <boost/archive/binary_iarchive.hpp>
+
9 #include <boost/archive/binary_oarchive.hpp>
+
10 #include <boost/iostreams/device/array.hpp>
+
11 #include <boost/iostreams/stream.hpp>
+
12 
+
13 // explicitly instantiate for this type of binary stream
+
14 #include <boost/archive/impl/basic_binary_iarchive.ipp>
+
15 #include <boost/archive/impl/basic_binary_iprimitive.ipp>
+
16 #include <boost/archive/impl/basic_binary_oarchive.ipp>
+
17 #include <boost/archive/impl/basic_binary_oprimitive.ipp>
+
18 
+
19 namespace ttg::detail {
+
20 
+
21  // used to serialize data only
+
22  template <typename Archive, typename T>
+
23  void oarchive_save_override_optimized_dispatch(Archive& ar, const T& t) {
+
24  if constexpr (boost::is_array<T>::value) {
+
25  boost::archive::detail::save_array_type<Archive>::invoke(ar, t);
+
26  return;
+
27  } else if constexpr (boost::is_enum<T>::value) {
+
28  boost::archive::detail::save_enum_type<Archive>::invoke(ar, t);
+
29  return;
+
30  } else {
+
31  std::conditional_t<boost::is_pointer<T>::value, T, std::add_pointer_t<const T>> tptr;
+
32  if constexpr (boost::is_pointer<T>::value) {
+
33  static_assert(!std::is_polymorphic_v<T>,
+
34  "oarchive_save_override does not support serialization of polymorphic types");
+
35  tptr = t;
+
36  } else
+
37  tptr = &t;
+
38  if constexpr (boost::mpl::equal_to<boost::serialization::implementation_level<T>,
+
39  boost::mpl::int_<boost::serialization::primitive_type>>::value) {
+
40  boost::archive::detail::save_non_pointer_type<Archive>::save_primitive::invoke(ar, *tptr);
+
41  } else
+
42  boost::archive::detail::save_non_pointer_type<Archive>::save_only::invoke(ar, *tptr);
+
43  }
+
44  }
+
45 
+
46  // used to serialize data only
+
47  template <typename Archive, typename T>
+ +
49  if constexpr (boost::is_array<T>::value) {
+
50  boost::archive::detail::load_array_type<Archive>::invoke(ar, t);
+
51  return;
+
52  } else if constexpr (boost::is_enum<T>::value) {
+
53  boost::archive::detail::load_enum_type<Archive>::invoke(ar, t);
+
54  return;
+
55  } else {
+
56  std::conditional_t<boost::is_pointer<T>::value, T, std::add_pointer_t<T>> tptr;
+
57  if constexpr (boost::is_pointer<T>::value) {
+
58  static_assert(!std::is_polymorphic_v<T>,
+
59  "iarchive_load_override_optimized_dispatch does not support serialization of polymorphic types");
+
60  using Value = std::remove_pointer_t<T>;
+
61  std::allocator<Value> alloc; // instead use the allocator associated with the archive?
+
62  auto* buf = alloc.allocate(sizeof(Value));
+
63  t = new (buf) Value;
+
64  tptr = t;
+
65  } else
+
66  tptr = &t;
+
67  if constexpr (boost::mpl::equal_to<boost::serialization::implementation_level<T>,
+
68  boost::mpl::int_<boost::serialization::primitive_type>>::value) {
+
69  boost::archive::detail::load_non_pointer_type<Archive>::load_primitive::invoke(ar, *tptr);
+
70  } else
+
71  boost::archive::detail::load_non_pointer_type<Archive>::load_only::invoke(ar, *tptr);
+
72  }
+
73  }
+
74 
+
76 
+
90  template <typename StreamOrStreambuf>
+ +
92  : private StreamOrStreambuf,
+
93  public boost::archive::binary_oarchive_impl<boost_optimized_oarchive<StreamOrStreambuf>,
+
94  std::ostream::char_type, std::ostream::traits_type> {
+
95  public:
+
96  using pbase_type = StreamOrStreambuf;
+
97  using base_type = boost::archive::binary_oarchive_impl<boost_optimized_oarchive<StreamOrStreambuf>,
+
98  std::ostream::char_type, std::ostream::traits_type>;
+
99  // if pbase_type is derived from std::streambuf can use this information to avoid virtual function calls and inline
+
100  static constexpr bool pbase_derived_from_stdstreambuf = std::is_base_of_v<std::streambuf, pbase_type>;
+
101 
+
102  private:
+ +
104  friend class boost::archive::detail::common_oarchive<StreamOrStreambuf>;
+
105  friend base_type;
+
106 
+
107  const auto& pbase() const { return static_cast<const pbase_type&>(*this); }
+
108  auto& pbase() { return static_cast<pbase_type&>(*this); }
+
109  const auto& base() const { return static_cast<const base_type&>(*this); }
+
110  auto& base() { return static_cast<base_type&>(*this); }
+
111 
+
112  public:
+ +
114  : pbase_type{}, base_type(this->pbase(), boost::archive::no_header | boost::archive::no_codecvt){};
+
115 
+
116  boost_optimized_oarchive(StreamOrStreambuf sbuf)
+
117  : pbase_type(std::move(sbuf))
+
118  , base_type(this->pbase(), boost::archive::no_header | boost::archive::no_codecvt){};
+
119 
+
120  template <typename Arg>
+ +
122  : pbase_type(std::forward<Arg>(arg))
+
123  , base_type(this->pbase(), boost::archive::no_header | boost::archive::no_codecvt){};
+
124 
+
127 
+
128  template <class T>
+
129  void save_override(const T& t) {
+ +
131  }
+
132 
+
133  void save_override(const boost::archive::class_id_optional_type& /* t */) {}
+
134 
+
135  void save_override(const boost::archive::version_type& t) {}
+
136  void save_override(const boost::serialization::item_version_type& t) {}
+
137 
+
138  void save_override(const boost::archive::class_id_type& t) {}
+
139  void save_override(const boost::archive::class_id_reference_type& t) {}
+
140 
+
142 
+
143  void save_object(const void* x, const boost::archive::detail::basic_oserializer& bos) { abort(); }
+
144 
+
147 
+
148  // default saving of primitives.
+
149  template<class T>
+
150  void save(const T & t)
+
151  {
+
152  save_binary(& t, sizeof(T));
+
153  }
+
154 
+
155  // trap usage of invalid uninitialized boolean which would
+
156  // otherwise crash on load.
+
157  void save(const bool t){
+
158  BOOST_ASSERT(0 == static_cast<int>(t) || 1 == static_cast<int>(t));
+
159  save_binary(& t, sizeof(t));
+
160  }
+
161 
+
162  public:
+
163 
+
164  // the optimized save_array dispatches to save_binary
+
165  template <class ValueType>
+
166  void save_array(boost::serialization::array_wrapper<ValueType> const& a, unsigned int)
+
167  {
+
168  save_binary(a.address(),a.count()*sizeof(ValueType));
+
169  }
+
170 
+
171  void save_binary(const void *address, std::size_t count) {
+
172  if constexpr (pbase_derived_from_stdstreambuf) { // if we were given a streambuf use it directly ...
+
173  using Elem = std::ostream::char_type;
+
174  static_assert(sizeof(Elem) == 1);
+
175  count = (count + sizeof(Elem) - 1) / sizeof(Elem);
+
176  std::streamsize scount = static_cast<StreamOrStreambuf&>(this->pbase())
+
177  .sputn(static_cast<const Elem*>(address), static_cast<std::streamsize>(count));
+
178  assert(count == static_cast<std::size_t>(scount));
+
179  }
+
180  else { // ... else let boost::archive::basic_binary_oprimitive handle via std::stringbuf
+
181  // (and associated virtual function calls ... no inlining for you)
+
182  this->base().save_binary(address, count);
+
183  }
+
184  }
+
185 
+
187 
+
188  template <class T>
+
189  auto& operator<<(const T& t) {
+
190  this->save_override(t);
+
191  return *this;
+
192  }
+
193 
+
194  // the & operator
+
195  template <class T>
+
196  auto& operator&(const T& t) {
+
197  return *this << t;
+
198  }
+
199 
+
200  const auto& streambuf() const {
+
201  if constexpr (pbase_derived_from_stdstreambuf) {
+
202  return static_cast<const StreamOrStreambuf&>(this->pbase());
+
203  }
+
204  else {
+
205  return this->pbase();
+
206  }
+
207  }
+
208  const auto& stream() const { return this->pbase(); }
+
209  };
+
210 
+ +
213 
+ +
216 
+ + +
220 
+ +
223 
+
225 
+
230  inline auto make_boost_buffer_oarchive(void* const buf, std::size_t size, std::size_t buf_offset = 0) {
+
231  assert(buf_offset <= size);
+
232  return ttg::detail::boost_byte_oarchive(ttg::detail::byte_ostreambuf(static_cast<char*>(buf) + buf_offset, size - buf_offset));
+
233  }
+
234 
+
236 
+
241  template <std::size_t N>
+
242  inline auto make_boost_buffer_oarchive(char (&buf)[N], std::size_t buf_offset = 0) {
+
243  assert(buf_offset <= N);
+
244  return ttg::detail::boost_byte_oarchive(ttg::detail::byte_ostreambuf(&(buf[buf_offset], N - buf_offset)));
+
245  }
+
246 
+
248  template <typename StreamOrStreambuf>
+ +
250  : private StreamOrStreambuf,
+
251  public boost::archive::binary_iarchive_impl<boost_optimized_iarchive<StreamOrStreambuf>,
+
252  std::ostream::char_type, std::ostream::traits_type> {
+
253  public:
+
254  using pbase_type = StreamOrStreambuf;
+
255  using base_type = boost::archive::binary_iarchive_impl<boost_optimized_iarchive, std::ostream::char_type,
+
256  std::ostream::traits_type>;
+
257  // if pbase_type is derived from std::streambuf can use this information to avoid virtual function calls and inline
+
258  static constexpr bool pbase_derived_from_stdstreambuf = std::is_base_of_v<std::streambuf, pbase_type>;
+
259 
+
260  private:
+ +
262  friend class boost::archive::detail::common_iarchive<boost_optimized_iarchive>;
+
263  friend base_type;
+
264 
+
265  const auto& pbase() const { return static_cast<const pbase_type&>(*this); }
+
266  auto& pbase() { return static_cast<pbase_type&>(*this); }
+
267  const auto& base() const { return static_cast<const base_type&>(*this); }
+
268  auto& base() { return static_cast<base_type&>(*this); }
+
269 
+
270  public:
+ +
272  : pbase_type{}, base_type(this->pbase(), boost::archive::no_header | boost::archive::no_codecvt){};
+
273 
+
274  boost_optimized_iarchive(StreamOrStreambuf sbuf)
+
275  : pbase_type(std::move(sbuf))
+
276  , base_type(this->pbase(), boost::archive::no_header | boost::archive::no_codecvt){};
+
277 
+
278  template <typename Arg>
+ +
280  : pbase_type(std::forward<Arg>(arg))
+
281  , base_type(this->pbase(), boost::archive::no_header | boost::archive::no_codecvt){};
+
282 
+
285 
+
286  template <class T>
+
287  void load_override(T& t) {
+ +
289  }
+
290 
+
291  void load_override(boost::archive::class_id_optional_type& /* t */) {}
+
292 
+
293  void load_override(boost::archive::version_type& t) {}
+
294  void load_override(boost::serialization::item_version_type& t) {}
+
295 
+
296  void load_override(boost::archive::class_id_type& t) {}
+
297  void load_override(boost::archive::class_id_reference_type& t) {}
+
298 
+
300 
+
301  void load_object(void* x, const boost::archive::detail::basic_oserializer& bos) { abort(); }
+
302 
+
305 
+
306  // main template for serialization of primitive types
+
307  template<class T>
+
308  void load(T & t){
+
309  load_binary(& t, sizeof(T));
+
310  }
+
311 
+
313  // fundamental types that need special treatment
+
314 
+
315  // trap usage of invalid uninitialized boolean
+
316  void load(bool & t){
+
317  load_binary(& t, sizeof(t));
+
318  int i = t;
+
319  BOOST_ASSERT(0 == i || 1 == i);
+
320  (void)i; // warning suppression for release builds.
+
321  }
+
322 
+
323  public:
+
324 
+
325  // the optimized load_array dispatches to load_binary
+
326  template <class ValueType>
+
327  void load_array(boost::serialization::array_wrapper<ValueType>& a, unsigned int)
+
328  {
+
329  load_binary(a.address(),a.count()*sizeof(ValueType));
+
330  }
+
331 
+ +
333  void *address,
+
334  std::size_t count
+
335  ) {
+
336  if constexpr (pbase_derived_from_stdstreambuf) { // if we were given a streambuf use it directly ...
+
337  using Elem = std::ostream::char_type;
+
338  static_assert(sizeof(Elem) == 1);
+
339  std::streamsize s = static_cast<std::streamsize>(count);
+
340  std::streamsize scount = static_cast<StreamOrStreambuf&>(this->pbase()).sgetn(static_cast<Elem*>(address), s);
+
341  assert(scount == count);
+
342  }
+
343  else { // ... else let boost::archive::basic_binary_iprimitive handle via std::stringbuf
+
344  // (and associated virtual function calls ... no inlining for you)
+
345  this->base().load_binary(address, count);
+
346  }
+
347  }
+
348 
+
350 
+
351  template <class T>
+
352  auto& operator>>(T& t) {
+
353  this->load_override(t);
+
354  return *this;
+
355  }
+
356 
+
357  // the & operator
+
358  template <class T>
+
359  auto& operator&(T& t) {
+
360  return *this >> t;
+
361  }
+
362 
+
363  const auto& streambuf() const {
+
364  if constexpr (pbase_derived_from_stdstreambuf) {
+
365  return static_cast<const StreamOrStreambuf&>(this->pbase());
+
366  }
+
367  else {
+
368  return this->pbase();
+
369  }
+
370  }
+
371  const auto& stream() const { return this->pbase(); }
+
372  };
+
373 
+ +
376 
+ + +
380 
+ +
383 
+
385 
+
390  inline auto make_boost_buffer_iarchive(const void* const buf, std::size_t size, std::size_t buf_offset = 0) {
+
391  assert(buf_offset <= size);
+
392  return ttg::detail::boost_byte_iarchive(ttg::detail::byte_istreambuf(static_cast<const char*>(buf) + buf_offset, size - buf_offset));
+
393  }
+
394 
+
396 
+
401  template <std::size_t N>
+
402  inline auto make_boost_buffer_iarchive(const char (&buf)[N], std::size_t buf_offset = 0) {
+
403  assert(buf_offset <= N);
+
404  return ttg::detail::boost_byte_iarchive(ttg::detail::byte_istreambuf((&(buf[buf_offset]), N - buf_offset)));
+
405  }
+
406 
+
407 } // namespace ttg::detail
+
408 
+
409 // for some reason need to use array optimization for the base as well ... dispatch to optimized version in
+
410 // array_wrapper.hpp:serializer(ar,version) for some reason uses Archive::base_type using apple clang 12.0.5.12050022
+
411 #define BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(x) \
+
412  BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(x); \
+
413  BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION(x::base_type);
+
414 
+ + + + + + + + + + + + + + +
429 
+
430 #undef BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE
+
431 
+
432 #endif // TTG_SERIALIZATION_BACKENDS_BOOST_ARCHIVE_H
+
BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_counting_oarchive)
+
#define BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(x)
Definition: archive.h:411
+
optimized data-only deserializer for boost_optimized_oarchive
Definition: archive.h:252
+
void load_override(boost::archive::class_id_type &t)
Definition: archive.h:296
+
void load_binary(void *address, std::size_t count)
Definition: archive.h:332
+
boost::archive::binary_iarchive_impl< boost_optimized_iarchive, std::ostream::char_type, std::ostream::traits_type > base_type
Definition: archive.h:256
+ + + +
void load_override(boost::archive::version_type &t)
Definition: archive.h:293
+
void load_array(boost::serialization::array_wrapper< ValueType > &a, unsigned int)
Definition: archive.h:327
+
const auto & stream() const
Definition: archive.h:371
+
boost_optimized_iarchive(StreamOrStreambuf sbuf)
Definition: archive.h:274
+
void load_object(void *x, const boost::archive::detail::basic_oserializer &bos)
Definition: archive.h:301
+ +
void load_override(boost::serialization::item_version_type &t)
Definition: archive.h:294
+
void load_override(boost::archive::class_id_reference_type &t)
Definition: archive.h:297
+ +
friend class boost::archive::save_access
Definition: archive.h:261
+
void load_override(boost::archive::class_id_optional_type &)
Definition: archive.h:291
+ + +
const auto & streambuf() const
Definition: archive.h:363
+
static constexpr bool pbase_derived_from_stdstreambuf
Definition: archive.h:258
+ +
optimized data-only serializer
Definition: archive.h:94
+
const auto & streambuf() const
Definition: archive.h:200
+ +
void save_binary(const void *address, std::size_t count)
Definition: archive.h:171
+
void save_override(const boost::archive::version_type &t)
Definition: archive.h:135
+ +
const auto & stream() const
Definition: archive.h:208
+
static constexpr bool pbase_derived_from_stdstreambuf
Definition: archive.h:100
+ +
void save_override(const boost::archive::class_id_reference_type &t)
Definition: archive.h:139
+
void save_override(const boost::serialization::item_version_type &t)
Definition: archive.h:136
+ + +
void save_override(const boost::archive::class_id_type &t)
Definition: archive.h:138
+ +
void save_override(const boost::archive::class_id_optional_type &)
Definition: archive.h:133
+
boost_optimized_oarchive(StreamOrStreambuf sbuf)
Definition: archive.h:116
+
void save_object(const void *x, const boost::archive::detail::basic_oserializer &bos)
Definition: archive.h:143
+
friend class boost::archive::save_access
Definition: archive.h:103
+
boost::archive::binary_oarchive_impl< boost_optimized_oarchive< StreamOrStreambuf >, std::ostream::char_type, std::ostream::traits_type > base_type
Definition: archive.h:98
+ +
void save_array(boost::serialization::array_wrapper< ValueType > const &a, unsigned int)
Definition: archive.h:166
+ +
streambuf that writes bytes to a buffer in memory
Definition: stream.h:101
+
streambuf that writes bytes to a buffer in memory
Definition: stream.h:71
+ + +
void oarchive_save_override_optimized_dispatch(Archive &ar, const T &t)
Definition: archive.h:23
+
auto make_boost_buffer_iarchive(const void *const buf, std::size_t size, std::size_t buf_offset=0)
constructs a boost_buffer_iarchive object
Definition: archive.h:390
+
boost_optimized_oarchive< byte_ostreambuf > boost_byte_oarchive
an archive that constructs serialized representation of an object in a memory buffer,...
Definition: archive.h:222
+
auto make_boost_buffer_oarchive(void *const buf, std::size_t size, std::size_t buf_offset=0)
constructs a boost_buffer_oarchive object
Definition: archive.h:230
+
void iarchive_load_override_optimized_dispatch(Archive &ar, T &t)
Definition: archive.h:48
+
boost_optimized_iarchive< byte_istreambuf > boost_byte_iarchive
the deserializer for boost_byte_oarchive
Definition: archive.h:382
+
int size(World world=default_execution_context())
Definition: run.h:89
+
void abort()
Aborts the TTG program using the default backend's ttg_abort method.
Definition: run.h:62
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/args_8hpp.html b/dox-master/args_8hpp.html new file mode 100644 index 000000000..bc96ecca7 --- /dev/null +++ b/dox-master/args_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/args.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
args.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::args_impl< T, Container, typename >
 
struct  boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >
 
struct  boost::callable_traits::args< T, Container >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T , template< class... > class Container = std::tuple>
using boost::callable_traits::args_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::template expand_args< Container >, cannot_expand_the_parameter_list_of_first_template_argument >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/args_8hpp_source.html b/dox-master/args_8hpp_source.html new file mode 100644 index 000000000..fbd25f6d4 --- /dev/null +++ b/dox-master/args_8hpp_source.html @@ -0,0 +1,232 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/args.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
args.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_ARGS_HPP
+
10 #define BOOST_CLBL_TRTS_ARGS_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ args_hpp
+
17 /*`[section:ref_args args]
+
18 [heading Header]
+
19 ``#include <boost/callable_traits/args.hpp>``
+
20 [heading Definition]
+
21 */
+
22 
+
23 template<typename T, template<class...> class Container = std::tuple>
+
24 using args_t = //see below
+
25 //<-
+ +
27  typename detail::traits<
+
28  detail::shallow_decay<T>>::template expand_args<Container>,
+
29  cannot_expand_the_parameter_list_of_first_template_argument>;
+
30 
+
31 namespace detail {
+
32 
+
33  template<typename T, template<class...> class Container,
+
34  typename = std::false_type>
+
35  struct args_impl {};
+
36 
+
37  template<typename T, template<class...> class Container>
+
38  struct args_impl <T, Container, typename std::is_same<
+
39  args_t<T, Container>, detail::dummy>::type>
+
40  {
+ +
42  };
+
43 }
+
44 
+
45 //->
+
46 
+
47 template<typename T,
+
48  template<class...> class Container = std::tuple>
+
49 struct args : detail::args_impl<T, Container> {};
+
50 
+
51 //<-
+
52 }} // namespace boost::callable_traits
+
53 //->
+
54 
+
55 /*`
+
56 [heading Constraints]
+
57 * `T` must be one of the following:
+
58  * function
+
59  * function pointer
+
60  * function reference
+
61  * member function pointer
+
62  * member data pointer
+
63  * user-defined type with a non-overloaded `operator()`
+
64  * type of a non-generic lambda
+
65 
+
66 [heading Behavior]
+
67 * When the constraints are violated, a substitution failure occurs.
+
68 * When `T` is a function, function pointer, or function reference, the aliased type is `Container` instantiated with the function's parameter types.
+
69 * When `T` is a function object, the aliased type is `Container` instantiated with the `T::operator()` parameter types.
+
70 * When `T` is a member function pointer, the aliased type is a `Container` instantiation, where the first type argument is a reference to the parent class of `T`, qualified according to the member qualifiers on `T`, such that the first type is equivalent to `boost::callable_traits::qualified_class_of_t<T>`. The subsequent type arguments, if any, are the parameter types of the member function.
+
71 * When `T` is a member data pointer, the aliased type is `Container` with a single element, which is a `const` reference to the parent class of `T`.
+
72 
+
73 [heading Input/Output Examples]
+
74 [table
+
75  [[`T`] [`args_t<T>`]]
+
76  [[`void(float, char, int)`] [`std::tuple<float, char, int>`]]
+
77  [[`void(*)(float, char, int)`] [`std::tuple<float, char, int`]]
+
78  [[`void(&)(float, char, int)`] [`std::tuple<float, char, int`]]
+
79  [[`void(float, char, int) const &&`][`std::tuple<float, char, int>`]]
+
80  [[`void(*)()`] [`std::tuple<>`]]
+
81  [[`void(foo::* const &)(float, char, int)`] [`std::tuple<foo&, float, char, int>`]]
+
82  [[`int(foo::*)(int) const`] [`std::tuple<const foo&, int>`]]
+
83  [[`void(foo::*)() volatile &&`] [`std::tuple<volatile foo &&>`]]
+
84  [[`int foo::*`] [`std::tuple<const foo&>`]]
+
85  [[`const int foo::*`] [`std::tuple<const foo&>`]]
+
86  [[`int`] [(substitution failure)]]
+
87  [[`int (*const)()`] [(substitution failure)]]
+
88 ]
+
89 
+
90 [heading Example Program]
+
91 [import ../example/args.cpp]
+
92 [args]
+
93 [endsect]
+
94 */
+
95 //]
+
96 
+
97 #endif // #ifndef BOOST_CLBL_TRTS_ARGS_HPP
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
Definition: utility.hpp:79
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::template expand_args< Container >, cannot_expand_the_parameter_list_of_first_template_argument > args_t
Definition: args.hpp:29
+ + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/array_8h.html b/dox-master/array_8h.html new file mode 100644 index 000000000..0b0e87808 --- /dev/null +++ b/dox-master/array_8h.html @@ -0,0 +1,127 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/array.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
array.h File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/array_8h_source.html b/dox-master/array_8h_source.html new file mode 100644 index 000000000..40b46adb7 --- /dev/null +++ b/dox-master/array_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/array.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
array.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 5/11/21.
+
3 //
+
4 
+
5 #ifndef TTG_SERIALIZATION_STD_ARRAY_H
+
6 #define TTG_SERIALIZATION_STD_ARRAY_H
+
7 
+ +
9 
+
10 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
+
11 // MADNESS supports std::array serialization by default
+
12 #endif
+
13 
+
14 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
15 #include <boost/serialization/array.hpp>
+
16 
+
17 namespace ttg::detail {
+
18  template <typename Archive, typename T, std::size_t N>
+
19  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, std::array<T, N>> =
+
20  is_boost_serializable_v<Archive, T>;
+
21  template <typename Archive, typename T, std::size_t N>
+
22  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, const std::array<T, N>> =
+
23  is_boost_serializable_v<Archive, const T>;
+
24 } // namespace ttg::detail
+
25 
+
26 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
27 
+
28 #endif // TTG_SERIALIZATION_STD_ARRAY_H
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/backends_8h.html b/dox-master/backends_8h.html new file mode 100644 index 000000000..2b113e096 --- /dev/null +++ b/dox-master/backends_8h.html @@ -0,0 +1,128 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
backends.h File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/backends_8h_source.html b/dox-master/backends_8h_source.html new file mode 100644 index 000000000..c69198186 --- /dev/null +++ b/dox-master/backends_8h_source.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
backends.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 5/3/21.
+
3 //
+
4 
+
5 #ifndef TTG_SERIALIZATION_BACKENDS_H
+
6 #define TTG_SERIALIZATION_BACKENDS_H
+
7 
+ + +
10 
+
11 #endif // TTG_SERIALIZATION_ALL_H
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/backtrace_8cpp.html b/dox-master/backtrace_8cpp.html new file mode 100644 index 000000000..63d2cbb3f --- /dev/null +++ b/dox-master/backtrace_8cpp.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: ttg/ttg/util/backtrace.cpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
backtrace.cpp File Reference
+
+
+
#include "backtrace.h"
+#include <cstring>
+#include <iterator>
+#include <sstream>
+
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/backtrace_8cpp_source.html b/dox-master/backtrace_8cpp_source.html new file mode 100644 index 000000000..63d5422a3 --- /dev/null +++ b/dox-master/backtrace_8cpp_source.html @@ -0,0 +1,310 @@ + + + + + + + + + + + ttg: ttg/ttg/util/backtrace.cpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
backtrace.cpp
+
+
+Go to the documentation of this file.
1 //
+
2 // backtrace.cpp
+
3 //
+
4 // Copyright (C) 1996 Limit Point Systems, Inc.
+
5 //
+
6 // Author: Curtis Janssen <cljanss@limitpt.com>
+
7 // Maintainer: LPS
+
8 //
+
9 // This file is part of the SC Toolkit.
+
10 //
+
11 // The SC Toolkit is free software; you can redistribute it and/or modify
+
12 // it under the terms of the GNU Library General Public License as published by
+
13 // the Free Software Foundation; either version 2, or (at your option)
+
14 // any later version.
+
15 //
+
16 // The SC Toolkit is distributed in the hope that it will be useful,
+
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
19 // GNU Library General Public License for more details.
+
20 //
+
21 // You should have received a copy of the GNU Library General Public License
+
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
+
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
24 //
+
25 // The U.S. Government is granted a limited license as per AL 91-7.
+
26 //
+
27 
+
28 #include "backtrace.h"
+
29 
+
30 #include <cstring>
+
31 #include <iterator>
+
32 #include <sstream>
+
33 
+
34 #if defined(TTG_HAS_LIBUNWIND)
+
35 #define UNW_LOCAL_ONLY
+
36 #include <libunwind.h>
+
37 #else
+
38 #if __has_include(<execinfo.h>)
+
39 #define TTG_HAS_BACKTRACE
+
40 #include <execinfo.h>
+
41 #endif
+
42 #endif
+
43 
+
44 #if __has_include(<cxxabi.h>)
+
45 #include <cxxabi.h>
+
46 #define TTG_HAS_CXA_DEMANGLE
+
47 #endif
+
48 
+
49 namespace ttg {
+
50  namespace detail {
+
51  Backtrace::Backtrace(const std::string &prefix) : prefix_(prefix) {
+
52 #ifdef TTG_HAS_LIBUNWIND
+
53  {
+
54  unw_cursor_t cursor;
+
55  unw_context_t uc;
+
56  unw_word_t ip, sp, offp;
+
57  int frame = 0;
+
58 
+
59  unw_getcontext(&uc);
+
60  unw_init_local(&cursor, &uc);
+
61  while (unw_step(&cursor) > 0) {
+
62  unw_get_reg(&cursor, UNW_REG_IP, &ip);
+
63  unw_get_reg(&cursor, UNW_REG_SP, &sp);
+
64  char name[32768];
+
65  unw_get_proc_name(&cursor, name, 32768, &offp);
+
66  std::ostringstream oss;
+
67  oss << prefix_ << "frame " << frame << ": "
+
68  << "ip = 0x" << (long)ip << " sp = 0x" << (long)sp << " symbol = " << __demangle(name);
+
69  frames_.push_back(oss.str());
+
70  ++frame;
+
71  }
+
72  }
+
73 #elif defined(TTG_HAS_BACKTRACE) // !TTG_HAS_LIBUNWIND
+
74  void *stack_addrs[1024];
+
75  const int naddrs = backtrace(stack_addrs, 1024);
+
76  char **frame_symbols = backtrace_symbols(stack_addrs, naddrs);
+
77  // starting @ 1 to skip this function
+
78  for (int i = 1; i < naddrs; ++i) {
+
79  // extract (mangled) function name
+
80  // parsing frame_symbols[i] is OS-specific
+
81  // for unknown OS ... just return the whole string
+
82  std::string mangled_function_name = frame_symbols[i];
+
83 #if defined(__APPLE__)
+
84  {
+
85  // "frame_id /path/to/exec address symbol"
+
86  std::istringstream iss(std::string(frame_symbols[i]), std::istringstream::in);
+
87  std::string frame, file, address;
+
88  iss >> frame >> file >> address >> mangled_function_name;
+
89  }
+
90 #elif defined(__linux__)
+
91  {
+
92  // "/path/to/exec(symbol+0x...) [address]"
+
93  // parse from the back to avoid dealing with parentheses in the path
+
94  const auto last_right_bracket = mangled_function_name.rfind(']');
+
95  const auto last_left_bracket = mangled_function_name.rfind('[', last_right_bracket);
+
96  const auto last_right_parens = mangled_function_name.rfind(')', last_left_bracket);
+
97  const auto offset = mangled_function_name.rfind("+0x", last_right_parens);
+
98  const auto last_left_parens = mangled_function_name.rfind('(', last_right_parens);
+
99  if (last_left_parens + 1 < mangled_function_name.size()) {
+
100  mangled_function_name = mangled_function_name.substr(last_left_parens + 1, offset - last_left_parens - 1);
+
101  }
+
102  }
+
103 #endif
+
104 
+
105  std::ostringstream oss;
+
106  oss << prefix_ << "frame " << i << ": return address = " << stack_addrs[i] << std::endl
+
107  << " symbol = " << __demangle(mangled_function_name);
+
108  frames_.push_back(oss.str());
+
109  }
+
110  free(frame_symbols);
+
111 #else // !TTG_HAS_LIBUNWIND && !TTG_HAS_BACKTRACE
+
112 #if defined(SIMPLE_STACK)
+
113  int bottom = 0x1234;
+
114  void **topstack = (void **)0xffffffffL;
+
115  void **botstack = (void **)0x70000000L;
+
116  // signal handlers can put weird things in the return address slot,
+
117  // so it is usually best to keep toptext large.
+
118  void **toptext = (void **)0xffffffffL;
+
119  void **bottext = (void **)0x00010000L;
+
120 #endif // SIMPLE_STACK
+
121 
+
122 #if (defined(linux) && defined(i386))
+
123  topstack = (void **)0xc0000000;
+
124  botstack = (void **)0xb0000000;
+
125 #endif
+
126 #if (defined(__OSF1__) && defined(i860))
+
127  topstack = (void **)0x80000000;
+
128  botstack = (void **)0x70000000;
+
129 #endif
+
130 
+
131 #if defined(SIMPLE_STACK)
+
132  // This will go through the stack assuming a simple linked list
+
133  // of pointers to the previous frame followed by the return address.
+
134  // It trys to be careful and avoid creating new exceptions, but there
+
135  // are no guarantees.
+
136  void **stack = (void **)&bottom;
+
137 
+
138  void **frame_pointer = (void **)stack[3];
+
139  while (frame_pointer >= botstack && frame_pointer < topstack && frame_pointer[1] >= bottext &&
+
140  frame_pointer[1] < toptext) {
+
141  std::ostringstream oss;
+
142  oss << prefix_ << "frame: " << (void *)frame_pointer;
+
143  oss << " retaddr: " << frame_pointer[1];
+
144  frames_.push_back(oss.str());
+
145 
+
146  frame_pointer = (void **)*frame_pointer;
+
147  }
+
148 #endif // SIMPLE_STACK
+
149 #endif // TTG_HAS_BACKTRACE
+
150  }
+
151 
+
152  Backtrace::Backtrace(const Backtrace &other) : frames_(other.frames_), prefix_(other.prefix_) {}
+
153 
+
154  std::string Backtrace::str(size_t nframes_to_skip) const {
+
155  std::ostringstream oss;
+
156  std::copy(frames_.begin() + nframes_to_skip, frames_.end(), std::ostream_iterator<std::string>(oss, "\n"));
+
157  return oss.str();
+
158  }
+
159 
+
160  std::string Backtrace::__demangle(const std::string &symbol) {
+
161  std::string dsymbol;
+
162 #ifdef TTG_HAS_CXA_DEMANGLE
+
163  {
+
164  int status;
+
165  char *dsymbol_char = abi::__cxa_demangle(symbol.c_str(), 0, 0, &status);
+
166  if (status == 0) { // success
+
167  dsymbol = dsymbol_char;
+
168  free(dsymbol_char);
+
169  } else // fail
+
170  dsymbol = symbol;
+
171  }
+
172 #else
+
173  dsymbol = symbol;
+
174 #endif
+
175  return dsymbol;
+
176  }
+
177 
+
178  } // namespace detail
+
179 } // namespace ttg
+ + +
std::string str(const size_t nframes_to_skip=0) const
Definition: backtrace.cpp:154
+
Backtrace(const std::string &prefix=std::string(""))
Definition: backtrace.cpp:51
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/backtrace_8h.html b/dox-master/backtrace_8h.html new file mode 100644 index 000000000..aaecf6436 --- /dev/null +++ b/dox-master/backtrace_8h.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: ttg/ttg/util/backtrace.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
backtrace.h File Reference
+
+
+
#include <string>
+#include <vector>
+
+ + + +

+Classes

class  ttg::detail::Backtrace
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/backtrace_8h_source.html b/dox-master/backtrace_8h_source.html new file mode 100644 index 000000000..9fb9cd823 --- /dev/null +++ b/dox-master/backtrace_8h_source.html @@ -0,0 +1,185 @@ + + + + + + + + + + + ttg: ttg/ttg/util/backtrace.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
backtrace.h
+
+
+Go to the documentation of this file.
1 //
+
2 // backtrace.h
+
3 //
+
4 // Copyright (C) 1996 Limit Point Systems, Inc.
+
5 //
+
6 // Author: Curtis Janssen <cljanss@limitpt.com>
+
7 // Maintainer: LPS
+
8 //
+
9 // This file is part of the SC Toolkit.
+
10 //
+
11 // The SC Toolkit is free software; you can redistribute it and/or modify
+
12 // it under the terms of the GNU Library General Public License as published by
+
13 // the Free Software Foundation; either version 2, or (at your option)
+
14 // any later version.
+
15 //
+
16 // The SC Toolkit is distributed in the hope that it will be useful,
+
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
19 // GNU Library General Public License for more details.
+
20 //
+
21 // You should have received a copy of the GNU Library General Public License
+
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
+
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
24 //
+
25 // The U.S. Government is granted a limited license as per AL 91-7.
+
26 //
+
27 
+
28 #ifndef TTG_UTIL_CORE_BACKTRACE_H_
+
29 #define TTG_UTIL_CORE_BACKTRACE_H_
+
30 
+
31 #include <string>
+
32 #include <vector>
+
33 
+
34 namespace ttg {
+
35  namespace detail {
+
50  class Backtrace {
+
51  public:
+
55  Backtrace(const std::string& prefix = std::string(""));
+
56  Backtrace(const Backtrace&);
+
57 
+
61  bool empty() const { return frames_.empty(); }
+
62 
+
69  std::string str(const size_t nframes_to_skip = 0) const;
+
70 
+
71  private:
+
73  std::vector<std::string> frames_;
+
75  std::string prefix_;
+
76 
+
78  static std::string __demangle(const std::string& symbol);
+
79  };
+
80  } // namespace detail
+
81 } // namespace ttg
+
82 
+
83 #endif // TTG_UTIL_CORE_BACKTRACE_H_
+ +
bool empty() const
Definition: backtrace.h:61
+
std::string str(const size_t nframes_to_skip=0) const
Definition: backtrace.cpp:154
+
Backtrace(const std::string &prefix=std::string(""))
Definition: backtrace.cpp:51
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/base_2terminal_8h.html b/dox-master/base_2terminal_8h.html new file mode 100644 index 000000000..05b95b4dc --- /dev/null +++ b/dox-master/base_2terminal_8h.html @@ -0,0 +1,155 @@ + + + + + + + + + + + ttg: ttg/ttg/base/terminal.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
terminal.h File Reference
+
+
+
#include <string>
+#include <vector>
+#include "ttg/fwd.h"
+
+ + + + + +

+Classes

class  ttg::TerminalBase
 
struct  ttg::meta::is_terminal< T >
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::meta
 
+ + + + +

+Variables

template<typename T , typename = void>
constexpr bool ttg::meta::is_terminal_v = false
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/base_2terminal_8h_source.html b/dox-master/base_2terminal_8h_source.html new file mode 100644 index 000000000..1695d65f9 --- /dev/null +++ b/dox-master/base_2terminal_8h_source.html @@ -0,0 +1,278 @@ + + + + + + + + + + + ttg: ttg/ttg/base/terminal.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
terminal.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_BASE_TERMINAL_H
+
2 #define TTG_BASE_TERMINAL_H
+
3 
+
4 #include <string>
+
5 #include <vector>
+
6 #include "ttg/fwd.h"
+
7 
+
8 namespace ttg {
+
9 
+
12  class TerminalBase {
+
13  public:
+
14  static constexpr bool is_a_terminal = true;
+
15  bool is_pull_terminal = false; //< Default is push terminal
+
16 
+
18  enum class Type {
+
19  Write,
+
20  Read,
+
21  Consume
+
22  };
+
23 
+
24  private:
+
25  TTBase *tt; //< Pointer to containing operation
+
26  size_t n = 0; //< Index of terminal
+
27  std::string name = ""; //< Name of terminal
+
28  bool connected = false; //< True if is connected
+
29  Type type;
+
30  std::string key_type_str; //< String describing key type
+
31  std::string value_type_str; //< String describing value type
+
32 
+
33  std::vector<TerminalBase *> successors_;
+
34  std::vector<TerminalBase *> predecessors_; //This is required for pull terminals.
+
35 
+
36  TerminalBase(const TerminalBase &) = delete;
+
37  TerminalBase(TerminalBase &&) = delete;
+
38 
+
39  friend class TTBase;
+
40  template <typename keyT, typename valueT>
+
41  friend class In;
+
42  template <typename keyT, typename valueT>
+
43  friend class Out;
+
44 
+
45  protected:
+
46  TerminalBase(Type type) : type(type) {}
+
47 
+
48  void set(TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str,
+
49  const std::string &value_type_str, Type type) {
+
50  this->tt = tt;
+
51  this->n = index;
+
52  this->name = name;
+
53  this->key_type_str = key_type_str;
+
54  this->value_type_str = value_type_str;
+
55  this->type = type;
+
56  }
+
57 
+
60  void connect_base(TerminalBase *successor) {
+
61  successors_.push_back(successor);
+
62  connected = true;
+
63  successor->connected = true;
+
64  }
+
65 
+
66  void connect_pull(TerminalBase *predecessor) {
+
67  predecessors_.push_back(predecessor);
+
68  predecessor->connected = true;
+
69  connected = true;
+
70  }
+
71 
+
72  public:
+
74  TTBase *get_tt() const {
+
75  if (!tt) throw "ttg::TerminalBase:get_tt() but tt is null";
+
76  return tt;
+
77  }
+
78 
+
80  size_t get_index() const {
+
81  if (!tt) throw "ttg::TerminalBase:get_index() but tt is null";
+
82  return n;
+
83  }
+
84 
+
86  const std::string &get_name() const {
+
87  if (!tt) throw "ttg::TerminalBase:get_name() but tt is null";
+
88  return name;
+
89  }
+
90 
+
92  const std::string &get_key_type_str() const {
+
93  if (!tt) throw "ttg::TerminalBase:get_key_type_str() but tt is null";
+
94  return key_type_str;
+
95  }
+
96 
+
98  const std::string &get_value_type_str() const {
+
99  if (!tt) throw "ttg::TerminalBase:get_value_type_str() but tt is null";
+
100  return value_type_str;
+
101  }
+
102 
+
104  Type get_type() const { return this->type; }
+
105 
+
107  const std::vector<TerminalBase *> &get_connections() const { return successors_; }
+
108  // Get connections to predecessors
+
109  const std::vector<TerminalBase *> &get_predecessors() const {return predecessors_; }
+
110 
+
111  //Connect Container pull terminals without incoming terminals
+
112  //This is a hack, is there a better way?
+ +
114  p->connected = true;
+
115  }
+
116 
+
118  bool is_connected() const { return connected; }
+
119 
+
124  virtual void connect(TerminalBase *in) = 0;
+
125 
+
126  virtual ~TerminalBase() = default;
+
127  };
+
128 
+
129  namespace meta {
+
130  template <typename T, typename = void>
+
131  inline constexpr bool is_terminal_v = false;
+
132  template <typename T>
+
133  inline constexpr bool is_terminal_v<T, std::is_base_of<TerminalBase, T>> = true;
+
134  template <typename T>
+
135  struct is_terminal : std::bool_constant<is_terminal_v<T>> {};
+
136  } // namespace meta
+
137 } // namespace ttg
+
138 
+
139 #endif // TTG_BASE_TERMINAL_H
+ + +
A base class for all template tasks.
Definition: tt.h:30
+ +
static constexpr bool is_a_terminal
Definition: terminal.h:14
+
bool is_connected() const
Returns true if this terminal (input or output) is connected.
Definition: terminal.h:118
+
TTBase * get_tt() const
Return ptr to containing tt.
Definition: terminal.h:74
+
const std::string & get_value_type_str() const
Returns string representation of value type.
Definition: terminal.h:98
+
bool is_pull_terminal
Definition: terminal.h:15
+
const std::vector< TerminalBase * > & get_predecessors() const
Definition: terminal.h:109
+
const std::string & get_key_type_str() const
Returns string representation of key type.
Definition: terminal.h:92
+
size_t get_index() const
Returns index of terminal.
Definition: terminal.h:80
+
virtual void connect(TerminalBase *in)=0
+
void connect_base(TerminalBase *successor)
Definition: terminal.h:60
+
Type get_type() const
Returns the terminal type.
Definition: terminal.h:104
+
void connect_pull_nopred(TerminalBase *p)
Definition: terminal.h:113
+
void set(TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)
Definition: terminal.h:48
+
virtual ~TerminalBase()=default
+
const std::string & get_name() const
Returns name of terminal.
Definition: terminal.h:86
+
TerminalBase(Type type)
Definition: terminal.h:46
+
const std::vector< TerminalBase * > & get_connections() const
Get connections to successors.
Definition: terminal.h:107
+
void connect_pull(TerminalBase *predecessor)
Definition: terminal.h:66
+
Type
describes the terminal type
Definition: terminal.h:18
+
@ Write
can only be written to
+
@ Read
can only be used to read immutable data
+
@ Consume
can only be used to read consumable data
+ +
constexpr bool is_terminal_v
Definition: terminal.h:131
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/base_2tt_8h.html b/dox-master/base_2tt_8h.html new file mode 100644 index 000000000..6eb57b2ce --- /dev/null +++ b/dox-master/base_2tt_8h.html @@ -0,0 +1,199 @@ + + + + + + + + + + + ttg: ttg/ttg/base/tt.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
tt.h File Reference
+
+
+
#include <cstdint>
+#include <iostream>
+#include <optional>
+#include <sstream>
+#include <string>
+#include <vector>
+#include "ttg/base/terminal.h"
+#include "ttg/util/demangle.h"
+
+ + + + +

+Classes

class  ttg::TTBase
 A base class for all template tasks. More...
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+ + + +

+Macros

#define TTG_OP_ASSERT_EXECUTABLE()
 
+ + + + + +

+Functions

bool & ttg::detail::tt_base_trace_accessor (void)
 
bool & ttg::detail::op_base_lazy_pull_accessor (void)
 
+

Macro Definition Documentation

+ +

◆ TTG_OP_ASSERT_EXECUTABLE

+ +
+
+ + + + + + + +
#define TTG_OP_ASSERT_EXECUTABLE()
+
+Value:
do { \
+
if (!this->is_executable()) { \
+
std::ostringstream oss; \
+
oss << "TT is not executable at " << __FILE__ << ":" << __LINE__; \
+
throw std::logic_error(oss.str().c_str()); \
+
} \
+
} while (0);
+

Asserts that this is executable Use this macro from inside a derived class

Exceptions
+ + +
std::logic_errorif this is not executable
+
+
+ +

Definition at line 276 of file tt.h.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/base_2tt_8h_source.html b/dox-master/base_2tt_8h_source.html new file mode 100644 index 000000000..7cb1e2ef7 --- /dev/null +++ b/dox-master/base_2tt_8h_source.html @@ -0,0 +1,447 @@ + + + + + + + + + + + ttg: ttg/ttg/base/tt.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
tt.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_BASE_OP_H
+
2 #define TTG_BASE_OP_H
+
3 
+
4 #include <cstdint>
+
5 #include <iostream>
+
6 #include <optional>
+
7 #include <sstream>
+
8 #include <string>
+
9 #include <vector>
+
10 
+
11 #include "ttg/base/terminal.h"
+
12 #include "ttg/util/demangle.h"
+
13 
+
14 namespace ttg {
+
15 
+
16  namespace detail {
+
17  // If true prints trace of all assignments and all TT invocations
+
18  inline bool &tt_base_trace_accessor(void) {
+
19  static bool trace = false;
+
20  return trace;
+
21  }
+
22 
+
23  inline bool &op_base_lazy_pull_accessor(void) {
+
24  static bool lazy_pull = false;
+
25  return lazy_pull;
+
26  }
+
27  } // namespace detail
+
28 
+
30  class TTBase {
+
31  private:
+
32  int64_t instance_id;
+
33 
+
34  std::string name;
+
35  std::vector<TerminalBase *> inputs;
+
36  std::vector<TerminalBase *> outputs;
+
37  bool trace_instance = false;
+
38  const TTBase *owning_ttg = nullptr;
+
39  template <typename input_terminalsT, typename output_terminalsT>
+
40  friend class TTG; // TTG needs to be able to control owning_ttg
+
41 
+
42  bool executable = false;
+
43  bool is_ttg_ = false;
+
44  bool lazy_pull_instance = false;
+
45 
+
46  // Default copy/move/assign all OK
+
47  static uint64_t next_instance_id() {
+
48  static uint64_t id = 0;
+
49  return id++;
+
50  }
+
51 
+
52  protected:
+
53  void set_input(size_t i, TerminalBase *t) {
+
54  if (i >= inputs.size()) throw(name + ":TTBase: out of range i setting input");
+
55  inputs[i] = t;
+
56  }
+
57 
+
58  void set_output(size_t i, TerminalBase *t) {
+
59  if (i >= outputs.size()) throw(name + ":TTBase: out of range i setting output");
+
60  outputs[i] = t;
+
61  }
+
62 
+
63  template <bool out, typename terminalT, std::size_t i, typename setfuncT>
+
64  void register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc) {
+
65  term.set(this, i, name, detail::demangled_type_name<typename terminalT::key_type>(),
+
66  detail::demangled_type_name<typename terminalT::value_type>(),
+ +
68  : (std::is_const_v<typename terminalT::value_type> ? TerminalBase::Type::Read
+ +
70  (this->*setfunc)(i, &term);
+
71  }
+
72 
+
73  template <bool out, std::size_t... IS, typename terminalsT, typename namesT, typename setfuncT>
+
74  void register_terminals(std::index_sequence<IS...>, terminalsT &terms, const namesT &names,
+
75  const setfuncT setfunc) {
+
76  int junk[] = {
+
77  0, (register_terminal<out, std::tuple_element_t<IS, terminalsT>, IS>(std::get<IS>(terms), names[IS], setfunc),
+
78  0)...};
+
79  junk[0]++;
+
80  }
+
81 
+
82  // Used by op ... terminalsT will be a tuple of terminals
+
83  template <typename terminalsT, typename namesT>
+
84  void register_input_terminals(terminalsT &terms, const namesT &names) {
+
85  register_terminals<false>(std::make_index_sequence<std::tuple_size_v<terminalsT>>{}, terms, names,
+ +
87  }
+
88 
+
89  // Used by op ... terminalsT will be a tuple of terminals
+
90  template <typename terminalsT, typename namesT>
+
91  void register_output_terminals(terminalsT &terms, const namesT &names) {
+
92  register_terminals<true>(std::make_index_sequence<std::tuple_size_v<terminalsT>>{}, terms, names,
+ +
94  }
+
95 
+
96  // Used by composite TT ... terminalsT will be a tuple of pointers to terminals
+
97  template <std::size_t... IS, typename terminalsT, typename setfuncT>
+
98  void set_terminals(std::index_sequence<IS...>, terminalsT &terms, const setfuncT setfunc) {
+
99  int junk[] = {0, ((this->*setfunc)(IS, std::get<IS>(terms)), 0)...};
+
100  junk[0]++;
+
101  }
+
102 
+
103  // Used by composite TT ... terminalsT will be a tuple of pointers to terminals
+
104  template <typename terminalsT, typename setfuncT>
+
105  void set_terminals(const terminalsT &terms, const setfuncT setfunc) {
+
106  set_terminals(std::make_index_sequence<std::tuple_size_v<terminalsT>>{}, terms, setfunc);
+
107  }
+
108 
+
109  private:
+
110  // non-copyable, but movable
+
111  TTBase(const TTBase &) = delete;
+
112  TTBase &operator=(const TTBase &) = delete;
+
113 
+
114  protected:
+
115  TTBase(TTBase &&other)
+
116  : instance_id(other.instance_id)
+
117  , is_ttg_(std::move(other.is_ttg_))
+
118  , name(std::move(other.name))
+
119  , inputs(std::move(other.inputs))
+
120  , outputs(std::move(other.outputs)) {
+
121  other.instance_id = -1;
+
122  }
+
123  TTBase &operator=(TTBase &&other) {
+
124  instance_id = other.instance_id;
+
125  is_ttg_ = std::move(other.is_ttg_);
+
126  name = std::move(other.name);
+
127  inputs = std::move(other.inputs);
+
128  outputs = std::move(other.outputs);
+
129  other.instance_id = -1;
+
130  return *this;
+
131  }
+
132 
+
133  TTBase(const std::string &name, size_t numins, size_t numouts)
+
134  : instance_id(next_instance_id()), is_ttg_(false), name(name), inputs(numins), outputs(numouts) {}
+
135 
+
136  static const std::vector<TerminalBase *> *&outputs_tls_ptr_accessor() {
+
137  static thread_local const std::vector<TerminalBase *> *outputs_tls_ptr = nullptr;
+
138  return outputs_tls_ptr;
+
139  }
+
140  void set_outputs_tls_ptr() { outputs_tls_ptr_accessor() = &this->outputs; }
+
141  void set_outputs_tls_ptr(const std::vector<TerminalBase *> *ptr) { outputs_tls_ptr_accessor() = ptr; }
+
142 
+
143  public:
+
144  virtual ~TTBase() = default;
+
145 
+
149  virtual void invoke() {
+
150  std::cerr << "TTBase::invoke() invoked on a TT that did not override it" << std::endl;
+
151  ttg::abort();
+
152  }
+
153 
+
156  static bool set_trace_all(bool value) {
+
157  if constexpr (trace_enabled()) std::swap(ttg::detail::tt_base_trace_accessor(), value);
+
158  return value;
+
159  }
+
160 
+
161  //Sets lazy pulling on.
+
162  //Lazy pulling delays invoking pull terminals until all inputs from push terminals for a task have arrived.
+
163  //Default is false.
+
164  static bool set_lazy_pull(bool value) {
+
165  std::swap(ttg::detail::op_base_lazy_pull_accessor(), value);
+
166  return value;
+
167  }
+
168 
+
171  bool set_trace_instance(bool value) {
+
172  if constexpr (trace_enabled()) std::swap(trace_instance, value);
+
173  return value;
+
174  }
+
175 
+
177  bool tracing() const {
+
178  if constexpr (trace_enabled())
+
179  return ttg::detail::tt_base_trace_accessor() || trace_instance;
+
180  else
+
181  return false;
+
182  }
+
183 
+
185  template <typename T, typename... Ts>
+
186  inline void trace(const T &t, const Ts &...ts) {
+
187  if constexpr (trace_enabled()) {
+
188  if (this->tracing()) {
+
189  log(t, ts...);
+
190  }
+
191  }
+
192  }
+
193 
+
194  bool set_lazy_pull_instance(bool value) {
+
195  std::swap(lazy_pull_instance, value);
+
196  return value;
+
197  }
+
198 
+
199  bool is_lazy_pull() { return ttg::detail::op_base_lazy_pull_accessor() || lazy_pull_instance; }
+
200 
+
201  std::optional<std::reference_wrapper<const TTBase>> ttg() const {
+
202  return owning_ttg ? std::cref(*owning_ttg) : std::optional<std::reference_wrapper<const TTBase>>{};
+
203  }
+
204 
+
205  const TTBase *ttg_ptr() const {
+
206  return owning_ttg;
+
207  }
+
208 
+
209  bool is_ttg() const {
+
210  return is_ttg_;
+
211  }
+
212 
+
214  void set_name(const std::string &name) { this->name = name; }
+
215 
+
217  const std::string &get_name() const { return name; }
+
218 
+
220  std::string get_class_name() const { return ttg::detail::demangled_type_name(this); }
+
221 
+
223  const std::vector<TerminalBase *> &get_inputs() const { return inputs; }
+
224 
+
226  const std::vector<TerminalBase *> &get_outputs() const { return outputs; }
+
227 
+
229  static const std::vector<TerminalBase *> *get_outputs_tls_ptr() { return outputs_tls_ptr_accessor(); }
+
230 
+
232  virtual ttg::World get_world() const = 0;
+
233 
+
235  ttg::TerminalBase *in(size_t i) {
+
236  if (i >= inputs.size()) throw name + ":TTBase: you are requesting an input terminal that does not exist";
+
237  return inputs[i];
+
238  }
+
239 
+
241  ttg::TerminalBase *out(size_t i) {
+
242  if (i >= outputs.size()) throw name + "TTBase: you are requesting an output terminal that does not exist";
+
243  return outputs[i];
+
244  }
+
245 
+
247  template <std::size_t i>
+ +
249  return in(i);
+
250  }
+
251 
+
253  template <std::size_t i>
+ +
255  return out(i);
+
256  }
+
257 
+
258  auto get_instance_id() const { return instance_id; }
+
259 
+
262  virtual void fence() = 0;
+
263 
+
264  virtual void release() {}
+
265 
+
267  virtual void make_executable() = 0;
+
268 
+
271  bool is_executable() const { return executable; }
+
272 
+
276 #define TTG_OP_ASSERT_EXECUTABLE() \
+
277  do { \
+
278  if (!this->is_executable()) { \
+
279  std::ostringstream oss; \
+
280  oss << "TT is not executable at " << __FILE__ << ":" << __LINE__; \
+
281  throw std::logic_error(oss.str().c_str()); \
+
282  } \
+
283  } while (0);
+
284  };
+
285 
+
286  inline void TTBase::make_executable() { executable = true; }
+
287 
+
288 } // namespace ttg
+
289 
+
290 #endif // TTG_BASE_OP_H
+ +
A base class for all template tasks.
Definition: tt.h:30
+
const std::vector< TerminalBase * > & get_inputs() const
Returns the vector of input terminals.
Definition: tt.h:223
+
void set_terminals(const terminalsT &terms, const setfuncT setfunc)
Definition: tt.h:105
+
virtual void invoke()
Definition: tt.h:149
+
void set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)
Definition: tt.h:141
+
virtual ~TTBase()=default
+
const std::vector< TerminalBase * > & get_outputs() const
Returns the vector of output terminals.
Definition: tt.h:226
+
void trace(const T &t, const Ts &...ts)
Like ttg::trace(), but only produces tracing output if this->tracing()==true
Definition: tt.h:186
+
ttg::TerminalBase * in(size_t i)
Returns a pointer to the i'th input terminal.
Definition: tt.h:235
+
TTBase(const std::string &name, size_t numins, size_t numouts)
Definition: tt.h:133
+
static const std::vector< TerminalBase * > * get_outputs_tls_ptr()
Returns this thread's pointer to the vector of output terminals.
Definition: tt.h:229
+
auto get_instance_id() const
Definition: tt.h:258
+
void register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)
Definition: tt.h:64
+
ttg::TerminalBase * in()
Returns a pointer to the i'th input terminal ... to make API consistent with TT.
Definition: tt.h:248
+
void set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
Definition: tt.h:98
+
bool set_trace_instance(bool value)
Definition: tt.h:171
+
std::optional< std::reference_wrapper< const TTBase > > ttg() const
Definition: tt.h:201
+
virtual void make_executable()=0
Marks this executable.
Definition: tt.h:286
+
bool tracing() const
Definition: tt.h:177
+
virtual ttg::World get_world() const =0
+
std::string get_class_name() const
Gets the demangled class name (uses RTTI)
Definition: tt.h:220
+
bool set_lazy_pull_instance(bool value)
Definition: tt.h:194
+
bool is_executable() const
Definition: tt.h:271
+
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor()
Definition: tt.h:136
+
void set_output(size_t i, TerminalBase *t)
Definition: tt.h:58
+
void set_name(const std::string &name)
Sets the name of this operation.
Definition: tt.h:214
+
const std::string & get_name() const
Gets the name of this operation.
Definition: tt.h:217
+
static bool set_lazy_pull(bool value)
Definition: tt.h:164
+
TTBase & operator=(TTBase &&other)
Definition: tt.h:123
+
bool is_ttg() const
Definition: tt.h:209
+
virtual void release()
Definition: tt.h:264
+
TTBase(TTBase &&other)
Definition: tt.h:115
+
static bool set_trace_all(bool value)
Definition: tt.h:156
+
void register_input_terminals(terminalsT &terms, const namesT &names)
Definition: tt.h:84
+
void register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
Definition: tt.h:74
+
ttg::TerminalBase * out(size_t i)
Returns a pointer to the i'th output terminal.
Definition: tt.h:241
+
bool is_lazy_pull()
Definition: tt.h:199
+
virtual void fence()=0
+
const TTBase * ttg_ptr() const
Definition: tt.h:205
+
ttg::TerminalBase * out()
Returns a pointer to the i'th output terminal ... to make API consistent with TT.
Definition: tt.h:254
+
void set_input(size_t i, TerminalBase *t)
Definition: tt.h:53
+
void register_output_terminals(terminalsT &terms, const namesT &names)
Definition: tt.h:91
+
void set_outputs_tls_ptr()
Definition: tt.h:140
+
a template task graph implementation
Definition: tt.h:31
+ +
@ Write
can only be written to
+
@ Read
can only be used to read immutable data
+
@ Consume
can only be used to read consumable data
+ + +
typename make_index_sequence_t< I... >::type make_index_sequence
+
bool & op_base_lazy_pull_accessor(void)
Definition: tt.h:23
+
bool & tt_base_trace_accessor(void)
Definition: tt.h:18
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
void abort()
Aborts the TTG program using the default backend's ttg_abort method.
Definition: run.h:62
+
void log(const T &t, const Ts &... ts)
atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by st...
Definition: print.h:146
+
void trace(const T &t, const Ts &... ts)
Definition: trace.h:43
+
constexpr bool trace_enabled()
returns whether tracing was enabled at configure time
Definition: trace.h:15
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/base_2world_8h.html b/dox-master/base_2world_8h.html new file mode 100644 index 000000000..d6a1e7a09 --- /dev/null +++ b/dox-master/base_2world_8h.html @@ -0,0 +1,165 @@ + + + + + + + + + + + ttg: ttg/ttg/base/world.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
world.h File Reference
+
+
+
#include <cassert>
+#include <future>
+#include <iostream>
+#include <list>
+#include <memory>
+#include <set>
+#include "ttg/base/tt.h"
+
+ + + + + + +

+Classes

class  ttg::base::WorldImplBase
 Base class for implementation-specific Worlds. More...
 
class  ttg::base::World< WorldImplT >
 
+ + + + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::base
 
 ttg::detail
 
+ + + + + + + +

+Functions

void ttg::detail::register_world (ttg::base::WorldImplBase &world)
 
void ttg::detail::deregister_world (ttg::base::WorldImplBase &world)
 
void ttg::detail::destroy_worlds (void)
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/base_2world_8h_source.html b/dox-master/base_2world_8h_source.html new file mode 100644 index 000000000..a203d4e08 --- /dev/null +++ b/dox-master/base_2world_8h_source.html @@ -0,0 +1,381 @@ + + + + + + + + + + + ttg: ttg/ttg/base/world.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
world.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_BASE_WORLD_H
+
2 #define TTG_BASE_WORLD_H
+
3 
+
4 #include <cassert>
+
5 #include <future>
+
6 #include <iostream>
+
7 #include <list>
+
8 #include <memory>
+
9 #include <set>
+
10 
+
11 #include "ttg/base/tt.h"
+
12 
+
13 namespace ttg {
+
14 
+
15  namespace base {
+
16  // forward decl
+
17  class WorldImplBase;
+
18  } // namespace base
+
19 
+
20  /* forward declaration */
+
21  namespace detail {
+
22 
+
23  /* TODO: how should the MADNESS and PaRSEC init/finalize play together? */
+ + +
26  void destroy_worlds(void);
+
27 
+
28  } // namespace detail
+
29 
+
30  namespace base {
+
31 
+
33  class WorldImplBase {
+
34  private:
+
35  template <typename T>
+
36  std::function<void(void*)> make_deleter() {
+
37  return {[](void* p) { delete static_cast<T*>(p); }};
+
38  }
+
39 
+
40  std::list<ttg::TTBase*> m_op_register;
+
41  std::vector<std::shared_ptr<std::promise<void>>> m_statuses;
+
42  std::vector<std::function<void()>> m_callbacks;
+
43  std::vector<std::shared_ptr<void>> m_ptrs;
+
44  std::vector<std::unique_ptr<void, std::function<void(void*)>>> m_unique_ptrs;
+
45  int world_size;
+
46  int world_rank;
+
47  bool m_is_valid = true;
+
48 
+
49  protected:
+
50  void mark_invalid() { m_is_valid = false; }
+
51 
+
52  virtual void fence_impl(void) = 0;
+
53 
+
54  void release_ops(void) {
+
55  while (!m_op_register.empty()) {
+
56  (*m_op_register.begin())->release();
+
57  }
+
58  }
+
59 
+
60  protected:
+ +
62  : world_size(size), world_rank(rank)
+
63  {}
+
64 
+
65  public:
+
66  virtual ~WorldImplBase(void) { m_is_valid = false; }
+
67 
+
71  int size() {
+
72  return world_size;
+
73  }
+
74 
+
78  int rank() {
+
79  return world_rank;
+
80  }
+
81 
+
82  virtual void destroy(void) = 0;
+
83 
+
84  template <typename T>
+
85  void register_ptr(const std::shared_ptr<T>& ptr) {
+
86  m_ptrs.emplace_back(ptr);
+
87  }
+
88 
+
89  template <typename T>
+
90  void register_ptr(std::unique_ptr<T>&& ptr) {
+
91  m_unique_ptrs.emplace_back(ptr.release(), make_deleter<T>());
+
92  }
+
93 
+
94  void register_status(const std::shared_ptr<std::promise<void>>& status_ptr) {
+
95  m_statuses.emplace_back(status_ptr);
+
96  }
+
97 
+
98  template <typename Callback>
+
99  void register_callback(Callback&& callback) {
+
100  m_callbacks.emplace_back(callback);
+
101  }
+
102 
+
103 
+
109  void fence(void) {
+
110  fence_impl();
+
111  for (auto& status : m_statuses) {
+
112  status->set_value();
+
113  }
+
114  m_statuses.clear(); // clear out the statuses
+
115  for (auto&& callback : m_callbacks) {
+
116  callback();
+
117  }
+
118  m_callbacks.clear(); // clear out the statuses
+
119  }
+
120 
+
128  virtual void execute() {}
+
129 
+
130 
+ +
136  // TODO: do we need locking here?
+
137  m_op_register.push_back(op);
+
138  }
+
139 
+ +
145  // TODO: do we need locking here?
+
146  m_op_register.remove(op);
+
147  }
+
148 
+
149 
+
154  bool is_valid(void) const { return m_is_valid; }
+
155 
+
156  virtual void final_task() {}
+
157 
+
158  virtual void profile_on() { }
+
159  virtual void profile_off() { }
+
160  virtual bool profiling() { return false; }
+
161 
+
162  virtual void dag_on(const std::string &filename) { }
+
163  virtual void dag_off() { }
+
164  virtual bool dag_profiling() { return false; }
+
165 
+
166  };
+
167 
+
173  template <typename WorldImplT>
+
174  class World {
+
175  private:
+
176  std::shared_ptr<ttg::base::WorldImplBase> m_impl;
+
177 
+
178  public:
+
179  World(void) {}
+
180 
+
181  World(std::shared_ptr<ttg::base::WorldImplBase> world_impl) : m_impl(world_impl) {}
+
182 
+
183  /* Defaulted copy ctor */
+
184  World(const World& other) = default;
+
185 
+
186  /* Defaulted move ctor */
+
187  World(World&& other) = default;
+
188 
+
189  ~World() {}
+
190 
+
191  /* Defaulted copy assignment */
+
192  World& operator=(const World& other) = default;
+
193 
+
194  /* Defaulted move assignment */
+
195  World& operator=(World&& other) = default;
+
196 
+
197  /* Get the number of ranks in this world */
+
198  int size() const {
+
199  assert(is_valid());
+
200  return m_impl->size();
+
201  }
+
202 
+
203  /* Get the current rank in this world */
+
204  int rank() const {
+
205  assert(is_valid());
+
206  return m_impl->rank();
+
207  }
+
208 
+
209  /* Returns true if the World instance is valid, i.e., if it has a valid
+
210  * pointer to a World implementation object */
+
211  bool is_valid(void) const { return static_cast<bool>(m_impl); }
+
212 
+
213  virtual void final_task() {}
+
214 
+
215  /* Get an unmanaged reference to the world implementation */
+
216  WorldImplT& impl(void) {
+
217  assert(is_valid());
+
218  return *reinterpret_cast<WorldImplT*>(m_impl.get());
+
219  }
+
220 
+
221  const WorldImplT& impl(void) const {
+
222  assert(is_valid());
+
223  return *reinterpret_cast<WorldImplT*>(m_impl.get());
+
224  }
+
225 
+
226  void profile_on() { m_impl->profile_on(); }
+
227  void profile_off() { m_impl->profile_off(); }
+
228  bool profiling() { return m_impl->profiling(); }
+
229 
+
230  void dag_on(const std::string &filename) { m_impl->dag_on(filename); }
+
231  void dag_off() { m_impl->dag_off(); }
+
232  bool dag_profiling() { return m_impl->dag_profiling(); }
+
233 
+
234  };
+
235 
+
236  } // namespace base
+
237 
+
238 } // namespace ttg
+
239 #endif // TTG_BASE_WORLD_H
+ +
A base class for all template tasks.
Definition: tt.h:30
+ +
WorldImplT & impl(void)
Definition: world.h:216
+
void profile_on()
Definition: world.h:226
+
World & operator=(World &&other)=default
+
int size() const
Definition: world.h:198
+
void dag_on(const std::string &filename)
Definition: world.h:230
+
void profile_off()
Definition: world.h:227
+
virtual void final_task()
Definition: world.h:213
+
int rank() const
Definition: world.h:204
+ +
void dag_off()
Definition: world.h:231
+
const WorldImplT & impl(void) const
Definition: world.h:221
+
World(std::shared_ptr< ttg::base::WorldImplBase > world_impl)
Definition: world.h:181
+
World(World &&other)=default
+
bool profiling()
Definition: world.h:228
+
World(void)
Definition: world.h:179
+
World(const World &other)=default
+
bool dag_profiling()
Definition: world.h:232
+
bool is_valid(void) const
Definition: world.h:211
+
World & operator=(const World &other)=default
+
Base class for implementation-specific Worlds.
Definition: world.h:33
+
void fence(void)
Definition: world.h:109
+
virtual void destroy(void)=0
+
virtual void dag_off()
Definition: world.h:163
+
virtual void final_task()
Definition: world.h:156
+
virtual bool profiling()
Definition: world.h:160
+
void release_ops(void)
Definition: world.h:54
+
virtual void dag_on(const std::string &filename)
Definition: world.h:162
+
virtual void fence_impl(void)=0
+
void register_op(ttg::TTBase *op)
Definition: world.h:135
+
virtual void profile_off()
Definition: world.h:159
+
virtual void profile_on()
Definition: world.h:158
+
void deregister_op(ttg::TTBase *op)
Definition: world.h:144
+
void register_ptr(std::unique_ptr< T > &&ptr)
Definition: world.h:90
+
virtual ~WorldImplBase(void)
Definition: world.h:66
+ +
WorldImplBase(int size, int rank)
Definition: world.h:61
+
virtual void execute()
Definition: world.h:128
+
void register_status(const std::shared_ptr< std::promise< void >> &status_ptr)
Definition: world.h:94
+
void register_callback(Callback &&callback)
Definition: world.h:99
+ +
virtual bool dag_profiling()
Definition: world.h:164
+
bool is_valid(void) const
Definition: world.h:154
+
void register_ptr(const std::shared_ptr< T > &ptr)
Definition: world.h:85
+ +
void deregister_world(ttg::base::WorldImplBase &world)
+
void register_world(ttg::base::WorldImplBase &world)
+
void destroy_worlds(void)
Definition: world.h:70
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/bc_s.png b/dox-master/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/dox-master/bdwn.png b/dox-master/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + + + + + ttg: ttg/ttg/serialization/backends/boost.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
boost.h File Reference
+
+
+
#include <type_traits>
+
+ + + + + + + + + + + +

+Classes

struct  ttg::detail::is_boost_array_serializable< Archive, T >
 
struct  ttg::detail::is_boost_serializable< Archive, T >
 
struct  ttg::detail::is_boost_default_serializable< Archive, T, class >
 
struct  ttg::detail::is_boost_buffer_serializable< T, class >
 
struct  ttg::detail::is_boost_default_buffer_serializable< T, class >
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+ + + + + + + + + + + + + + + + + + + + + + +

+Variables

template<typename T >
constexpr bool ttg::detail::is_boost_archive_v = false
 
template<typename T >
constexpr bool ttg::detail::is_boost_input_archive_v = false
 
template<typename T >
constexpr bool ttg::detail::is_boost_output_archive_v = false
 
template<typename T >
constexpr bool ttg::detail::is_boost_buffer_serializable_v = is_boost_buffer_serializable<T>::value
 evaluates to true if can serialize T to/from buffer using Boost serialization More...
 
template<typename T >
constexpr bool ttg::detail::is_boost_default_buffer_serializable_v = is_boost_default_buffer_serializable<T>::value
 evaluates to true if can serialize T to/from buffer using default Boost serialization More...
 
template<typename T >
constexpr bool ttg::detail::is_boost_user_buffer_serializable_v
 evaluates to true if can serialize T to/from buffer using user-provided Boost serialization More...
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/boost_8h_source.html b/dox-master/boost_8h_source.html new file mode 100644 index 000000000..a47ee4b2d --- /dev/null +++ b/dox-master/boost_8h_source.html @@ -0,0 +1,305 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends/boost.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
boost.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 5/3/21.
+
3 //
+
4 
+
5 #ifndef TTG_SERIALIZATION_BOOST_H
+
6 #define TTG_SERIALIZATION_BOOST_H
+
7 
+
8 #include <type_traits>
+
9 
+
10 #if __has_include(<boost/type_traits/is_array.hpp>)
+
11 # define TTG_HAS_BOOST_HEADERS 1
+
12 # include <boost/type_traits/is_array.hpp>
+
13 # include <boost/type_traits/remove_extent.hpp>
+
14 #endif
+
15 
+
16 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
17 #include <boost/archive/binary_iarchive.hpp>
+
18 #include <boost/archive/binary_oarchive.hpp>
+
19 #include <boost/serialization/level.hpp>
+
20 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
21 
+
22 namespace ttg::detail {
+
23 
+
24  /*----- is_boost_{input,output,}_archive_v -----*/
+
25 
+
26 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
27  template <typename T>
+
28  inline constexpr bool is_boost_archive_v = std::is_base_of_v<boost::archive::detail::basic_iarchive, T> ||
+
29  std::is_base_of_v<boost::archive::detail::basic_oarchive, T>;
+
30  template <typename T>
+
31  inline constexpr bool is_boost_input_archive_v = std::is_base_of_v<boost::archive::detail::basic_iarchive, T>;
+
32 
+
33  template <typename T>
+
34  inline constexpr bool is_boost_output_archive_v = std::is_base_of_v<boost::archive::detail::basic_oarchive, T>;
+
35 
+
36  /*----- is_archive_v for boost archives -----*/
+
37  template <typename T>
+
38  inline constexpr bool is_archive_v<T, std::enable_if_t<is_boost_archive_v<T>>> = true;
+
39  template <typename T>
+
40  inline constexpr bool is_input_archive_v<T, std::enable_if_t<is_boost_input_archive_v<T>>> = true;
+
41  template <typename T>
+
42  inline constexpr bool is_output_archive_v<T, std::enable_if_t<is_boost_output_archive_v<T>>> = true;
+
43 
+
44 #else // TTG_SERIALIZATION_SUPPORTS_BOOST
+
45  template <typename T>
+
46  inline constexpr bool is_boost_archive_v = false;
+
47  template <typename T>
+
48  inline constexpr bool is_boost_input_archive_v = false;
+
49  template <typename T>
+
50  inline constexpr bool is_boost_output_archive_v = false;
+
51 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
52 
+
53  /*----- is_boost_serializable_v -----*/
+
54 
+
55  template <typename Archive, typename T, typename Enabler = void>
+
56  inline static constexpr bool is_boost_serializable_v = false;
+
57 
+
58  template <typename Archive, typename T, typename Enabler = void>
+ +
60 
+
61 #ifdef TTG_HAS_BOOST_HEADERS
+
62  template <typename Archive, typename T>
+
63  struct is_boost_array_serializable<Archive, T, std::enable_if_t<!boost::is_array<T>::value>> : std::false_type {};
+
64 
+
65  template <typename Archive, typename T>
+
66  struct is_boost_array_serializable<Archive, T, std::enable_if_t<boost::is_array<T>::value>>
+
67  : std::bool_constant<is_boost_serializable_v<Archive, boost::remove_extent_t<T>>> {};
+
68 #else
+
69  template <typename Archive, typename T>
+
70  struct is_boost_array_serializable<Archive, T> : std::false_type {};
+
71 #endif
+
72 
+
73  template <typename Archive, typename T>
+
74  inline static constexpr bool is_boost_array_serializable_v = is_boost_array_serializable<Archive, T>::value;
+
75 
+
76  template <typename Archive, typename T>
+
77  inline static constexpr bool is_stlcontainer_boost_serializable_v = false;
+
78 
+
79 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
84  template <typename Archive, typename T>
+
85  inline static constexpr bool is_boost_serializable_v<
+
86  Archive, T,
+
87  std::enable_if_t<
+
88  // Archive is a boost archive
+
89  is_boost_archive_v<Archive>
+
90  // T is not not_serializable
+
91  && !std::is_same_v<typename boost::serialization::implementation_level<T>::type,
+
92  boost::mpl::int_<boost::serialization::level_type::not_serializable>>
+
93  // T is primitive or T is an array of serializables or else T has serialize methods
+
94  && (std::is_same_v<typename boost::serialization::implementation_level<T>::type,
+
95  boost::mpl::int_<boost::serialization::level_type::primitive_type>> ||
+
96  is_boost_array_serializable_v<Archive, T> ||
+
97  (!std::is_same_v<typename boost::serialization::implementation_level<T>::type,
+
98  boost::mpl::int_<boost::serialization::level_type::primitive_type>> &&
+
99  (ttg::detail::has_freestanding_serialize_with_version_v<ttg::meta::remove_cvr_t<T>, Archive> ||
+
100  (ttg::detail::is_stlcontainer_boost_serializable_v<Archive, T> &&
+
101  ttg::detail::has_freestanding_boost_serialize_with_version_v<ttg::meta::remove_cvr_t<T>, Archive>) ||
+ +
103  (ttg::detail::has_member_load_with_version_v<T, Archive> &&
+
104  ttg::detail::has_member_save_with_version_v<T, Archive>))))>> = true;
+
105 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
106 
+
107  template <typename Archive, typename T>
+
108  struct is_boost_serializable : std::bool_constant<is_boost_serializable_v<Archive, T>> {};
+
109 
+
110  template <typename Archive, typename T, class = void>
+
111  struct is_boost_default_serializable : std::false_type {};
+
112 
+
113 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
115  template <typename Archive, typename T>
+ +
117  Archive, T,
+
118  std::enable_if_t<
+
119  // Archive is a boost archive
+
120  is_boost_archive_v<Archive>
+
121  // T is not not_serializable
+
122  && !std::is_same_v<typename boost::serialization::implementation_level<T>::type,
+
123  boost::mpl::int_<boost::serialization::level_type::not_serializable>>
+
124  // T is primitive or T is an array of serializables or else T has serialize methods
+
125  && (std::is_same_v<typename boost::serialization::implementation_level<T>::type,
+
126  boost::mpl::int_<boost::serialization::level_type::primitive_type>> ||
+
127  is_boost_array_serializable_v<Archive, T> ||
+
128  (!std::is_same_v<typename boost::serialization::implementation_level<T>::type,
+
129  boost::mpl::int_<boost::serialization::level_type::primitive_type>> &&
+
130  (ttg::detail::is_stlcontainer_boost_serializable_v<Archive, T> &&
+
131  ttg::detail::has_freestanding_boost_serialize_with_version_v<ttg::meta::remove_cvr_t<T>, Archive>)))>>
+
132  : std::true_type {};
+
133 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
134 
+
135  template <typename Archive, typename T>
+
136  inline static constexpr bool is_boost_default_serializable_v = is_boost_default_serializable<Archive, T>::value;
+
137 
+
138  template <typename T, class = void>
+
139  struct is_boost_buffer_serializable : std::false_type {};
+
140 
+
141 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
142  template <typename T>
+
143  struct is_boost_buffer_serializable<T, std::enable_if_t<is_boost_serializable_v<boost::archive::binary_iarchive, T> &&
+
144  is_boost_serializable_v<boost::archive::binary_oarchive, T>>>
+
145  : std::true_type {};
+
146 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
147 
+
149  template <typename T>
+ +
151 
+
152  template <typename T, class = void>
+
153  struct is_boost_default_buffer_serializable : std::false_type {};
+
154 
+
155 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
+
156  template <typename T>
+ +
158  T, std::enable_if_t<is_boost_default_serializable_v<boost::archive::binary_iarchive, T> &&
+
159  is_boost_default_serializable_v<boost::archive::binary_oarchive, T>>> : std::true_type {};
+
160 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
+
161 
+
163  template <typename T>
+ +
165 
+
167  template <typename T>
+
168  inline constexpr bool is_boost_user_buffer_serializable_v =
+
169  is_boost_buffer_serializable<T>::value && !is_boost_default_buffer_serializable_v<T>;
+
170 
+
171 } // namespace ttg::detail
+
172 
+
173 #endif // TTG_SERIALIZATION_BOOST_H
+ +
constexpr bool is_boost_output_archive_v
Definition: boost.h:50
+
constexpr bool has_member_serialize_with_version_v
Definition: traits.h:91
+
constexpr bool is_boost_archive_v
Definition: boost.h:46
+
constexpr bool is_boost_default_buffer_serializable_v
evaluates to true if can serialize T to/from buffer using default Boost serialization
Definition: boost.h:164
+
constexpr bool is_boost_user_buffer_serializable_v
evaluates to true if can serialize T to/from buffer using user-provided Boost serialization
Definition: boost.h:168
+
constexpr bool is_boost_input_archive_v
Definition: boost.h:48
+
constexpr bool is_boost_buffer_serializable_v
evaluates to true if can serialize T to/from buffer using Boost serialization
Definition: boost.h:150
+
std::remove_cv_t< std::remove_reference_t< T > > remove_cvr_t
Definition: meta.h:27
+ + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/broadcast_8h.html b/dox-master/broadcast_8h.html new file mode 100644 index 000000000..c84596476 --- /dev/null +++ b/dox-master/broadcast_8h.html @@ -0,0 +1,148 @@ + + + + + + + + + + + ttg: ttg/ttg/broadcast.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
broadcast.h File Reference
+
+
+
#include <tuple>
+#include "ttg/func.h"
+#include "ttg/fwd.h"
+#include "ttg/tt.h"
+#include "ttg/util/tree.h"
+#include "ttg/world.h"
+
+ + + + +

+Classes

class  ttg::BinaryTreeBroadcast< Value, OutKey >
 generic binary broadcast of a value to a set of {key,value} pairs More...
 
+ + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/broadcast_8h_source.html b/dox-master/broadcast_8h_source.html new file mode 100644 index 000000000..6397182f5 --- /dev/null +++ b/dox-master/broadcast_8h_source.html @@ -0,0 +1,200 @@ + + + + + + + + + + + ttg: ttg/ttg/broadcast.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
broadcast.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 12/29/17.
+
3 //
+
4 
+
5 #ifndef TTG_BROADCAST_H
+
6 #define TTG_BROADCAST_H
+
7 
+
8 #include <tuple>
+
9 
+
10 #include "ttg/func.h"
+
11 #include "ttg/fwd.h"
+
12 #include "ttg/tt.h"
+
13 #include "ttg/util/tree.h"
+
14 #include "ttg/world.h"
+
15 
+
16 namespace ttg {
+
17 
+
27  template <typename Value, typename OutKey = int>
+
28  class BinaryTreeBroadcast : public TT<int, std::tuple<Out<int, Value>, Out<int, Value>, Out<OutKey, Value>>,
+
29  BinaryTreeBroadcast<Value, OutKey>, ttg::typelist<Value>> {
+
30  public:
+
31  using baseT = typename BinaryTreeBroadcast::ttT;
+
32 
+
33  BinaryTreeBroadcast(Edge<int, Value> &in, Edge<OutKey, Value> &out, std::vector<OutKey> local_keys, int root = 0,
+
34  World world = ttg::default_execution_context(), int max_key = -1,
+ +
36  : baseT(edges(fuse(in, inout_l, inout_r)), edges(inout_l, inout_r, out), "BinaryTreeBroadcast",
+
37  {"in|inout_l|inout_r"}, {"inout_l", "inout_r", "out"}, world, [](int key) { return key; })
+
38  , tree_((max_key == -1 ? world.size() : max_key), root)
+
39  , local_keys_(std::move(local_keys)) {}
+
40 
+
41  void op(const int &key, typename baseT::input_values_tuple_type &&indata,
+
42  std::tuple<Out<int, Value>, Out<int, Value>, Out<int, Value>> &outdata) {
+
43  assert(key < tree_.size());
+
44  assert(key == this->get_world().rank());
+
45  auto children = tree_.child_keys(key);
+
46  if (children.first != -1) send<0>(children.first, this->template get<0, const Value &>(indata), outdata);
+
47  if (children.second != -1) send<1>(children.second, this->template get<0, const Value &>(indata), outdata);
+
48  broadcast<2>(local_keys_, this->template get<0, const Value &>(indata), outdata);
+
49  }
+
50 
+
51  private:
+
52  BinarySpanningTree tree_;
+
53  std::vector<OutKey> local_keys_;
+
54  };
+
55 
+
56 } // namespace ttg
+
57 
+
58 #endif // TTG_BROADCAST_H
+
a binary spanning tree of integers in the [0,size) interval
Definition: tree.h:17
+
const auto size() const
Definition: tree.h:26
+
std::pair< int, int > child_keys(const int parent_key) const
Definition: tree.h:40
+
generic binary broadcast of a value to a set of {key,value} pairs
Definition: broadcast.h:29
+
typename BinaryTreeBroadcast::ttT baseT
Definition: broadcast.h:31
+
void op(const int &key, typename baseT::input_values_tuple_type &&indata, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >> &outdata)
Definition: broadcast.h:41
+
BinaryTreeBroadcast(Edge< int, Value > &in, Edge< OutKey, Value > &out, std::vector< OutKey > local_keys, int root=0, World world=ttg::default_execution_context(), int max_key=-1, Edge< int, Value > inout_l=Edge< int, Value >{}, Edge< int, Value > inout_r=Edge< int, Value >{})
Definition: broadcast.h:33
+
Edge is used to connect In and Out terminals.
Definition: edge.h:25
+ + + + + + +
std::tuple_element_t< i, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > > > * out()
Definition: ttg.h:4085
+ + +
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
auto fuse(const Edge< keyT, valuesT > &...args)
Fuse edges into one This allows receiving one data from either of the combined edges.
Definition: func.h:137
+
World default_execution_context()
Accesses the default backend's default execution context.
Definition: run.h:68
+
int rank(World world=default_execution_context())
Definition: run.h:85
+
auto edges(inedgesT &&...args)
Make a tuple of Edges to pass to.
Definition: func.h:147
+ + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/buffer_8h.html b/dox-master/buffer_8h.html new file mode 100644 index 000000000..8a571bbf2 --- /dev/null +++ b/dox-master/buffer_8h.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg/ttg/buffer.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
buffer.h File Reference
+
+
+
#include "ttg/fwd.h"
+
+ + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
+ + + + +

+Typedefs

template<typename T , typename Allocator = std::allocator<T>>
using ttg::Buffer = TTG_IMPL_NS::Buffer< T, Allocator >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/buffer_8h_source.html b/dox-master/buffer_8h_source.html new file mode 100644 index 000000000..7efa7e0cd --- /dev/null +++ b/dox-master/buffer_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: ttg/ttg/buffer.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
buffer.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_BUFFER_H
+
2 #define TTG_BUFFER_H
+
3 
+
4 #include "ttg/fwd.h"
+
5 
+
6 namespace ttg {
+
7 
+
8 template<typename T, typename Allocator = std::allocator<T>>
+
9 using Buffer = TTG_IMPL_NS::Buffer<T, Allocator>;
+
10 
+
11 } // namespace ttg
+
12 
+
13 #endif // TTG_buffer_H
+ +
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/buffer__archive_8cpp.html b/dox-master/buffer__archive_8cpp.html new file mode 100644 index 000000000..fcd5cfd0f --- /dev/null +++ b/dox-master/buffer__archive_8cpp.html @@ -0,0 +1,127 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/buffer_archive.cpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
buffer_archive.cpp File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/buffer__archive_8cpp_source.html b/dox-master/buffer__archive_8cpp_source.html new file mode 100644 index 000000000..7b22f7271 --- /dev/null +++ b/dox-master/buffer__archive_8cpp_source.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/buffer_archive.cpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
buffer_archive.cpp
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 5/3/21.
+
3 //
+
4 
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/buffer__archive_8h.html b/dox-master/buffer__archive_8h.html new file mode 100644 index 000000000..fec0fd9f3 --- /dev/null +++ b/dox-master/buffer__archive_8h.html @@ -0,0 +1,126 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/buffer_archive.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
buffer_archive.h File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/buffer__archive_8h_source.html b/dox-master/buffer__archive_8h_source.html new file mode 100644 index 000000000..b4140b490 --- /dev/null +++ b/dox-master/buffer__archive_8h_source.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/buffer_archive.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
buffer_archive.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 5/3/21.
+
3 //
+
4 
+
5 #ifndef TTG_SERIALIZATION_BUFFER_ARCHIVE_H
+
6 #define TTG_SERIALIZATION_BUFFER_ARCHIVE_H
+
7 
+
8 #endif // TTG_SERIALIZATION_BUFFER_ARCHIVE_H
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/bug_8cpp.html b/dox-master/bug_8cpp.html new file mode 100644 index 000000000..8babc32aa --- /dev/null +++ b/dox-master/bug_8cpp.html @@ -0,0 +1,200 @@ + + + + + + + + + + + ttg: ttg/ttg/util/bug.cpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
bug.cpp File Reference
+
+
+
#include "bug.h"
+#include <unistd.h>
+#include <cfenv>
+#include <csignal>
+#include <cstdio>
+#include <cstdlib>
+#include <cstring>
+#include <iostream>
+#include <iterator>
+#include <sstream>
+#include "backtrace.h"
+
+ + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
+ + + + + +

+Macros

#define NSIG   100
 
#define SIMPLE_STACK   (defined(linux) && defined(i386)) || (defined(__OSF1__) && defined(i860))
 
+ + + + + + + + + + +

+Functions

void ttg::initialize_fpe ()
 Initializes the floating point exceptions. More...
 
void ttg::launch_debugger (int rank, const char *exec_name, const char *cmd)
 
void ttg::launch_lldb (int rank, const char *exec_name)
 
void ttg::launch_gdb (int rank, const char *exec_name)
 
+

Macro Definition Documentation

+ +

◆ NSIG

+ +
+
+ + + + +
#define NSIG   100
+
+ +

Definition at line 44 of file bug.cpp.

+ +
+
+ +

◆ SIMPLE_STACK

+ +
+
+ + + + +
#define SIMPLE_STACK   (defined(linux) && defined(i386)) || (defined(__OSF1__) && defined(i860))
+
+ +

Definition at line 410 of file bug.cpp.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/bug_8cpp_source.html b/dox-master/bug_8cpp_source.html new file mode 100644 index 000000000..1ae0b13a3 --- /dev/null +++ b/dox-master/bug_8cpp_source.html @@ -0,0 +1,601 @@ + + + + + + + + + + + ttg: ttg/ttg/util/bug.cpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bug.cpp
+
+
+Go to the documentation of this file.
1 //
+
2 // bug.cpp
+
3 //
+
4 // Copyright (C) 1996 Limit Point Systems, Inc.
+
5 //
+
6 // Author: Curtis Janssen <cljanss@limitpt.com>
+
7 // Maintainer: LPS
+
8 //
+
9 // This file is part of the SC Toolkit.
+
10 //
+
11 // The SC Toolkit is free software; you can redistribute it and/or modify
+
12 // it under the terms of the GNU Library General Public License as published by
+
13 // the Free Software Foundation; either version 2, or (at your option)
+
14 // any later version.
+
15 //
+
16 // The SC Toolkit is distributed in the hope that it will be useful,
+
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
19 // GNU Library General Public License for more details.
+
20 //
+
21 // You should have received a copy of the GNU Library General Public License
+
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
+
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
24 //
+
25 // The U.S. Government is granted a limited license as per AL 91-7.
+
26 //
+
27 
+
28 #include "bug.h"
+
29 
+
30 #include <unistd.h>
+
31 #include <cfenv>
+
32 #include <csignal>
+
33 #include <cstdio>
+
34 #include <cstdlib>
+
35 #include <cstring>
+
36 #include <iostream>
+
37 #include <iterator>
+
38 #include <sstream>
+
39 
+
40 #include "backtrace.h"
+
41 
+
42 // usually in signal.h, but not always.
+
43 #ifndef NSIG
+
44 #define NSIG 100
+
45 #endif
+
46 
+
47 using namespace std;
+
48 using namespace ttg;
+
49 
+
50 namespace ttg {
+
51  void initialize_fpe() {
+
52 #if defined(__APPLE__) && defined(__MACH__)
+
53 
+
54  // Public domain polyfill for feenableexcept on OS X
+
55  // http://www-personal.umich.edu/~williams/archive/computation/fe-handling-example.c
+
56 
+
57 #ifndef HAVE_FEENABLEEXCEPT
+
58  auto feenableexcept = [](int excepts) -> int {
+
59  static fenv_t fenv;
+
60  const auto new_excepts = excepts & FE_ALL_EXCEPT;
+
61 
+
62  if (fegetenv(&fenv)) {
+
63  return -1;
+
64  }
+
65 #if defined(__x86_64__)
+
66  // previous masks
+
67  const unsigned int old_excepts = fenv.__control & FE_ALL_EXCEPT;
+
68 
+
69  // unmask
+
70  fenv.__control &= ~new_excepts;
+
71  fenv.__mxcsr &= ~(new_excepts << 7);
+
72 #elif defined(__arm64__)
+
73  if (new_excepts & FE_INVALID) fenv.__fpcr |= __fpcr_trap_invalid;
+
74  if (new_excepts & FE_DIVBYZERO) fenv.__fpcr |= __fpcr_trap_divbyzero;
+
75  if (new_excepts & FE_OVERFLOW) fenv.__fpcr |= __fpcr_trap_overflow;
+
76  if (new_excepts & FE_UNDERFLOW) fenv.__fpcr |= __fpcr_trap_underflow;
+
77  if (new_excepts & FE_INEXACT) fenv.__fpcr |= __fpcr_trap_inexact;
+
78 #else
+
79 #error "MacOS on unknown architecture"
+
80 #endif
+
81  return fesetenv(&fenv);
+
82  };
+
83 #define HAVE_FEENABLEEXCEPT 1
+
84 #endif // not defined HAVE_FEENABLEEXCEPT
+
85 
+
86 #ifndef HAVE_FEDISABLEEXCEPT
+
87  auto fedisableexcept = [](int excepts) -> int {
+
88  static fenv_t fenv;
+
89  const auto new_excepts = excepts & FE_ALL_EXCEPT;
+
90  // all previous masks
+
91 
+
92  if (fegetenv(&fenv)) {
+
93  return -1;
+
94  }
+
95 #if defined(__x86_64__)
+
96  const unsigned int old_excepts = fenv.__control & FE_ALL_EXCEPT;
+
97 
+
98  // mask
+
99  fenv.__control |= new_excepts;
+
100  fenv.__mxcsr |= new_excepts << 7;
+
101 #elif defined(__arm64__)
+
102  if (new_excepts & FE_INVALID) fenv.__fpcr &= ~__fpcr_trap_invalid;
+
103  if (new_excepts & FE_DIVBYZERO) fenv.__fpcr &= ~__fpcr_trap_divbyzero;
+
104  if (new_excepts & FE_OVERFLOW) fenv.__fpcr &= ~__fpcr_trap_overflow;
+
105  if (new_excepts & FE_UNDERFLOW) fenv.__fpcr &= ~__fpcr_trap_underflow;
+
106  if (new_excepts & FE_INEXACT) fenv.__fpcr &= ~__fpcr_trap_inexact;
+
107 #else
+
108 #error "MacOS on unknown architecture"
+
109 #endif
+
110 
+
111  return fesetenv(&fenv);
+
112  };
+
113 
+
114 #define HAVE_FEDISABLEEXCEPT 1
+
115 #endif // not defined HAVE_FEDISABLEEXCEPT
+
116 #endif // mac
+
117 
+
118 #ifdef HAVE_FEENABLEEXCEPT
+
119  // this uses a glibc extension to trap on individual exceptions
+
120  int enable_excepts = 0;
+
121 #ifdef FE_DIVBYZERO
+
122  enable_excepts |= FE_DIVBYZERO;
+
123 #endif
+
124 #ifdef FE_INVALID
+
125  enable_excepts |= FE_INVALID;
+
126 #endif
+
127 #ifdef FE_OVERFLOW
+
128  enable_excepts |= FE_OVERFLOW;
+
129 #endif
+
130  feenableexcept(enable_excepts);
+
131 #endif
+
132 
+
133 #ifdef HAVE_FEDISABLEEXCEPT
+
134  // this uses a glibc extension to not trap on individual exceptions
+
135  int disable_excepts = 0;
+
136 #ifdef FE_UNDERFLOW
+
137  disable_excepts |= FE_UNDERFLOW;
+
138 #endif
+
139 #ifdef FE_INEXACT
+
140  disable_excepts |= FE_INEXACT;
+
141 #endif
+
142  fedisableexcept(disable_excepts);
+
143 #endif
+
144  }
+
145 }
+
146 
+
148 // static variables
+
149 
+
150 static Debugger *signals[NSIG];
+
151 
+
153 // Debugger class definition
+
154 
+
155 std::shared_ptr<Debugger> Debugger::default_debugger_(nullptr);
+
156 
+
157 Debugger::Debugger(const char *exec) {
+
158  init();
+
159 
+
160  debug_ = true;
+
161  traceback_ = true;
+
162  exit_on_signal_ = true;
+
163  sleep_ = false;
+
164  wait_for_debugger_ = true;
+
165  default_cmd();
+
166  prefix_ = "";
+
167  handle_sigint_ = false;
+
168  handle_defaults();
+
169 
+
170  set_exec(exec);
+
171  resolve_cmd_alias();
+
172 }
+
173 
+
174 Debugger::~Debugger() {
+
175  for (int i = 0; i < NSIG; i++) {
+
176  if (mysigs_[i]) signals[i] = nullptr;
+
177  }
+
178  delete[] mysigs_;
+
179 }
+
180 
+
181 void Debugger::init() {
+
182  exec_.resize(0);
+
183  prefix_.resize(0);
+
184  cmd_.resize(0);
+
185  sleep_ = 0;
+
186 
+
187  exit_on_signal_ = 1;
+
188  traceback_ = 1;
+
189  debug_ = 1;
+
190  wait_for_debugger_ = 1;
+
191 
+
192  mysigs_ = new int[NSIG];
+
193  for (int i = 0; i < NSIG; i++) {
+
194  mysigs_[i] = 0;
+
195  }
+
196 }
+
197 
+
198 namespace {
+
199  static void handler(int sig) {
+
200  if (signals[sig]) signals[sig]->got_signal(sig);
+
201  }
+
202 } // namespace
+
203 
+
204 void Debugger::handle(int sig) {
+
205  if (sig >= NSIG) return;
+
206  typedef void (*handler_type)(int);
+
207  signal(sig, (handler_type)handler);
+
208  signals[sig] = this;
+
209  mysigs_[sig] = 1;
+
210 }
+
211 
+
212 void Debugger::release(int sig) {
+
213  if (sig >= NSIG) return;
+
214  signal(sig, SIG_DFL);
+
215  signals[sig] = nullptr;
+
216  mysigs_[sig] = 0;
+
217 }
+
218 
+
219 void Debugger::handle_defaults() {
+
220 #ifdef SIGSEGV
+
221  handle(SIGSEGV);
+
222 #endif
+
223 #ifdef SIGFPE
+
224  handle(SIGFPE);
+
225 #endif
+
226 #ifdef SIGQUIT
+
227  handle(SIGQUIT);
+
228 #endif
+
229 #ifdef SIGIOT
+
230  handle(SIGIOT);
+
231 #endif
+
232 #ifdef SIGINT
+
233  if (handle_sigint_) handle(SIGINT);
+
234 #endif
+
235 #ifdef SIGHUP
+
236  handle(SIGHUP);
+
237 #endif
+
238 #ifdef SIGBUS
+
239  handle(SIGBUS);
+
240 #endif
+
241 #ifdef SIGABRT
+
242  handle(SIGABRT);
+
243 #endif
+
244 #ifdef SIGTRAP
+
245  handle(SIGTRAP);
+
246 #endif
+
247 }
+
248 
+
249 void Debugger::set_exec(const char *exec) {
+
250  if (exec) {
+
251  exec_ = exec;
+
252  } else {
+
253  exec_.resize(0);
+
254  }
+
255 }
+
256 
+
257 void Debugger::set_prefix(const char *p) {
+
258  if (p) {
+
259  prefix_ = p;
+
260  } else {
+
261  prefix_.resize(0);
+
262  }
+
263 }
+
264 
+
265 void Debugger::set_prefix(int i) {
+
266  char p[128];
+
267  sprintf(p, "%3d: ", i);
+
268  set_prefix(p);
+
269 }
+
270 
+
271 void Debugger::default_cmd() {
+
272  int has_x11_display = (getenv("DISPLAY") != 0);
+
273 
+
274  if (has_x11_display) {
+
275  set_cmd("gdb_xterm");
+
276  } else {
+
277  set_cmd(0);
+
278  }
+
279 }
+
280 
+
281 void Debugger::resolve_cmd_alias() {
+
282  if (cmd_ == "gdb_xterm") {
+
283  cmd_ = "xterm -title \"$(PREFIX)$(EXEC)\" -e gdb -ex \"set variable debugger_ready_=1\" --pid=$(PID) $(EXEC) &";
+
284  } else if (cmd_ == "lldb_xterm") {
+
285  cmd_ = "xterm -title \"$(PREFIX)$(EXEC)\" -e lldb -p $(PID) -o \"expr debugger_ready_=1\" &";
+
286  }
+
287 }
+
288 
+
289 void Debugger::set_cmd(const char *cmd) {
+
290  if (cmd) {
+
291  cmd_ = cmd;
+
292  resolve_cmd_alias();
+
293  } else {
+
294  cmd_.resize(0);
+
295  }
+
296 }
+
297 
+
298 void Debugger::debug(const char *reason) {
+
299  std::cout << prefix_ << "Debugger::debug: ";
+
300  if (reason)
+
301  std::cout << reason;
+
302  else
+
303  std::cout << "no reason given";
+
304  std::cout << endl;
+
305 
+
306  if (!cmd_.empty()) {
+
307  int pid = getpid();
+
308  // contruct the command name
+
309  std::string cmd = cmd_;
+
310  std::string::size_type pos;
+
311  std::string pidvar("$(PID)");
+
312  while ((pos = cmd.find(pidvar)) != std::string::npos) {
+
313  std::string pidstr;
+
314  pidstr += std::to_string(pid);
+
315  cmd.replace(pos, pidvar.size(), pidstr);
+
316  }
+
317  std::string execvar("$(EXEC)");
+
318  while ((pos = cmd.find(execvar)) != std::string::npos) {
+
319  cmd.replace(pos, execvar.size(), exec_);
+
320  }
+
321  std::string prefixvar("$(PREFIX)");
+
322  while ((pos = cmd.find(prefixvar)) != std::string::npos) {
+
323  cmd.replace(pos, prefixvar.size(), prefix_);
+
324  }
+
325 
+
326  // start the debugger
+
327  // before starting the debugger de-register signal handler for SIGTRAP to let the debugger take over
+
328  release(SIGTRAP);
+
329  std::cout << prefix_ << "Debugger: starting \"" << cmd << "\"" << endl;
+
330  debugger_ready_ = 0;
+
331  const auto system_retvalue = system(cmd.c_str());
+
332  if (system_retvalue != 0) { // call to system() failed
+
333  std::cout << prefix_ << "Failed debugger launch: system() did not succeed ..." << endl;
+
334  } else { // call to system() succeeded
+
335  // wait until the debugger is ready
+
336  if (sleep_) {
+
337  std::cout << prefix_ << "Sleeping " << sleep_ << " seconds to wait for debugger ..." << endl;
+
338  sleep(sleep_);
+
339  }
+
340  if (wait_for_debugger_) {
+
341  std::string make_ready_message;
+
342  if (cmd_.find(" gdb ") != std::string::npos || cmd_.find(" lldb ") != std::string::npos) {
+
343  make_ready_message =
+
344  " configure debugging session (set breakpoints/watchpoints, etc.) then type 'c' to continue running";
+
345  }
+
346 
+
347  std::cout << prefix_ << ": waiting for the user ..." << make_ready_message << endl;
+
348  while (!debugger_ready_)
+
349  ;
+
350  }
+
351  }
+
352  } else { // empty command = wait for the user to attach manually
+
353  std::cout << prefix_ << ": waiting for the user to attach a debugger to process " << getpid() << " ... " << endl;
+
354  debugger_ready_ = 0;
+
355  while (!debugger_ready_)
+
356  ;
+
357  }
+
358 }
+
359 
+
360 void Debugger::got_signal(int sig) {
+
361  const char *signame;
+
362  if (sig == SIGSEGV)
+
363  signame = "SIGSEGV";
+
364  else if (sig == SIGFPE)
+
365  signame = "SIGFPE";
+
366  else if (sig == SIGHUP)
+
367  signame = "SIGHUP";
+
368  else if (sig == SIGINT)
+
369  signame = "SIGINT";
+
370  else if (sig == SIGABRT)
+
371  signame = "SIGABRT";
+
372 #ifdef SIGBUS
+
373  else if (sig == SIGBUS)
+
374  signame = "SIGBUS";
+
375 #endif
+
376  else if (sig == SIGTRAP)
+
377  signame = "SIGTRAP";
+
378  else
+
379  signame = "UNKNOWN SIGNAL";
+
380 
+
381  if (traceback_) {
+
382  traceback(signame);
+
383  }
+
384  if (debug_) {
+
385  debug(signame);
+
386  }
+
387 
+
388  if (exit_on_signal_) {
+
389  std::cout << prefix_ << "Debugger: exiting" << endl;
+
390  exit(1);
+
391  } else {
+
392  std::cout << prefix_ << "Debugger: continuing" << endl;
+
393  }
+
394 
+
395  // handle(sig);
+
396 }
+
397 
+
398 void Debugger::set_debug_on_signal(int v) { debug_ = v; }
+
399 
+
400 void Debugger::set_traceback_on_signal(int v) { traceback_ = v; }
+
401 
+
402 void Debugger::set_wait_for_debugger(int v) { wait_for_debugger_ = v; }
+
403 
+
404 void Debugger::set_exit_on_signal(int v) { exit_on_signal_ = v; }
+
405 
+
406 void Debugger::set_default_debugger(const std::shared_ptr<Debugger> &d) { default_debugger_ = d; }
+
407 
+
408 std::shared_ptr<Debugger> Debugger::default_debugger() { return default_debugger_; }
+
409 
+
410 #define SIMPLE_STACK (defined(linux) && defined(i386)) || (defined(__OSF1__) && defined(i860))
+
411 
+
412 void Debugger::traceback(const char *reason) { Debugger::__traceback(prefix_, reason); }
+
413 
+
414 void Debugger::__traceback(const std::string &prefix, const char *reason) {
+
415  detail::Backtrace result(prefix);
+
416  const size_t nframes_to_skip = 2;
+
417 #if defined(HAVE_LIBUNWIND)
+
418  std::cout << prefix << "Debugger::traceback(using libunwind):";
+
419 #elif defined(HAVE_BACKTRACE) // !HAVE_LIBUNWIND
+
420  std::cout << prefix << "Debugger::traceback(using backtrace):";
+
421 #else // !HAVE_LIBUNWIND && !HAVE_BACKTRACE
+
422 #if defined(SIMPLE_STACK)
+
423  std::cout << prefix << "Debugger::traceback:";
+
424 #else
+
425  std::cout << prefix << "traceback not available for this arch" << endl;
+
426  return;
+
427 #endif // SIMPLE_STACK
+
428 #endif // HAVE_LIBUNWIND, HAVE_BACKTRACE
+
429 
+
430  if (reason)
+
431  std::cout << reason;
+
432  else
+
433  std::cout << "no reason given";
+
434  std::cout << endl;
+
435 
+
436  if (result.empty())
+
437  std::cout << prefix << "backtrace returned no state information" << std::endl;
+
438  else
+
439  std::cout << result.str(nframes_to_skip) << std::endl;
+
440 }
+
441 
+
443 
+
444 namespace ttg {
+
445  void launch_debugger(int rank, const char *exec_name, const char *cmd) {
+
446  using ttg::Debugger;
+
447  auto debugger = std::make_shared<Debugger>();
+
448  Debugger::set_default_debugger(debugger);
+
449  debugger->set_exec(exec_name);
+
450  debugger->set_prefix(rank);
+
451  debugger->set_cmd("lldb_xterm");
+
452  debugger->debug("start");
+
453 
+
454  // initialize_watchpoints();
+
455  }
+
456 
+
457  void launch_lldb(int rank, const char *exec_name) { launch_debugger(rank, exec_name, "lldb_xterm"); }
+
458  void launch_gdb(int rank, const char *exec_name) { launch_debugger(rank, exec_name, "gdb_xterm"); }
+
459 } // namespace ttg
+
460 
+
462 // Local Variables:
+
463 // mode: c++
+
464 // c-file-style: "CLJ"
+
465 // End:
+ +
#define NSIG
Definition: bug.cpp:44
+ + +
virtual void got_signal(int sig)
Called when signal sig is received. This is mainly for internal use.
Definition: bug.cpp:360
+ +
bool empty() const
Definition: backtrace.h:61
+
std::string str(const size_t nframes_to_skip=0) const
Definition: backtrace.cpp:154
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
void launch_lldb(int rank, const char *exec_name)
Definition: bug.cpp:457
+
void launch_debugger(int rank, const char *exec_name, const char *cmd)
Definition: bug.cpp:445
+
int rank(World world=default_execution_context())
Definition: run.h:85
+
void initialize_fpe()
Initializes the floating point exceptions.
Definition: bug.cpp:51
+
void launch_gdb(int rank, const char *exec_name)
Definition: bug.cpp:458
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/bug_8h.html b/dox-master/bug_8h.html new file mode 100644 index 000000000..fecbdd733 --- /dev/null +++ b/dox-master/bug_8h.html @@ -0,0 +1,169 @@ + + + + + + + + + + + ttg: ttg/ttg/util/bug.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
bug.h File Reference
+
+
+
#include <cassert>
+#include <memory>
+#include <stdexcept>
+#include <string>
+#include <unordered_map>
+#include <vector>
+#include <pthread.h>
+
+ + + + + + + + + +

+Classes

class  ttg::detail::MemoryWatchpoint_x86_64
 MemoryWatchpoint represents a hardware watchpoint for a memory location Implements a memory watchpoint on x86 ... only implemented for macOS so far this is a slightly tweaked version of https://m.habrahabr.ru/post/103073/ see also http://www.sandpile.org/x86/drx.htm for the x86 debugging register map. More...
 
class  ttg::detail::MemoryWatchpoint_x86_64::Pool
 a singleton pool of MemoryWatchpoint objects More...
 
class  ttg::Debugger
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+ + + + + + + + + + +

+Functions

void ttg::initialize_fpe ()
 Initializes the floating point exceptions. More...
 
void ttg::launch_debugger (int rank, const char *exec_name, const char *cmd)
 
void ttg::launch_lldb (int rank, const char *exec_name)
 
void ttg::launch_gdb (int rank, const char *exec_name)
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/bug_8h_source.html b/dox-master/bug_8h_source.html new file mode 100644 index 000000000..d47208641 --- /dev/null +++ b/dox-master/bug_8h_source.html @@ -0,0 +1,486 @@ + + + + + + + + + + + ttg: ttg/ttg/util/bug.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
bug.h
+
+
+Go to the documentation of this file.
1 //
+
2 // bug.h
+
3 //
+
4 // Copyright (C) 1996 Limit Point Systems, Inc.
+
5 //
+
6 // Author: Curtis Janssen <cljanss@limitpt.com>
+
7 // Maintainer: LPS
+
8 //
+
9 // This file is part of the SC Toolkit.
+
10 //
+
11 // The SC Toolkit is free software; you can redistribute it and/or modify
+
12 // it under the terms of the GNU Library General Public License as published by
+
13 // the Free Software Foundation; either version 2, or (at your option)
+
14 // any later version.
+
15 //
+
16 // The SC Toolkit is distributed in the hope that it will be useful,
+
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
+
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+
19 // GNU Library General Public License for more details.
+
20 //
+
21 // You should have received a copy of the GNU Library General Public License
+
22 // along with the SC Toolkit; see the file COPYING.LIB. If not, write to
+
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+
24 //
+
25 // The U.S. Government is granted a limited license as per AL 91-7.
+
26 //
+
27 
+
28 #ifndef TTG_UTIL_MISC_BUG_H_
+
29 #define TTG_UTIL_MISC_BUG_H_
+
30 
+
31 #include <cassert>
+
32 #include <memory>
+
33 #include <stdexcept>
+
34 #include <string>
+
35 #include <unordered_map>
+
36 #include <vector>
+
37 
+
38 #include <pthread.h>
+
39 #if __APPLE__
+
40 #include <mach/mach.h>
+
41 #endif
+
42 
+
43 namespace ttg {
+
44  namespace detail {
+
45 
+ +
51  public:
+
52  // x86 debugging registers are described in see
+
53  // https://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-system-programming-manual-325384.html
+
54  enum DebugRegister { kDR0 = 0, kDR1 = 1, kDR2 = 2, kDR3 = 3 };
+
55 
+
56  enum Size {
+
57  kByte = 0, // 1 byte - 00
+
58  kHalfWord = 1, // 2 bytes - 01
+
59  kWord = 3, // 4 bytes - 11
+
60  // kDoubleWord = 2, // 8 bytes - 10 NOT SUPPORTED BY SOME CHIPS!
+
61  kSizeMask = 3 // mask 11
+
62  };
+
63 
+
64  enum BreakState {
+
65  kDisabled = 0, // disabled - 00
+
66  kEnabledLocally = 1, // task local - 01
+
67  kEnabledGlobally = 2, // global - 10
+
68  kBreakStateMask = 3 // mask 11
+
69  };
+
70 
+
71  enum Condition {
+
72  kWhenExecuted = 0, // on execution - 00
+
73  kWhenWritten = 1, // on write - 01
+
74  kWhenWrittenOrRead = 3, // on read or write - 11
+
75  kConditionMask = 3 // mask 11
+
76  };
+
77 
+
79  class Pool {
+
80  public:
+
81  static constexpr const size_t nwatchpoints_per_thread = 4;
+
82 
+
83  ~Pool() = default;
+
84 
+
89  static void initialize_instance(const std::vector<const pthread_t *> &threads) {
+
90  get_instance() = std::shared_ptr<Pool>(new Pool(threads));
+
91  }
+
92 
+
94  static std::shared_ptr<Pool> instance() {
+
95  auto result = get_instance();
+
96  assert(result && "Pool::instance() called but Pool::initialize_instance() had not been called");
+
97  return result;
+
98  }
+
99 
+
107  Pool &set(void *addr, Size size, Condition cond, const pthread_t *thread) {
+
108  const auto it = pool_.find(thread);
+
109  assert(it != pool_.end());
+
110  // make sure there is no watchpoint for this address already
+
111  for (auto &watchpt_ptr : it->second) {
+
112  if (watchpt_ptr && watchpt_ptr->address() == addr) return *this;
+
113  }
+
114  // now create a watchpoint
+
115  for (auto dr = 0; dr != nwatchpoints_per_thread; ++dr) {
+
116  auto &watchpt_ptr = it->second[dr];
+
117  if (!watchpt_ptr) {
+
118  watchpt_ptr =
+
119  std::make_shared<MemoryWatchpoint_x86_64>(addr, size, cond, static_cast<DebugRegister>(dr), thread);
+
120  return *this;
+
121  }
+
122  }
+
123  return *this;
+
124  }
+
125 
+
130  MemoryWatchpoint_x86_64 *find(void *addr, const pthread_t *thread) {
+
131  const auto it = pool_.find(thread);
+
132  assert(it != pool_.end());
+
133  for (auto &watchpt_ptr : it->second) {
+
134  if (watchpt_ptr && watchpt_ptr->address() == addr) return watchpt_ptr.get();
+
135  }
+
136  return nullptr;
+
137  }
+
138 
+
142  Pool &clear(void *addr, const pthread_t *thread) {
+
143  const auto it = pool_.find(thread);
+
144  assert(it != pool_.end());
+
145  for (auto &watchpt_ptr : it->second) {
+
146  if (watchpt_ptr && watchpt_ptr->address() == addr) {
+
147  watchpt_ptr.reset();
+
148  return *this;
+
149  }
+
150  }
+
151  return *this;
+
152  }
+
153 
+
154  private:
+
155  std::unordered_map<const pthread_t *, std::vector<std::shared_ptr<MemoryWatchpoint_x86_64>>> pool_;
+
156 
+
162  explicit Pool(const std::vector<const pthread_t *> &threads) {
+
163  for (const auto &thread : threads) {
+
164  assert(thread != nullptr);
+
165  pool_[thread].resize(nwatchpoints_per_thread);
+
166  }
+
167  }
+
168 
+
169  static std::shared_ptr<Pool> &get_instance() {
+
170  static std::shared_ptr<Pool> instance_;
+
171  return instance_;
+
172  }
+
173  };
+
174 
+
184  MemoryWatchpoint_x86_64(void *addr, Size size, Condition cond, DebugRegister dr, const pthread_t *thread)
+
185  : addr_(addr), size_(size), cond_(cond), dr_(dr), thread_(thread) {
+
186  init(true);
+
187  }
+
188 
+
189  ~MemoryWatchpoint_x86_64() { init(false); }
+
190 
+
191  void *address() const { return addr_; }
+
192  Size size() const { return size_; }
+
193  Condition condition() const { return cond_; }
+
194  DebugRegister debug_register() const { return dr_; }
+
195 
+
196  private:
+
197  void *addr_;
+
198  Size size_;
+
199  Condition cond_;
+
200  DebugRegister dr_;
+
201  const pthread_t *thread_;
+
202 
+
203  inline uint64_t MakeFlags(DebugRegister reg, BreakState state, Condition cond, Size size) {
+
204  // N.B. each register takes 2 bits in DR7
+
205  return (state | cond << 16 | size << 24) << (2 * reg);
+
206  }
+
207 
+
208  inline uint64_t MakeMask(DebugRegister reg) { return MakeFlags(reg, kBreakStateMask, kConditionMask, kSizeMask); }
+
209 
+
210  friend class MemoryWatchPool;
+
211 
+
212  void init(bool create) {
+
213 #if defined(__APPLE__) && defined(__x86_64__)
+
214  x86_debug_state dr;
+
215  mach_msg_type_number_t dr_count = x86_DEBUG_STATE_COUNT;
+
216 
+
217  mach_port_t target_mach_thread = pthread_mach_thread_np(*thread_);
+
218 
+
219  kern_return_t rc =
+
220  thread_get_state(target_mach_thread, x86_DEBUG_STATE, reinterpret_cast<thread_state_t>(&dr), &dr_count);
+
221 
+
222  if (create && rc != KERN_SUCCESS)
+
223  throw std::runtime_error("MemoryWatchpoint_x86_64::MemoryWatchpoint_x86_64(): thread_get_state failed");
+
224 
+
225  switch (dr_) {
+
226  case kDR0:
+
227  dr.uds.ds64.__dr0 = reinterpret_cast<uint64_t>(addr_);
+
228  break;
+
229  case kDR1:
+
230  dr.uds.ds64.__dr1 = reinterpret_cast<uint64_t>(addr_);
+
231  break;
+
232  case kDR2:
+
233  dr.uds.ds64.__dr2 = reinterpret_cast<uint64_t>(addr_);
+
234  break;
+
235  case kDR3:
+
236  dr.uds.ds64.__dr3 = reinterpret_cast<uint64_t>(addr_);
+
237  break;
+
238  }
+
239 
+
240  dr.uds.ds64.__dr7 &= ~MakeMask(dr_);
+
241 
+
242  dr.uds.ds64.__dr7 |= MakeFlags(dr_, create ? kEnabledLocally : kDisabled, cond_, size_);
+
243 
+
244  rc = thread_set_state(target_mach_thread, x86_DEBUG_STATE, reinterpret_cast<thread_state_t>(&dr), dr_count);
+
245 
+
246  if (create && rc != KERN_SUCCESS)
+
247  throw std::runtime_error("MemoryWatchpoint_x86_64::MemoryWatchpoint_x86_64(): thread_set_state failed");
+
248 #endif // defined(__APPLE__) && defined(__x86_64__)
+
249  }
+
250  };
+
251 
+
252  } // namespace detail
+
253 
+
261  void initialize_fpe();
+
262 
+
270  class Debugger {
+
271  protected:
+
272  std::string prefix_;
+
273  std::string exec_;
+
274  std::string cmd_;
+
275  volatile int debugger_ready_;
+
276 
+
277  bool debug_;
+ + +
280  bool sleep_;
+ + +
283  int *mysigs_;
+
284 
+
285  void init();
+
286 
+
287  static std::shared_ptr<Debugger> default_debugger_;
+
288 
+
295  static void __traceback(const std::string &prefix, const char *reason = nullptr);
+
296 
+
297  public:
+
301  explicit Debugger(const char *exec = nullptr);
+
302  virtual ~Debugger();
+
303 
+
306  virtual void debug(const char *reason);
+
314  virtual void traceback(const char *reason);
+
316  virtual void set_debug_on_signal(int);
+
318  virtual void set_traceback_on_signal(int);
+
320  virtual void set_exit_on_signal(int);
+
324  virtual void set_wait_for_debugger(int);
+
325 
+
327  virtual void handle(int sig);
+
329  virtual void release(int sig);
+
331  virtual void handle_defaults();
+
332 
+
334  virtual void set_prefix(const char *p);
+
336  virtual void set_prefix(int p);
+
337 
+
343  virtual void set_cmd(const char *);
+
345  virtual void default_cmd();
+
349  virtual void set_exec(const char *);
+
350 
+
352  virtual void got_signal(int sig);
+
353 
+
355  static void set_default_debugger(const std::shared_ptr<Debugger> &);
+
357  static std::shared_ptr<Debugger> default_debugger();
+
358 
+
359  private:
+
361  void resolve_cmd_alias();
+
362  };
+
363 
+
364 } // namespace ttg
+
365 
+
366 namespace ttg {
+
367  void launch_debugger(int rank, const char *exec_name, const char *cmd);
+
368 
+
369  void launch_lldb(int rank = 0, const char *exec_name = "");
+
370  void launch_gdb(int rank = 0, const char *exec_name = "");
+
371 
+
372 } // namespace ttg
+
373 
+
374 #endif // TTG_UTIL_MISC_BUG_H_
+
375 
+
376 // Local Variables:
+
377 // mode: c++
+
378 // c-file-style: "CLJ"
+
379 // End:
+ +
virtual void set_cmd(const char *)
Definition: bug.cpp:289
+
virtual void set_prefix(const char *p)
This sets a prefix which preceeds all messages printing by Debugger.
Definition: bug.cpp:257
+
virtual ~Debugger()
Definition: bug.cpp:174
+
virtual void got_signal(int sig)
Called when signal sig is received. This is mainly for internal use.
Definition: bug.cpp:360
+
int * mysigs_
Definition: bug.h:283
+
static void set_default_debugger(const std::shared_ptr< Debugger > &)
Set the global default debugger. The initial value is null.
Definition: bug.cpp:406
+
static void __traceback(const std::string &prefix, const char *reason=nullptr)
Definition: bug.cpp:414
+
volatile int debugger_ready_
Definition: bug.h:275
+
virtual void handle_defaults()
This calls handle(int) with all of the major signals.
Definition: bug.cpp:219
+
virtual void set_wait_for_debugger(int)
Definition: bug.cpp:402
+
bool debug_
Definition: bug.h:277
+
std::string cmd_
Definition: bug.h:274
+
virtual void traceback(const char *reason)
Definition: bug.cpp:412
+
bool handle_sigint_
Definition: bug.h:282
+
static std::shared_ptr< Debugger > default_debugger()
Return the global default debugger.
Definition: bug.cpp:408
+
std::string exec_
Definition: bug.h:273
+
bool exit_on_signal_
Definition: bug.h:279
+
virtual void default_cmd()
Calls set_cmd with a hopefully suitable default.
Definition: bug.cpp:271
+
virtual void set_exit_on_signal(int)
Turn on or off exit after a signel. The default is on.
Definition: bug.cpp:404
+
void init()
Definition: bug.cpp:181
+
std::string prefix_
Definition: bug.h:272
+
bool traceback_
Definition: bug.h:278
+
virtual void handle(int sig)
The Debugger will be activated when sig is caught.
Definition: bug.cpp:204
+
bool sleep_
Definition: bug.h:280
+
Debugger(const char *exec=nullptr)
Programmatic construction of Debugger.
Definition: bug.cpp:157
+
virtual void debug(const char *reason)
Definition: bug.cpp:298
+
virtual void release(int sig)
Reverts the effect of handle(sig) , i.e. the Debugger will not be activated when sig is caught.
Definition: bug.cpp:212
+
static std::shared_ptr< Debugger > default_debugger_
Definition: bug.h:287
+
virtual void set_debug_on_signal(int)
Turn on or off debugging on a signel. The default is on.
Definition: bug.cpp:398
+
bool wait_for_debugger_
Definition: bug.h:281
+
virtual void set_exec(const char *)
Definition: bug.cpp:249
+
virtual void set_traceback_on_signal(int)
Turn on or off traceback on a signel. The default is on.
Definition: bug.cpp:400
+
a singleton pool of MemoryWatchpoint objects
Definition: bug.h:79
+
Pool & set(void *addr, Size size, Condition cond, const pthread_t *thread)
Definition: bug.h:107
+
static void initialize_instance(const std::vector< const pthread_t * > &threads)
Definition: bug.h:89
+ +
static constexpr const size_t nwatchpoints_per_thread
Definition: bug.h:81
+
MemoryWatchpoint_x86_64 * find(void *addr, const pthread_t *thread)
Definition: bug.h:130
+
static std::shared_ptr< Pool > instance()
accesses the unique pool; asserts that the default instance has been initialized by calling initializ...
Definition: bug.h:94
+
Pool & clear(void *addr, const pthread_t *thread)
Definition: bug.h:142
+
MemoryWatchpoint represents a hardware watchpoint for a memory location Implements a memory watchpoin...
Definition: bug.h:50
+ + + + + +
MemoryWatchpoint_x86_64(void *addr, Size size, Condition cond, DebugRegister dr, const pthread_t *thread)
creates a MemoryWatchpoint watching memory window [addr,addr+size) for condition cond from threads th...
Definition: bug.h:184
+
Condition condition() const
Definition: bug.h:193
+ + + + + + + + +
DebugRegister debug_register() const
Definition: bug.h:194
+ + + + + + + + + + + +
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
void launch_lldb(int rank, const char *exec_name)
Definition: bug.cpp:457
+
void launch_debugger(int rank, const char *exec_name, const char *cmd)
Definition: bug.cpp:445
+
int rank(World world=default_execution_context())
Definition: run.h:85
+
void initialize_fpe()
Initializes the floating point exceptions.
Definition: bug.cpp:51
+
void launch_gdb(int rank, const char *exec_name)
Definition: bug.cpp:458
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/callable_8h.html b/dox-master/callable_8h.html new file mode 100644 index 000000000..4a01e1844 --- /dev/null +++ b/dox-master/callable_8h.html @@ -0,0 +1,190 @@ + + + + + + + + + + + ttg: ttg/ttg/util/meta/callable.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
callable.h File Reference
+
+
+ + + + + + + + + + + + +

+Classes

struct  ttg::meta::is_generic_callable< Callable, typename >
 
struct  ttg::meta::is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > >
 
struct  ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >
 
struct  ttg::meta::candidate_argument_bindings< void, void >
 
struct  ttg::meta::candidate_argument_bindings< const void, void >
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::meta
 
+ + + + +

+Typedefs

template<typename T >
using ttg::meta::candidate_argument_bindings_t = typename candidate_argument_bindings< T >::type
 
+ + + + + + + + + + + + + + + + +

+Functions

template<std::size_t N>
constexpr auto ttg::meta::ordinal2index (std::size_t ordinal, std::array< std::size_t, N > extents)
 
template<std::size_t Ordinal, typename Func , typename... Typelists, std::size_t... ArgIdx>
auto ttg::meta::compute_arg_binding_types_impl (Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
 
template<std::size_t Ordinal, typename ReturnType , typename Func , typename... Typelists, std::size_t... ArgIdx>
auto ttg::meta::compute_arg_binding_types_r_impl (Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
 
template<typename Func , typename... Typelists>
auto ttg::meta::compute_arg_binding_types (Func &func, typelist< Typelists... > argument_type_lists)
 
template<typename ReturnType , typename Func , typename... Typelists>
auto ttg::meta::compute_arg_binding_types_r (Func &func, typelist< Typelists... > argument_type_lists)
 
+ + + + + + + +

+Variables

template<typename Callable >
constexpr bool ttg::meta::is_generic_callable_v = is_generic_callable<Callable>::value
 
template<typename Callable , typename Enabler = void>
constexpr std::pair< bool, std::pair< ttg::typelist<>, ttg::typelist<> > > ttg::meta::callable_args = {true, {}}
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/callable_8h_source.html b/dox-master/callable_8h_source.html new file mode 100644 index 000000000..613e652f1 --- /dev/null +++ b/dox-master/callable_8h_source.html @@ -0,0 +1,305 @@ + + + + + + + + + + + ttg: ttg/ttg/util/meta/callable.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
callable.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 3/1/22.
+
3 //
+
4 
+
5 #ifndef TTG_META_CALLABLE_H
+
6 #define TTG_META_CALLABLE_H
+
7 
+
8 #include "ttg/util/meta.h"
+
9 #include "ttg/util/typelist.h"
+
10 
+
11 #ifdef TTG_USE_BUNDLED_BOOST_CALLABLE_TRAITS
+ +
13 #else
+ +
15 #endif
+
16 
+
17 namespace ttg::meta {
+
18 
+
20  // nongeneric callables
+
22  // handled using Boost.CallableTraits ... to detect whether a callable is generic or not detect existence of
+
23  // boost::callable_traits::args_t
+
24  template <typename Callable, typename = void>
+
25  struct is_generic_callable : std::true_type {};
+
26 
+
27  template <typename Callable>
+
28  struct is_generic_callable<Callable, ttg::meta::void_t<boost::callable_traits::args_t<Callable, ttg::typelist>>>
+
29  : std::false_type {};
+
30 
+
31  template <typename Callable>
+ +
33 
+
43  template <typename Callable, typename Enabler = void>
+
44  constexpr std::pair<bool, std::pair<ttg::typelist<>, ttg::typelist<>>> callable_args = {true, {}};
+
45 
+
46  template <typename Callable>
+
47  constexpr auto callable_args<Callable, ttg::meta::void_t<boost::callable_traits::args_t<Callable, ttg::typelist>>> =
+
48  std::pair<bool, std::pair<ttg::typelist<boost::callable_traits::return_type_t<Callable>>,
+ +
50 
+
52  // generic callables
+
54 
+
56 
+
60  template <std::size_t N>
+
61  constexpr auto ordinal2index(std::size_t ordinal, std::array<std::size_t, N> extents) {
+
62  std::array<std::size_t, N> idx = {};
+
63  for (size_t d = 0; d < N; ++d) {
+
64  idx[d] = ordinal % extents[d];
+
65  ordinal /= extents[d];
+
66  }
+
67  return idx;
+
68  }
+
69 
+
83  template <std::size_t Ordinal, typename Func, typename... Typelists, std::size_t... ArgIdx>
+
84  auto compute_arg_binding_types_impl(Func& func, typelist<Typelists...> argument_type_lists,
+
85  std::index_sequence<ArgIdx...> arg_idx = {}) {
+
86  using arg_typelists_t = typelist<Typelists...>;
+
87  constexpr auto Order = sizeof...(Typelists);
+
88  constexpr std::array<std::size_t, Order> extents = {
+
89  std::tuple_size_v<std::tuple_element_t<ArgIdx, arg_typelists_t>>...};
+
90  constexpr auto tensor_size = (extents[ArgIdx] * ...);
+
91  static_assert(tensor_size >= Ordinal);
+
92  if constexpr (tensor_size == Ordinal) {
+
93  return typelist<typelist<>, typelist<>>{};
+
94  } else {
+
95  constexpr auto idx = ordinal2index(Ordinal, extents);
+
96  auto args = typelist<std::tuple_element_t<idx[ArgIdx], std::tuple_element_t<ArgIdx, arg_typelists_t>>...>{};
+
97  using args_sans_void_t = drop_void_t<decltype(args)>;
+
98  if constexpr (is_invocable_typelist_v<Func, args_sans_void_t>) {
+
99  using return_type = invoke_result_typelist_t<Func, args_sans_void_t>;
+
100  return ttg::typelist<ttg::typelist<return_type>, decltype(args)>{};
+
101  } else {
+
102  return compute_arg_binding_types_impl<Ordinal + 1>(func, argument_type_lists, arg_idx);
+
103  }
+
104  }
+
105  }
+
106 
+
121  template <std::size_t Ordinal, typename ReturnType, typename Func, typename... Typelists, std::size_t... ArgIdx>
+
122  auto compute_arg_binding_types_r_impl(Func& func, typelist<Typelists...> argument_type_lists,
+
123  std::index_sequence<ArgIdx...> arg_idx = {}) {
+
124  using arg_typelists_t = typelist<Typelists...>;
+
125  constexpr auto Order = sizeof...(Typelists);
+
126  constexpr std::array<std::size_t, Order> extents = {
+
127  std::tuple_size_v<std::tuple_element_t<ArgIdx, arg_typelists_t>>...};
+
128  constexpr auto tensor_size = (extents[ArgIdx] * ...);
+
129  static_assert(tensor_size >= Ordinal);
+
130  if constexpr (tensor_size == Ordinal) {
+
131  return typelist<>{};
+
132  } else {
+
133  constexpr auto idx = ordinal2index(Ordinal, extents);
+
134  auto args = typelist<std::tuple_element_t<idx[ArgIdx], std::tuple_element_t<ArgIdx, arg_typelists_t>>...>{};
+
135  if constexpr (is_invocable_typelist_r_v<ReturnType, Func, drop_void_t<decltype(args)>>) {
+
136  return args;
+
137  } else {
+
138  return compute_arg_binding_types_r_impl<Ordinal + 1, ReturnType>(func, argument_type_lists, arg_idx);
+
139  }
+
140  }
+
141  }
+
142 
+
153  template <typename Func, typename... Typelists>
+
154  auto compute_arg_binding_types(Func& func, typelist<Typelists...> argument_type_lists) {
+
155  constexpr auto is_generic__args = callable_args<Func&>;
+
156  constexpr bool is_generic = is_generic__args.first;
+
157  if constexpr (is_generic) {
+
158  return compute_arg_binding_types_impl<0>(func, argument_type_lists,
+
159  std::make_index_sequence<sizeof...(Typelists)>{});
+
160  } else {
+
161  return is_generic__args.second;
+
162  }
+
163  }
+
164 
+
174  template <typename ReturnType, typename Func, typename... Typelists>
+
175  auto compute_arg_binding_types_r(Func& func, typelist<Typelists...> argument_type_lists) {
+
176  constexpr auto is_generic__args = callable_args<Func&>;
+
177  constexpr bool is_generic = is_generic__args.first;
+
178  if constexpr (is_generic) {
+
179  return compute_arg_binding_types_r_impl<0, ReturnType>(func, argument_type_lists,
+
180  std::make_index_sequence<sizeof...(Typelists)>{});
+
181  } else {
+
182  return is_generic__args.second.second;
+
183  }
+
184  }
+
185 
+
188  template <typename T, typename = void>
+ +
190 
+
191  template <typename T>
+
192  struct candidate_argument_bindings<T, std::enable_if_t<!std::is_reference_v<T> && !std::is_void_v<T>>> {
+
193  using type = std::conditional_t<std::is_const_v<T>, typelist<const T&>,
+
194  typelist<
+
195  // RATIONALE for this order of binding detection tries:
+
196  // - to be able to distinguish arguments declared as auto& vs auto&& should try
+
197  // binding to T&& first since auto& won't bind to it
+
198  // - HOWEVER argument declared as const T& will bind to either T&& or const T&,
+
199  // so this order will detect such argument as binding to T&&, which will
+
200  // indicate to the runtime that the argument is CONSUMABLE and may cause
+
201  // creation of extra copies. Thus you should not try to use nongeneric
+
202  // data arguments in generic task functions; for purely nongeneric functions
+
203  // a different introspection mechanism (Boost.CallableTraits) is used
+
204  T&&, const T&
+
205  // - no need to check T& since auto& and auto&& both bind to it
+
206  //, T&
+
207  >>;
+
208  };
+
209 
+
210  template <>
+
211  struct candidate_argument_bindings<void, void> {
+
212  using type = typelist<>;
+
213  };
+
214 
+
215  template <>
+
216  struct candidate_argument_bindings<const void, void> {
+
217  using type = typelist<>;
+
218  };
+
219 
+
220  template <typename T>
+ +
222 } // namespace ttg::meta
+
223 
+
224 #endif // TTG_META_CALLABLE_H
+ + +
typename make_index_sequence_t< I... >::type make_index_sequence
+
detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::template expand_args< Container >, cannot_expand_the_parameter_list_of_first_template_argument > args_t
Definition: args.hpp:29
+ +
auto compute_arg_binding_types_r(Func &func, typelist< Typelists... > argument_type_lists)
Definition: callable.h:175
+
auto compute_arg_binding_types_impl(Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
Definition: callable.h:84
+
auto compute_arg_binding_types(Func &func, typelist< Typelists... > argument_type_lists)
Definition: callable.h:154
+
constexpr std::pair< bool, std::pair< ttg::typelist<>, ttg::typelist<> > > callable_args
Definition: callable.h:44
+
void void_t
Definition: meta.h:23
+
constexpr bool is_generic_callable_v
Definition: callable.h:32
+
constexpr auto ordinal2index(std::size_t ordinal, std::array< std::size_t, N > extents)
Definition: callable.h:61
+
auto compute_arg_binding_types_r_impl(Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
Definition: callable.h:122
+
typename candidate_argument_bindings< T >::type candidate_argument_bindings_t
Definition: callable.h:221
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
std::conditional_t< std::is_const_v< T >, typelist< const T & >, typelist< T &&, const T & > > type
Definition: callable.h:207
+ + +
A container for types.
Definition: typelist.h:24
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/callable__traits_8hpp.html b/dox-master/callable__traits_8hpp.html new file mode 100644 index 000000000..a4d9ea8cb --- /dev/null +++ b/dox-master/callable__traits_8hpp.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
callable_traits.hpp File Reference
+
+
+
#include <boost/callable_traits/detail/core.hpp>
+#include <boost/callable_traits/add_member_const.hpp>
+#include <boost/callable_traits/add_member_cv.hpp>
+#include <boost/callable_traits/add_member_lvalue_reference.hpp>
+#include <boost/callable_traits/add_member_rvalue_reference.hpp>
+#include <boost/callable_traits/add_member_volatile.hpp>
+#include <boost/callable_traits/add_noexcept.hpp>
+#include <boost/callable_traits/add_transaction_safe.hpp>
+#include <boost/callable_traits/add_varargs.hpp>
+#include <boost/callable_traits/apply_member_pointer.hpp>
+#include <boost/callable_traits/apply_return.hpp>
+#include <boost/callable_traits/args.hpp>
+#include <boost/callable_traits/class_of.hpp>
+#include <boost/callable_traits/function_type.hpp>
+#include <boost/callable_traits/has_member_qualifiers.hpp>
+#include <boost/callable_traits/has_varargs.hpp>
+#include <boost/callable_traits/has_void_return.hpp>
+#include <boost/callable_traits/is_const_member.hpp>
+#include <boost/callable_traits/is_invocable.hpp>
+#include <boost/callable_traits/is_lvalue_reference_member.hpp>
+#include <boost/callable_traits/is_reference_member.hpp>
+#include <boost/callable_traits/is_rvalue_reference_member.hpp>
+#include <boost/callable_traits/is_noexcept.hpp>
+#include <boost/callable_traits/is_transaction_safe.hpp>
+#include <boost/callable_traits/is_volatile_member.hpp>
+#include <boost/callable_traits/qualified_class_of.hpp>
+#include <boost/callable_traits/remove_member_const.hpp>
+#include <boost/callable_traits/remove_member_cv.hpp>
+#include <boost/callable_traits/remove_member_reference.hpp>
+#include <boost/callable_traits/remove_member_volatile.hpp>
+#include <boost/callable_traits/remove_noexcept.hpp>
+#include <boost/callable_traits/remove_transaction_safe.hpp>
+#include <boost/callable_traits/remove_varargs.hpp>
+#include <boost/callable_traits/return_type.hpp>
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/callable__traits_8hpp_source.html b/dox-master/callable__traits_8hpp_source.html new file mode 100644 index 000000000..09d535705 --- /dev/null +++ b/dox-master/callable__traits_8hpp_source.html @@ -0,0 +1,207 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
callable_traits.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_BOOST_CLBL_TRTS_HPP
+
10 #define BOOST_CLBL_TRTS_BOOST_CLBL_TRTS_HPP
+
11 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
46 
+
47 #endif
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class__of_8hpp.html b/dox-master/class__of_8hpp.html new file mode 100644 index 000000000..4ec6aba7b --- /dev/null +++ b/dox-master/class__of_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/class_of.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
class_of.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::class_of_impl< T, typename >
 
struct  boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >
 
struct  boost::callable_traits::class_of< T >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + + +

+Typedefs

template<typename T >
using boost::callable_traits::class_of_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::class_type, type_is_not_a_member_pointer >
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class__of_8hpp_source.html b/dox-master/class__of_8hpp_source.html new file mode 100644 index 000000000..1f913eb4e --- /dev/null +++ b/dox-master/class__of_8hpp_source.html @@ -0,0 +1,209 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/class_of.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
class_of.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2015-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_class_of_HPP
+
10 #define BOOST_CLBL_TRTS_class_of_HPP
+
11 
+ +
13 
+
14 namespace boost { namespace callable_traits {
+
15 
+
16 //[ class_of_hpp
+
17 /*`
+
18 [section:ref_class_of class_of]
+
19 [heading Header]
+
20 ``#include <boost/callable_traits/class_of.hpp>``
+
21 [heading Definition]
+
22 */
+
23 
+
24 template<typename T>
+
25 using class_of_t = //see below
+
26 //<-
+ +
28  typename detail::traits<detail::shallow_decay<T>>::class_type,
+
29  type_is_not_a_member_pointer>;
+
30 
+
31 namespace detail {
+
32 
+
33  template<typename T, typename = std::false_type>
+
34  struct class_of_impl {};
+
35 
+
36  template<typename T>
+
37  struct class_of_impl <T, typename std::is_same<
+
38  class_of_t<T>, detail::dummy>::type>
+
39  {
+ +
41  };
+
42 }
+
43 
+
44 //->
+
45 
+
46 template<typename T>
+ +
48 
+
49 //<-
+
50 }} // namespace boost::callable_traits
+
51 //->
+
52 
+
53 /*`
+
54 [heading Constraints]
+
55 * `T` must be a member pointer
+
56 
+
57 [heading Behavior]
+
58 * A substitution failure occurs if the constraints are violated.
+
59 * The aliased type is the parent class of the member. In other words, if `T` is expanded to `U C::*`, the aliased type is `C`.
+
60 
+
61 [heading Input/Output Examples]
+
62 [table
+
63  [[`T`] [`class_of_t<T>`]]
+
64  [[`int foo::*`] [`foo`]]
+
65  [[`void(foo::* const &)() const`] [`foo`]]
+
66 ]
+
67 
+
68 [heading Example Program]
+
69 [import ../example/class_of.cpp]
+
70 [class_of]
+
71 [endsect]
+
72 */
+
73 //]
+
74 
+
75 #endif // #ifndef BOOST_CLBL_TRTS_class_of_HPP
+ +
sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
Definition: utility.hpp:58
+
typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
Definition: traits.hpp:25
+
detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::class_type, type_is_not_a_member_pointer > class_of_t
Definition: class_of.hpp:29
+ + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class_callable_wrap_t_t-members.html b/dox-master/class_callable_wrap_t_t-members.html new file mode 100644 index 000000000..d12749451 --- /dev/null +++ b/dox-master/class_callable_wrap_t_t-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ +
+
+
+
CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT > Member List
+
+
+ +

This is the complete list of members for CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >, including all inherited members.

+ + + + + + + +
CallableWrapTT(funcT_ &&f, const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >inline
CallableWrapTT(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >inline
op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >inline
op(ArgsTuple &&args_tuple, output_terminalsT &out)CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >inline
op(Key &&key, output_terminalsT &out)CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >inline
op(output_terminalsT &out)CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >inline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class_callable_wrap_t_t.html b/dox-master/class_callable_wrap_t_t.html new file mode 100644 index 000000000..e2bb6ebc5 --- /dev/null +++ b/dox-master/class_callable_wrap_t_t.html @@ -0,0 +1,456 @@ + + + + + + + + + + + ttg: CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT > Class Template Reference
+
+
+
+Inheritance diagram for CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >:
+
+
+ +
+

Documentation

+

template<typename funcT, bool funcT_receives_outterm_tuple, typename keyT, typename output_terminalsT, typename... input_valuesT>
+class CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >

+ + +

Definition at line 14 of file make_tt.h.

+
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename funcT_ >
 CallableWrapTT (funcT_ &&f, const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename funcT_ >
 CallableWrapTT (funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename Key , typename ArgsTuple >
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, void > op (Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename ArgsTuple , typename Key = keyT>
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, void > op (ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename Key , typename ArgsTuple = input_values_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, void > op (Key &&key, output_terminalsT &out)
 
template<typename Key = keyT, typename ArgsTuple = input_values_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, void > op (output_terminalsT &out)
 
+

Constructor & Destructor Documentation

+ +

◆ CallableWrapTT() [1/2]

+ +
+
+
+template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename funcT_ >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >::CallableWrapTT (funcT_ && f,
const input_edges_type & inedges,
const output_edges_type & outedges,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames 
)
+
+inline
+
+ +

Definition at line 65 of file make_tt.h.

+ +
+
+ +

◆ CallableWrapTT() [2/2]

+ +
+
+
+template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename funcT_ >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >::CallableWrapTT (funcT_ && f,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames 
)
+
+inline
+
+ +

Definition at line 71 of file make_tt.h.

+ +
+
+

Member Function Documentation

+ +

◆ op() [1/4]

+ +
+
+
+template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename ArgsTuple , typename Key = keyT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<ArgsTuple> && ttg::meta::is_void_v<Key>, void> CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >::op (ArgsTuple && args_tuple,
output_terminalsT & out 
)
+
+inline
+
+ +

Definition at line 87 of file make_tt.h.

+ +
+
+ +

◆ op() [2/4]

+ +
+
+
+template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key , typename ArgsTuple >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<ArgsTuple> && !ttg::meta::is_void_v<Key>, void> CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >::op (Key && key,
ArgsTuple && args_tuple,
output_terminalsT & out 
)
+
+inline
+
+ +

Definition at line 79 of file make_tt.h.

+ +
+
+ +

◆ op() [3/4]

+ +
+
+
+template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key , typename ArgsTuple = input_values_tuple_type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && !ttg::meta::is_void_v<Key>, void> CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >::op (Key && key,
output_terminalsT & out 
)
+
+inline
+
+ +

Definition at line 92 of file make_tt.h.

+ +
+
+ +

◆ op() [4/4]

+ +
+
+
+template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key = keyT, typename ArgsTuple = input_values_tuple_type>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && ttg::meta::is_void_v<Key>, void> CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >::op (output_terminalsT & out)
+
+inline
+
+ +

Definition at line 98 of file make_tt.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class_callable_wrap_t_t.png b/dox-master/class_callable_wrap_t_t.png new file mode 100644 index 0000000000000000000000000000000000000000..a51fb4bbdebec2076d02d48c923033d1e36fe74e GIT binary patch literal 2236 zcmdUxdpy(oAIB$0Iy$vf>WC=0`;iiA(K?x<$z@@q&1EHIV+tFayX3Nx)1>JlokE2# zxqJ09)^^xCUfI)+62;uWhjRUkMr*R&qNB+02Owj;$IPiA+z8cVE( zl}}uSRhu8%HgPR;%_jAedU`I1r$rkWr}bYPWn3vTslpn3hwJ|UCwjN3x9ti|f<=D5 zzP+Pg_1CC$PZ&-lW+mMe%{9~Y4fO8D>T7hpjRvMd9gyQ^MRhJAc}3~xySr|5^USm_ z2V}*BlOORGN-dzs@#$l3EDrck@;+NXwAq$nhRiw#69@3{I+@1VGmvqHP1$vNrFIedoF5Kv>=);MPvjcZ~%X%wDp zcGHmSv{nnCe*T<_gKy&s5-a%jJA+<888?N8Qm?3%IuE2iN&{?z3ihLjf%*LBhazTP zP@FP8ms8Kq-cLvNPW>WCIgVFV3VSC=*Ynf%G>8VZ#pew1%Pp0sG4&fgmbB}esGj_1 z>{}Lc-G|`50St#RRAMRkP`A@0-Z(g$Mhx$d!gHs2wD~=Q4$}43kzm%o@*g-<|A4@S7ZS{g~S#+?c;{8F8HMp8K~$B*61d{Vt|%BQoD zi&e#f!R+@Am7OtLUab>#TM9s3$IgWv*BVM!9bAK_iv!EoJ4S8lxYAvnDvP^1GqA-J zirI}5y7yl2T^%Y2J#ZxNM#qG+Bq9>)v9y_xSG1|t+8Al=?VVQ?m>AvGw^g>J?A!zG zf$cv_y`3f}xD>#J6SRP5j5#Wegu7 zqgz)P*hJwykK{6oa=(`F7(G#F;C`7GV>IYXr!lhf+-#CGSw}NmRVb4t4c5<<0KP_U=oUcOK3#(?o`-oH^qkGa2XbY(%FV zcEjpcPZ*hYp>>8gvwBf0J`F2&Ix3p=0~ZYK`cR4F!3}TGiLQWq({egiX`_+k$IV@6 zjUau@>%O#7I1RZ|)YgQ#uT@>bXA|o%QszR{ zpg9+Pv|7=&@HM{wL!(x(Tn#*Z6EYIt1`!ZB45?+Kif3-@h{ z)o4{MJp0Zc%A0B-a#&$6ZsOf%gJ|ybT4bGdqi?5cii93g&fnGgvZCP_4gJLhNFe7B z*rlQ}!uG}evqs{Z!;=zzNL=k&Fnvl>Np4YC%&%XbJb~keZIvb5IZmu@fB9m0%=S%V z#BHwmFp1od-;bW4)aEL>kr`Mr%_-vFhCdu5jcJF?BLLhg&z76X=yv&%$BHqy@Wu6h zvh-qu1|R+r7|wA7I9j3IIKgQA5Kds)?@c`coKKUKNCb-qKuUqhs?iZOOHE>MBO%;k zAqCs#8zP!SR!qWHanJO7lOqG~JO&(W?1_p)57(lH<&x-C*gi6yKf=|yT?VSr%J@%o zIEx>Wz1tI0F>nOH^0lj;nLh`AZBJ}x%F4)h(8N088*JXQ$21U6GR{aJs8}{u3)kw( zFsH;WaxTxmY4jP6@;mTm2vM*h%* + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ +
+
+
+
CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT > Member List
+
+
+ +

This is the complete list of members for CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >, including all inherited members.

+ + + + + + + + + + + + + + + + +
call_func(Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inlineprotected
call_func(Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inlineprotected
call_func(Key &&key, output_terminalsT &out)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inlineprotected
call_func(OutputTerminals &out)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inlineprotected
CallableWrapTTArgs(funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inline
CallableWrapTTArgs(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inline
have_cuda_opCallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >static
have_hip_opCallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >static
have_level_zero_opCallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >static
make_output_terminal_ptrs(const Tuple &output_terminals, std::index_sequence< I... >)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inlineprotectedstatic
op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inline
op(ArgsTuple &&args_tuple, output_terminalsT &out)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inline
op(Key &&key, output_terminalsT &out)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inline
op(output_terminalsT &out)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inline
process_return(ReturnT &&ret, output_terminalsT &out)CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >inlineprotected
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class_callable_wrap_t_t_args.html b/dox-master/class_callable_wrap_t_t_args.html new file mode 100644 index 000000000..fdc696b47 --- /dev/null +++ b/dox-master/class_callable_wrap_t_t_args.html @@ -0,0 +1,832 @@ + + + + + + + + + + + ttg: CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ +
+
+ +
+
CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT > Class Template Reference
+
+
+
+Inheritance diagram for CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >:
+
+
+ +
+

Documentation

+

template<typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT, typename output_terminalsT, typename... input_valuesT>
+class CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >

+ + +

Definition at line 136 of file make_tt.h.

+
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename funcT_ >
 CallableWrapTTArgs (funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename funcT_ >
 CallableWrapTTArgs (funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
 
template<typename Key , typename ArgsTuple >
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&!ttg::meta::is_void_v< Key >, op_return_type > op (Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename ArgsTuple , typename Key = keyT>
std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&ttg::meta::is_void_v< Key >, op_return_type > op (ArgsTuple &&args_tuple, output_terminalsT &out)
 
template<typename Key , typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, op_return_type > op (Key &&key, output_terminalsT &out)
 
template<typename Key = keyT, typename ArgsTuple = input_refs_tuple_type>
std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, op_return_type > op (output_terminalsT &out)
 
+ + + + + + + +

+Static Public Attributes

static constexpr bool have_cuda_op = (space == ttg::ExecutionSpace::CUDA)
 
static constexpr bool have_hip_op = (space == ttg::ExecutionSpace::HIP)
 
static constexpr bool have_level_zero_op = (space == ttg::ExecutionSpace::L0)
 
+ + + + + + + + + + + + + + + + +

+Protected Member Functions

template<typename ReturnT >
auto process_return (ReturnT &&ret, output_terminalsT &out)
 
template<typename Key , typename Tuple , std::size_t... S>
auto call_func (Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
 
template<typename Tuple , std::size_t... S>
auto call_func (Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
 
template<typename Key >
auto call_func (Key &&key, output_terminalsT &out)
 
template<typename OutputTerminals >
auto call_func (OutputTerminals &out)
 
+ + + + +

+Static Protected Member Functions

template<typename Tuple , std::size_t... I>
static auto make_output_terminal_ptrs (const Tuple &output_terminals, std::index_sequence< I... >)
 
+

Constructor & Destructor Documentation

+ +

◆ CallableWrapTTArgs() [1/2]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename funcT_ >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::CallableWrapTTArgs (funcT_ && f,
const input_edges_type & inedges,
const typename baseT::output_edges_type & outedges,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames 
)
+
+inline
+
+ +

Definition at line 336 of file make_tt.h.

+ +
+
+ +

◆ CallableWrapTTArgs() [2/2]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename funcT_ >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::CallableWrapTTArgs (funcT_ && f,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames 
)
+
+inline
+
+ +

Definition at line 342 of file make_tt.h.

+ +
+
+

Member Function Documentation

+ +

◆ call_func() [1/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func (Key && key,
output_terminalsT & out 
)
+
+inlineprotected
+
+ +

Definition at line 283 of file make_tt.h.

+ +
+
+ +

◆ call_func() [2/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key , typename Tuple , std::size_t... S>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func (Key && key,
Tuple && args_tuple,
output_terminalsT & out,
std::index_sequence< S... >  
)
+
+inlineprotected
+
+
Returns
coroutine handle<> (if funcT is a coroutine), else void
+ +

Definition at line 225 of file make_tt.h.

+ +
+
+ +

◆ call_func() [3/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename OutputTerminals >
+ + + + + +
+ + + + + + + + +
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func (OutputTerminals & out)
+
+inlineprotected
+
+ +

Definition at line 306 of file make_tt.h.

+ +
+
+ +

◆ call_func() [4/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Tuple , std::size_t... S>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::call_func (Tuple && args_tuple,
output_terminalsT & out,
std::index_sequence< S... >  
)
+
+inlineprotected
+
+ +

Definition at line 259 of file make_tt.h.

+ +
+
+ +

◆ make_output_terminal_ptrs()

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Tuple , std::size_t... I>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::make_output_terminal_ptrs (const Tuple & output_terminals,
std::index_sequence< I... >  
)
+
+inlinestaticprotected
+
+ +

Definition at line 329 of file make_tt.h.

+ +
+
+ +

◆ op() [1/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename ArgsTuple , typename Key = keyT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<input_refs_tuple_type> && ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op (ArgsTuple && args_tuple,
output_terminalsT & out 
)
+
+inline
+
+ +

Definition at line 360 of file make_tt.h.

+ +
+
+ +

◆ op() [2/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key , typename ArgsTuple >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<input_refs_tuple_type> && !ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op (Key && key,
ArgsTuple && args_tuple,
output_terminalsT & out 
)
+
+inline
+
+ +

Definition at line 350 of file make_tt.h.

+ +
+
+ +

◆ op() [3/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key , typename ArgsTuple = input_refs_tuple_type>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && !ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op (Key && key,
output_terminalsT & out 
)
+
+inline
+
+ +

Definition at line 367 of file make_tt.h.

+ +
+
+ +

◆ op() [4/4]

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename Key = keyT, typename ArgsTuple = input_refs_tuple_type>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && ttg::meta::is_void_v<Key>, op_return_type> CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::op (output_terminalsT & out)
+
+inline
+
+ +

Definition at line 374 of file make_tt.h.

+ +
+
+ +

◆ process_return()

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+
+template<typename ReturnT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
auto CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::process_return (ReturnT && ret,
output_terminalsT & out 
)
+
+inlineprotected
+
+ +

Definition at line 175 of file make_tt.h.

+ +
+
+

Member Data Documentation

+ +

◆ have_cuda_op

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+ + + + + +
+ + + + +
constexpr bool CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::have_cuda_op = (space == ttg::ExecutionSpace::CUDA)
+
+staticconstexpr
+
+ +

Definition at line 168 of file make_tt.h.

+ +
+
+ +

◆ have_hip_op

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+ + + + + +
+ + + + +
constexpr bool CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::have_hip_op = (space == ttg::ExecutionSpace::HIP)
+
+staticconstexpr
+
+ +

Definition at line 169 of file make_tt.h.

+ +
+
+ +

◆ have_level_zero_op

+ +
+
+
+template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
+ + + + + +
+ + + + +
constexpr bool CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >::have_level_zero_op = (space == ttg::ExecutionSpace::L0)
+
+staticconstexpr
+
+ +

Definition at line 170 of file make_tt.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class_callable_wrap_t_t_args.png b/dox-master/class_callable_wrap_t_t_args.png new file mode 100644 index 0000000000000000000000000000000000000000..578f74e8a90c9d70546977f6f5a30019e250d534 GIT binary patch literal 2619 zcmd6ndpy(YAHctk(v4{4RB}0KllJ?e%TmpcN()=&#I_bSGAY8A%TSI>>d0bZGjhpw z$j0Q}Qc|fCQf_O_u#-!}HX;dgIa9x0zu$l7_vi2PdOgqQ@_b&O&+|O5=Xq04I@oHg z)maMwfCkbI;RFCHAWHk>YE|XDHTdvTrP^}R9(#OgX-R1g%f3)lu66NZ^rHgfHloX#8GUhiu~>wqSRa+p&0>Ji2WI-HKR10D;Qn=f8ZtX z!XsKM8a|k9*kEM%41u^4yL#gW#W6d25_kvFhHgK18Uk+m?rC#wfVU#|($9m7iOj@r z%kf}b2}l`O&R{jOK^v0vk&1nZNlC)?`0#V)7vY}wu?q_m7bW%UOYEGs8+HV4%3>{~ z`Ofd&Wh*^AGB>uD4$A>M(BbPxjgj~(Vcu&0d{QPxH2C!mRSD! zXczA0cFieY!lx9vWqj~L9JkY9RA3cpkd60tq4hqrVaywGlHWSooAuabeEy(=h8FQG zDSu7}k*C8WL@D~`75MA*WuUO5la3jiYU>|E^4G)eRzTd5BClq+e;(+r`-G!M-y}w! zjvmjD8bW8c{PV!bjCoAe_;pwxg`gMWEM0X0myXT<$Ej?=rOwnauenRKF2O9RUX7<` z@L()>Bm~x6W-af8iODPPE@l-Y%!Q9!caa2U;r@zb)|QSEDk>;uU?0yF_QI`>b_z0@ zlKxx#w8gEU9IVMIsQ=(qEphK_F@{>se!W(doX;Wbo5`cWFx^J2A<=1s7Tiv?5sPg?737%CFLA=qBUc`w9OluUSqVH)!e=7K^9xA`oYcfe={6q)-h z=d@c*xNBGj(w-4GnSG$+zK@Qc4CCw*c==DZO%=M0jo5Z2zrWReo|#i=j>hGYd!6`& zjV+?vOXQ>B^Bh(05q|L5o-#q$*j#~?#?Rt7_pEAzMwo?or*O;;lG0XpNs^jhonA-0 zQmb1{MV(iH2lZNT-Gq`;QD9$m^cIbyZ>4;qe>U$syEYdpW)9bD-gb7pUxw zR9?qxZAcm~LiFQxMnr;x4qfLY;vA58YZYtqERNc#VS+4cN&6H59imSO9;8wYur|m! z_lPepTtfByj2bhMmEF%q{UA%9-rwNl7S5U;{|z|U*^|^|EV&yR+9Pf>833y1Qr;d0 z)Ea;-fU4{^?x%0Y$r*`3%ZezK-GG|$e_~o|{vCVuBi2Tw0m_^P09yk3RwL@xj|%0e z<%;J3=&3c!O8v+SsESfWsoXmaSysCNZO-=&IYj3FV-cgsZ&yT(-Mx(S>6_p8cxUSG z561j@k~%XpXjytTWAbzz8k zuvUZbn;=wem$&B4fua+tpALksV|snZ^Fd~|Dr1%tSo$^5C(1T-CG)|+XB8%3oY}VW z7fU>Uz=YHnf}wU9yMgLqia8HGk=V$}ud>%3@^i}z&BQFTRibCLwNlTHbke$r#nk6s zf+xdpIV(c``RhdRwf(U}>(9zlBGC~(uqJW^YF76}SF@9eeQKo+(fQD!%$U9cQ~rI% zVC(EI59MDfmLJKuel%m3b$evhCp7Lh+6U@z7(ep_Nq_|DA#8_sRWj#fWkr95GEv zS)Q*xj;b?sfZbTnnDgOP2o{Q{$C&RYgPfKr8(6-RbGsNvr6(3)iJPuEOl8rVoI*lOjJC#@o3rjX6r~b4l3x>71k4X2X>=uG|UCk9LlSgLi&#PLAWg+ zlTZNmf}~`B>9x|wGdEE7I_@yfOj#gwk9wgrBcwf6`C>}<9%BxhCR0%*)mB*QRY^5k zSS`RpI$ngMAY%{pIY?pWU{}$R^tcc<=m$efy*E_yP$i}(CT-RRyFt>4U!i-PJ(8PU zGG59pyc#p^HQJhx_%ri!-R<&l}-ZRbtGHAJdktL zdcxNPDSn!lAb4G%O+udj!viFiVodj4kAI}8=zXt5pxa}#OD@iRw8Jr6-Q;ko1B%^5N3@I>yWHVsN zrvxNX5bM%axSy0r^#46P0x7!L>dY{TDk7&n5r> literal 0 HcmV?d00001 diff --git a/dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span-members.html b/dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span-members.html new file mode 100644 index 000000000..0b343249f --- /dev/null +++ b/dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span-members.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > Member List
+
+
+ +

This is the complete list of members for TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
back() constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
begin() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
const_pointer typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
const_reference typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
data() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
difference_type typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
element_type typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
empty() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
end() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
extentTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >static
first() constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
first(size_type count) constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
front() constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
iterator typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
last() constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
last(size_type count) constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
operator=(const span &other) noexcept=defaultTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
operator[](size_type idx) constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
pointer typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
rbegin() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
reference typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
rend() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
reverse_iterator typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
size() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
size_bytes() const noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
size_type typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
span() noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(pointer ptr, size_type count)TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(pointer first_elem, pointer last_elem)TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(element_type(&arr)[N]) noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(std::array< value_type, N > &arr) noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(const std::array< value_type, N > &arr) noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(Container &cont)TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(const Container &cont)TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
span(const span &other) noexcept=defaultTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
span(const span< OtherElementType, OtherExtent > &other) noexceptTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
subspan() constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
subspan(size_type offset, size_type count=dynamic_extent) constTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >inline
subspan_return_t typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
value_type typedefTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
~span() noexcept=defaultTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html b/dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html new file mode 100644 index 000000000..857c52400 --- /dev/null +++ b/dox-master/class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html @@ -0,0 +1,1380 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > Class Template Reference
+
+
+

Documentation

+

template<typename ElementType, std::size_t Extent>
+class TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >

+ + +

Definition at line 267 of file span.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using element_type = ElementType
 
using value_type = typename std::remove_cv< ElementType >::type
 
using size_type = std::size_t
 
using difference_type = std::ptrdiff_t
 
using pointer = element_type *
 
using const_pointer = const element_type *
 
using reference = element_type &
 
using const_reference = const element_type &
 
using iterator = pointer
 
using reverse_iterator = std::reverse_iterator< iterator >
 
template<std::size_t Offset, std::size_t Count = dynamic_extent>
using subspan_return_t = span< ElementType, Count !=dynamic_extent ? Count :(Extent !=dynamic_extent ? Extent - Offset :dynamic_extent)>
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||E<=0), int >::type = 0>
constexpr span () noexcept
 
TCB_SPAN_CONSTEXPR11 span (pointer ptr, size_type count)
 
TCB_SPAN_CONSTEXPR11 span (pointer first_elem, pointer last_elem)
 
template<std::size_t N, std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||N==E) &&detail::is_container_element_type_compatible< element_type(&)[N], ElementType >::value, int >::type = 0>
constexpr span (element_type(&arr)[N]) noexcept
 
template<std::size_t N, std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||N==E) &&detail::is_container_element_type_compatible< std::array< value_type, N > &, ElementType >::value, int >::type = 0>
TCB_SPAN_ARRAY_CONSTEXPR span (std::array< value_type, N > &arr) noexcept
 
template<std::size_t N, std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||N==E) &&detail::is_container_element_type_compatible< const std::array< value_type, N > &, ElementType >::value, int >::type = 0>
TCB_SPAN_ARRAY_CONSTEXPR span (const std::array< value_type, N > &arr) noexcept
 
template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< Container &, ElementType >::value, int >::type = 0>
constexpr span (Container &cont)
 
template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< const Container &, ElementType >::value, int >::type = 0>
constexpr span (const Container &cont)
 
constexpr span (const span &other) noexcept=default
 
template<typename OtherElementType , std::size_t OtherExtent, typename std::enable_if<(Extent==OtherExtent||Extent==dynamic_extent) &&std::is_convertible< OtherElementType(*)[], ElementType(*)[]>::value, int >::type = 0>
constexpr span (const span< OtherElementType, OtherExtent > &other) noexcept
 
 ~span () noexcept=default
 
TCB_SPAN_CONSTEXPR_ASSIGN spanoperator= (const span &other) noexcept=default
 
template<std::size_t Count>
TCB_SPAN_CONSTEXPR11 span< element_type, Count > first () const
 
template<std::size_t Count>
TCB_SPAN_CONSTEXPR11 span< element_type, Count > last () const
 
template<std::size_t Offset, std::size_t Count = dynamic_extent>
TCB_SPAN_CONSTEXPR11 subspan_return_t< Offset, Count > subspan () const
 
TCB_SPAN_CONSTEXPR11 span< element_type, dynamic_extentfirst (size_type count) const
 
TCB_SPAN_CONSTEXPR11 span< element_type, dynamic_extentlast (size_type count) const
 
TCB_SPAN_CONSTEXPR11 span< element_type, dynamic_extentsubspan (size_type offset, size_type count=dynamic_extent) const
 
constexpr size_type size () const noexcept
 
constexpr size_type size_bytes () const noexcept
 
constexpr TCB_SPAN_NODISCARD bool empty () const noexcept
 
TCB_SPAN_CONSTEXPR11 reference operator[] (size_type idx) const
 
TCB_SPAN_CONSTEXPR11 reference front () const
 
TCB_SPAN_CONSTEXPR11 reference back () const
 
constexpr pointer data () const noexcept
 
constexpr iterator begin () const noexcept
 
constexpr iterator end () const noexcept
 
TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator rbegin () const noexcept
 
TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator rend () const noexcept
 
+ + + +

+Static Public Attributes

static constexpr size_type extent = Extent
 
+

Member Typedef Documentation

+ +

◆ const_pointer

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::const_pointer = const element_type*
+
+ +

Definition at line 285 of file span.h.

+ +
+
+ +

◆ const_reference

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::const_reference = const element_type&
+
+ +

Definition at line 287 of file span.h.

+ +
+
+ +

◆ difference_type

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::difference_type = std::ptrdiff_t
+
+ +

Definition at line 283 of file span.h.

+ +
+
+ +

◆ element_type

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::element_type = ElementType
+
+ +

Definition at line 280 of file span.h.

+ +
+
+ +

◆ iterator

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::iterator = pointer
+
+ +

Definition at line 288 of file span.h.

+ +
+
+ +

◆ pointer

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::pointer = element_type*
+
+ +

Definition at line 284 of file span.h.

+ +
+
+ +

◆ reference

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::reference = element_type&
+
+ +

Definition at line 286 of file span.h.

+ +
+
+ +

◆ reverse_iterator

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::reverse_iterator = std::reverse_iterator<iterator>
+
+ +

Definition at line 289 of file span.h.

+ +
+
+ +

◆ size_type

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size_type = std::size_t
+
+ +

Definition at line 282 of file span.h.

+ +
+
+ +

◆ subspan_return_t

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t Offset, std::size_t Count = dynamic_extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::subspan_return_t = span<ElementType, Count != dynamic_extent ? Count : (Extent != dynamic_extent ? Extent - Offset : dynamic_extent)>
+
+ +

Definition at line 364 of file span.h.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + +
using TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::value_type = typename std::remove_cv<ElementType>::type
+
+ +

Definition at line 281 of file span.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ span() [1/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||E<=0), int >::type = 0>
+ + + + + +
+ + + + + + + +
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span ()
+
+inlineconstexprnoexcept
+
+ +

Definition at line 295 of file span.h.

+ +
+
+ +

◆ span() [2/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
TCB_SPAN_CONSTEXPR11 TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (pointer ptr,
size_type count 
)
+
+inline
+
+ +

Definition at line 297 of file span.h.

+ +
+
+ +

◆ span() [3/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
TCB_SPAN_CONSTEXPR11 TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (pointer first_elem,
pointer last_elem 
)
+
+inline
+
+ +

Definition at line 301 of file span.h.

+ +
+
+ +

◆ span() [4/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t N, std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||N==E) &&detail::is_container_element_type_compatible< element_type(&)[N], ElementType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (element_type(&) arr[N])
+
+inlineconstexprnoexcept
+
+ +

Definition at line 309 of file span.h.

+ +
+
+ +

◆ span() [5/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t N, std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||N==E) &&detail::is_container_element_type_compatible< std::array< value_type, N > &, ElementType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
TCB_SPAN_ARRAY_CONSTEXPR TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (std::array< value_type, N > & arr)
+
+inlinenoexcept
+
+ +

Definition at line 316 of file span.h.

+ +
+
+ +

◆ span() [6/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t N, std::size_t E = Extent, typename std::enable_if<(E==dynamic_extent||N==E) &&detail::is_container_element_type_compatible< const std::array< value_type, N > &, ElementType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
TCB_SPAN_ARRAY_CONSTEXPR TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (const std::array< value_type, N > & arr)
+
+inlinenoexcept
+
+ +

Definition at line 323 of file span.h.

+ +
+
+ +

◆ span() [7/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< Container &, ElementType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (Container & cont)
+
+inlineconstexpr
+
+ +

Definition at line 329 of file span.h.

+ +
+
+ +

◆ span() [8/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<typename Container , std::size_t E = Extent, typename std::enable_if< E==dynamic_extent &&detail::is_container< Container >::value &&detail::is_container_element_type_compatible< const Container &, ElementType >::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (const Container & cont)
+
+inlineconstexpr
+
+ +

Definition at line 336 of file span.h.

+ +
+
+ +

◆ span() [9/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + +
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (const span< ElementType, Extent > & other)
+
+constexprdefaultnoexcept
+
+ +
+
+ +

◆ span() [10/10]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<typename OtherElementType , std::size_t OtherExtent, typename std::enable_if<(Extent==OtherExtent||Extent==dynamic_extent) &&std::is_convertible< OtherElementType(*)[], ElementType(*)[]>::value, int >::type = 0>
+ + + + + +
+ + + + + + + + +
constexpr TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::span (const span< OtherElementType, OtherExtent > & other)
+
+inlineconstexprnoexcept
+
+ +

Definition at line 344 of file span.h.

+ +
+
+ +

◆ ~span()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::~span ()
+
+defaultnoexcept
+
+ +
+
+

Member Function Documentation

+ +

◆ back()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
TCB_SPAN_CONSTEXPR11 reference TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::back () const
+
+inline
+
+ +

Definition at line 408 of file span.h.

+ +
+
+ +

◆ begin()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
constexpr iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::begin () const
+
+inlineconstexprnoexcept
+
+ +

Definition at line 416 of file span.h.

+ +
+
+ +

◆ data()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
constexpr pointer TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::data () const
+
+inlineconstexprnoexcept
+
+ +

Definition at line 413 of file span.h.

+ +
+
+ +

◆ empty()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
constexpr TCB_SPAN_NODISCARD bool TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::empty () const
+
+inlineconstexprnoexcept
+
+ +

Definition at line 395 of file span.h.

+ +
+
+ +

◆ end()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
constexpr iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::end () const
+
+inlineconstexprnoexcept
+
+ +

Definition at line 418 of file span.h.

+ +
+
+ +

◆ first() [1/2]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t Count>
+ + + + + +
+ + + + + + + +
TCB_SPAN_CONSTEXPR11 span<element_type, Count> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::first () const
+
+inline
+
+ +

Definition at line 352 of file span.h.

+ +
+
+ +

◆ first() [2/2]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + +
TCB_SPAN_CONSTEXPR11 span<element_type, dynamic_extent> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::first (size_type count) const
+
+inline
+
+ +

Definition at line 374 of file span.h.

+ +
+
+ +

◆ front()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
TCB_SPAN_CONSTEXPR11 reference TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::front () const
+
+inline
+
+ +

Definition at line 403 of file span.h.

+ +
+
+ +

◆ last() [1/2]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t Count>
+ + + + + +
+ + + + + + + +
TCB_SPAN_CONSTEXPR11 span<element_type, Count> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::last () const
+
+inline
+
+ +

Definition at line 358 of file span.h.

+ +
+
+ +

◆ last() [2/2]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + +
TCB_SPAN_CONSTEXPR11 span<element_type, dynamic_extent> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::last (size_type count) const
+
+inline
+
+ +

Definition at line 379 of file span.h.

+ +
+
+ +

◆ operator=()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + +
TCB_SPAN_CONSTEXPR_ASSIGN span& TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::operator= (const span< ElementType, Extent > & other)
+
+defaultnoexcept
+
+ +
+
+ +

◆ operator[]()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + +
TCB_SPAN_CONSTEXPR11 reference TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::operator[] (size_type idx) const
+
+inline
+
+ +

Definition at line 398 of file span.h.

+ +
+
+ +

◆ rbegin()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::rbegin () const
+
+inlinenoexcept
+
+ +

Definition at line 420 of file span.h.

+ +
+
+ +

◆ rend()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::rend () const
+
+inlinenoexcept
+
+ +

Definition at line 422 of file span.h.

+ +
+
+ +

◆ size()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
constexpr size_type TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size () const
+
+inlineconstexprnoexcept
+
+ +

Definition at line 391 of file span.h.

+ +
+
+ +

◆ size_bytes()

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + +
constexpr size_type TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::size_bytes () const
+
+inlineconstexprnoexcept
+
+ +

Definition at line 393 of file span.h.

+ +
+
+ +

◆ subspan() [1/2]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+
+template<std::size_t Offset, std::size_t Count = dynamic_extent>
+ + + + + +
+ + + + + + + +
TCB_SPAN_CONSTEXPR11 subspan_return_t<Offset, Count> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::subspan () const
+
+inline
+
+ +

Definition at line 369 of file span.h.

+ +
+
+ +

◆ subspan() [2/2]

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
TCB_SPAN_CONSTEXPR11 span<element_type, dynamic_extent> TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::subspan (size_type offset,
size_type count = dynamic_extent 
) const
+
+inline
+
+ +

Definition at line 384 of file span.h.

+ +
+
+

Member Data Documentation

+ +

◆ extent

+ +
+
+
+template<typename ElementType , std::size_t Extent>
+ + + + + +
+ + + + +
constexpr size_type TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >::extent = Extent
+
+staticconstexpr
+
+ +

Definition at line 291 of file span.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classes.html b/dox-master/classes.html new file mode 100644 index 000000000..0fb1599d2 --- /dev/null +++ b/dox-master/classes.html @@ -0,0 +1,199 @@ + + + + + + + + + + + ttg: Class Index + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
A | B | C | D | E | F | G | H | I | K | M | N | O | P | Q | R | S | T | U | V | W | _
+
+
+
A
+
add_member_const (boost::callable_traits)
add_member_const_impl (boost::callable_traits::detail)
add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
add_member_cv (boost::callable_traits)
add_member_cv_impl (boost::callable_traits::detail)
add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
add_member_lvalue_reference (boost::callable_traits)
add_member_lvalue_reference_impl (boost::callable_traits::detail)
add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
add_member_rvalue_reference (boost::callable_traits)
add_member_rvalue_reference_impl (boost::callable_traits::detail)
add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
add_member_volatile (boost::callable_traits)
add_member_volatile_impl (boost::callable_traits::detail)
add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
add_noexcept (boost::callable_traits)
add_noexcept_t (boost::callable_traits)
add_transaction_safe (boost::callable_traits)
add_transaction_safe_t (boost::callable_traits)
add_varargs (boost::callable_traits)
add_varargs_impl (boost::callable_traits::detail)
add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
apply_member_pointer (boost::callable_traits)
apply_member_pointer_impl (boost::callable_traits::detail)
apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type > (boost::callable_traits::detail)
apply_return (boost::callable_traits)
apply_return_helper (boost::callable_traits::detail)
apply_return_helper< std::tuple< Args... >, R > (boost::callable_traits::detail)
apply_return_impl (boost::callable_traits::detail)
apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type > (boost::callable_traits::detail)
args (boost::callable_traits)
args_impl (boost::callable_traits::detail)
args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type > (boost::callable_traits::detail)
+
+
B
+
Backtrace (ttg::detail)
BinarySpanningTree (ttg)
BinaryTreeBroadcast (ttg)
BinaryTreeReduce (ttg)
boost_optimized_iarchive (ttg::detail)
boost_optimized_oarchive (ttg::detail)
Buffer (ttg_madness)
Buffer (ttg_parsec)
byte_istreambuf (ttg::detail)
byte_ostreambuf (ttg::detail)
+
+
C
+
callable_dummy (boost::callable_traits::detail)
CallableWrapTT
CallableWrapTTArgs
CallableWrapTTArgsAsTypelist
CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >
CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
CallableWrapTTUnwrapTypelist
CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >
CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
can_dereference_t (boost::callable_traits::detail)
candidate_argument_bindings (ttg::meta)
candidate_argument_bindings< const void, void > (ttg::meta)
candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > > (ttg::meta)
candidate_argument_bindings< void, void > (ttg::meta)
cdecl_tag (boost::callable_traits::detail)
can_dereference_t::check (boost::callable_traits::detail)
has_normal_call_operator::check (boost::callable_traits::detail)
class_of (boost::callable_traits)
class_of_impl (boost::callable_traits::detail)
class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
concat (boost::callable_traits::detail)
concat< index_sequence< I1... >, index_sequence< I2... > > (boost::callable_traits::detail)
ContainerWrapper (ttg::detail)
ContainerWrapper< keyT, void > (ttg::detail)
ContainerWrapper< ttg::Void, valueT > (ttg::detail)
ContainerWrapper< void, valueT > (ttg::detail)
ContainerWrapper< void, void > (ttg::detail)
counting_streambuf (ttg::detail)
+
+
D
+
Debugger (ttg)
decays_to_output_terminal_tuple (ttg::meta)
default_callable_traits (boost::callable_traits::detail)
default_data_descriptor (ttg)
default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > > (ttg)
default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > > (ttg)
default_keymap (ttg::detail)
default_keymap_impl (ttg::detail)
default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > > (ttg::detail)
default_priomap (ttg::detail)
default_priomap_impl (ttg::detail)
Device (ttg::device)
device_ptr_t (ttg_parsec::detail)
device_state_t (ttg_parsec::detail)
device_state_t< true > (ttg_parsec::detail)
devicescratch (ttg_madness)
devicescratch (ttg_parsec)
disjunction (boost::callable_traits::detail)
disjunction< T > (boost::callable_traits::detail)
disjunction< T, Ts... > (boost::callable_traits::detail)
Dot (ttg)
drop_first_n (ttg::meta)
drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > > (ttg::meta)
drop_first_n< std::tuple< Ts... >, std::size_t(0)> (ttg::meta)
drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > > (ttg::meta)
drop_first_n< typelist< Ts... >, std::size_t(0)> (ttg::meta)
drop_last_n (ttg::meta)
dummy (boost::callable_traits::detail)
+
+
E
+
Edge (ttg)
edges_to_output_terminals (ttg)
edges_to_output_terminals< std::tuple< edgesT... > > (ttg)
edges_tuple (ttg::detail)
edges_tuple< keyT, std::tuple< valuesT... > > (ttg::detail)
event (ttg)
+
+
F
+
fail (boost::callable_traits::detail)
fail_if (boost::callable_traits::detail)
fastcall_tag (boost::callable_traits::detail)
filtered_tuple (ttg::meta)
filtered_tuple< std::tuple< Es... >, Pred > (ttg::meta)
flag_map (boost::callable_traits::detail)
flag_map< T & > (boost::callable_traits::detail)
flag_map< T && > (boost::callable_traits::detail)
flag_map< T const & > (boost::callable_traits::detail)
flag_map< T const && > (boost::callable_traits::detail)
flag_map< T const > (boost::callable_traits::detail)
flag_map< T const volatile & > (boost::callable_traits::detail)
flag_map< T const volatile && > (boost::callable_traits::detail)
flag_map< T const volatile > (boost::callable_traits::detail)
flag_map< T volatile & > (boost::callable_traits::detail)
flag_map< T volatile && > (boost::callable_traits::detail)
flag_map< T volatile > (boost::callable_traits::detail)
FNVhasher (ttg::detail)
force_sfinae (boost::callable_traits::detail)
function (boost::callable_traits::detail)
function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
function< T & > (boost::callable_traits::detail)
function_object (boost::callable_traits::detail)
function_object< T U::*, Base > (boost::callable_traits::detail)
function_type (boost::callable_traits)
function_type_impl (boost::callable_traits::detail)
function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
+
+
G
+
generalize_t (boost::callable_traits::detail)
generalize_t< T, is_reference_wrapper< T > > (boost::callable_traits::detail)
generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > > (boost::callable_traits::detail)
+
+
H
+
has_member_function_hash (ttg::meta)
has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> > (ttg::meta)
has_member_qualifiers (boost::callable_traits)
has_normal_call_operator (boost::callable_traits::detail)
has_size_and_data (TCB_SPAN_NAMESPACE_NAME::detail)
has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> > (TCB_SPAN_NAMESPACE_NAME::detail)
has_split_metadata (ttg)
has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> > (ttg)
has_ttg_hash_specialization (ttg::meta)
has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> > (ttg::meta)
has_varargs (boost::callable_traits)
has_void_return (boost::callable_traits)
hash (ttg::overload)
hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > > (ttg::overload)
hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > > (ttg::overload)
hash< ttg::Void > (std)
hash< void, void > (ttg::overload)
hash< Void, void > (ttg::overload)
hash_combine_impl (ttg::detail)
+
+
I
+
In (ttg)
index_sequence (boost::callable_traits::detail)
input_terminals_tuple (ttg::detail)
input_terminals_tuple< keyT, std::tuple< valuesT... > > (ttg::detail)
InTerminalBase (ttg)
invalid_type (boost::callable_traits::detail)
iovec (ttg)
iovec_istreambuf (ttg::detail)
iovec_ostreambuf (ttg::detail)
is_boost_array_serializable (ttg::detail)
is_boost_array_serializable< Archive, T > (ttg::detail)
is_boost_buffer_serializable (ttg::detail)
is_boost_default_buffer_serializable (ttg::detail)
is_boost_default_serializable (ttg::detail)
is_boost_serializable (ttg::detail)
is_buffer (ttg::meta)
is_buffer< const ttg::Buffer< T, A > > (ttg::meta)
is_buffer< ttg::Buffer< T, A > > (ttg::meta)
is_complete (TCB_SPAN_NAMESPACE_NAME::detail)
is_complete< T, decltype(sizeof(T))> (TCB_SPAN_NAMESPACE_NAME::detail)
is_const_lvalue_reference (ttg::meta)
is_const_member (boost::callable_traits)
is_container (TCB_SPAN_NAMESPACE_NAME::detail)
is_container_element_type_compatible (TCB_SPAN_NAMESPACE_NAME::detail)
is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type > (TCB_SPAN_NAMESPACE_NAME::detail)
is_devicescratch (ttg::meta)
is_devicescratch< const ttg::devicescratch< T > > (ttg::meta)
is_devicescratch< ttg::devicescratch< T > > (ttg::meta)
is_generic_callable (ttg::meta)
is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > > (ttg::meta)
is_input_terminal (ttg::meta)
is_invocable (boost::callable_traits)
is_invocable_impl (boost::callable_traits::detail)
is_invocable_impl< void, Args... > (boost::callable_traits::detail)
is_invocable_r (boost::callable_traits)
is_invocable_r_impl (boost::callable_traits::detail)
is_invocable_r_impl< std::false_type, Ret, T, Args... > (boost::callable_traits::detail)
is_last_void (ttg::meta)
is_lvalue_reference_member (boost::callable_traits)
is_madness_buffer_serializable (ttg::detail)
is_madness_input_serializable (ttg::detail)
is_madness_output_serializable (ttg::detail)
is_madness_user_buffer_serializable (ttg::detail)
is_memcpyable (ttg::detail)
is_noexcept (boost::callable_traits)
is_nonconst_lvalue_reference (ttg::meta)
is_nonconst_lvalue_reference_to_output_terminal_tuple (ttg::meta)
is_nonvoid (ttg::meta)
is_output_terminal (ttg::meta)
is_output_terminal_tuple (ttg::meta)
is_output_terminal_tuple< std::tuple< Ts... > > (ttg::meta)
is_printable (ttg::detail)
is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> > (ttg::detail)
is_ptr (ttg::meta)
is_ptr< ttg::Ptr< T > > (ttg::meta)
is_reference_member (boost::callable_traits)
is_reference_wrapper_t (boost::callable_traits::detail)
is_reference_wrapper_t< std::reference_wrapper< T > > (boost::callable_traits::detail)
is_rvalue_reference_member (boost::callable_traits)
is_span (TCB_SPAN_NAMESPACE_NAME::detail)
is_span< span< T, S > > (TCB_SPAN_NAMESPACE_NAME::detail)
is_std_array (TCB_SPAN_NAMESPACE_NAME::detail)
is_std_array< std::array< T, N > > (TCB_SPAN_NAMESPACE_NAME::detail)
is_terminal (ttg::meta)
is_transaction_safe (boost::callable_traits)
is_ttvalue_base (ttg_parsec::detail)
is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > > (ttg_parsec::detail)
is_typelist (ttg::meta)
is_typelist< typelist< Ts... > > (ttg::meta)
is_user_buffer_serializable (ttg::detail)
is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > > (ttg::detail)
is_void (ttg::meta)
is_volatile_member (boost::callable_traits)
+
+
K
+
keep_or_drop (ttg::meta::detail)
keep_or_drop< false > (ttg::meta::detail)
+
+
M
+
make_index_sequence_t (boost::callable_traits::detail)
make_index_sequence_t< 0 > (boost::callable_traits::detail)
make_index_sequence_t< 1 > (boost::callable_traits::detail)
make_member_pointer (boost::callable_traits::detail)
make_member_pointer< T, C, false > (boost::callable_traits::detail)
make_member_pointer< T, C, true > (boost::callable_traits::detail)
make_member_pointer< void, C, true > (boost::callable_traits::detail)
MemoryWatchpoint_x86_64 (ttg::detail)
msg_header_t (ttg_parsec)
msg_t (ttg_parsec::detail)
MultiIndex (ttg)
+
+
N
+
nonref_tuple (ttg::meta)
nonref_tuple< std::tuple< Ts... > > (ttg::meta)
Traverse::null_visitor (ttg::detail)
+
+
O
+
Out (ttg)
OutTerminalBase (ttg)
+
+
P
+
parsec_ttg_task_base_t (ttg_parsec::detail)
parsec_ttg_task_t (ttg_parsec::detail)
parsec_ttg_task_t< TT, true > (ttg_parsec::detail)
ParsecTTBase (ttg_parsec::detail)
pascal_tag (boost::callable_traits::detail)
persistent_value_ref (ttg_parsec::detail)
pmd (boost::callable_traits::detail)
pmd< D T::* > (boost::callable_traits::detail)
pmf (boost::callable_traits::detail)
pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
MemoryWatchpoint_x86_64::Pool (ttg::detail)
printer_helper (ttg::detail)
printer_helper< T, std::enable_if_t< is_printable< T >::value > > (ttg::detail)
probe_all (ttg::meta)
probe_all< Predicate, std::tuple< Ts... > > (ttg::meta)
probe_all< Predicate, ttg::typelist< Ts... > > (ttg::meta)
probe_any (ttg::meta)
probe_any< Predicate, std::tuple< Ts... > > (ttg::meta)
probe_any< Predicate, ttg::typelist< Ts... > > (ttg::meta)
probe_first (ttg::meta)
probe_first< Predicate, Default > (ttg::meta)
probe_first< Predicate, Default, std::tuple< Ts... > > (ttg::meta)
probe_first< Predicate, Default, T1, Ts... > (ttg::meta)
probe_first< Predicate, Default, ttg::typelist< Ts... > > (ttg::meta)
probe_last (ttg::meta)
probe_last< Predicate, Default > (ttg::meta)
probe_last< Predicate, Default, std::tuple< Ts... > > (ttg::meta)
probe_last< Predicate, Default, T > (ttg::meta)
probe_last< Predicate, Default, T1, Ts... > (ttg::meta)
probe_last< Predicate, Default, ttg::typelist< Ts... > > (ttg::meta)
Ptr (ttg_madness)
Ptr (ttg_parsec)
ptr (ttg_parsec)
ptr_impl (ttg_parsec::detail)
+
+
Q
+
qualified_class_of (boost::callable_traits)
qualified_class_of_impl (boost::callable_traits::detail)
qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
+
+
R
+
reducer_task_t (ttg_parsec::detail)
reference_error (boost::callable_traits::detail)
remove_member_const (boost::callable_traits)
remove_member_const_impl (boost::callable_traits::detail)
remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
remove_member_cv (boost::callable_traits)
remove_member_cv_impl (boost::callable_traits::detail)
remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
remove_member_reference (boost::callable_traits)
remove_member_reference_impl (boost::callable_traits::detail)
remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
remove_member_volatile (boost::callable_traits)
remove_member_volatile_impl (boost::callable_traits::detail)
remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
remove_noexcept (boost::callable_traits)
remove_noexcept_impl (boost::callable_traits::detail)
remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
remove_transaction_safe (boost::callable_traits)
remove_transaction_safe_impl (boost::callable_traits::detail)
remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
remove_varargs (boost::callable_traits)
remove_varargs_impl (boost::callable_traits::detail)
remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
resumable_task (ttg)
resumable_task_events (ttg)
resumable_task_state (ttg)
return_type (boost::callable_traits)
return_type_impl (boost::callable_traits::detail)
return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type > (boost::callable_traits::detail)
rma_delayed_activate (ttg_parsec::detail)
runtime_traits (ttg)
runtime_traits< Runtime::MADWorld > (ttg)
runtime_traits< Runtime::PaRSEC > (ttg)
+
+
S
+
set_function_qualifiers_t (boost::callable_traits::detail)
set_member_function_qualifiers_t (boost::callable_traits::detail)
set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
set_varargs_function_qualifiers_t (boost::callable_traits::detail)
set_varargs_member_function_qualifiers_t (boost::callable_traits::detail)
set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
sfinae_error (boost::callable_traits::detail)
SinkTT (ttg)
span (TCB_SPAN_NAMESPACE_NAME)
span_storage (TCB_SPAN_NAMESPACE_NAME::detail)
span_storage< E, dynamic_extent > (TCB_SPAN_NAMESPACE_NAME::detail)
SplitMetadataDescriptor (ttg)
stdcall_tag (boost::callable_traits::detail)
parsec_ttg_task_base_t::stream_info_t (ttg_parsec::detail)
substitution_failure (boost::callable_traits::detail)
success (boost::callable_traits::detail)
+
+
T
+
take_first_n (ttg::meta)
take_first_n< std::tuple< Ts... >, N > (ttg::meta)
take_first_n< typelist< Ts... >, N > (ttg::meta)
take_first_n_helper (ttg::meta)
take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > > (ttg::meta)
take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)> (ttg::meta)
take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > > (ttg::meta)
take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)> (ttg::meta)
TerminalBase (ttg)
terminals_to_edges (ttg)
terminals_to_edges< std::tuple< termsT... > > (ttg)
test_invoke (boost::callable_traits::detail)
test_invoke< function< F >, true > (boost::callable_traits::detail)
test_invoke< pmd< Pmd >, Ignored > (boost::callable_traits::detail)
test_invoke< pmf< Pmf >, Ignored > (boost::callable_traits::detail)
Traverse (ttg::detail)
Traverse (ttg)
TT (ttg_parsec)
TT (ttg_madness)
TTBase (ttg)
TTG (ttg)
ttg_data_copy_container_setter (ttg_parsec::detail)
ttg_data_copy_self_t (ttg_parsec::detail)
ttg_data_copy_t (ttg_parsec::detail)
ttg_data_descriptor
ttg_data_value_copy_t (ttg_parsec::detail)
ttg_parsec_data_wrapper_t (ttg_parsec::detail)
TTValue (ttg_madness)
TTValue (ttg_parsec)
tuple_concat (ttg::meta)
tuple_concat< std::tuple< Ts... > > (ttg::meta)
tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... > (ttg::meta)
tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > > (std)
tuple_element< I, ttg::meta::typelist< Ts... > > (std)
tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > > (std)
tuple_size< ttg::meta::typelist< Ts... > > (std)
type_identity (ttg::meta)
typelist (ttg::meta)
typelist_is_empty (ttg::meta)
typelist_is_not_empty (ttg::meta)
typelist_size (ttg::meta)
typelist_size< typelist< Ts... > > (ttg::meta)
typelist_to_tuple (ttg::meta)
typelist_to_tuple< typelist< T... > > (ttg::meta)
+
+
U
+
unsigned_int (boost::serialization)
unwrap_reference_t (boost::callable_traits::detail)
unwrap_reference_t< T, is_reference_wrapper< T > > (boost::callable_traits::detail)
+
+
V
+
value_copy_handler (ttg::detail)
value_copy_handler< ttg::Runtime::PaRSEC > (ttg::detail)
Void (ttg)
void_to_Void (ttg::meta)
void_to_Void< void > (ttg::meta)
+
+
W
+
World (ttg::base)
World (ttg)
WorldImpl (ttg_madness)
WorldImpl (ttg_parsec)
WorldImplBase (ttg::base)
+
+
_
+
success::_ (boost::callable_traits::detail)
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html b/dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html new file mode 100644 index 000000000..c652b5e0d --- /dev/null +++ b/dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > > Class Template Reference
+
+
+

Documentation

+

template<size_t I, typename ElementType, size_t Extent>
+class std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >

+ + +

Definition at line 508 of file span.h.

+
+ + + +

+Public Types

using type = ElementType
 
+

Member Typedef Documentation

+ +

◆ type

+ +
+
+
+template<size_t I, typename ElementType , size_t Extent>
+ + + + +
using std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >::type = ElementType
+
+ +

Definition at line 511 of file span.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_b4393163ebe23c44ce8b3514a3083d49.html b/dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_b4393163ebe23c44ce8b3514a3083d49.html new file mode 100644 index 000000000..b051f9600 --- /dev/null +++ b/dox-master/classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_b4393163ebe23c44ce8b3514a3083d49.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > > Member List
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.html b/dox-master/classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.html new file mode 100644 index 000000000..4a5d9d596 --- /dev/null +++ b/dox-master/classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: std::tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
std::tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > > Class Template Reference
+
+
+
+Inheritance diagram for std::tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >:
+
+
+ +
+

Documentation

+

template<typename ElementType, size_t Extent>
+class std::tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >

+ + +

Definition at line 501 of file span.h.

+

The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.png b/dox-master/classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa6c537d93246c45ad5377219ea8fa2899788b GIT binary patch literal 1327 zcmeAS@N?(olHy`uVBq!ia0y~yV0;K<2XHV0Ny$>%2p}a9;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z_QQN#WAFU@$KBZRfjcrSl!KS-~T^0 z`zyb~fxgSjcK5BSv-9NI#K1c#&(PR==1f*mHBU`Xu9Ye}o)f3GsA_JSv_Zu+OlaDY z6T9Re?wWsjZtSgZ2`06#4}@ChoW7r(r}~m@S25rJ@D|lfCHIJ+TA=dU=>ESql+&l} zxoP+BZ`7h4HS3(uZtFgqwrT&xs*IRjN6o^c+qQi^SN417`p;+9s@!$`uCgcK-n_rp zy%xx3ExO+``-*K{#q+4V%XSet{zX5oEhODB3gUaD2NThqy>@<;wrbQ`gNqUwmWgSILLJ4gWRBOiNijPjFs% zqh9;&@EVPIVJ}~%8MUjv3}Fwwm3li;{+)$S_jkq(%WErkv$uy@{obHr8!Wtit5n{? z?Ch6PPnUUK(~ng8797j?y~A8y*nynRxM_}%^uDrdj!fAcxGN!gSA z7tf)6HM{my{r@JtpOK;7i|;?1r{^!`Uvso{fdO0P>lragNt@FX3bA#peZnme=_#SGX_A2h zP&UoiRr?)$IoF`-%6amqqV&s(66zT)fNQr$i6=*I2oE&h9? zuB3}i`?lxb(z6-9Qx&JlK8$R5zWc@99}T}BeBZmC-+gC%d&_c0*=;urUaX({eon9S zbho;%^IX4Hy~w?GRj<0#y)^RT{OvCfzmwP;@y*gkeb4(vQ%+wzYnU9rbiLrWmaLEK zepEFrx4iTHc#+(8Tk*eH8<)GqUt4zXnPtt@?D8v38`odSJ+*bs-T%xFzr~enK6rik z&RN69dM)9_5-a?FUs{tA^Ww0x`r3oikz2%UyMyzWx18VO*LUlw^Zm(p7U{Luo|=|g z`;_UG@!CtqpFhi(t?+lR$bI4et04YxoAK@k@hUcDpCd2tcdD3CdGxhFkEg5c>%-?) zm8?`sudOh)UvugFuMhY3iCJFz{eP?5PnKM-;|4FcN9b6wuj?s`G~cNnEVecL?B1VG z{suqCY9#=|7@YLTQv&R;);U5CCM zo4U`pVsC`~jU%b-_HmpE7q;*H$MtYu+}^^4XA&F2zeqP`c$*%uE}d!M!1dtp6!b*Q je<&?Y(|GfYU+nkPmF=cJGg<~L-55Mw{an^LB{Ts5O8bBa literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1_binary_spanning_tree-members.html b/dox-master/classttg_1_1_binary_spanning_tree-members.html new file mode 100644 index 000000000..25a41098a --- /dev/null +++ b/dox-master/classttg_1_1_binary_spanning_tree-members.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::BinarySpanningTree Member List
+
+
+ +

This is the complete list of members for ttg::BinarySpanningTree, including all inherited members.

+ + + + + + + +
BinarySpanningTree(int size, int root)ttg::BinarySpanningTreeinline
child_keys(const int parent_key) constttg::BinarySpanningTreeinline
parent_key(const int child_key) constttg::BinarySpanningTreeinline
root() constttg::BinarySpanningTreeinline
size() constttg::BinarySpanningTreeinline
~BinarySpanningTree()=defaultttg::BinarySpanningTree
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_binary_spanning_tree.html b/dox-master/classttg_1_1_binary_spanning_tree.html new file mode 100644 index 000000000..d9a890846 --- /dev/null +++ b/dox-master/classttg_1_1_binary_spanning_tree.html @@ -0,0 +1,352 @@ + + + + + + + + + + + ttg: ttg::BinarySpanningTree Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::BinarySpanningTree Class Reference
+
+
+

Documentation

+

a binary spanning tree of integers in the [0,size) interval

+

This is a binary spanning tree of the complete graph of the [0,size) set of keys, rooted at a particular key.

+ +

Definition at line 17 of file tree.h.

+
+ + + + + + + + + + + + + +

+Public Member Functions

 BinarySpanningTree (int size, int root)
 
 ~BinarySpanningTree ()=default
 
const auto size () const
 
const auto root () const
 
int parent_key (const int child_key) const
 
std::pair< int, int > child_keys (const int parent_key) const
 
+

Constructor & Destructor Documentation

+ +

◆ BinarySpanningTree()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ttg::BinarySpanningTree::BinarySpanningTree (int size,
int root 
)
+
+inline
+
+ +

Definition at line 19 of file tree.h.

+ +
+
+ +

◆ ~BinarySpanningTree()

+ +
+
+ + + + + +
+ + + + + + + +
ttg::BinarySpanningTree::~BinarySpanningTree ()
+
+default
+
+ +
+
+

Member Function Documentation

+ +

◆ child_keys()

+ +
+
+ + + + + +
+ + + + + + + + +
std::pair<int, int> ttg::BinarySpanningTree::child_keys (const int parent_key) const
+
+inline
+
+
Parameters
+ + +
[in]parent_keythe key of the parent
+
+
+
Returns
the pair of child keys (-1 if there is no child)
+ +

Definition at line 40 of file tree.h.

+ +
+
+ +

◆ parent_key()

+ +
+
+ + + + + +
+ + + + + + + + +
int ttg::BinarySpanningTree::parent_key (const int child_key) const
+
+inline
+
+
Parameters
+ + +
[in]child_keythe key of the child
+
+
+
Returns
the parent key (-1 if there is no parent)
+ +

Definition at line 32 of file tree.h.

+ +
+
+ +

◆ root()

+ +
+
+ + + + + +
+ + + + + + + +
const auto ttg::BinarySpanningTree::root () const
+
+inline
+
+
Returns
the root of the tree
+ +

Definition at line 28 of file tree.h.

+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
const auto ttg::BinarySpanningTree::size () const
+
+inline
+
+
Returns
the size of the tree
+ +

Definition at line 26 of file tree.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_binary_tree_broadcast-members.html b/dox-master/classttg_1_1_binary_tree_broadcast-members.html new file mode 100644 index 000000000..73f8dab85 --- /dev/null +++ b/dox-master/classttg_1_1_binary_tree_broadcast-members.html @@ -0,0 +1,264 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::BinaryTreeBroadcast< Value, OutKey > Member List
+
+
+ +

This is the complete list of members for ttg::BinaryTreeBroadcast< Value, OutKey >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
argstream_set_size_from_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
baseT typedefttg::BinaryTreeBroadcast< Value, OutKey >
BinaryTreeBroadcast(Edge< int, Value > &in, Edge< OutKey, Value > &out, std::vector< OutKey > local_keys, int root=0, World world=ttg::default_execution_context(), int max_key=-1, Edge< int, Value > inout_l=Edge< int, Value >{}, Edge< int, Value > inout_r=Edge< int, Value >{})ttg::BinaryTreeBroadcast< Value, OutKey >inline
broadcast_arg(const ttg::span< const Key > &keylist, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
broadcast_arg_local(Iterator &&begin, Iterator &&end, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
can_inline_data(Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
copy_mark_pushout(detail::ttg_data_copy_t *copy)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
create_new_reducer_task(task_t *task, bool is_first)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
create_new_task(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
derived_has_cuda_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinestatic
derived_has_device_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinestatic
derived_has_hip_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinestatic
derived_has_level_zero_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinestatic
do_prepare_send(const Value &value, RemoteCheckFn &&remote_check)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
do_release()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
finalize_argstream(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
finalize_argstream()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
finalize_argstream_from_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
get(InTuple &&intuple)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinestatic
get(InTuple &&intuple)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinestatic
get_class_name() constttg::TTBaseinline
get_defer_writer(bool value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
get_devicemap()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
get_from_pull_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
get_inputs() constttg::TTBaseinline
get_instance_id() constttg::TTBaseinline
get_keymap() constttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
get_name() constttg::TTBaseinline
get_output_terminals() constttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
get_outputs() constttg::TTBaseinline
get_outputs_tls_ptr()ttg::TTBaseinlinestatic
get_priomap() constttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
get_task_mempool(void)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
get_world() const override finalttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinevirtual
ht_iter_cb(void *item, void *cb_data)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinestatic
in()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
ttg::TTBase::in(size_t i)ttg::TTBaseinline
input_args_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
input_edges_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
input_refs_full_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
input_refs_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
input_terminals_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
input_values_full_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
input_values_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
invoke(const Key &key, const input_values_tuple_type &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
invoke(const input_values_tuple_type &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
invoke(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
invoke()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinevirtual
invoke() overridettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinevirtual
invoke(const Key &key, Arg &&arg, Args &&... args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
is_executable() constttg::TTBaseinline
is_lazy_pull()ttg::TTBaseinline
is_ttg() constttg::TTBaseinline
key_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
make_executable() overridettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinevirtual
numinvalsttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >static
op(const int &key, typename baseT::input_values_tuple_type &&indata, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >> &outdata)ttg::BinaryTreeBroadcast< Value, OutKey >inline
ttg::TTBase::operator=(TTBase &&other)ttg::TTBaseinlineprotected
out()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
ttg::TTBase::out(size_t i)ttg::TTBaseinline
output_edges_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
output_terminals_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
outputs_tls_ptr_accessor()ttg::TTBaseinlineprotectedstatic
pack(T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
prepare_send(const ttg::span< const Key > &keylist, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
prepare_send(const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
print_incomplete_tasks()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
register_input_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_output_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_static_op_function(void)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)ttg::TTBaseinlineprotected
register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)ttg::TTBaseinlineprotected
release() overridettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinevirtual
release_task(task_t *task, parsec_task_t **task_ring=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
runtimettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >static
set_arg(const Key &key, Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg(Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_from_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_from_msg_keylist(ttg::span< int > &&keylist, detail::ttg_data_copy_t *copy)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_local(const Key &key, Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_local(Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_local(const Key &key, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_local(const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_local(std::shared_ptr< const Value > &valueptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_arg_local_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
set_argstream_size(const Key &key, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_argstream_size(std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_defer_writer(bool value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_devicemap(Devicemap &&dm)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_input(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_input_reducer(Reducer &&reducer)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_input_reducer(Reducer &&reducer, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_keymap(Keymap &&km)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_lazy_pull(bool value)ttg::TTBaseinlinestatic
set_lazy_pull_instance(bool value)ttg::TTBaseinline
set_name(const std::string &name)ttg::TTBaseinline
set_output(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_outputs_tls_ptr()ttg::TTBaseinlineprotected
set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)ttg::TTBaseinlineprotected
set_priomap(Priomap &&pm)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_static_argstream_size(std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_terminals(const terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_trace_all(bool value)ttg::TTBaseinlinestatic
set_trace_instance(bool value)ttg::TTBaseinline
static_set_arg(void *data, std::size_t size, ttg::TTBase *bop)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotectedstatic
trace(const T &t, const Ts &...ts)ttg::TTBaseinline
tracing() constttg::TTBaseinline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inline
TTBase(TTBase &&other)ttg::TTBaseinlineprotected
TTBase(const std::string &name, size_t numins, size_t numouts)ttg::TTBaseinlineprotected
ttg() constttg::TTBaseinline
ttg_ptr() constttg::TTBaseinline
ttT typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
unpack(T &obj, void *_bytes, uint64_t pos)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlineprotected
~TT()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >inlinevirtual
~TTBase()=defaultttg::TTBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_binary_tree_broadcast.html b/dox-master/classttg_1_1_binary_tree_broadcast.html new file mode 100644 index 000000000..31f721379 --- /dev/null +++ b/dox-master/classttg_1_1_binary_tree_broadcast.html @@ -0,0 +1,606 @@ + + + + + + + + + + + ttg: ttg::BinaryTreeBroadcast< Value, OutKey > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::BinaryTreeBroadcast< Value, OutKey > Class Template Reference
+
+
+
+Inheritance diagram for ttg::BinaryTreeBroadcast< Value, OutKey >:
+
+
+ + +ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > > +ttg::TTBase +ttg_parsec::detail::ParsecTTBase + +
+

Documentation

+

template<typename Value, typename OutKey = int>
+class ttg::BinaryTreeBroadcast< Value, OutKey >

+ +

generic binary broadcast of a value to a set of {key,value} pairs

+

This broadcasts a Value object through a binary tree of size max_key and at each node broadcasts the value to a set of keys of type OutKey . The input data is keyed by integers. The primary use is for broadcasting to a World, hence by default the keymap is identity (keymap(key) = key) and max_key=world.size() .

+
Note
this is equivalent to MPI_Bcast.
+ +

Definition at line 28 of file broadcast.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using baseT = typename BinaryTreeBroadcast::ttT
 
- Public Types inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
using ttT = TT
 
using key_type = int
 
using input_terminals_type = ttg::detail::input_terminals_tuple_t< int, input_tuple_type >
 
using input_args_type = actual_input_tuple_type
 
using input_edges_type = ttg::detail::edges_tuple_t< int, ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t< ttg::meta::decayed_typelist_t< actual_input_tuple_type > >
 
using input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t< ttg::meta::void_to_Void_tuple_t< actual_input_tuple_type > >
 
using input_values_tuple_type = ttg::meta::drop_void_t< ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_refs_tuple_type = ttg::meta::drop_void_t< ttg::meta::add_glvalue_reference_tuple_t< input_tuple_type > >
 
using output_terminals_type = std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >
 
using output_edges_type = typename ttg::terminals_to_edges< std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > > >::type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BinaryTreeBroadcast (Edge< int, Value > &in, Edge< OutKey, Value > &out, std::vector< OutKey > local_keys, int root=0, World world=ttg::default_execution_context(), int max_key=-1, Edge< int, Value > inout_l=Edge< int, Value >{}, Edge< int, Value > inout_r=Edge< int, Value >{})
 
void op (const int &key, typename baseT::input_values_tuple_type &&indata, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >> &outdata)
 
- Public Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
ttg::World get_world () const override final
 
void set_static_argstream_size (std::size_t size)
 
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_argstream_size (const Key &key, std::size_t size)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_argstream_size (std::size_t size)
 
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > finalize_argstream (const Key &key)
 finalizes stream for input i More...
 
std::enable_if_t< key_is_void, void > finalize_argstream ()
 finalizes stream for input i More...
 
void copy_mark_pushout (detail::ttg_data_copy_t *copy)
 
std::enable_if_t<!std::is_void_v< std::decay_t< Value > >, void > do_prepare_send (const Value &value, RemoteCheckFn &&remote_check)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send (const ttg::span< const Key > &keylist, const Value &value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send (const Value &value)
 
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
 
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())
 
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
virtual ~TT ()
 
void print_incomplete_tasks ()
 
virtual void release () override
 
void do_release ()
 
void set_input_reducer (Reducer &&reducer)
 
void set_input_reducer (Reducer &&reducer, std::size_t size)
 
std::tuple_element_t< i, input_terminals_type > * in ()
 
std::tuple_element_t< i, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > > > * out ()
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key, const input_values_tuple_type &args)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const input_values_tuple_type &args)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke ()
 
void invoke () override
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key, Arg &&arg, Args &&... args)
 
void set_defer_writer (bool value)
 
bool get_defer_writer (bool value)
 
void make_executable () override
 Marks this executable. More...
 
decltype(keymap) const & get_keymap () const
 
void set_keymap (Keymap &&km)
 keymap setter More...
 
decltype(priomap) const & get_priomap () const
 
void set_priomap (Priomap &&pm)
 
void set_devicemap (Devicemap &&dm)
 
auto get_devicemap ()
 
void register_static_op_function (void)
 
- Public Member Functions inherited from ttg::TTBase
virtual ~TTBase ()=default
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
bool is_executable () const
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
static constexpr bool derived_has_cuda_op ()
 
static constexpr bool derived_has_hip_op ()
 
static constexpr bool derived_has_level_zero_op ()
 
static constexpr bool derived_has_device_op ()
 
static resultT get (InTuple &&intuple)
 
static auto & get (InTuple &&intuple)
 
static void ht_iter_cb (void *item, void *cb_data)
 
- Static Public Member Functions inherited from ttg::TTBase
static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals. More...
 
- Static Public Attributes inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
static constexpr int numinvals
 
static constexpr const ttg::Runtime runtime
 
- Protected Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
const auto & get_output_terminals () const
 
uint64_t unpack (T &obj, void *_bytes, uint64_t pos)
 
uint64_t pack (T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)
 
parsec_thread_mempool_t * get_task_mempool (void)
 
void set_arg_from_msg_keylist (ttg::span< int > &&keylist, detail::ttg_data_copy_t *copy)
 
void set_arg_from_msg (void *data, std::size_t size)
 
void finalize_argstream_from_msg (void *data, std::size_t size)
 
void argstream_set_size_from_msg (void *data, std::size_t size)
 
void get_from_pull_msg (void *data, std::size_t size)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Key &key, Value &&value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (Value &&value)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Key &key, const Value &value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Value &value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (std::shared_ptr< const Value > &valueptr)
 
task_tcreate_new_task (const Key &key)
 
detail::reducer_task_tcreate_new_reducer_task (task_t *task, bool is_first)
 
void set_arg_local_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)
 
void release_task (task_t *task, parsec_task_t **task_ring=nullptr)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg (const Key &key, Value &&value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg (Value &&value)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_arg ()
 
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_arg (const Key &key)
 
bool can_inline_data (Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)
 
void set_arg_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)
 
void broadcast_arg_local (Iterator &&begin, Iterator &&end, const Value &value)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > broadcast_arg (const ttg::span< const Key > &keylist, const Value &value)
 
std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)
 
std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const std::tuple< Ts... > &args)
 
- Protected Member Functions inherited from ttg::TTBase
void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 
- Static Protected Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >
static void static_set_arg (void *data, std::size_t size, ttg::TTBase *bop)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 
+

Member Typedef Documentation

+ +

◆ baseT

+ +
+
+
+template<typename Value , typename OutKey = int>
+ + + + +
using ttg::BinaryTreeBroadcast< Value, OutKey >::baseT = typename BinaryTreeBroadcast::ttT
+
+ +

Definition at line 31 of file broadcast.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ BinaryTreeBroadcast()

+ +
+
+
+template<typename Value , typename OutKey = int>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg::BinaryTreeBroadcast< Value, OutKey >::BinaryTreeBroadcast (Edge< int, Value > & in,
Edge< OutKey, Value > & out,
std::vector< OutKey > local_keys,
int root = 0,
World world = ttg::default_execution_context(),
int max_key = -1,
Edge< int, Value > inout_l = Edge<int, Value>{},
Edge< int, Value > inout_r = Edge<int, Value>{} 
)
+
+inline
+
+ +

Definition at line 33 of file broadcast.h.

+ +
+
+

Member Function Documentation

+ +

◆ op()

+ +
+
+
+template<typename Value , typename OutKey = int>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::BinaryTreeBroadcast< Value, OutKey >::op (const int & key,
typename baseT::input_values_tuple_type && indata,
std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >> & outdata 
)
+
+inline
+
+ +

Definition at line 41 of file broadcast.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_binary_tree_broadcast.png b/dox-master/classttg_1_1_binary_tree_broadcast.png new file mode 100644 index 0000000000000000000000000000000000000000..3bcf34a9a595fdd7be936cefa458416891549182 GIT binary patch literal 3437 zcmb_feO%Jl8n<x}go2{n^8>53e{TESo#zAR{C?+of1dL_a3Rp& z7iMT-sHdj~LwvC(NKbDW3#|WbuoQfs=Qc)yX;t9G}$OUC=>k!7D-=|5^0Z5C?2p-+FZF%B0& zJnes!S+~~a+!RkGaJ>|rJLLLQHzl-;J6{?)HspF~akAX99$^a+*P)1blzdoA>f4LU z`0qtmY#=Ja;B{O`3lt&<(Czy7W3hU0Dz!6&70z#)B{6a;fv}z{eJt}MFAcWm?c35#SlGQ0Ny3LMD zqF1SN#bzyWr;BGxQU{uCfctO(5GGV3xe^UO$aPI2b3aC$^y0)-2{m|==i#2lbqr66 zmL{5Une%;uGm7!F`RIf9OEZ$jaOi#-{ z5ebUJrTz*zm%akUG%A`dKJoav{NBi!C*lB}@q zVH`+9NQDUpL-?J5fc*K9Cz4k7w=wr8ryJDC4#It*kZ-58zE%4rtlmZ^VXpOG98#ao zCCe-G8T@03_PZSk=-9baT0KjkLfr5iM@$LgKvE~lwVk3Ng0`^g2wlrqMG@1V08he8 zs*bxhhd3an0=@)%ldL1rkfB_t59q;H?nIEq=q|tqQH>Led;`$&WT3nfP`4k*`zAmx zP=Wq53tjYXvo|MvjC$MpU{5KzHs~PxKwn=!bk@Ys(9q?P?ELxj?ar)g*CN(AI2>@; zxbfMuOpP-eJX^w`r!dZPz&2GFuHAczNzv|o@^+8G{|%@BgA<4M_P#f=kOkH-C!i6G zLD2qzfj8?lU>&g(5(2}unrLon8b9F$*3WiA`oS=+5&^G@=H7bsN0lrve&z9a``C*M z9z$zF*j2OQcPfCEoF`CJujRdgSCLSJVCeh_3=BMV>>X!JO--$k?|Aa3)F@-$A`Sqa zp=H2SL?~2uhyc2Pcwb&ygqGfuP@arm<4W%T-W>cG#ThHH5pFZ$h)cu^O_^!MqOK%2 z*`p!0k9|z=SE1A?wZ@l+Ap3gZX!q$e+yac(`14mb!IK^Td4fqB+2kp$opSQxD|+qx z$k|$Z5oNNFkFMJk^loPPw^O2}{tfrmYYvUhM)UwFZ#{Q&7sP}Vc0H;{)|2F;EjE7# zi^!LZCnKv94^(93(<_WA-^p7yh;TiKj;ziGbm;ozCPL<%CZ$c)`;w(PJnG4_mL53U zdy*dA>~%knim@k5%n)YFggMQgW~2>+DYD5&3IX9{dRPzt=wwIuRnHKU0QnH5?&?TB z@>`qbTBG-NuoBz^-`|u@I@&)&FjcL`F-7s_6n0D(wqfakk@QvR-8WYyF}QRqbiq`H zZEbdE`PKe^!rcTfSUh3WY+2_|nDLMBzj*}n+yWjx?GLW*X4u z^hm=fUytpbpNy)ij91!v7-WZZ{H`={ zD@m5xw-)K5swij0@0H(zr?u~%_U)*1lyVA~=n+Ov0Gu=&&}2Yw&Fikr6HLE6QVl!P+Lf_s zZ3K-9-!?q$RuGTv_rlYLSwchl{ip#Lox5vfd3xB>(WAFA%#pO%VQvFaFtsZa`zHB= z7ASf)f%XuA55IWYm5EwtX7qWMHwvPPf+w8$;WOzI*pA@%lBTc^n>)S}FJxdFvCi@b z^AT-x76Gy0X0i@b{t68uxu$*2MdDbu-fLD}5q|aqS{2H=!Rw$&t{r#2`$+X3WgO9= zbOiBrc$so?Y<}P(S-eKqVzw;g_AZ<5p4zMgSJe!0wla2J1Yd_}8j~M!pT-+#gt)Cb z#(%H|UZg%al`$SP9FSMvFK(yV1j{+K619_;RU%YnG{y{-SdY8xAz5V^LsrWddZY7gTswpti^-&Y5Ih_mQh4 z?8(}?>ac@U{bzfnwh;9DEJNQiLv{9ZXHwIXW=BMI#nL1nf@#D$b^&y9%~q%1JC({N z3`qN(Vg6EPRz9AP#SmQPXpapizVR?3Ud_w%f}qlP=_h^2O2Ja|^cyT-RW&QMLa3I+i&q|6z%- zqsNKW31>_T!(krbsEW!tgE}H+Qp=H~^JL z8y2HiIP)qoTkvT(KosVe)|QE72X@DNzQEyGvlx-7=cF6o=7;{5;8+NlpUa-G!FjhATW&u`hp&OWAj~*u7{d^)tfeL370d zbU%k2mw5yT8>9Qg4mH<1_0!Q(_+lkzQiP@KGwqv|%vZ~H={R8=*_jjO?ll4W>Wc&3 zI;RZ{8IK#lj}QZ`a_!zCQf=OsWAS7@Sic@zmXoo$A1rPSH$`M0^stZ A6951J literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1_binary_tree_reduce-members.html b/dox-master/classttg_1_1_binary_tree_reduce-members.html new file mode 100644 index 000000000..dd776005c --- /dev/null +++ b/dox-master/classttg_1_1_binary_tree_reduce-members.html @@ -0,0 +1,264 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::BinaryTreeReduce< Value, BinaryOp, OutKey > Member List
+
+
+ +

This is the complete list of members for ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
argstream_set_size_from_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
baseT typedefttg::BinaryTreeReduce< Value, BinaryOp, OutKey >
BinaryTreeReduce(Edge< int, Value > &in, Edge< OutKey, Value > &out, int root=0, OutKey dest_key=OutKey(), BinaryOp op=BinaryOp{}, World world=ttg::default_execution_context(), int max_key=-1, Edge< int, Value > inout=Edge< int, Value >{}, Edge< int, Value > inout_l=Edge< int, Value >{}, Edge< int, Value > inout_r=Edge< int, Value >{})ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >inline
broadcast_arg(const ttg::span< const Key > &keylist, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
broadcast_arg_local(Iterator &&begin, Iterator &&end, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
can_inline_data(Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
copy_mark_pushout(detail::ttg_data_copy_t *copy)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
create_new_reducer_task(task_t *task, bool is_first)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
create_new_task(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
derived_has_cuda_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinestatic
derived_has_device_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinestatic
derived_has_hip_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinestatic
derived_has_level_zero_op()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinestatic
do_prepare_send(const Value &value, RemoteCheckFn &&remote_check)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
do_release()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
finalize_argstream(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
finalize_argstream()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
finalize_argstream_from_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
get(InTuple &&intuple)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinestatic
get(InTuple &&intuple)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinestatic
get_class_name() constttg::TTBaseinline
get_defer_writer(bool value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
get_devicemap()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
get_from_pull_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
get_inputs() constttg::TTBaseinline
get_instance_id() constttg::TTBaseinline
get_keymap() constttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
get_name() constttg::TTBaseinline
get_output_terminals() constttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
get_outputs() constttg::TTBaseinline
get_outputs_tls_ptr()ttg::TTBaseinlinestatic
get_priomap() constttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
get_task_mempool(void)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
get_world() const override finalttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinevirtual
ht_iter_cb(void *item, void *cb_data)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinestatic
in()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
ttg::TTBase::in(size_t i)ttg::TTBaseinline
input_args_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
input_edges_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
input_refs_full_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
input_refs_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
input_terminals_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
input_values_full_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
input_values_tuple_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
invoke(const Key &key, const input_values_tuple_type &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
invoke(const input_values_tuple_type &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
invoke(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
invoke()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinevirtual
invoke() overridettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinevirtual
invoke(const Key &key, Arg &&arg, Args &&... args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
is_executable() constttg::TTBaseinline
is_lazy_pull()ttg::TTBaseinline
is_ttg() constttg::TTBaseinline
key_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
make_executable() overridettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinevirtual
numinvalsttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >static
op(const int &key, typename baseT::input_values_tuple_type &&indata, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value >> &outdata)ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >inline
ttg::TTBase::operator=(TTBase &&other)ttg::TTBaseinlineprotected
out()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
ttg::TTBase::out(size_t i)ttg::TTBaseinline
output_edges_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
output_terminals_type typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
outputs_tls_ptr_accessor()ttg::TTBaseinlineprotectedstatic
pack(T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
prepare_send(const ttg::span< const Key > &keylist, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
prepare_send(const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
print_incomplete_tasks()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
register_input_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_output_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_static_op_function(void)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)ttg::TTBaseinlineprotected
register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)ttg::TTBaseinlineprotected
release() overridettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinevirtual
release_task(task_t *task, parsec_task_t **task_ring=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
runtimettg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >static
set_arg(const Key &key, Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg(Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg(const Key &key)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_from_msg(void *data, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_from_msg_keylist(ttg::span< int > &&keylist, detail::ttg_data_copy_t *copy)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_local(const Key &key, Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_local(Value &&value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_local(const Key &key, const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_local(const Value &value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_local(std::shared_ptr< const Value > &valueptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_arg_local_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
set_argstream_size(const Key &key, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_argstream_size(std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_defer_writer(bool value)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_devicemap(Devicemap &&dm)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_input(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_input_reducer(Reducer &&reducer)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_input_reducer(Reducer &&reducer, std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_keymap(Keymap &&km)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_lazy_pull(bool value)ttg::TTBaseinlinestatic
set_lazy_pull_instance(bool value)ttg::TTBaseinline
set_name(const std::string &name)ttg::TTBaseinline
set_output(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_outputs_tls_ptr()ttg::TTBaseinlineprotected
set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)ttg::TTBaseinlineprotected
set_priomap(Priomap &&pm)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_static_argstream_size(std::size_t size)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_terminals(const terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_trace_all(bool value)ttg::TTBaseinlinestatic
set_trace_instance(bool value)ttg::TTBaseinline
static_set_arg(void *data, std::size_t size, ttg::TTBase *bop)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotectedstatic
trace(const T &t, const Ts &...ts)ttg::TTBaseinline
tracing() constttg::TTBaseinline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inline
TTBase(TTBase &&other)ttg::TTBaseinlineprotected
TTBase(const std::string &name, size_t numins, size_t numouts)ttg::TTBaseinlineprotected
ttg() constttg::TTBaseinline
ttg_ptr() constttg::TTBaseinline
ttT typedefttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
unpack(T &obj, void *_bytes, uint64_t pos)ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlineprotected
~TT()ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >inlinevirtual
~TTBase()=defaultttg::TTBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_binary_tree_reduce.html b/dox-master/classttg_1_1_binary_tree_reduce.html new file mode 100644 index 000000000..e219d06b2 --- /dev/null +++ b/dox-master/classttg_1_1_binary_tree_reduce.html @@ -0,0 +1,619 @@ + + + + + + + + + + + ttg: ttg::BinaryTreeReduce< Value, BinaryOp, OutKey > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::BinaryTreeReduce< Value, BinaryOp, OutKey > Class Template Reference
+
+
+
+Inheritance diagram for ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >:
+
+
+ + +ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > > +ttg::TTBase +ttg_parsec::detail::ParsecTTBase + +
+

Documentation

+

template<typename Value, typename BinaryOp, typename OutKey>
+class ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >

+ +

generic binary reduction of a set of key-value pairs.

+

This reduces a set of Value objects keyed by an integer in the [0,max_key) interval using BinaryOp op . The reduction order is determined by breadth-first traversal of a binary spanning tree of the complete graph of the [0,max_key) set (see BinarySpanningTree) rooted at a particular key; at each node Node the reduction is performed as op(op(LeftSubTree,Node),RightSubTree) . The primary use is for reducing over a World, hence by default the keymap is identity (keymap(key) = key) and max_key=world.size() . The result is associated with output key dest_key .

+
Note
this is equivalent to MPI_Reduce; unlike std::reduce this lacks the initializer value.
+ +

Definition at line 29 of file reduce.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using baseT = typename BinaryTreeReduce::ttT
 
- Public Types inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
using ttT = TT
 
using key_type = int
 
using input_terminals_type = ttg::detail::input_terminals_tuple_t< int, input_tuple_type >
 
using input_args_type = actual_input_tuple_type
 
using input_edges_type = ttg::detail::edges_tuple_t< int, ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t< ttg::meta::decayed_typelist_t< actual_input_tuple_type > >
 
using input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t< ttg::meta::void_to_Void_tuple_t< actual_input_tuple_type > >
 
using input_values_tuple_type = ttg::meta::drop_void_t< ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_refs_tuple_type = ttg::meta::drop_void_t< ttg::meta::add_glvalue_reference_tuple_t< input_tuple_type > >
 
using output_terminals_type = std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >
 
using output_edges_type = typename ttg::terminals_to_edges< std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > > >::type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BinaryTreeReduce (Edge< int, Value > &in, Edge< OutKey, Value > &out, int root=0, OutKey dest_key=OutKey(), BinaryOp op=BinaryOp{}, World world=ttg::default_execution_context(), int max_key=-1, Edge< int, Value > inout=Edge< int, Value >{}, Edge< int, Value > inout_l=Edge< int, Value >{}, Edge< int, Value > inout_r=Edge< int, Value >{})
 
void op (const int &key, typename baseT::input_values_tuple_type &&indata, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value >> &outdata)
 
- Public Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
ttg::World get_world () const override final
 
void set_static_argstream_size (std::size_t size)
 
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_argstream_size (const Key &key, std::size_t size)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_argstream_size (std::size_t size)
 
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > finalize_argstream (const Key &key)
 finalizes stream for input i More...
 
std::enable_if_t< key_is_void, void > finalize_argstream ()
 finalizes stream for input i More...
 
void copy_mark_pushout (detail::ttg_data_copy_t *copy)
 
std::enable_if_t<!std::is_void_v< std::decay_t< Value > >, void > do_prepare_send (const Value &value, RemoteCheckFn &&remote_check)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send (const ttg::span< const Key > &keylist, const Value &value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send (const Value &value)
 
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
 
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())
 
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
virtual ~TT ()
 
void print_incomplete_tasks ()
 
virtual void release () override
 
void do_release ()
 
void set_input_reducer (Reducer &&reducer)
 
void set_input_reducer (Reducer &&reducer, std::size_t size)
 
std::tuple_element_t< i, input_terminals_type > * in ()
 
std::tuple_element_t< i, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > > > * out ()
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key, const input_values_tuple_type &args)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const input_values_tuple_type &args)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke ()
 
void invoke () override
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key, Arg &&arg, Args &&... args)
 
void set_defer_writer (bool value)
 
bool get_defer_writer (bool value)
 
void make_executable () override
 Marks this executable. More...
 
decltype(keymap) const & get_keymap () const
 
void set_keymap (Keymap &&km)
 keymap setter More...
 
decltype(priomap) const & get_priomap () const
 
void set_priomap (Priomap &&pm)
 
void set_devicemap (Devicemap &&dm)
 
auto get_devicemap ()
 
void register_static_op_function (void)
 
- Public Member Functions inherited from ttg::TTBase
virtual ~TTBase ()=default
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
bool is_executable () const
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
static constexpr bool derived_has_cuda_op ()
 
static constexpr bool derived_has_hip_op ()
 
static constexpr bool derived_has_level_zero_op ()
 
static constexpr bool derived_has_device_op ()
 
static resultT get (InTuple &&intuple)
 
static auto & get (InTuple &&intuple)
 
static void ht_iter_cb (void *item, void *cb_data)
 
- Static Public Member Functions inherited from ttg::TTBase
static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals. More...
 
- Static Public Attributes inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
static constexpr int numinvals
 
static constexpr const ttg::Runtime runtime
 
- Protected Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
const auto & get_output_terminals () const
 
uint64_t unpack (T &obj, void *_bytes, uint64_t pos)
 
uint64_t pack (T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)
 
parsec_thread_mempool_t * get_task_mempool (void)
 
void set_arg_from_msg_keylist (ttg::span< int > &&keylist, detail::ttg_data_copy_t *copy)
 
void set_arg_from_msg (void *data, std::size_t size)
 
void finalize_argstream_from_msg (void *data, std::size_t size)
 
void argstream_set_size_from_msg (void *data, std::size_t size)
 
void get_from_pull_msg (void *data, std::size_t size)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Key &key, Value &&value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (Value &&value)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Key &key, const Value &value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Value &value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (std::shared_ptr< const Value > &valueptr)
 
task_tcreate_new_task (const Key &key)
 
detail::reducer_task_tcreate_new_reducer_task (task_t *task, bool is_first)
 
void set_arg_local_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)
 
void release_task (task_t *task, parsec_task_t **task_ring=nullptr)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg (const Key &key, Value &&value)
 
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg (Value &&value)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_arg ()
 
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_arg (const Key &key)
 
bool can_inline_data (Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)
 
void set_arg_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)
 
void broadcast_arg_local (Iterator &&begin, Iterator &&end, const Value &value)
 
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > broadcast_arg (const ttg::span< const Key > &keylist, const Value &value)
 
std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)
 
std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)
 
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const std::tuple< Ts... > &args)
 
- Protected Member Functions inherited from ttg::TTBase
void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 
- Static Protected Member Functions inherited from ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >
static void static_set_arg (void *data, std::size_t size, ttg::TTBase *bop)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 
+

Member Typedef Documentation

+ +

◆ baseT

+ +
+
+
+template<typename Value , typename BinaryOp , typename OutKey >
+ + + + +
using ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >::baseT = typename BinaryTreeReduce::ttT
+
+ +

Definition at line 33 of file reduce.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ BinaryTreeReduce()

+ +
+
+
+template<typename Value , typename BinaryOp , typename OutKey >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >::BinaryTreeReduce (Edge< int, Value > & in,
Edge< OutKey, Value > & out,
int root = 0,
OutKey dest_key = OutKey(),
BinaryOp op = BinaryOp{},
World world = ttg::default_execution_context(),
int max_key = -1,
Edge< int, Value > inout = Edge<int, Value>{},
Edge< int, Value > inout_l = Edge<int, Value>{},
Edge< int, Value > inout_r = Edge<int, Value>{} 
)
+
+inline
+
+ +

Definition at line 35 of file reduce.h.

+ +
+
+

Member Function Documentation

+ +

◆ op()

+ +
+
+
+template<typename Value , typename BinaryOp , typename OutKey >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >::op (const int & key,
typename baseT::input_values_tuple_type && indata,
std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value >> & outdata 
)
+
+inline
+
+

skip stub values ... won't need this ugliness when streaming is implemented

+ +

Definition at line 47 of file reduce.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_binary_tree_reduce.png b/dox-master/classttg_1_1_binary_tree_reduce.png new file mode 100644 index 0000000000000000000000000000000000000000..b39ee6f510aa5d22c454284d73b61fe8fd7aa6b2 GIT binary patch literal 4285 zcmcgwd011&7Nzqil!A1TybG30zqq)7a^cPQItiCMFB$;NCF8-Dxy>?U;~n} z1aJY0U=S4oCLyjwh!7z{kOZQ#M8t$8gc!2DdvBnRuiyLUeXp-)CU@@4opa`#^P4$m zzFgSn?Xh6)^0_7^CJPY%{La_JWX>1B`_HpYfoE|c<|)va@ALBCZ7>*s*LNS3nDj@N zfj8*);K75L7sN22J3G$T+s_1;1X5e0|5g)|&%6-d?evfTMAjw4UVHZG%ok0iAuNNX zByIl;>qQv@zbw++7O&e)M7$~G)SF+QR(ou-!Y*xzoL19*utHcHOT(7)eJ7Srb1O~t`%5u>|>s~ja+8MAgpW8OiSo>h?xCep0ot$c%6@(;7h& z{Qh;O)fFpPf>};%VUX`}I}dtkoErjKo$xruK9$njhx)Y7w;Gu`IN;#F^+)CXjl4{e zaF?57BjrYxedKJwwGAHF*rOSiXm0VS^?AVh8{RtX7&Gk3N#6T5n!t=Sv! zqtH_rBJp8d9W#TtnbSq#6Cj|E}h58gVqx4nXQ!q5>0KpBacltzDe8Q>&8hg_%rCCId>g#rxljeB$S0^@mP zH0W)Z5ncTkLuavmp+Brt>(3NvC!##l^SHTGoDzG&C`Zpg5 z^RP?Hr`78R)3((AKCON;ck$xH$Ma_bl%fHjGd;4e78Vx1KE(l^g|EL-xbE7ybLYc{ zB;5q`nfsgc%eeq893K?g*#h*<6D@WJIOQsdy>cHwr;^pOpOOIDrNg^GLd>@*&W-mU*68^KcIEoR>|uPHp2Ui3Yuo06`&;r3VQ@pAs0(&~-uV zx~Jftm{1>`<34OcM0ck@AJRALatZite9=Xi-W{&@Bfb&pVUcSZQYV*&dx@;n7h^T# zcm4WSRIUc)jF5N9Eny4s94XnEVQ8sPBmH8PI{xBkW5Qs@R4-(656JGAD<-w)6BS|sjj4DBTjLiU zD$!Jt@AuDI?{3@`^~g>-B^p!h%@V!i@HMEnU9u&EkxpT9)R94?w4hqylOnEHaOZHk zF6iG@${9lnCEu~$&Z{@v7tIaM$kmPaZwWGsMb&9+QHO5XjC8PId6F)gM(@Txe8)q- zIXi}^%MH~?qvUk$q_wbOS)}6Nc(%&I1wB94ODs2Y(masE>!{hx7SeKAHBZ!;K3^Sx zdi83&y0xoUPvG8{)KN>0xV_-ep2==h^WVN75S<(qmI?Jj)cC5RL9x?a^&=K68(h~( zHP$cxU^v>os6(HuYDMci4IWLjD=_1!=y`mPjZ~xZCCR$}2}d=&lk4vNk?9sz!lQK- zm?bpJP!d&DHKA4F(%wDJ4y@q8KiaLiv#pew#kace_nh8KufRMi z;8&atO?mZ_IgU>?kXMaj?SdDKw*;t{rB~r}zHvkgtP3%5H6!EDf>Vmiw2B}NhiHrI zXXJeB_G4y0lPXAwB%uqA=^M%{alsvzn#D#}>KNV)6H0cdrX-4Vdvx-+ZkU6adt13i z6*3kOzs`-!$=m=dI~Yn7|3i)KVUNYFj9qd~s_>LjTPQ)H9A4H9$%oGk_Pv<2k^t$P z#LZ9M!?jn!WWk};?7l`Bg?w~1Ap^f6M(GuNC`6?c$yD{W97V6pb&UFa* zNXwdhtI(0;lGTV+<4x*dZ;ri8(^zmNuQ`7-MQwR@ArwZFPUoKTD^~Rw?igIf(t;IQ zf?L)1l*G5}yJShO7?j7~Mw2AJ4Vxkz$*o0C`MSsRjVt~N-5J1p19wXQzbd}gn>$Ra z9%qb+1s3+7GK^=gF|C4eIOLTpAG8Ie;Ya-p2yN(t(3onWjJY1ln16Fl`ah+*zf$b5 zpO?VC%^vB8{G(Yp6ZBqwVZsa`@6C#w0bV%n+NT4)d%Yv|D=>d&^?wfBP%M7`9Gt;# zbp@d^bw~nd1m<`EIGifn^BFM1)l)H>bVZLwfvJR!J7KxN!v2t`l*s#K3uk<{hVYki{wVYM}x z`7WZR-EKC*YHDXSSVC4^!C|_4 zb1HpF0IaOCSSg5+e>@Z`3fF)p4(`a6RO9-p&$gji1y+l-I1GEbfr_X=K(V4k<>}hd z5XD5@t*Xen_Y)J9@>6afkm)#7bsL-}8O08~rR(sKB4<0!NO;n|;ez%h;9YVOXD(SZ zCV_iL;U@H&_|OIg_i#&JT;Q9w27*q()d(>I>XV0S6nR10;oo;f-1Smdsy8-OH&qCi^ua+ + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::Debugger Member List
+
+
+ +

This is the complete list of members for ttg::Debugger, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
__traceback(const std::string &prefix, const char *reason=nullptr)ttg::Debuggerprotectedstatic
cmd_ttg::Debuggerprotected
debug(const char *reason)ttg::Debuggervirtual
debug_ttg::Debuggerprotected
Debugger(const char *exec=nullptr)ttg::Debuggerexplicit
debugger_ready_ttg::Debuggerprotected
default_cmd()ttg::Debuggervirtual
default_debugger()ttg::Debuggerstatic
default_debugger_ttg::Debuggerprotectedstatic
exec_ttg::Debuggerprotected
exit_on_signal_ttg::Debuggerprotected
got_signal(int sig)ttg::Debuggervirtual
handle(int sig)ttg::Debuggervirtual
handle_defaults()ttg::Debuggervirtual
handle_sigint_ttg::Debuggerprotected
init()ttg::Debuggerprotected
mysigs_ttg::Debuggerprotected
prefix_ttg::Debuggerprotected
release(int sig)ttg::Debuggervirtual
set_cmd(const char *)ttg::Debuggervirtual
set_debug_on_signal(int)ttg::Debuggervirtual
set_default_debugger(const std::shared_ptr< Debugger > &)ttg::Debuggerstatic
set_exec(const char *)ttg::Debuggervirtual
set_exit_on_signal(int)ttg::Debuggervirtual
set_prefix(const char *p)ttg::Debuggervirtual
set_prefix(int p)ttg::Debuggervirtual
set_traceback_on_signal(int)ttg::Debuggervirtual
set_wait_for_debugger(int)ttg::Debuggervirtual
sleep_ttg::Debuggerprotected
traceback(const char *reason)ttg::Debuggervirtual
traceback_ttg::Debuggerprotected
wait_for_debugger_ttg::Debuggerprotected
~Debugger()ttg::Debuggervirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_debugger.html b/dox-master/classttg_1_1_debugger.html new file mode 100644 index 000000000..1b896b114 --- /dev/null +++ b/dox-master/classttg_1_1_debugger.html @@ -0,0 +1,1182 @@ + + + + + + + + + + + ttg: ttg::Debugger Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+ +
+

Documentation

+

The Debugger class describes what should be done when a catastrophic error causes unexpected program termination. It can try things such as start a debugger running where the program died or it can attempt to produce a stack traceback showing roughly where the program died. These attempts will not always succeed.

+ +

Definition at line 270 of file bug.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Debugger (const char *exec=nullptr)
 Programmatic construction of Debugger. More...
 
virtual ~Debugger ()
 
virtual void debug (const char *reason)
 
virtual void traceback (const char *reason)
 
virtual void set_debug_on_signal (int)
 Turn on or off debugging on a signel. The default is on. More...
 
virtual void set_traceback_on_signal (int)
 Turn on or off traceback on a signel. The default is on. More...
 
virtual void set_exit_on_signal (int)
 Turn on or off exit after a signel. The default is on. More...
 
virtual void set_wait_for_debugger (int)
 
virtual void handle (int sig)
 The Debugger will be activated when sig is caught. More...
 
virtual void release (int sig)
 Reverts the effect of handle(sig) , i.e. the Debugger will not be activated when sig is caught. More...
 
virtual void handle_defaults ()
 This calls handle(int) with all of the major signals. More...
 
virtual void set_prefix (const char *p)
 This sets a prefix which preceeds all messages printing by Debugger. More...
 
virtual void set_prefix (int p)
 Set the prefix to the decimal represention of p followed by a ": ". More...
 
virtual void set_cmd (const char *)
 
virtual void default_cmd ()
 Calls set_cmd with a hopefully suitable default. More...
 
virtual void set_exec (const char *)
 
virtual void got_signal (int sig)
 Called when signal sig is received. This is mainly for internal use. More...
 
+ + + + + + + +

+Static Public Member Functions

static void set_default_debugger (const std::shared_ptr< Debugger > &)
 Set the global default debugger. The initial value is null. More...
 
static std::shared_ptr< Debuggerdefault_debugger ()
 Return the global default debugger. More...
 
+ + + +

+Protected Member Functions

void init ()
 
+ + + +

+Static Protected Member Functions

static void __traceback (const std::string &prefix, const char *reason=nullptr)
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Protected Attributes

std::string prefix_
 
std::string exec_
 
std::string cmd_
 
volatile int debugger_ready_
 
bool debug_
 
bool traceback_
 
bool exit_on_signal_
 
bool sleep_
 
bool wait_for_debugger_
 
bool handle_sigint_
 
int * mysigs_
 
+ + + +

+Static Protected Attributes

static std::shared_ptr< Debuggerdefault_debugger_
 
+

Constructor & Destructor Documentation

+ +

◆ Debugger()

+ +
+
+ + + + + +
+ + + + + + + + +
Debugger::Debugger (const char * exec = nullptr)
+
+explicit
+
+ +

Programmatic construction of Debugger.

+
Parameters
+ + +
execthe executable name
+
+
+ +

Definition at line 157 of file bug.cpp.

+ +
+
+ +

◆ ~Debugger()

+ +
+
+ + + + + +
+ + + + + + + +
Debugger::~Debugger ()
+
+virtual
+
+ +

Definition at line 174 of file bug.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ __traceback()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void Debugger::__traceback (const std::string & prefix,
const char * reason = nullptr 
)
+
+staticprotected
+
+

prints out a backtrace to std::cout

+
Parameters
+ + + +
prefixthis string will be prepended at the beginning of each line of Backtrace
reasonoptional string specifying the reason for traceback
+
+
+ +

Definition at line 414 of file bug.cpp.

+ +
+
+ +

◆ debug()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::debug (const char * reason)
+
+virtual
+
+

The debug member attempts to start a debugger running on the current process.

+ +

Definition at line 298 of file bug.cpp.

+ +
+
+ +

◆ default_cmd()

+ +
+
+ + + + + +
+ + + + + + + +
void Debugger::default_cmd ()
+
+virtual
+
+ +

Calls set_cmd with a hopefully suitable default.

+ +

Definition at line 271 of file bug.cpp.

+ +
+
+ +

◆ default_debugger()

+ +
+
+ + + + + +
+ + + + + + + +
std::shared_ptr< Debugger > Debugger::default_debugger ()
+
+static
+
+ +

Return the global default debugger.

+ +

Definition at line 408 of file bug.cpp.

+ +
+
+ +

◆ got_signal()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::got_signal (int sig)
+
+virtual
+
+ +

Called when signal sig is received. This is mainly for internal use.

+ +

Definition at line 360 of file bug.cpp.

+ +
+
+ +

◆ handle()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::handle (int sig)
+
+virtual
+
+ +

The Debugger will be activated when sig is caught.

+ +

Definition at line 204 of file bug.cpp.

+ +
+
+ +

◆ handle_defaults()

+ +
+
+ + + + + +
+ + + + + + + +
void Debugger::handle_defaults ()
+
+virtual
+
+ +

This calls handle(int) with all of the major signals.

+ +

Definition at line 219 of file bug.cpp.

+ +
+
+ +

◆ init()

+ +
+
+ + + + + +
+ + + + + + + +
void Debugger::init ()
+
+protected
+
+ +

Definition at line 181 of file bug.cpp.

+ +
+
+ +

◆ release()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::release (int sig)
+
+virtual
+
+ +

Reverts the effect of handle(sig) , i.e. the Debugger will not be activated when sig is caught.

+ +

Definition at line 212 of file bug.cpp.

+ +
+
+ +

◆ set_cmd()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_cmd (const char * cmd)
+
+virtual
+
+

Sets the command to be executed when debug is called. The character sequence "$(EXEC)" is replaced by the executable name (see set_exec), "$(PID)" is replaced by the current process id, and "$(PREFIX)" is replaced by the prefix.

+ +

Definition at line 289 of file bug.cpp.

+ +
+
+ +

◆ set_debug_on_signal()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_debug_on_signal (int v)
+
+virtual
+
+ +

Turn on or off debugging on a signel. The default is on.

+ +

Definition at line 398 of file bug.cpp.

+ +
+
+ +

◆ set_default_debugger()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_default_debugger (const std::shared_ptr< Debugger > & d)
+
+static
+
+ +

Set the global default debugger. The initial value is null.

+ +

Definition at line 406 of file bug.cpp.

+ +
+
+ +

◆ set_exec()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_exec (const char * exec)
+
+virtual
+
+

Set the name of the executable for the current process. It is up to the programmer to set this, even if the Debugger is initialized with the KeyVal constructor.

+ +

Definition at line 249 of file bug.cpp.

+ +
+
+ +

◆ set_exit_on_signal()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_exit_on_signal (int v)
+
+virtual
+
+ +

Turn on or off exit after a signel. The default is on.

+ +

Definition at line 404 of file bug.cpp.

+ +
+
+ +

◆ set_prefix() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_prefix (const char * p)
+
+virtual
+
+ +

This sets a prefix which preceeds all messages printing by Debugger.

+ +

Definition at line 257 of file bug.cpp.

+ +
+
+ +

◆ set_prefix() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_prefix (int p)
+
+virtual
+
+ +

Set the prefix to the decimal represention of p followed by a ": ".

+ +

Definition at line 265 of file bug.cpp.

+ +
+
+ +

◆ set_traceback_on_signal()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_traceback_on_signal (int v)
+
+virtual
+
+ +

Turn on or off traceback on a signel. The default is on.

+ +

Definition at line 400 of file bug.cpp.

+ +
+
+ +

◆ set_wait_for_debugger()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::set_wait_for_debugger (int v)
+
+virtual
+
+

Turn on or off running an infinite loop after the debugger is started. This loop gives the debugger a chance to attack to the process. The default is on.

+ +

Definition at line 402 of file bug.cpp.

+ +
+
+ +

◆ traceback()

+ +
+
+ + + + + +
+ + + + + + + + +
void Debugger::traceback (const char * reason)
+
+virtual
+
+

The traceback member attempts to produce a Backtrace for the current process. A symbol table must be saved for the executable if any sense is to be made of the traceback. This feature is available on platforms with (1) libunwind, (2) backtrace, or (3) certain platforms with hardwired unwinding.

Parameters
+ + +
reasonoptional string specifying the reason for traceback
+
+
+ +

Definition at line 412 of file bug.cpp.

+ +
+
+

Member Data Documentation

+ +

◆ cmd_

+ +
+
+ + + + + +
+ + + + +
std::string ttg::Debugger::cmd_
+
+protected
+
+ +

Definition at line 274 of file bug.h.

+ +
+
+ +

◆ debug_

+ +
+
+ + + + + +
+ + + + +
bool ttg::Debugger::debug_
+
+protected
+
+ +

Definition at line 277 of file bug.h.

+ +
+
+ +

◆ debugger_ready_

+ +
+
+ + + + + +
+ + + + +
volatile int ttg::Debugger::debugger_ready_
+
+protected
+
+ +

Definition at line 275 of file bug.h.

+ +
+
+ +

◆ default_debugger_

+ +
+
+ + + + + +
+ + + + +
std::shared_ptr< Debugger > Debugger::default_debugger_
+
+staticprotected
+
+ +

Definition at line 287 of file bug.h.

+ +
+
+ +

◆ exec_

+ +
+
+ + + + + +
+ + + + +
std::string ttg::Debugger::exec_
+
+protected
+
+ +

Definition at line 273 of file bug.h.

+ +
+
+ +

◆ exit_on_signal_

+ +
+
+ + + + + +
+ + + + +
bool ttg::Debugger::exit_on_signal_
+
+protected
+
+ +

Definition at line 279 of file bug.h.

+ +
+
+ +

◆ handle_sigint_

+ +
+
+ + + + + +
+ + + + +
bool ttg::Debugger::handle_sigint_
+
+protected
+
+ +

Definition at line 282 of file bug.h.

+ +
+
+ +

◆ mysigs_

+ +
+
+ + + + + +
+ + + + +
int* ttg::Debugger::mysigs_
+
+protected
+
+ +

Definition at line 283 of file bug.h.

+ +
+
+ +

◆ prefix_

+ +
+
+ + + + + +
+ + + + +
std::string ttg::Debugger::prefix_
+
+protected
+
+ +

Definition at line 272 of file bug.h.

+ +
+
+ +

◆ sleep_

+ +
+
+ + + + + +
+ + + + +
bool ttg::Debugger::sleep_
+
+protected
+
+ +

Definition at line 280 of file bug.h.

+ +
+
+ +

◆ traceback_

+ +
+
+ + + + + +
+ + + + +
bool ttg::Debugger::traceback_
+
+protected
+
+ +

Definition at line 278 of file bug.h.

+ +
+
+ +

◆ wait_for_debugger_

+ +
+
+ + + + + +
+ + + + +
bool ttg::Debugger::wait_for_debugger_
+
+protected
+
+ +

Definition at line 281 of file bug.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_dot-members.html b/dox-master/classttg_1_1_dot-members.html new file mode 100644 index 000000000..d92bd650f --- /dev/null +++ b/dox-master/classttg_1_1_dot-members.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::Dot Member List
+
+
+ +

This is the complete list of members for ttg::Dot, including all inherited members.

+ + + + + + + + + + +
build_ttg_hierarchy(const TTBase *tt)ttg::Dotinline
Dot(bool disable_type=false)ttg::Dotinline
escape(const std::string &in)ttg::Dotinline
infunc(TerminalBase *in)ttg::Dotinlinevirtual
nodename(const TTBase *op)ttg::Dotinline
operator()(TTBasePtrs &&... ops)ttg::Dotinline
outfunc(TerminalBase *out)ttg::Dotinlinevirtual
tree_down(int level, const TTBase *node, std::stringstream &buf)ttg::Dotinline
ttfunc(TTBase *tt)ttg::Dotinlinevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_dot.html b/dox-master/classttg_1_1_dot.html new file mode 100644 index 000000000..a39594f78 --- /dev/null +++ b/dox-master/classttg_1_1_dot.html @@ -0,0 +1,461 @@ + + + + + + + + + + + ttg: ttg::Dot Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::Dot Class Reference
+
+
+
+Inheritance diagram for ttg::Dot:
+
+
+ + +ttg::detail::Traverse + +
+

Documentation

+

Prints the graph to a std::string in the format understood by GraphViz's dot program.

+ +

Definition at line 13 of file dot.h.

+
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Dot (bool disable_type=false)
 
std::string escape (const std::string &in)
 
std::string nodename (const TTBase *op)
 
void build_ttg_hierarchy (const TTBase *tt)
 
void ttfunc (TTBase *tt)
 
void infunc (TerminalBase *in)
 
void outfunc (TerminalBase *out)
 
void tree_down (int level, const TTBase *node, std::stringstream &buf)
 
template<typename... TTBasePtrs>
std::enable_if_t<(std::is_convertible_v< std::remove_const_t< std::remove_reference_t< TTBasePtrs >>, TTBase * > &&...), std::string > operator() (TTBasePtrs &&... ops)
 
+

Constructor & Destructor Documentation

+ +

◆ Dot()

+ +
+
+ + + + + +
+ + + + + + + + +
ttg::Dot::Dot (bool disable_type = false)
+
+inline
+
+
Parameters
+ + +
[in]disable_typedisable_type controls whether to embed types into the DOT output; set to true to reduce the amount of the output
+
+
+ +

Definition at line 23 of file dot.h.

+ +
+
+

Member Function Documentation

+ +

◆ build_ttg_hierarchy()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::Dot::build_ttg_hierarchy (const TTBasett)
+
+inline
+
+ +

Definition at line 44 of file dot.h.

+ +
+
+ +

◆ escape()

+ +
+
+ + + + + +
+ + + + + + + + +
std::string ttg::Dot::escape (const std::string & in)
+
+inline
+
+ +

Definition at line 26 of file dot.h.

+ +
+
+ +

◆ infunc()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::Dot::infunc (TerminalBasein)
+
+inlinevirtual
+
+ +

Implements ttg::detail::Traverse.

+ +

Definition at line 141 of file dot.h.

+ +
+
+ +

◆ nodename()

+ +
+
+ + + + + +
+ + + + + + + + +
std::string ttg::Dot::nodename (const TTBaseop)
+
+inline
+
+ +

Definition at line 38 of file dot.h.

+ +
+
+ +

◆ operator()()

+ +
+
+
+template<typename... TTBasePtrs>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<(std::is_convertible_v<std::remove_const_t<std::remove_reference_t<TTBasePtrs>>, TTBase *> && ...), std::string> ttg::Dot::operator() (TTBasePtrs &&... ops)
+
+inline
+
+
Returns
string containing the graph specification in the format understood by GraphViz's dot program
+ +

Definition at line 173 of file dot.h.

+ +
+
+ +

◆ outfunc()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::Dot::outfunc (TerminalBaseout)
+
+inlinevirtual
+
+ +

Implements ttg::detail::Traverse.

+ +

Definition at line 143 of file dot.h.

+ +
+
+ +

◆ tree_down()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::Dot::tree_down (int level,
const TTBasenode,
std::stringstream & buf 
)
+
+inline
+
+ +

Definition at line 145 of file dot.h.

+ +
+
+ +

◆ ttfunc()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::Dot::ttfunc (TTBasett)
+
+inlinevirtual
+
+ +

Implements ttg::detail::Traverse.

+ +

Definition at line 58 of file dot.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_dot.png b/dox-master/classttg_1_1_dot.png new file mode 100644 index 0000000000000000000000000000000000000000..9a038d79ef0bab4294fa0fc6da9032b196b33757 GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^Wk4Lj!3-pS_Y`sfDTx4|5ZC|z{{xvX-h3_XKQsZz z0^Zci7-kP61Pb7LnpD+sX7?!WW@%%m>Xd0*spm)L`KYcd$$odh!G zAv5|CdJI1wWH^(S$;kHk|JK_Fs@7qu)jO sw;%7bG{|1F7dVix&o8^j@bXW_)+h + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::Edge< keyT, valueT > Member List
+
+
+ +

This is the complete list of members for ttg::Edge< keyT, valueT >, including all inherited members.

+ + + + + + + + + + + + + +
Edge(const std::string name="anonymous edge")ttg::Edge< keyT, valueT >inline
Edge(const std::string name, bool is_pull, ttg::detail::ContainerWrapper< keyT, valueT > c)ttg::Edge< keyT, valueT >inline
Edge(const Edge< keyT, valuesT > &...edges)ttg::Edge< keyT, valueT >inline
edge() constttg::Edge< keyT, valueT >inline
fire() constttg::Edge< keyT, valueT >inline
is_pull_edge() constttg::Edge< keyT, valueT >inline
key_type typedefttg::Edge< keyT, valueT >
live() constttg::Edge< keyT, valueT >inline
output_terminal_type typedefttg::Edge< keyT, valueT >
set_in(Out< keyT, valueT > *in) constttg::Edge< keyT, valueT >inline
set_out(TerminalBase *out) constttg::Edge< keyT, valueT >inline
value_type typedefttg::Edge< keyT, valueT >
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_edge.html b/dox-master/classttg_1_1_edge.html new file mode 100644 index 000000000..aa7a26075 --- /dev/null +++ b/dox-master/classttg_1_1_edge.html @@ -0,0 +1,548 @@ + + + + + + + + + + + ttg: ttg::Edge< keyT, valueT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::Edge< keyT, valueT > Class Template Reference
+
+
+

Documentation

+

template<typename keyT, typename valueT>
+class ttg::Edge< keyT, valueT >

+ +

Edge is used to connect In and Out terminals.

+

Edge objects can connect in a type-safe way one or more Out terminals to an In terminal or one Out terminal to one or more In terminals.

+
Template Parameters
+ + + +
<keyT>type of the destination task identifiers (keys)
<valueT>type of the data carried by the Edge.
+
+
+
Examples
distributed.cc, iterative.cc, reducing.cc, and simple.cc.
+
+ +

Definition at line 25 of file edge.h.

+
+ + + + + + + +

+Public Types

typedef Out< keyT, valueT > output_terminal_type
 
typedef keyT key_type
 
typedef valueT value_type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Edge (const std::string name="anonymous edge")
 
 Edge (const std::string name, bool is_pull, ttg::detail::ContainerWrapper< keyT, valueT > c)
 
template<typename... valuesT, typename = std::enable_if_t<(std::is_same_v<valuesT, valueT> && ...)>>
 Edge (const Edge< keyT, valuesT > &...edges)
 Edge carrying a tuple of values. More...
 
Edge< keyT, valueT > edge () const
 
bool live () const
 probes if this is already has at least one input received on the input terminal More...
 
bool is_pull_edge () const
 
void set_in (Out< keyT, valueT > *in) const
 Sets the output terminal that goes into this Edge. More...
 
void set_out (TerminalBase *out) const
 Sets the input terminal that this Edge goes into. More...
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t< ttg::meta::is_all_void_v< Key, Value > > fire () const
 
+

Member Typedef Documentation

+ +

◆ key_type

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + +
typedef keyT ttg::Edge< keyT, valueT >::key_type
+
+ +

Definition at line 104 of file edge.h.

+ +
+
+ +

◆ output_terminal_type

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + +
typedef Out<keyT, valueT> ttg::Edge< keyT, valueT >::output_terminal_type
+
+ +

Definition at line 103 of file edge.h.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + +
typedef valueT ttg::Edge< keyT, valueT >::value_type
+
+ +

Definition at line 105 of file edge.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Edge() [1/3]

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + + + + + +
ttg::Edge< keyT, valueT >::Edge (const std::string name = "anonymous edge")
+
+inline
+
+ +

Definition at line 110 of file edge.h.

+ +
+
+ +

◆ Edge() [2/3]

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
ttg::Edge< keyT, valueT >::Edge (const std::string name,
bool is_pull,
ttg::detail::ContainerWrapper< keyT, valueT > c 
)
+
+inline
+
+ +

Definition at line 112 of file edge.h.

+ +
+
+ +

◆ Edge() [3/3]

+ +
+
+
+template<typename keyT , typename valueT >
+
+template<typename... valuesT, typename = std::enable_if_t<(std::is_same_v<valuesT, valueT> && ...)>>
+ + + + + +
+ + + + + + + + +
ttg::Edge< keyT, valueT >::Edge (const Edge< keyT, valuesT > &... edges)
+
+inline
+
+ +

Edge carrying a tuple of values.

+ +

Definition at line 118 of file edge.h.

+ +
+
+

Member Function Documentation

+ +

◆ edge()

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + + + + +
Edge<keyT, valueT> ttg::Edge< keyT, valueT >::edge () const
+
+inline
+
+

returns a reference to itself this is used by edge wrappers to return the underlying edge

+ +

Definition at line 131 of file edge.h.

+ +
+
+ +

◆ fire()

+ +
+
+
+template<typename keyT , typename valueT >
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + +
std::enable_if_t<ttg::meta::is_all_void_v<Key, Value> > ttg::Edge< keyT, valueT >::fire () const
+
+inline
+
+

Triggers the input terminal the Edge is connected to

Note
Only valid for pure control Edges that connect to tasks without identifiers and do not carry data
+ +

Definition at line 157 of file edge.h.

+ +
+
+ +

◆ is_pull_edge()

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + + + + +
bool ttg::Edge< keyT, valueT >::is_pull_edge () const
+
+inline
+
+ +

Definition at line 142 of file edge.h.

+ +
+
+ +

◆ live()

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + + + + +
bool ttg::Edge< keyT, valueT >::live () const
+
+inline
+
+ +

probes if this is already has at least one input received on the input terminal

+ +

Definition at line 134 of file edge.h.

+ +
+
+ +

◆ set_in()

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + + + + + +
void ttg::Edge< keyT, valueT >::set_in (Out< keyT, valueT > * in) const
+
+inline
+
+ +

Sets the output terminal that goes into this Edge.

+ +

Definition at line 145 of file edge.h.

+ +
+
+ +

◆ set_out()

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + + + + + +
void ttg::Edge< keyT, valueT >::set_out (TerminalBaseout) const
+
+inline
+
+ +

Sets the input terminal that this Edge goes into.

+ +

Definition at line 150 of file edge.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_in-members.html b/dox-master/classttg_1_1_in-members.html new file mode 100644 index 000000000..60784c327 --- /dev/null +++ b/dox-master/classttg_1_1_in-members.html @@ -0,0 +1,188 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::In< keyT, valueT > Member List
+
+
+ +

This is the complete list of members for ttg::In< keyT, valueT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
base_type typedefttg::In< keyT, valueT >
broadcast(const rangeT &keylist, const Value &value)ttg::In< keyT, valueT >inline
broadcast(const rangeT &keylist, Value &&value)ttg::In< keyT, valueT >inline
broadcast(const rangeT &keylist)ttg::In< keyT, valueT >inline
broadcast_callback_type typedefttg::In< keyT, valueT >
connect_base(TerminalBase *successor)ttg::TerminalBaseinlineprotected
connect_pull(TerminalBase *predecessor)ttg::TerminalBaseinlineprotected
connect_pull_nopred(TerminalBase *p)ttg::TerminalBaseinline
containerttg::In< keyT, valueT >
edge_type typedefttg::In< keyT, valueT >
finalize(const Key &key)ttg::InTerminalBase< void >inline
finalize()ttg::InTerminalBase< void >inline
finalize_callbackttg::InTerminalBase< void >protected
finalize_callback_type typedefttg::In< keyT, valueT >
get_connections() constttg::TerminalBaseinline
get_index() constttg::TerminalBaseinline
get_key_type_str() constttg::TerminalBaseinline
get_name() constttg::TerminalBaseinline
get_predecessors() constttg::TerminalBaseinline
get_tt() constttg::TerminalBaseinline
get_type() constttg::TerminalBaseinline
get_value_type_str() constttg::TerminalBaseinline
In()ttg::In< keyT, valueT >inline
InTerminalBase(TerminalBase::Type t)ttg::InTerminalBase< void >inlineprotected
is_a_terminalttg::TerminalBasestatic
is_an_input_terminalttg::In< keyT, valueT >static
is_connected() constttg::TerminalBaseinline
is_pull_terminalttg::TerminalBase
key_type typedefttg::In< keyT, valueT >
move_callback_type typedefttg::In< keyT, valueT >
prepare_send(const rangeT &keylist, Value &&value)ttg::In< keyT, valueT >inline
prepare_send(Value &&value)ttg::In< keyT, valueT >inline
prepare_send_callback_type typedefttg::In< keyT, valueT >
send(const Key &key, const Value &value)ttg::In< keyT, valueT >inline
send(const Key &key, Value &&value)ttg::In< keyT, valueT >inline
send()ttg::In< keyT, valueT >inline
send_callback_type typedefttg::In< keyT, valueT >
sendk(const Key &key)ttg::In< keyT, valueT >inline
sendv(const Value &value)ttg::In< keyT, valueT >inline
sendv(Value &&value)ttg::In< keyT, valueT >inline
set(TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)ttg::TerminalBaseinlineprotected
set_callback(const send_callback_type &send_callback, const move_callback_type &move_callback, const broadcast_callback_type &bcast_callback=broadcast_callback_type{}, const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{}, const prepare_send_callback_type &prepare_send_callback=prepare_send_callback_type{})ttg::In< keyT, valueT >inline
InTerminalBase< void >::set_callback(const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{})ttg::InTerminalBase< void >inlineprotected
set_size(const Key &key, std::size_t size)ttg::InTerminalBase< void >inline
set_size(std::size_t size)ttg::InTerminalBase< void >inline
setsize_callbackttg::InTerminalBase< void >protected
setsize_callback_type typedefttg::In< keyT, valueT >
TerminalBase(Type type)ttg::TerminalBaseinlineprotected
Type enum namettg::TerminalBase
value_type typedefttg::In< keyT, valueT >
~TerminalBase()=defaultttg::TerminalBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_in.html b/dox-master/classttg_1_1_in.html new file mode 100644 index 000000000..de36d9f8b --- /dev/null +++ b/dox-master/classttg_1_1_in.html @@ -0,0 +1,1058 @@ + + + + + + + + + + + ttg: ttg::In< keyT, valueT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::In< keyT, valueT > Class Template Reference
+
+
+
+Inheritance diagram for ttg::In< keyT, valueT >:
+
+
+ + +ttg::InTerminalBase< void > +ttg::TerminalBase + +
+

Documentation

+

template<typename keyT = void, typename valueT = void>
+class ttg::In< keyT, valueT >

+ +

An input terminal for receiving messages annotated by task IDs of type KeyT and values of type valueT

Template Parameters
+ + + +
<keyT>a task ID type (can be void)
<valueT>a data type (can be void); a const valueT indicates that the incoming data is passed by const reference
+
+
+ +

Definition at line 143 of file terminal.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using base_type = InTerminalBase< keyT >
 
typedef valueT value_type
 
typedef keyT key_type
 
using edge_type = Edge< keyT, valueT >
 
using send_callback_type = meta::detail::send_callback_t< keyT, std::decay_t< valueT > >
 
using move_callback_type = meta::detail::move_callback_t< keyT, std::decay_t< valueT > >
 
using broadcast_callback_type = meta::detail::broadcast_callback_t< keyT, std::decay_t< valueT > >
 
using setsize_callback_type = typename base_type::setsize_callback_type
 
using finalize_callback_type = typename base_type::finalize_callback_type
 
using prepare_send_callback_type = meta::detail::prepare_send_callback_t< keyT, std::decay_t< valueT > >
 
- Public Types inherited from ttg::InTerminalBase< void >
typedef void key_type
 
using setsize_callback_type = meta::detail::setsize_callback_t< void >
 
using finalize_callback_type = meta::detail::finalize_callback_t< void >
 
- Public Types inherited from ttg::TerminalBase
enum class  Type { Write +, Read +, Consume + }
 describes the terminal type More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 In ()
 Default constructor of an Input Terminal. More...
 
void set_callback (const send_callback_type &send_callback, const move_callback_type &move_callback, const broadcast_callback_type &bcast_callback=broadcast_callback_type{}, const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{}, const prepare_send_callback_type &prepare_send_callback=prepare_send_callback_type{})
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_none_void_v< Key, Value >, void > send (const Key &key, const Value &value)
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_none_void_v< Key, Value > &&std::is_same_v< Value, std::remove_reference_t< Value > >, void > send (const Key &key, Value &&value)
 
template<typename Key = keyT>
std::enable_if_t<!meta::is_void_v< Key >, void > sendk (const Key &key)
 
template<typename Value = valueT>
std::enable_if_t<!meta::is_void_v< Value >, void > sendv (const Value &value)
 
template<typename Value = valueT>
std::enable_if_t<!meta::is_void_v< Value > &&std::is_same_v< Value, std::remove_reference_t< Value > >, void > sendv (Value &&value)
 
void send ()
 
template<typename rangeT , typename Value >
std::enable_if_t<!meta::is_void_v< Value >, void > broadcast (const rangeT &keylist, const Value &value)
 
template<typename rangeT , typename Value >
std::enable_if_t<!meta::is_void_v< Value >, void > broadcast (const rangeT &keylist, Value &&value)
 
template<typename rangeT , typename Value = valueT>
std::enable_if_t< meta::is_void_v< Value >, void > broadcast (const rangeT &keylist)
 
template<typename rangeT , typename Value >
void prepare_send (const rangeT &keylist, Value &&value)
 
template<typename rangeT , typename Value >
void prepare_send (Value &&value)
 
- Public Member Functions inherited from ttg::InTerminalBase< void >
std::enable_if_t<!meta::is_void_v< Key >, void > set_size (const Key &key, std::size_t size)
 
std::enable_if_t< meta::is_void_v< Key >, void > set_size (std::size_t size)
 
std::enable_if_t<!meta::is_void_v< Key >, void > finalize (const Key &key)
 
std::enable_if_t< meta::is_void_v< Key >, void > finalize ()
 
- Public Member Functions inherited from ttg::TerminalBase
TTBaseget_tt () const
 Return ptr to containing tt. More...
 
size_t get_index () const
 Returns index of terminal. More...
 
const std::string & get_name () const
 Returns name of terminal. More...
 
const std::string & get_key_type_str () const
 Returns string representation of key type. More...
 
const std::string & get_value_type_str () const
 Returns string representation of value type. More...
 
Type get_type () const
 Returns the terminal type. More...
 
const std::vector< TerminalBase * > & get_connections () const
 Get connections to successors. More...
 
const std::vector< TerminalBase * > & get_predecessors () const
 
void connect_pull_nopred (TerminalBase *p)
 
bool is_connected () const
 Returns true if this terminal (input or output) is connected. More...
 
virtual ~TerminalBase ()=default
 
+ + + + + + +

+Public Attributes

ttg::detail::ContainerWrapper< keyT, valueT > container
 
- Public Attributes inherited from ttg::TerminalBase
bool is_pull_terminal = false
 
+ + + + + + + + + +

+Static Public Attributes

static constexpr bool is_an_input_terminal = true
 
- Static Public Attributes inherited from ttg::InTerminalBase< void >
static constexpr bool is_an_input_terminal
 
- Static Public Attributes inherited from ttg::TerminalBase
static constexpr bool is_a_terminal = true
 
+ + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ttg::InTerminalBase< void >
 InTerminalBase (TerminalBase::Type t)
 
void set_callback (const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{})
 
- Protected Member Functions inherited from ttg::TerminalBase
 TerminalBase (Type type)
 
void set (TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)
 
void connect_base (TerminalBase *successor)
 
void connect_pull (TerminalBase *predecessor)
 
- Protected Attributes inherited from ttg::InTerminalBase< void >
setsize_callback_type setsize_callback
 
finalize_callback_type finalize_callback
 
+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::base_type = InTerminalBase<keyT>
+
+ +

Definition at line 145 of file terminal.h.

+ +
+
+ +

◆ broadcast_callback_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::broadcast_callback_type = meta::detail::broadcast_callback_t<keyT, std::decay_t<valueT> >
+
+ +

Definition at line 155 of file terminal.h.

+ +
+
+ +

◆ edge_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::edge_type = Edge<keyT, valueT>
+
+ +

Definition at line 152 of file terminal.h.

+ +
+
+ +

◆ finalize_callback_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::finalize_callback_type = typename base_type::finalize_callback_type
+
+ +

Definition at line 157 of file terminal.h.

+ +
+
+ +

◆ key_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
typedef keyT ttg::In< keyT, valueT >::key_type
+
+ +

Definition at line 147 of file terminal.h.

+ +
+
+ +

◆ move_callback_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::move_callback_type = meta::detail::move_callback_t<keyT, std::decay_t<valueT> >
+
+ +

Definition at line 154 of file terminal.h.

+ +
+
+ +

◆ prepare_send_callback_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::prepare_send_callback_type = meta::detail::prepare_send_callback_t<keyT, std::decay_t<valueT> >
+
+ +

Definition at line 158 of file terminal.h.

+ +
+
+ +

◆ send_callback_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::send_callback_type = meta::detail::send_callback_t<keyT, std::decay_t<valueT> >
+
+ +

Definition at line 153 of file terminal.h.

+ +
+
+ +

◆ setsize_callback_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::In< keyT, valueT >::setsize_callback_type = typename base_type::setsize_callback_type
+
+ +

Definition at line 156 of file terminal.h.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
typedef valueT ttg::In< keyT, valueT >::value_type
+
+ +

Definition at line 146 of file terminal.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ In()

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + + +
+ + + + + + + +
ttg::In< keyT, valueT >::In ()
+
+inline
+
+ +

Default constructor of an Input Terminal.

+ +

Definition at line 180 of file terminal.h.

+ +
+
+

Member Function Documentation

+ +

◆ broadcast() [1/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Value = valueT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<meta::is_void_v<Value>, void> ttg::In< keyT, valueT >::broadcast (const rangeT & keylist)
+
+inline
+
+ +

Definition at line 285 of file terminal.h.

+ +
+
+ +

◆ broadcast() [2/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!meta::is_void_v<Value>, void> ttg::In< keyT, valueT >::broadcast (const rangeT & keylist,
const Value & value 
)
+
+inline
+
+ +

Definition at line 244 of file terminal.h.

+ +
+
+ +

◆ broadcast() [3/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!meta::is_void_v<Value>, void> ttg::In< keyT, valueT >::broadcast (const rangeT & keylist,
Value && value 
)
+
+inline
+
+ +

Definition at line 264 of file terminal.h.

+ +
+
+ +

◆ prepare_send() [1/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::In< keyT, valueT >::prepare_send (const rangeT & keylist,
Value && value 
)
+
+inline
+
+ +

Definition at line 306 of file terminal.h.

+ +
+
+ +

◆ prepare_send() [2/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Value >
+ + + + + +
+ + + + + + + + +
void ttg::In< keyT, valueT >::prepare_send (Value && value)
+
+inline
+
+ +

Definition at line 321 of file terminal.h.

+ +
+
+ +

◆ send() [1/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + + +
+ + + + + + + +
void ttg::In< keyT, valueT >::send ()
+
+inline
+
+ +

Definition at line 236 of file terminal.h.

+ +
+
+ +

◆ send() [2/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key, Value>, void> ttg::In< keyT, valueT >::send (const Key & key,
const Value & value 
)
+
+inline
+
+ +

Definition at line 205 of file terminal.h.

+ +
+
+ +

◆ send() [3/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key, Value> && std::is_same_v<Value, std::remove_reference_t<Value> >, void> ttg::In< keyT, valueT >::send (const Key & key,
Value && value 
)
+
+inline
+
+ +

Definition at line 212 of file terminal.h.

+ +
+
+ +

◆ sendk()

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!meta::is_void_v<Key>, void> ttg::In< keyT, valueT >::sendk (const Key & key)
+
+inline
+
+ +

Definition at line 218 of file terminal.h.

+ +
+
+ +

◆ sendv() [1/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Value = valueT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!meta::is_void_v<Value>, void> ttg::In< keyT, valueT >::sendv (const Value & value)
+
+inline
+
+ +

Definition at line 224 of file terminal.h.

+ +
+
+ +

◆ sendv() [2/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Value = valueT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!meta::is_void_v<Value> && std::is_same_v<Value, std::remove_reference_t<Value> >, void> ttg::In< keyT, valueT >::sendv (Value && value)
+
+inline
+
+ +

Definition at line 230 of file terminal.h.

+ +
+
+ +

◆ set_callback()

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::In< keyT, valueT >::set_callback (const send_callback_typesend_callback,
const move_callback_typemove_callback,
const broadcast_callback_typebcast_callback = broadcast_callback_type{},
const setsize_callback_typesetsize_callback = setsize_callback_type{},
const finalize_callback_typefinalize_callback = finalize_callback_type{},
const prepare_send_callback_typeprepare_send_callback = prepare_send_callback_type{} 
)
+
+inline
+
+

Define the callbacks used by the backend task system to implement data movement when a data is set in this Input Terminal

Parameters
+ + + + + + + +
[in]send_callbackwhen an object must be copied inside this terminal
[in]move_callbackwhen a rvalue reference is std::move onto this terminal
[in]bcast_callbackwhen this terminal receives a list of task identifiers to broadcast a data to
[in]finalize_callbackif the terminal is a reduce terminal, denotes that no other local thread will continue adding data onto this terminal
[in]setsize_callbackif the terminal is a reduce terminal, announces how many items will be set unto this terminal for reduction
[in]prepare_send_callbackfor resumable/device tasks this is called before actual send
+
+
+ +

Definition at line 192 of file terminal.h.

+ +
+
+

Member Data Documentation

+ +

◆ container

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
ttg::detail::ContainerWrapper<keyT, valueT> ttg::In< keyT, valueT >::container
+
+ +

Definition at line 160 of file terminal.h.

+ +
+
+ +

◆ is_an_input_terminal

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + + +
+ + + + +
constexpr bool ttg::In< keyT, valueT >::is_an_input_terminal = true
+
+staticconstexpr
+
+ +

Definition at line 159 of file terminal.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_in.png b/dox-master/classttg_1_1_in.png new file mode 100644 index 0000000000000000000000000000000000000000..950f3189e1d53568c3852cdbf196051b4db687e7 GIT binary patch literal 998 zcmeAS@N?(olHy`uVBq!ia0vp^OM$q9gBeI}JboKUGDrmYgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~mwLK5hEy=Vo%?XoVg&)V+x@Hd{8x?_ z2@oi`I`_$zvTZMXk1*bnG^poPY`N_`Vae>r(o{?+X8v z?NE7Je09@vCC}PVKUU9b*D1btPvrHH^_tF)=e~SbVOqQ7-^;~Y&Mp+#q)yeMOm*muSXUCkIw)$xIjWv6pF&oF{i+rLHdr+0XE#+f9p~?6z|A2soa&>K1D_PPSB*B8M^H& zJ)>^b*dDR>%*xz#eCD>ps+r9ui;O=^NUdL?^7VxA-0OcX8l}HJJL%BIrE`}2|CrS? z^U<-@N?P~ybU!yd`WBVJ*?phyiBXlA_|sjP7Yldg?Ba=Z+h$u?GA&MR&EaRWyYsSl zo=Ux5w6(%eYyB2rXn8#~eitFObB^-)$Yn>j>s(&8QroWk=*7~j$+g>c($8Psxh8mn zUg`cvUmxn&e%CE8+UZlY?a}k^skZMY)=GA7oYT?wwCLE)P7+=T4{Y;&_5J*WBVmUf-lmAfC-p8q`Us?ABG+zFOf9WGvy z3cV0AE9BEv=hE_b?~5W?pPt+`?QWO(!|6pkc~-6Iu8n;8U3dB}v* zHS^R_?XTC?{k(YWWssrHxgRsjZ>DW|*newYs(LxY?HaEl`|0-oiWprte_`tS7JQWP mpFPyq2K)B4CradGi-&$>8bg=d#Wzp$Pz8Fz;Oe literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1_in_terminal_base-members.html b/dox-master/classttg_1_1_in_terminal_base-members.html new file mode 100644 index 000000000..3d2f8b59f --- /dev/null +++ b/dox-master/classttg_1_1_in_terminal_base-members.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::InTerminalBase< keyT > Member List
+
+
+ +

This is the complete list of members for ttg::InTerminalBase< keyT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
connect(TerminalBase *in)=0ttg::TerminalBasepure virtual
connect_base(TerminalBase *successor)ttg::TerminalBaseinlineprotected
connect_pull(TerminalBase *predecessor)ttg::TerminalBaseinlineprotected
connect_pull_nopred(TerminalBase *p)ttg::TerminalBaseinline
finalize(const Key &key)ttg::InTerminalBase< keyT >inline
finalize()ttg::InTerminalBase< keyT >inline
finalize_callbackttg::InTerminalBase< keyT >protected
finalize_callback_type typedefttg::InTerminalBase< keyT >
get_connections() constttg::TerminalBaseinline
get_index() constttg::TerminalBaseinline
get_key_type_str() constttg::TerminalBaseinline
get_name() constttg::TerminalBaseinline
get_predecessors() constttg::TerminalBaseinline
get_tt() constttg::TerminalBaseinline
get_type() constttg::TerminalBaseinline
get_value_type_str() constttg::TerminalBaseinline
InTerminalBase(TerminalBase::Type t)ttg::InTerminalBase< keyT >inlineprotected
is_a_terminalttg::TerminalBasestatic
is_an_input_terminalttg::InTerminalBase< keyT >static
is_connected() constttg::TerminalBaseinline
is_pull_terminalttg::TerminalBase
key_type typedefttg::InTerminalBase< keyT >
set(TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)ttg::TerminalBaseinlineprotected
set_callback(const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{})ttg::InTerminalBase< keyT >inlineprotected
set_size(const Key &key, std::size_t size)ttg::InTerminalBase< keyT >inline
set_size(std::size_t size)ttg::InTerminalBase< keyT >inline
setsize_callbackttg::InTerminalBase< keyT >protected
setsize_callback_type typedefttg::InTerminalBase< keyT >
TerminalBase(Type type)ttg::TerminalBaseinlineprotected
Type enum namettg::TerminalBase
~TerminalBase()=defaultttg::TerminalBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_in_terminal_base.html b/dox-master/classttg_1_1_in_terminal_base.html new file mode 100644 index 000000000..fb598a510 --- /dev/null +++ b/dox-master/classttg_1_1_in_terminal_base.html @@ -0,0 +1,611 @@ + + + + + + + + + + + ttg: ttg::InTerminalBase< keyT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+ +
+
+Inheritance diagram for ttg::InTerminalBase< keyT >:
+
+
+ + +ttg::TerminalBase + +
+

Documentation

+

template<typename keyT = void>
+class ttg::InTerminalBase< keyT >

+ +

Base type for input terminals receiving messages annotated by task IDs of type keyT

+
Template Parameters
+ + +
<keyT>a task ID type (can be void)
+
+
+ +

Definition at line 82 of file terminal.h.

+
+ + + + + + + + + + + +

+Public Types

typedef keyT key_type
 
using setsize_callback_type = meta::detail::setsize_callback_t< keyT >
 
using finalize_callback_type = meta::detail::finalize_callback_t< keyT >
 
- Public Types inherited from ttg::TerminalBase
enum class  Type { Write +, Read +, Consume + }
 describes the terminal type More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename Key = keyT>
std::enable_if_t<!meta::is_void_v< Key >, void > set_size (const Key &key, std::size_t size)
 
template<typename Key = keyT>
std::enable_if_t< meta::is_void_v< Key >, void > set_size (std::size_t size)
 
template<typename Key = keyT>
std::enable_if_t<!meta::is_void_v< Key >, void > finalize (const Key &key)
 
template<typename Key = keyT>
std::enable_if_t< meta::is_void_v< Key >, void > finalize ()
 
- Public Member Functions inherited from ttg::TerminalBase
TTBaseget_tt () const
 Return ptr to containing tt. More...
 
size_t get_index () const
 Returns index of terminal. More...
 
const std::string & get_name () const
 Returns name of terminal. More...
 
const std::string & get_key_type_str () const
 Returns string representation of key type. More...
 
const std::string & get_value_type_str () const
 Returns string representation of value type. More...
 
Type get_type () const
 Returns the terminal type. More...
 
const std::vector< TerminalBase * > & get_connections () const
 Get connections to successors. More...
 
const std::vector< TerminalBase * > & get_predecessors () const
 
void connect_pull_nopred (TerminalBase *p)
 
bool is_connected () const
 Returns true if this terminal (input or output) is connected. More...
 
virtual void connect (TerminalBase *in)=0
 
virtual ~TerminalBase ()=default
 
+ + + + + + +

+Static Public Attributes

static constexpr bool is_an_input_terminal = true
 
- Static Public Attributes inherited from ttg::TerminalBase
static constexpr bool is_a_terminal = true
 
+ + + + + + + + + + + + + + +

+Protected Member Functions

 InTerminalBase (TerminalBase::Type t)
 
void set_callback (const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{})
 
- Protected Member Functions inherited from ttg::TerminalBase
 TerminalBase (Type type)
 
void set (TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)
 
void connect_base (TerminalBase *successor)
 
void connect_pull (TerminalBase *predecessor)
 
+ + + + + +

+Protected Attributes

setsize_callback_type setsize_callback
 
finalize_callback_type finalize_callback
 
+ + + + +

+Additional Inherited Members

- Public Attributes inherited from ttg::TerminalBase
bool is_pull_terminal = false
 
+

Member Typedef Documentation

+ +

◆ finalize_callback_type

+ +
+
+
+template<typename keyT = void>
+ + + + +
using ttg::InTerminalBase< keyT >::finalize_callback_type = meta::detail::finalize_callback_t<keyT>
+
+ +

Definition at line 88 of file terminal.h.

+ +
+
+ +

◆ key_type

+ +
+
+
+template<typename keyT = void>
+ + + + +
typedef keyT ttg::InTerminalBase< keyT >::key_type
+
+ +

Definition at line 84 of file terminal.h.

+ +
+
+ +

◆ setsize_callback_type

+ +
+
+
+template<typename keyT = void>
+ + + + +
using ttg::InTerminalBase< keyT >::setsize_callback_type = meta::detail::setsize_callback_t<keyT>
+
+ +

Definition at line 87 of file terminal.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ InTerminalBase()

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + + + + + +
ttg::InTerminalBase< keyT >::InTerminalBase (TerminalBase::Type t)
+
+inlineprotected
+
+ +

Definition at line 92 of file terminal.h.

+ +
+
+

Member Function Documentation

+ +

◆ finalize() [1/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + +
std::enable_if_t<meta::is_void_v<Key>, void> ttg::InTerminalBase< keyT >::finalize ()
+
+inline
+
+ +

Definition at line 131 of file terminal.h.

+ +
+
+ +

◆ finalize() [2/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!meta::is_void_v<Key>, void> ttg::InTerminalBase< keyT >::finalize (const Key & key)
+
+inline
+
+ +

Definition at line 124 of file terminal.h.

+ +
+
+ +

◆ set_callback()

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::InTerminalBase< keyT >::set_callback (const setsize_callback_typesetsize_callback = setsize_callback_type{},
const finalize_callback_typefinalize_callback = finalize_callback_type{} 
)
+
+inlineprotected
+
+ +

Definition at line 97 of file terminal.h.

+ +
+
+ +

◆ set_size() [1/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!meta::is_void_v<Key>, void> ttg::InTerminalBase< keyT >::set_size (const Key & key,
std::size_t size 
)
+
+inline
+
+ +

Definition at line 112 of file terminal.h.

+ +
+
+ +

◆ set_size() [2/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<meta::is_void_v<Key>, void> ttg::InTerminalBase< keyT >::set_size (std::size_t size)
+
+inline
+
+ +

Definition at line 118 of file terminal.h.

+ +
+
+

Member Data Documentation

+ +

◆ finalize_callback

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + +
finalize_callback_type ttg::InTerminalBase< keyT >::finalize_callback
+
+protected
+
+ +

Definition at line 95 of file terminal.h.

+ +
+
+ +

◆ is_an_input_terminal

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + +
constexpr bool ttg::InTerminalBase< keyT >::is_an_input_terminal = true
+
+staticconstexpr
+
+ +

Definition at line 89 of file terminal.h.

+ +
+
+ +

◆ setsize_callback

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + +
setsize_callback_type ttg::InTerminalBase< keyT >::setsize_callback
+
+protected
+
+ +

Definition at line 94 of file terminal.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_in_terminal_base.png b/dox-master/classttg_1_1_in_terminal_base.png new file mode 100644 index 0000000000000000000000000000000000000000..3a88f8b802309c620cfa552d95dcdaa3f391e27a GIT binary patch literal 705 zcmeAS@N?(olHy`uVBq!ia0vp^D}XqFgBeKf3OV-)NJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~1$eqRhEy=VoqMxyv4MbVzkbla|C7}p zu;yQIxSo>K8y&NBW9*fcym67!QY9UACVlxkYr&+Hm7H3h({^#Z+O|64WBsHnt0Lpx z_V;^V@~`5#b$H^EeT)7UU&>x!Se>7`?$3Tj|JUcX?Y@_5pIH0*q~l`8ZMvTJFT&hx zvu4g~cxZ06>sdl(&>EL)Ppj*(7t|JWZuvBSZts)oZ$av{LMA`#nRso3r`b(=aI9r! zipgnT-l~XSi#ew*nK$pti@BHT_qhKRc)$44%&L=9!)F!di>`hX{_oNi`>IN>Ni*{r zbE3mOa7UsqVNxM82=aRphn z5ORb;A`P4q>YOf91qWyK}M*i__4m>~<4LET4RLQ>>?g;g1)#-RqdnDrGya?kRKB{y#HR<^JaBRa*R;87$dy zlXh`Q{gH2Md#C9=|Hh&A4M#g-r@LQSaPM5k%%)w>{$85C`PP-qez%VHygR=$`j@(G zl*kgsx8GK*KV_$|cb{i4|GGVwzEu6bvAFJO&a1;8=X|JnCBN5*k*D<8PA1(dkq48l zN@LQ$+*;0mAm(|W^-}g9cD?}&-XOeoedY5xzw7=oGJ7b$U!J)6Eik + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::Out< keyT, valueT > Member List
+
+
+ +

This is the complete list of members for ttg::Out< keyT, valueT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
broadcast(const rangeT &keylist, const Value &value)ttg::Out< keyT, valueT >inline
broadcast(const rangeT &keylist)ttg::Out< keyT, valueT >inline
connect(TerminalBase *in) overridettg::Out< keyT, valueT >inlinevirtual
connect_base(TerminalBase *successor)ttg::TerminalBaseinlineprotected
connect_pull(TerminalBase *predecessor)ttg::TerminalBaseinlineprotected
connect_pull_nopred(TerminalBase *p)ttg::TerminalBaseinline
edge_type typedefttg::Out< keyT, valueT >
finalize(const Key &key)ttg::OutTerminalBase< void >inline
finalize()ttg::OutTerminalBase< void >inline
get_connections() constttg::TerminalBaseinline
get_index() constttg::TerminalBaseinline
get_key_type_str() constttg::TerminalBaseinline
get_name() constttg::TerminalBaseinline
get_predecessors() constttg::TerminalBaseinline
get_tt() constttg::TerminalBaseinline
get_type() constttg::TerminalBaseinline
get_value_type_str() constttg::TerminalBaseinline
is_a_terminalttg::TerminalBasestatic
is_an_output_terminalttg::Out< keyT, valueT >static
is_connected() constttg::TerminalBaseinline
is_pull_terminalttg::TerminalBase
key_type typedefttg::Out< keyT, valueT >
nsuccessors() constttg::OutTerminalBase< void >inline
Out()=defaultttg::Out< keyT, valueT >
OutTerminalBase()ttg::OutTerminalBase< void >inline
prepare_send(const rangeT &keylist, const Value &value)ttg::Out< keyT, valueT >inline
prepare_send(const Value &value)ttg::Out< keyT, valueT >inline
send(const Key &key, const Value &value)ttg::Out< keyT, valueT >inline
send()ttg::Out< keyT, valueT >inline
send(const Key &key, Value &&value)ttg::Out< keyT, valueT >inline
sendk(const Key &key)ttg::Out< keyT, valueT >inline
sendv(const Value &value)ttg::Out< keyT, valueT >inline
set(TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)ttg::TerminalBaseinlineprotected
set_size(const Key &key, std::size_t size)ttg::OutTerminalBase< void >inline
set_size(std::size_t size)ttg::OutTerminalBase< void >inline
successors() constttg::OutTerminalBase< void >inline
TerminalBase(Type type)ttg::TerminalBaseinlineprotected
Type enum namettg::TerminalBase
value_type typedefttg::Out< keyT, valueT >
~TerminalBase()=defaultttg::TerminalBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_out.html b/dox-master/classttg_1_1_out.html new file mode 100644 index 000000000..587c64475 --- /dev/null +++ b/dox-master/classttg_1_1_out.html @@ -0,0 +1,764 @@ + + + + + + + + + + + ttg: ttg::Out< keyT, valueT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::Out< keyT, valueT > Class Template Reference
+
+
+
+Inheritance diagram for ttg::Out< keyT, valueT >:
+
+
+ + +ttg::OutTerminalBase< void > +ttg::TerminalBase + +
+

Documentation

+

template<typename keyT = void, typename valueT = void>
+class ttg::Out< keyT, valueT >

+ +

An output terminal for sending messages annotated by task IDs of type KeyT and values of type valueT

Template Parameters
+ + + +
<keyT>a task ID type (can be void)
<valueT>a data type (can be void)
+
+
+
Examples
distributed.cc, iterative.cc, reducing.cc, and simple.cc.
+
+ +

Definition at line 421 of file terminal.h.

+
+ + + + + + + + + + + + + + +

+Public Types

using value_type = valueT
 
using key_type = typename OutTerminalBase< keyT >::key_type
 
using edge_type = Edge< keyT, valueT >
 
- Public Types inherited from ttg::OutTerminalBase< void >
using key_type = void
 
- Public Types inherited from ttg::TerminalBase
enum class  Type { Write +, Read +, Consume + }
 describes the terminal type More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Out ()=default
 
void connect (TerminalBase *in) override
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_none_void_v< Key, Value >, void > send (const Key &key, const Value &value)
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t<!meta::is_void_v< Key > &&meta::is_void_v< Value >, void > sendk (const Key &key)
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_void_v< Key > &&!meta::is_void_v< Value >, void > sendv (const Value &value)
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_all_void_v< Key, Value >, void > send ()
 
template<typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_none_void_v< Key, Value > &&std::is_same_v< Value, std::remove_reference_t< Value > >, void > send (const Key &key, Value &&value)
 
template<typename rangeT , typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_none_void_v< Key, Value >, void > broadcast (const rangeT &keylist, const Value &value)
 
template<typename rangeT , typename Key = keyT>
std::enable_if_t< meta::is_none_void_v< Key > &&meta::is_void_v< valueT >, void > broadcast (const rangeT &keylist)
 
template<typename rangeT , typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_none_void_v< Key > &&!meta::is_void_v< valueT >, void > prepare_send (const rangeT &keylist, const Value &value)
 
template<typename rangeT , typename Key = keyT, typename Value = valueT>
std::enable_if_t< meta::is_none_void_v< Key > &&!meta::is_void_v< valueT >, void > prepare_send (const Value &value)
 
- Public Member Functions inherited from ttg::OutTerminalBase< void >
 OutTerminalBase ()
 
auto nsuccessors () const
 
const auto & successors () const
 
std::enable_if_t<!meta::is_void_v< Key >, void > set_size (const Key &key, std::size_t size)
 
std::enable_if_t< meta::is_void_v< Key >, void > set_size (std::size_t size)
 
std::enable_if_t<!meta::is_void_v< Key >, void > finalize (const Key &key)
 
std::enable_if_t< meta::is_void_v< Key >, void > finalize ()
 
- Public Member Functions inherited from ttg::TerminalBase
TTBaseget_tt () const
 Return ptr to containing tt. More...
 
size_t get_index () const
 Returns index of terminal. More...
 
const std::string & get_name () const
 Returns name of terminal. More...
 
const std::string & get_key_type_str () const
 Returns string representation of key type. More...
 
const std::string & get_value_type_str () const
 Returns string representation of value type. More...
 
Type get_type () const
 Returns the terminal type. More...
 
const std::vector< TerminalBase * > & get_connections () const
 Get connections to successors. More...
 
const std::vector< TerminalBase * > & get_predecessors () const
 
void connect_pull_nopred (TerminalBase *p)
 
bool is_connected () const
 Returns true if this terminal (input or output) is connected. More...
 
virtual ~TerminalBase ()=default
 
+ + + + + + + + + +

+Static Public Attributes

static constexpr bool is_an_output_terminal = true
 
- Static Public Attributes inherited from ttg::OutTerminalBase< void >
static constexpr bool is_an_output_terminal
 
- Static Public Attributes inherited from ttg::TerminalBase
static constexpr bool is_a_terminal = true
 
+ + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from ttg::TerminalBase
bool is_pull_terminal = false
 
- Protected Member Functions inherited from ttg::TerminalBase
 TerminalBase (Type type)
 
void set (TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)
 
void connect_base (TerminalBase *successor)
 
void connect_pull (TerminalBase *predecessor)
 
+

Member Typedef Documentation

+ +

◆ edge_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::Out< keyT, valueT >::edge_type = Edge<keyT, valueT>
+
+ +

Definition at line 427 of file terminal.h.

+ +
+
+ +

◆ key_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::Out< keyT, valueT >::key_type = typename OutTerminalBase<keyT>::key_type
+
+ +

Definition at line 424 of file terminal.h.

+ +
+
+ +

◆ value_type

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + +
using ttg::Out< keyT, valueT >::value_type = valueT
+
+ +

Definition at line 423 of file terminal.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ Out()

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + + +
+ + + + + + + +
ttg::Out< keyT, valueT >::Out ()
+
+default
+
+ +
+
+

Member Function Documentation

+ +

◆ broadcast() [1/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key> && meta::is_void_v<valueT>, void> ttg::Out< keyT, valueT >::broadcast (const rangeT & keylist)
+
+inline
+
+ +

Definition at line 558 of file terminal.h.

+ +
+
+ +

◆ broadcast() [2/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key, Value>, void> ttg::Out< keyT, valueT >::broadcast (const rangeT & keylist,
const Value & value 
)
+
+inline
+
+ +

Definition at line 545 of file terminal.h.

+ +
+
+ +

◆ connect()

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + + +
+ + + + + + + + +
void ttg::Out< keyT, valueT >::connect (TerminalBasein)
+
+inlineoverridevirtual
+
+
Note
will check data types unless macro NDEBUG is defined
+ +

Implements ttg::TerminalBase.

+ +

Definition at line 441 of file terminal.h.

+ +
+
+ +

◆ prepare_send() [1/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key> && !meta::is_void_v<valueT>, void> ttg::Out< keyT, valueT >::prepare_send (const rangeT & keylist,
const Value & value 
)
+
+inline
+
+ +

Definition at line 571 of file terminal.h.

+ +
+
+ +

◆ prepare_send() [2/2]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename rangeT , typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key> && !meta::is_void_v<valueT>, void> ttg::Out< keyT, valueT >::prepare_send (const Value & value)
+
+inline
+
+ +

Definition at line 584 of file terminal.h.

+ +
+
+ +

◆ send() [1/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + +
std::enable_if_t<meta::is_all_void_v<Key, Value>, void> ttg::Out< keyT, valueT >::send ()
+
+inline
+
+ +

Definition at line 503 of file terminal.h.

+ +
+
+ +

◆ send() [2/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key,Value>,void> ttg::Out< keyT, valueT >::send (const Key & key,
const Value & value 
)
+
+inline
+
+ +

Definition at line 467 of file terminal.h.

+ +
+
+ +

◆ send() [3/3]

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<meta::is_none_void_v<Key, Value> && std::is_same_v<Value, std::remove_reference_t<Value> >, void> ttg::Out< keyT, valueT >::send (const Key & key,
Value && value 
)
+
+inline
+
+ +

Definition at line 521 of file terminal.h.

+ +
+
+ +

◆ sendk()

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!meta::is_void_v<Key> && meta::is_void_v<Value>, void> ttg::Out< keyT, valueT >::sendk (const Key & key)
+
+inline
+
+ +

Definition at line 479 of file terminal.h.

+ +
+
+ +

◆ sendv()

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+
+template<typename Key = keyT, typename Value = valueT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<meta::is_void_v<Key> && !meta::is_void_v<Value>, void> ttg::Out< keyT, valueT >::sendv (const Value & value)
+
+inline
+
+ +

Definition at line 491 of file terminal.h.

+ +
+
+

Member Data Documentation

+ +

◆ is_an_output_terminal

+ +
+
+
+template<typename keyT = void, typename valueT = void>
+ + + + + +
+ + + + +
constexpr bool ttg::Out< keyT, valueT >::is_an_output_terminal = true
+
+staticconstexpr
+
+ +

Definition at line 428 of file terminal.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_out.png b/dox-master/classttg_1_1_out.png new file mode 100644 index 0000000000000000000000000000000000000000..111efafb08785d79a31b4e328b7be9bd1da561ba GIT binary patch literal 1038 zcmeAS@N?(olHy`uVBq!ia0vp^>w&m~gBeIJd+L1>NJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~&-HY145?szJNNCm)d~V^$J>{DuRnQQ zOF`jQ*6!!JC(ZnB>B;w0Y-v>RxMZ+ny~@pp`zECvXT6`fbJdAo6PMWT{!sj< zu-vn%xxc15Y|<6=-v1syYVS`uJ@ZlD>+>_Vrk}p_>(BO@qdz`{{#wT9x>;rKv!c52 z$5xRS({dwJ%4J_GhN|>VTQdF5$GcC>f163U-v7c7tyf(6w=w^U#i!oZkn7G-6S8N2 z$o{EoboH0qwZj+HrY&K9ckTVusvoO=#cuz-ZMN0(W|OPocD&aDGhbfsc>A;9^@XWR z@{4YMzx2xUQu)q#_xJ_>| z;lY~py9-;~KY#tqctGeo>xRR%jBg6!8LaP!AK=5oHLr8xNL1jMWWob778F1eYnMNr z6cTs&kLG{9MyoJWZ>{yu=N!MQ`m(`dk@1Hs<(wiHzwK9ij}@8F+eC$-dK)%?!geo)kB7GziU zHoE+D@9ZDRx?GYeB>dJz2H9I};&<2o(rZ-ub?du9)t?rI}H*p@#h%kfiVNTj`y@EA--i$UQfIwshyg=zY7bOLl+n zwg0$w`~9lJ5gwL*9SV=`4xKwKw1@SgP2BcF`={PtRXuCl>)UJFW4}lLT-(wW{q@!M zTMo7Nt0rZwIu8uJH(zT!@_rWdJp328s=O+Du3E)80r3~o&ks)(7EJIreb>GIg7N)T zb&U6pdwsXruYbRf!FFFJhsgESRSZ8=p(*Y0&!id4GNsz;1LWKpUvBM~2F$z+p00i_ I>zopr0CK+*GXMYp literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1_out_terminal_base-members.html b/dox-master/classttg_1_1_out_terminal_base-members.html new file mode 100644 index 000000000..52095a24f --- /dev/null +++ b/dox-master/classttg_1_1_out_terminal_base-members.html @@ -0,0 +1,165 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::OutTerminalBase< keyT > Member List
+
+
+ +

This is the complete list of members for ttg::OutTerminalBase< keyT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
connect(TerminalBase *in)=0ttg::TerminalBasepure virtual
connect_base(TerminalBase *successor)ttg::TerminalBaseinlineprotected
connect_pull(TerminalBase *predecessor)ttg::TerminalBaseinlineprotected
connect_pull_nopred(TerminalBase *p)ttg::TerminalBaseinline
finalize(const Key &key)ttg::OutTerminalBase< keyT >inline
finalize()ttg::OutTerminalBase< keyT >inline
get_connections() constttg::TerminalBaseinline
get_index() constttg::TerminalBaseinline
get_key_type_str() constttg::TerminalBaseinline
get_name() constttg::TerminalBaseinline
get_predecessors() constttg::TerminalBaseinline
get_tt() constttg::TerminalBaseinline
get_type() constttg::TerminalBaseinline
get_value_type_str() constttg::TerminalBaseinline
is_a_terminalttg::TerminalBasestatic
is_an_output_terminalttg::OutTerminalBase< keyT >static
is_connected() constttg::TerminalBaseinline
is_pull_terminalttg::TerminalBase
key_type typedefttg::OutTerminalBase< keyT >
nsuccessors() constttg::OutTerminalBase< keyT >inline
OutTerminalBase()ttg::OutTerminalBase< keyT >inline
set(TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)ttg::TerminalBaseinlineprotected
set_size(const Key &key, std::size_t size)ttg::OutTerminalBase< keyT >inline
set_size(std::size_t size)ttg::OutTerminalBase< keyT >inline
successors() constttg::OutTerminalBase< keyT >inline
TerminalBase(Type type)ttg::TerminalBaseinlineprotected
Type enum namettg::TerminalBase
~TerminalBase()=defaultttg::TerminalBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_out_terminal_base.html b/dox-master/classttg_1_1_out_terminal_base.html new file mode 100644 index 000000000..0f9e83e6a --- /dev/null +++ b/dox-master/classttg_1_1_out_terminal_base.html @@ -0,0 +1,526 @@ + + + + + + + + + + + ttg: ttg::OutTerminalBase< keyT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::OutTerminalBase< keyT > Class Template Reference
+
+
+
+Inheritance diagram for ttg::OutTerminalBase< keyT >:
+
+
+ + +ttg::TerminalBase +ttg::Out< keyT, valueT > + +
+

Documentation

+

template<typename keyT = void>
+class ttg::OutTerminalBase< keyT >

+ +

A base type for output terminals that send messages annotated by task IDs of type KeyT

Template Parameters
+ + +
<keyT>a task ID type (can be void)
+
+
+ +

Definition at line 365 of file terminal.h.

+
+ + + + + + + +

+Public Types

using key_type = keyT
 
- Public Types inherited from ttg::TerminalBase
enum class  Type { Write +, Read +, Consume + }
 describes the terminal type More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 OutTerminalBase ()
 
auto nsuccessors () const
 
const auto & successors () const
 
template<typename Key = keyT>
std::enable_if_t<!meta::is_void_v< Key >, void > set_size (const Key &key, std::size_t size)
 
template<typename Key = keyT>
std::enable_if_t< meta::is_void_v< Key >, void > set_size (std::size_t size)
 
template<typename Key = keyT>
std::enable_if_t<!meta::is_void_v< Key >, void > finalize (const Key &key)
 
template<typename Key = keyT>
std::enable_if_t< meta::is_void_v< Key >, void > finalize ()
 
- Public Member Functions inherited from ttg::TerminalBase
TTBaseget_tt () const
 Return ptr to containing tt. More...
 
size_t get_index () const
 Returns index of terminal. More...
 
const std::string & get_name () const
 Returns name of terminal. More...
 
const std::string & get_key_type_str () const
 Returns string representation of key type. More...
 
const std::string & get_value_type_str () const
 Returns string representation of value type. More...
 
Type get_type () const
 Returns the terminal type. More...
 
const std::vector< TerminalBase * > & get_connections () const
 Get connections to successors. More...
 
const std::vector< TerminalBase * > & get_predecessors () const
 
void connect_pull_nopred (TerminalBase *p)
 
bool is_connected () const
 Returns true if this terminal (input or output) is connected. More...
 
virtual void connect (TerminalBase *in)=0
 
virtual ~TerminalBase ()=default
 
+ + + + + + +

+Static Public Attributes

static constexpr bool is_an_output_terminal = true
 
- Static Public Attributes inherited from ttg::TerminalBase
static constexpr bool is_a_terminal = true
 
+ + + + + + + + + + + + + +

+Additional Inherited Members

- Public Attributes inherited from ttg::TerminalBase
bool is_pull_terminal = false
 
- Protected Member Functions inherited from ttg::TerminalBase
 TerminalBase (Type type)
 
void set (TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)
 
void connect_base (TerminalBase *successor)
 
void connect_pull (TerminalBase *predecessor)
 
+

Member Typedef Documentation

+ +

◆ key_type

+ +
+
+
+template<typename keyT = void>
+ + + + +
using ttg::OutTerminalBase< keyT >::key_type = keyT
+
+ +

Definition at line 367 of file terminal.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ OutTerminalBase()

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + + + + +
ttg::OutTerminalBase< keyT >::OutTerminalBase ()
+
+inline
+
+ +

Definition at line 379 of file terminal.h.

+ +
+
+

Member Function Documentation

+ +

◆ finalize() [1/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + +
std::enable_if_t<meta::is_void_v<Key>, void> ttg::OutTerminalBase< keyT >::finalize ()
+
+inline
+
+ +

Definition at line 409 of file terminal.h.

+ +
+
+ +

◆ finalize() [2/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!meta::is_void_v<Key>, void> ttg::OutTerminalBase< keyT >::finalize (const Key & key)
+
+inline
+
+ +

Definition at line 401 of file terminal.h.

+ +
+
+ +

◆ nsuccessors()

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + + + + +
auto ttg::OutTerminalBase< keyT >::nsuccessors () const
+
+inline
+
+ +

Definition at line 381 of file terminal.h.

+ +
+
+ +

◆ set_size() [1/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!meta::is_void_v<Key>, void> ttg::OutTerminalBase< keyT >::set_size (const Key & key,
std::size_t size 
)
+
+inline
+
+ +

Definition at line 385 of file terminal.h.

+ +
+
+ +

◆ set_size() [2/2]

+ +
+
+
+template<typename keyT = void>
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<meta::is_void_v<Key>, void> ttg::OutTerminalBase< keyT >::set_size (std::size_t size)
+
+inline
+
+ +

Definition at line 393 of file terminal.h.

+ +
+
+ +

◆ successors()

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + + + + +
const auto& ttg::OutTerminalBase< keyT >::successors () const
+
+inline
+
+ +

Definition at line 382 of file terminal.h.

+ +
+
+

Member Data Documentation

+ +

◆ is_an_output_terminal

+ +
+
+
+template<typename keyT = void>
+ + + + + +
+ + + + +
constexpr bool ttg::OutTerminalBase< keyT >::is_an_output_terminal = true
+
+staticconstexpr
+
+ +

Definition at line 369 of file terminal.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_out_terminal_base.png b/dox-master/classttg_1_1_out_terminal_base.png new file mode 100644 index 0000000000000000000000000000000000000000..5aeb05ab5639ee015fd608956653a532eb37e99c GIT binary patch literal 1059 zcmeAS@N?(olHy`uVBq!ia0vp^n}E23gBeJcY;~Lnq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0H+i}^hEy=Vo%{OSY6St;>9d!-|9|2* zw}!%&EbE_qCr#FDdHO6#;)A|oi-8!6rxa)SG?na_$VqEJ7vlJPYS2*?=Mn)X?b4AdD1@~m>LaV92Rp>^WL-YW?+sbB{I8A6sn6 zzv7KKTZ8R7o`ha)=7`6q7_RLwYB0saE&4WdS*8@XTEoPGREF#r$pf=uEB{%YUjKaa z3z_pe2Rehl8l~^IE|}sr|K8?%TI)q4bN|Xekj*^D?R+bC)>co;wHo`so;tcl@m}`h zPt)(c?zpk3#A;UYQxk>kyfyDCTbvjLA?0en zrE}JPTyv+t$Qu}L$CiV_ZSe&C9RaVj=ZBTYTh972C3)J^&W+K>uD^@aNKN0jZSoiK zK)u63=`PlWr;6)ty|tPkzBuO0z9n+IbA0KO2sq_0} zzw@`%k7g{YO+NDODjV|@lY4dl55N8}*Li8o6Qcw7KZGsp`?U4Cc7x)3QK?SG5B9JS zJI$RkYgwiWRRWk(kwrL8u_b}gagy7isj4TXK#^#5>T;CI)6`k^sq?csmMqd?K4mzm zFUY*+#XpD2wI{Odwac@AcTZWuzh&y>qV#W`kNS7a*txLFJu70h@YKWirdUlCy{~cn zrWq(`Wwgsa=9W(NivIcIRr!1M6Y5XvrX-iFN{c2zD{?ZT0~mM?JtX^AK&xU^fW!XWBFu{OP$+Kx$1deDt*&q@AC7| z>)=V}{)7buh1sdKsr-%Ku}LNJ@u^8EXV=I$aX5eE*T3TNRqo)!4q%RE@O1TaS?83{ F1OPk(2si)$ literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1_sink_t_t-members.html b/dox-master/classttg_1_1_sink_t_t-members.html new file mode 100644 index 000000000..6f9aa1471 --- /dev/null +++ b/dox-master/classttg_1_1_sink_t_t-members.html @@ -0,0 +1,182 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::SinkTT< keyT, input_valueT > Member List
+
+
+ +

This is the complete list of members for ttg::SinkTT< keyT, input_valueT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fence() override finalttg::SinkTT< keyT, input_valueT >inlinevirtual
get_class_name() constttg::TTBaseinline
get_inputs() constttg::TTBaseinline
get_instance_id() constttg::TTBaseinline
get_name() constttg::TTBaseinline
get_outputs() constttg::TTBaseinline
get_outputs_tls_ptr()ttg::TTBaseinlinestatic
get_world() const override finalttg::SinkTT< keyT, input_valueT >inlinevirtual
in()ttg::SinkTT< keyT, input_valueT >inline
ttg::TTBase::in(size_t i)ttg::TTBaseinline
invoke()ttg::TTBaseinlinevirtual
is_executable() constttg::TTBaseinline
is_lazy_pull()ttg::TTBaseinline
is_ttg() constttg::TTBaseinline
make_executable() override finalttg::SinkTT< keyT, input_valueT >inlinevirtual
ttg::TTBase::operator=(TTBase &&other)ttg::TTBaseinlineprotected
out(size_t i)ttg::TTBaseinline
out()ttg::TTBaseinline
outputs_tls_ptr_accessor()ttg::TTBaseinlineprotectedstatic
register_input_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_output_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)ttg::TTBaseinlineprotected
register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)ttg::TTBaseinlineprotected
release()ttg::TTBaseinlinevirtual
set_input(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_lazy_pull(bool value)ttg::TTBaseinlinestatic
set_lazy_pull_instance(bool value)ttg::TTBaseinline
set_name(const std::string &name)ttg::TTBaseinline
set_output(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_outputs_tls_ptr()ttg::TTBaseinlineprotected
set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)ttg::TTBaseinlineprotected
set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_terminals(const terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_trace_all(bool value)ttg::TTBaseinlinestatic
set_trace_instance(bool value)ttg::TTBaseinline
SinkTT(const std::string &inname="junk")ttg::SinkTT< keyT, input_valueT >inline
SinkTT(const input_edges_type &inedges, const std::string &inname="junk")ttg::SinkTT< keyT, input_valueT >inline
trace(const T &t, const Ts &...ts)ttg::TTBaseinline
tracing() constttg::TTBaseinline
TTBase(TTBase &&other)ttg::TTBaseinlineprotected
TTBase(const std::string &name, size_t numins, size_t numouts)ttg::TTBaseinlineprotected
ttg() constttg::TTBaseinline
ttg_ptr() constttg::TTBaseinline
~SinkTT()ttg::SinkTT< keyT, input_valueT >inlinevirtual
~TTBase()=defaultttg::TTBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_sink_t_t.html b/dox-master/classttg_1_1_sink_t_t.html new file mode 100644 index 000000000..8aaecb9eb --- /dev/null +++ b/dox-master/classttg_1_1_sink_t_t.html @@ -0,0 +1,513 @@ + + + + + + + + + + + ttg: ttg::SinkTT< keyT, input_valueT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::SinkTT< keyT, input_valueT > Class Template Reference
+
+
+
+Inheritance diagram for ttg::SinkTT< keyT, input_valueT >:
+
+
+ + +ttg::TTBase + +
+

Documentation

+

template<typename keyT, typename input_valueT>
+class ttg::SinkTT< keyT, input_valueT >

+ +

A data sink for one input.

+ +

Definition at line 120 of file tt.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 SinkTT (const std::string &inname="junk")
 
 SinkTT (const input_edges_type &inedges, const std::string &inname="junk")
 
virtual ~SinkTT ()
 
void fence () override final
 
void make_executable () override final
 Marks this executable. More...
 
World get_world () const override final
 
template<std::size_t i>
std::tuple_element_t< i, input_terminals_type > * in ()
 Returns pointer to input terminal i to facilitate connection — terminal cannot be copied, moved or assigned. More...
 
- Public Member Functions inherited from ttg::TTBase
virtual ~TTBase ()=default
 
virtual void invoke ()
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
virtual void release ()
 
bool is_executable () const
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from ttg::TTBase
static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals. More...
 
- Protected Member Functions inherited from ttg::TTBase
void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 
+

Constructor & Destructor Documentation

+ +

◆ SinkTT() [1/2]

+ +
+
+
+template<typename keyT , typename input_valueT >
+ + + + + +
+ + + + + + + + +
ttg::SinkTT< keyT, input_valueT >::SinkTT (const std::string & inname = "junk")
+
+inline
+
+ +

Definition at line 150 of file tt.h.

+ +
+
+ +

◆ SinkTT() [2/2]

+ +
+
+
+template<typename keyT , typename input_valueT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ttg::SinkTT< keyT, input_valueT >::SinkTT (const input_edges_type & inedges,
const std::string & inname = "junk" 
)
+
+inline
+
+ +

Definition at line 155 of file tt.h.

+ +
+
+ +

◆ ~SinkTT()

+ +
+
+
+template<typename keyT , typename input_valueT >
+ + + + + +
+ + + + + + + +
virtual ttg::SinkTT< keyT, input_valueT >::~SinkTT ()
+
+inlinevirtual
+
+ +

Definition at line 161 of file tt.h.

+ +
+
+

Member Function Documentation

+ +

◆ fence()

+ +
+
+
+template<typename keyT , typename input_valueT >
+ + + + + +
+ + + + + + + +
void ttg::SinkTT< keyT, input_valueT >::fence ()
+
+inlinefinaloverridevirtual
+
+

Waits for the entire TTG that contains this object to be completed (collective); if not contained by a TTG this is a no-op

+ +

Implements ttg::TTBase.

+ +

Definition at line 163 of file tt.h.

+ +
+
+ +

◆ get_world()

+ +
+
+
+template<typename keyT , typename input_valueT >
+ + + + + +
+ + + + + + + +
World ttg::SinkTT< keyT, input_valueT >::get_world () const
+
+inlinefinaloverridevirtual
+
+
Returns
World in which this lives
+ +

Implements ttg::TTBase.

+ +

Definition at line 167 of file tt.h.

+ +
+
+ +

◆ in()

+ +
+
+
+template<typename keyT , typename input_valueT >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
std::tuple_element_t<i, input_terminals_type>* ttg::SinkTT< keyT, input_valueT >::in ()
+
+inline
+
+ +

Returns pointer to input terminal i to facilitate connection — terminal cannot be copied, moved or assigned.

+ +

Definition at line 171 of file tt.h.

+ +
+
+ +

◆ make_executable()

+ +
+
+
+template<typename keyT , typename input_valueT >
+ + + + + +
+ + + + + + + +
void ttg::SinkTT< keyT, input_valueT >::make_executable ()
+
+inlinefinaloverridevirtual
+
+ +

Marks this executable.

+ +

Implements ttg::TTBase.

+ +

Definition at line 165 of file tt.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_sink_t_t.png b/dox-master/classttg_1_1_sink_t_t.png new file mode 100644 index 0000000000000000000000000000000000000000..9c5a65a46c90e1bfd819f7f742c2c2a0ac907170 GIT binary patch literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^CxJMCgBeJ+6fWEYq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0{5@S9Ln;{G&V4&+wSoZa?BvjU|0kLU z3JUb7iGM#A6nu1IY!kC>{J+#$%Q86(Jufj733+Z(RiCI5{mM<~S>T!$flCqprY@OX zqI`1G4&RrGo`0`)rx$5Rq-GF?%cnYihqw%=b*zT`<)PfqKq zpR96vUFxleo|o)jeD}OGEp76ICF@K4=f)@)#;C8?cY70iwyVF>q&|k{`#LRwNnd8a z^0{Oft@2X%YoF)-oQX^POPtF*FV#<&>@i8#vQy>erO7EkC$cc!S;u}rK&tJ@M+w$c ziAm}w6f_=BsCdt`K~0@;gDUZO$2tKg2`82Y#wRKa+dz2BM4RPZneRA${`wQnp(yPj z#k)S_cArgo>E6d}zUQPaH8M8)S`pl*^YMOla zDpmJI`0U*JcENWQ_h8A%+$vMW`8~gF%bK+4Ti7JiK=TlV-r`9WD-WHi`86xfy7}Xj zY|i)ui|*W_lv5h@ouf={G_0;xYX65A7^e| + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::TTBase Member List
+
+
+ +

This is the complete list of members for ttg::TTBase, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fence()=0ttg::TTBasepure virtual
get_class_name() constttg::TTBaseinline
get_inputs() constttg::TTBaseinline
get_instance_id() constttg::TTBaseinline
get_name() constttg::TTBaseinline
get_outputs() constttg::TTBaseinline
get_outputs_tls_ptr()ttg::TTBaseinlinestatic
get_world() const =0ttg::TTBasepure virtual
in(size_t i)ttg::TTBaseinline
in()ttg::TTBaseinline
invoke()ttg::TTBaseinlinevirtual
is_executable() constttg::TTBaseinline
is_lazy_pull()ttg::TTBaseinline
is_ttg() constttg::TTBaseinline
make_executable()=0ttg::TTBaseinlinepure virtual
operator=(TTBase &&other)ttg::TTBaseinlineprotected
out(size_t i)ttg::TTBaseinline
out()ttg::TTBaseinline
outputs_tls_ptr_accessor()ttg::TTBaseinlineprotectedstatic
register_input_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_output_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)ttg::TTBaseinlineprotected
register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)ttg::TTBaseinlineprotected
release()ttg::TTBaseinlinevirtual
set_input(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_lazy_pull(bool value)ttg::TTBaseinlinestatic
set_lazy_pull_instance(bool value)ttg::TTBaseinline
set_name(const std::string &name)ttg::TTBaseinline
set_output(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_outputs_tls_ptr()ttg::TTBaseinlineprotected
set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)ttg::TTBaseinlineprotected
set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_terminals(const terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_trace_all(bool value)ttg::TTBaseinlinestatic
set_trace_instance(bool value)ttg::TTBaseinline
trace(const T &t, const Ts &...ts)ttg::TTBaseinline
tracing() constttg::TTBaseinline
TTBase(TTBase &&other)ttg::TTBaseinlineprotected
TTBase(const std::string &name, size_t numins, size_t numouts)ttg::TTBaseinlineprotected
ttg() constttg::TTBaseinline
TTG classttg::TTBasefriend
ttg_ptr() constttg::TTBaseinline
~TTBase()=defaultttg::TTBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_t_t_base.html b/dox-master/classttg_1_1_t_t_base.html new file mode 100644 index 000000000..80ee65a28 --- /dev/null +++ b/dox-master/classttg_1_1_t_t_base.html @@ -0,0 +1,1654 @@ + + + + + + + + + + + ttg: ttg::TTBase Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+ +
+
+Inheritance diagram for ttg::TTBase:
+
+
+ + +ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > > +ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > > +ttg::SinkTT< keyT, input_valueT > +ttg::TTG< input_terminalsT, output_terminalsT > +ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs > +ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs > +ttg::BinaryTreeReduce< Value, BinaryOp, OutKey > +ttg::BinaryTreeBroadcast< Value, OutKey > + +
+

Documentation

+

A base class for all template tasks.

+ +

Definition at line 30 of file tt.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ~TTBase ()=default
 
virtual void invoke ()
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
virtual ttg::World get_world () const =0
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
virtual void fence ()=0
 
virtual void release ()
 
virtual void make_executable ()=0
 Marks this executable. More...
 
bool is_executable () const
 
+ + + + + + + + +

+Static Public Member Functions

static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals. More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 
+ + + +

+Static Protected Member Functions

static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 
+ + + + +

+Friends

template<typename input_terminalsT , typename output_terminalsT >
class TTG
 
+

Constructor & Destructor Documentation

+ +

◆ TTBase() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg::TTBase::TTBase (TTBase && other)
+
+inlineprotected
+
+ +

Definition at line 115 of file tt.h.

+ +
+
+ +

◆ TTBase() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
ttg::TTBase::TTBase (const std::string & name,
size_t numins,
size_t numouts 
)
+
+inlineprotected
+
+ +

Definition at line 133 of file tt.h.

+ +
+
+ +

◆ ~TTBase()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ttg::TTBase::~TTBase ()
+
+virtualdefault
+
+ +
+
+

Member Function Documentation

+ +

◆ fence()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg::TTBase::fence ()
+
+pure virtual
+
+

Waits for the entire TTG that contains this object to be completed (collective); if not contained by a TTG this is a no-op

+ +

Implemented in ttg::SinkTT< keyT, input_valueT >, ttg::TTG< input_terminalsT, output_terminalsT >, and ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >.

+ +
+
+ +

◆ get_class_name()

+ +
+
+ + + + + +
+ + + + + + + +
std::string ttg::TTBase::get_class_name () const
+
+inline
+
+ +

Gets the demangled class name (uses RTTI)

+ +

Definition at line 220 of file tt.h.

+ +
+
+ +

◆ get_inputs()

+ +
+
+ + + + + +
+ + + + + + + +
const std::vector<TerminalBase *>& ttg::TTBase::get_inputs () const
+
+inline
+
+ +

Returns the vector of input terminals.

+ +

Definition at line 223 of file tt.h.

+ +
+
+ +

◆ get_instance_id()

+ +
+
+ + + + + +
+ + + + + + + +
auto ttg::TTBase::get_instance_id () const
+
+inline
+
+ +

Definition at line 258 of file tt.h.

+ +
+
+ +

◆ get_name()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string& ttg::TTBase::get_name () const
+
+inline
+
+ +

Gets the name of this operation.

+ +

Definition at line 217 of file tt.h.

+ +
+
+ +

◆ get_outputs()

+ +
+
+ + + + + +
+ + + + + + + +
const std::vector<TerminalBase *>& ttg::TTBase::get_outputs () const
+
+inline
+
+ +

Returns the vector of output terminals.

+ +

Definition at line 226 of file tt.h.

+ +
+
+ +

◆ get_outputs_tls_ptr()

+ +
+
+ + + + + +
+ + + + + + + +
static const std::vector<TerminalBase *>* ttg::TTBase::get_outputs_tls_ptr ()
+
+inlinestatic
+
+ +

Returns this thread's pointer to the vector of output terminals.

+ +

Definition at line 229 of file tt.h.

+ +
+
+ +

◆ get_world()

+ + + +

◆ in() [1/2]

+ +
+
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
ttg::TerminalBase* ttg::TTBase::in ()
+
+inline
+
+ +

Returns a pointer to the i'th input terminal ... to make API consistent with TT.

+ +

Definition at line 248 of file tt.h.

+ +
+
+ +

◆ in() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg::TerminalBase* ttg::TTBase::in (size_t i)
+
+inline
+
+ +

Returns a pointer to the i'th input terminal.

+ +

Definition at line 235 of file tt.h.

+ +
+
+ +

◆ invoke()

+ + + +

◆ is_executable()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::TTBase::is_executable () const
+
+inline
+
+

Queries if this ready to execute

Returns
true is this object is executable
+ +

Definition at line 271 of file tt.h.

+ +
+
+ +

◆ is_lazy_pull()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::TTBase::is_lazy_pull ()
+
+inline
+
+ +

Definition at line 199 of file tt.h.

+ +
+
+ +

◆ is_ttg()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::TTBase::is_ttg () const
+
+inline
+
+ +

Definition at line 209 of file tt.h.

+ +
+
+ +

◆ make_executable()

+ + + +

◆ operator=()

+ +
+
+ + + + + +
+ + + + + + + + +
TTBase& ttg::TTBase::operator= (TTBase && other)
+
+inlineprotected
+
+ +

Definition at line 123 of file tt.h.

+ +
+
+ +

◆ out() [1/2]

+ +
+
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
ttg::TerminalBase* ttg::TTBase::out ()
+
+inline
+
+ +

Returns a pointer to the i'th output terminal ... to make API consistent with TT.

+ +

Definition at line 254 of file tt.h.

+ +
+
+ +

◆ out() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg::TerminalBase* ttg::TTBase::out (size_t i)
+
+inline
+
+ +

Returns a pointer to the i'th output terminal.

+ +

Definition at line 241 of file tt.h.

+ +
+
+ +

◆ outputs_tls_ptr_accessor()

+ +
+
+ + + + + +
+ + + + + + + +
static const std::vector<TerminalBase *>*& ttg::TTBase::outputs_tls_ptr_accessor ()
+
+inlinestaticprotected
+
+ +

Definition at line 136 of file tt.h.

+ +
+
+ +

◆ register_input_terminals()

+ +
+
+
+template<typename terminalsT , typename namesT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::TTBase::register_input_terminals (terminalsT & terms,
const namesT & names 
)
+
+inlineprotected
+
+ +

Definition at line 84 of file tt.h.

+ +
+
+ +

◆ register_output_terminals()

+ +
+
+
+template<typename terminalsT , typename namesT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::TTBase::register_output_terminals (terminalsT & terms,
const namesT & names 
)
+
+inlineprotected
+
+ +

Definition at line 91 of file tt.h.

+ +
+
+ +

◆ register_terminal()

+ +
+
+
+template<bool out, typename terminalT , std::size_t i, typename setfuncT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::TTBase::register_terminal (terminalT & term,
const std::string & name,
const setfuncT setfunc 
)
+
+inlineprotected
+
+ +

Definition at line 64 of file tt.h.

+ +
+
+ +

◆ register_terminals()

+ +
+
+
+template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::TTBase::register_terminals (std::index_sequence< IS... > ,
terminalsT & terms,
const namesT & names,
const setfuncT setfunc 
)
+
+inlineprotected
+
+ +

Definition at line 74 of file tt.h.

+ +
+
+ +

◆ release()

+ + + +

◆ set_input()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::TTBase::set_input (size_t i,
TerminalBaset 
)
+
+inlineprotected
+
+ +

Definition at line 53 of file tt.h.

+ +
+
+ +

◆ set_lazy_pull()

+ +
+
+ + + + + +
+ + + + + + + + +
static bool ttg::TTBase::set_lazy_pull (bool value)
+
+inlinestatic
+
+ +

Definition at line 164 of file tt.h.

+ +
+
+ +

◆ set_lazy_pull_instance()

+ +
+
+ + + + + +
+ + + + + + + + +
bool ttg::TTBase::set_lazy_pull_instance (bool value)
+
+inline
+
+ +

Definition at line 194 of file tt.h.

+ +
+
+ +

◆ set_name()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::TTBase::set_name (const std::string & name)
+
+inline
+
+ +

Sets the name of this operation.

+ +

Definition at line 214 of file tt.h.

+ +
+
+ +

◆ set_output()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::TTBase::set_output (size_t i,
TerminalBaset 
)
+
+inlineprotected
+
+ +

Definition at line 58 of file tt.h.

+ +
+
+ +

◆ set_outputs_tls_ptr() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
void ttg::TTBase::set_outputs_tls_ptr ()
+
+inlineprotected
+
+ +

Definition at line 140 of file tt.h.

+ +
+
+ +

◆ set_outputs_tls_ptr() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::TTBase::set_outputs_tls_ptr (const std::vector< TerminalBase * > * ptr)
+
+inlineprotected
+
+ +

Definition at line 141 of file tt.h.

+ +
+
+ +

◆ set_terminals() [1/2]

+ +
+
+
+template<typename terminalsT , typename setfuncT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::TTBase::set_terminals (const terminalsT & terms,
const setfuncT setfunc 
)
+
+inlineprotected
+
+ +

Definition at line 105 of file tt.h.

+ +
+
+ +

◆ set_terminals() [2/2]

+ +
+
+
+template<std::size_t... IS, typename terminalsT , typename setfuncT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::TTBase::set_terminals (std::index_sequence< IS... > ,
terminalsT & terms,
const setfuncT setfunc 
)
+
+inlineprotected
+
+ +

Definition at line 98 of file tt.h.

+ +
+
+ +

◆ set_trace_all()

+ +
+
+ + + + + +
+ + + + + + + + +
static bool ttg::TTBase::set_trace_all (bool value)
+
+inlinestatic
+
+

Sets trace for all operations to value and returns previous setting. This has no effect unless trace_enabled()==true

+ +

Definition at line 156 of file tt.h.

+ +
+
+ +

◆ set_trace_instance()

+ +
+
+ + + + + +
+ + + + + + + + +
bool ttg::TTBase::set_trace_instance (bool value)
+
+inline
+
+

Sets trace for just this instance to value and returns previous setting This has no effect unless trace_enabled()==true

+ +

Definition at line 171 of file tt.h.

+ +
+
+ +

◆ trace()

+ +
+
+
+template<typename T , typename... Ts>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::TTBase::trace (const T & t,
const Ts &... ts 
)
+
+inline
+
+ +

Like ttg::trace(), but only produces tracing output if this->tracing()==true

+ +

Definition at line 186 of file tt.h.

+ +
+
+ +

◆ tracing()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::TTBase::tracing () const
+
+inline
+
+
Returns
false if trace_enabled()==false, else true if tracing set for either this instance or all instances
+ +

Definition at line 177 of file tt.h.

+ +
+
+ +

◆ ttg()

+ +
+
+ + + + + +
+ + + + + + + +
std::optional<std::reference_wrapper<const TTBase> > ttg::TTBase::ttg () const
+
+inline
+
+ +

Definition at line 201 of file tt.h.

+ +
+
+ +

◆ ttg_ptr()

+ +
+
+ + + + + +
+ + + + + + + +
const TTBase* ttg::TTBase::ttg_ptr () const
+
+inline
+
+ +

Definition at line 205 of file tt.h.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ TTG

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + + +
+ + + + +
friend class TTG
+
+friend
+
+ +

Definition at line 40 of file tt.h.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • ttg/ttg/base/tt.h
  • +
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_t_t_base.png b/dox-master/classttg_1_1_t_t_base.png new file mode 100644 index 0000000000000000000000000000000000000000..fad70992771dcfaae31a0425e051b2951980e57b GIT binary patch literal 9110 zcmeHNeO!`fzi+FS)fzr~Dq30e^2}Z=ZM|xutQT`?Nv7#6fvwG48sWQ`0#7aH%B8EO zW~r>4k=bNM;tML3GfJmau1s$g6^VR7R1}aKxX*Q?)n@zfr7=UFr6&zLl6(kz!xcI=%rX@M(v|E<|%@LM-r8wUQ&+q28d2|*C>_C?Q7 zMAF^w!8_B>?c2Afo@&B@k7nU}-90A(BJ}m7%4^-ENy|QT*|F7&{+6P-+Z!r*JMPhg zfqBu0vm<9s>XgSRy9LvKAxK@`_f7foz<%S*;~y_JH=FYI@sC^Ud%-I-Dk>^f0A5Ya z&CN3ON!d$+Q99Ef){FPhEsWV)M>hX)?YOY*e`wLlNN~>FeI97fGl+<0Q^-H3O@3wH zD;2d1dKa4)wIg92vJJ&H!^ZwW%-hH7ziJ=HPUAQBfJ+Hn&VcdkH5!VLg*U=vWlRkR zXKq&daP^za&GfUP%+37z5xYCR{KrJjLKSEB$aykjw0L5EW&62#1Dc>B2Us>{?jtTi`2s6LY|-@b%{?xbPNbgvU+_e9`uHv~ z*W%qLGH20$)g0|wcTU|(PF?2@b)Df=o#9(#;af67w`926Ww>+F-8r8B`Z57^LLYg? z5)ha|kNF@fMQ0wHff!ML*a`GLnzaFBMeu^`zXAV7?KAsN*P#_>fD=k{w@t8rWW8zU zVIZ@WG-umb{(oBE99?dvh5d|-YgS^SRkJs4!01U1&f4z^G6;_sjj2M z`kcovY!gv3n&-Cxgh%ycyJStfIIe@oAUg}nsHJ-R}?XjJ4c~o0vXJ64P<6At&6F06s7MLaB8is^l z2u?VAsL(+{6q41!lmU9H(;4=xE?*n*b&_&Gq@m0TfXF(UIzpkfhQz1jH;V9DMpdRnVKO z9->*+S!K52@|x=3`8DRt2Ykj1_CHYj)d6|gx`b?_bRi=uN^^@A)5zTgW1ledOZbX7 zY_3Y)hQ`r`1LDPP^?wKk$qWUtSS5bk_M~`VPv51*!=2GAVJ>hA<9!eZ#w44HFM-~S zY;1;kIf3fLvJ7o5FCtv7LmGSw%pEpFsv6m+x8 z1dKXV;^I$%Jx*=|Q!ZAh`^Zol#LwV=D=Z?%U{^_*Tp` zyzopLRnVsk5gv^taEHXoPFjmM_d#oJKGKzIsNPtpNUM-WvUfu2w%KQ)$R|FEZp!Yf z^^O$;!D-67FG##EA;&o4IW*ni^@Ib{uyGgyGeuI*F?7$Z2=Z>O_a&jpn*nmA{Djq3 z)#^Ru=e2y2<{O`0-%3h`Dj^t#NFad~=RwjdCKt`O1YscL3?{@Ojh4tz4}G^4vUn%U zyW2I|j!(t8f{ejc1}!@bF|RCcjLgUGfYd83G-z_b>gbO;%jYl%bVL;s$2*6^2`OfT z{l~lwmpg8VX+j}`g_nuA2`X!W&O;u3h8;0%E5tP#qp?E~GVK?Bj*;QRMUoBQ2X(48 zyj2?@@l;_{ss^uEy!O*${_pyHGtdDU$rcN z{}#h9VV#rMw6qeYUrlIoq*$g}$*cD2(q{&OVy5kxPld3-Yre9cEbHnrQUjYdACufo z60*zhDOm(%7rwBZfnWuohd=>dfK)-6bzUUX7VT8J)%rY_CRKk|T(TGEt?`}Lw86fY ztG<#f3L*KaRGzF$SHu^i8+sXEV>MJD2yG+Kw0_avT_Ik#g49Z>Ex7?@Ei=4UhHMydwNIBVE#|kBKn=FhWD1lDnS=k%mlqlVO2DD1NL}mzme&h z;`7tJFSPn=YAW(1NbkDNAy>@}-*<=#aX_1drUn1alGxoHVwcIS>b6oXUlN|?kd$jU z+$OQKx6bOzNoK#>D(4sv(rxbb4crvFudLxKu7a)!uVB9KVl&rB^rmk0G6&2e@FyS2 z(uMTvatccy+pib<+-4*Pg=zFBMJd)geZ#7l3pZ^_wr~vsYnzf1M zgpGRWoq;2JBz!Cl#F_6R9crX@EO7fR}|Nj)299*T--L^=Wy zW=$^9*jLod8O=m1QzmZOorlqgeR>NH(b7I72)U5@a_l+uK!MoBDP5Yd!Pp_ArBIxz z=B=hzc9rPX72o`U{9Q1}4az=Hb(A|#eze2>3&nHA^x|`_5MjWA*CtsOTt1Iz{ES-0sXrt7vV6m^*i2APFN$_^# zQ3aPlV{kmp-tjoP1aFAVH;$wo7frhY^IoIS!LcI#1jYJfLVOJME}lPlLmU*=<4hA@ ziY3DvNzB|xiN>JC1vXRK3my#Pdb^!cF$)R1|A`H2oi#by@mh5;eG|M0wy&1LnVE+= zc+++5DWo)al8-?gZS*s zceL?V8Xc*~KSkeDeiVuya50^Mtmpf$3sznp9|T$e>0^Y;nEC@!T8|gym!0y&vvx1OX63%4EGG?_8)T$vZ>JR`$O_Y z$*WG-bq}?#!qFaA`_x%+)yn!(-5=|>5Y(^BRk_$n$H2JOYuU?lEDob*0@K!xL|4(iDVWqiKH}hz*nvPo>=WUH*3!p|QR|ig8Nq?4O1vBJaJt%0B?Nfp5%5-%FCNm1KKu{U97Rx_kLWv?LnwR3x+oD#T2t2>ZWLf=$^!Xi zey*v?40PJ~9Gy0%`kZ*~`y;+Inqpba-78&6=L@P0jc5lX@%73-cEB~e@@`bd%VPZf zjjKVqK+8a=j^cYrRK1{-ipF;`D;e)#L-N!kOV#^wXGX5U! z7^J?12z!`Y4c82pK7eEMnS^fUBtmC9-rShLAlVx)e4gZ-Nf=lW_h4||7n=5eG20qV_>;rEOItmdj z78SyvGBKQQnz7a)<=r*th?D$s#PNB0XZzjsHCN*2 zAS!+Nz&pa&40fUVmy%4Ihw*;!gFl_yKH%KWoLXhbMSO4SEjKbZ=$$n1Q=HTwROL=V-c+M?A$M7U@hwn3GZmXNIPZ3t=kbvO=h zQNoRAQGoNCeMMe_Pi(tUD5?Nn7ZjWNX!qH{Um6!>y|~fQpS5_^w|s@CJ^7o5m4ax< zm{-3^hqY%N@XRQn3j0@o!B^})y4H%Xc+z59&YRNAuaEW}j`~opyiA2XxwI~B_%V7D z`Qniu;AUZumd_H}dl#d2op~D_0kNo~Y+EeAU@R`>XJIlIIzfEKER<|5 z_Us_-1|JM+H>tP>|Gp}M%Qi%{h|=$p@8LInU}iqRw;cA`~B)Ww&q*iY)4@{f2c+D z8Y4T!8(V6(Q-e)y4n2^|l3wF+e-C)03T)b*jkH8Cw&9#jha`GWwyb@lr%>*qP^P%G z7cN&E7Q%dk?JcSggR3fg$|n_tw)(6gJ&nFTtO_HqFNXsm^<&;LOkwNBtR~Qqr$qt} zsN+iAT+5c`=RI!>T9^BwyLDx zQ2JE0OaqvIjWTzB&Ak0qKqXgvV_N`ZJU@{EL|}kg5r!ZvN+hC$jfz%HAYlf}E9P1V zWst6gMbbN>$M8MtnK*&HQhhTmK(5c~Z)S&h%i9NeYGDRUzgzcV={yMtu44)6TCS9` zI|m!Ts3h7$yRN|KduYxUNKFY#8QXQW@1rTfcqb|et}EmXaLy@f%Moo9Ib0nwtU8v# zQQ@3Jd-uyYr-ch8hUo!ilyqb4NlaFBgS2iEIu+bmXc`L;vMY%YUe-rkZ}Q>AiG3LJ zObB}nQe*IgdyIWU`7fM@eIHeb>N@4wM4UXpA@Z2rHwhl3cY6z@F{>CMI@L15z1Wuf zvXyd^TSsH2k69Vv3%hz{%rUx*SQb99Wf(XL<0P(Df;)RG8Oat$eT3AqZb}RQCsWIM;BH z)Ph=fLXfUgT6#xylwF{0Pp=LH(Uc0~Ey?LD$6M7O5y(>BTSq~GZMR2fx^2d?A4-@n z{Jk<{zaIF@q7cA*7NSKE99*b?E-PV7l1Mpo5x{m455y=H)vF%El+-xQ&wk&@KL12= zoopu$xzAl7kseOv5Ee!kb>YhJesJ^x)ZAU8<}S(3Y;PNQ=()IbMJZCKILz`l1(`iz zkgcO2^?Yt#5ta2Q2xfRI+vH#n|2Z!NbT3vbIvu;|`c@Vwj@X3r6$Hfu-44e0_EI5b zDZhnp*i8fJu4HZKIY5%4nCP!43Yn_t sefi|}^4qP^uf8^o8FTsy^caMA%JKTCbT{x%G?QGM+;`+{`|QMj0CF#lBme*a literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1_t_t_g-members.html b/dox-master/classttg_1_1_t_t_g-members.html new file mode 100644 index 000000000..421497979 --- /dev/null +++ b/dox-master/classttg_1_1_t_t_g-members.html @@ -0,0 +1,185 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::TTG< input_terminalsT, output_terminalsT > Member List
+
+
+ +

This is the complete list of members for ttg::TTG< input_terminalsT, output_terminalsT >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fence() overridettg::TTG< input_terminalsT, output_terminalsT >inlinevirtual
get_class_name() constttg::TTBaseinline
get_inputs() constttg::TTBaseinline
get_instance_id() constttg::TTBaseinline
get_name() constttg::TTBaseinline
get_op(std::size_t i)ttg::TTG< input_terminalsT, output_terminalsT >inline
get_outputs() constttg::TTBaseinline
get_outputs_tls_ptr()ttg::TTBaseinlinestatic
get_world() const override finalttg::TTG< input_terminalsT, output_terminalsT >inlinevirtual
in()ttg::TTG< input_terminalsT, output_terminalsT >inline
ttg::TTBase::in(size_t i)ttg::TTBaseinline
input_terminals_type typedefttg::TTG< input_terminalsT, output_terminalsT >
invoke()ttg::TTBaseinlinevirtual
is_executable() constttg::TTBaseinline
is_lazy_pull()ttg::TTBaseinline
is_ttg() constttg::TTBaseinline
make_executable() overridettg::TTG< input_terminalsT, output_terminalsT >inlinevirtual
numinsttg::TTG< input_terminalsT, output_terminalsT >static
numoutsttg::TTG< input_terminalsT, output_terminalsT >static
ttg::TTBase::operator=(TTBase &&other)ttg::TTBaseinlineprotected
out()ttg::TTG< input_terminalsT, output_terminalsT >inline
ttg::TTBase::out(size_t i)ttg::TTBaseinline
output_terminals_type typedefttg::TTG< input_terminalsT, output_terminalsT >
outputs_tls_ptr_accessor()ttg::TTBaseinlineprotectedstatic
register_input_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_output_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)ttg::TTBaseinlineprotected
register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)ttg::TTBaseinlineprotected
release()ttg::TTBaseinlinevirtual
set_input(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_lazy_pull(bool value)ttg::TTBaseinlinestatic
set_lazy_pull_instance(bool value)ttg::TTBaseinline
set_name(const std::string &name)ttg::TTBaseinline
set_output(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_outputs_tls_ptr()ttg::TTBaseinlineprotected
set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)ttg::TTBaseinlineprotected
set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_terminals(const terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_trace_all(bool value)ttg::TTBaseinlinestatic
set_trace_instance(bool value)ttg::TTBaseinline
trace(const T &t, const Ts &...ts)ttg::TTBaseinline
tracing() constttg::TTBaseinline
TTBase(TTBase &&other)ttg::TTBaseinlineprotected
TTBase(const std::string &name, size_t numins, size_t numouts)ttg::TTBaseinlineprotected
ttg() constttg::TTBaseinline
TTG(ttseqT &&tts, const input_terminals_type &ins, const output_terminals_type &outs, const std::string &name="ttg")ttg::TTG< input_terminalsT, output_terminalsT >inline
ttg_ptr() constttg::TTBaseinline
~TTBase()=defaultttg::TTBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_t_t_g.html b/dox-master/classttg_1_1_t_t_g.html new file mode 100644 index 000000000..ee56e5966 --- /dev/null +++ b/dox-master/classttg_1_1_t_t_g.html @@ -0,0 +1,654 @@ + + + + + + + + + + + ttg: ttg::TTG< input_terminalsT, output_terminalsT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::TTG< input_terminalsT, output_terminalsT > Class Template Reference
+
+
+
+Inheritance diagram for ttg::TTG< input_terminalsT, output_terminalsT >:
+
+
+ + +ttg::TTBase + +
+

Documentation

+

template<typename input_terminalsT, typename output_terminalsT>
+class ttg::TTG< input_terminalsT, output_terminalsT >

+ +

a template task graph implementation

+

It contains (owns) one or more TT objects. Since it can also be viewed as a TT object itself, it is a TTBase and can be for recursive composition of TTG objects.

Template Parameters
+ + + +
input_terminalsTa tuple of pointers to input terminals
output_terminalsTa tuple of pointers to output terminals
+
+
+ +

Definition at line 31 of file tt.h.

+
+ + + + + +

+Public Types

using input_terminals_type = input_terminalsT
 
using output_terminals_type = output_terminalsT
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

template<typename ttseqT >
 TTG (ttseqT &&tts, const input_terminals_type &ins, const output_terminals_type &outs, const std::string &name="ttg")
 
template<std::size_t i>
auto in ()
 Return a pointer to i'th input terminal. More...
 
template<std::size_t i>
auto out ()
 Return a pointer to i'th output terminal. More...
 
TTBaseget_op (std::size_t i)
 
ttg::World get_world () const override final
 
void fence () override
 
void make_executable () override
 Marks this executable. More...
 
- Public Member Functions inherited from ttg::TTBase
virtual ~TTBase ()=default
 
virtual void invoke ()
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
virtual void release ()
 
bool is_executable () const
 
+ + + + + +

+Static Public Attributes

static constexpr int numins = std::tuple_size_v<input_terminalsT>
 
static constexpr int numouts = std::tuple_size_v<output_terminalsT>
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Static Public Member Functions inherited from ttg::TTBase
static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals. More...
 
- Protected Member Functions inherited from ttg::TTBase
void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 
+

Member Typedef Documentation

+ +

◆ input_terminals_type

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + +
using ttg::TTG< input_terminalsT, output_terminalsT >::input_terminals_type = input_terminalsT
+
+ +

Definition at line 36 of file tt.h.

+ +
+
+ +

◆ output_terminals_type

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + +
using ttg::TTG< input_terminalsT, output_terminalsT >::output_terminals_type = output_terminalsT
+
+ +

Definition at line 37 of file tt.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ TTG()

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+
+template<typename ttseqT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg::TTG< input_terminalsT, output_terminalsT >::TTG (ttseqT && tts,
const input_terminals_typeins,
const output_terminals_typeouts,
const std::string & name = "ttg" 
)
+
+inline
+
+
Template Parameters
+ + +
ttseqTa sequence of std::unique_ptr<TTBase>
+
+
+ +

Definition at line 69 of file tt.h.

+ +
+
+

Member Function Documentation

+ +

◆ fence()

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + + +
+ + + + + + + +
void ttg::TTG< input_terminalsT, output_terminalsT >::fence ()
+
+inlineoverridevirtual
+
+

Waits for the entire TTG that contains this object to be completed (collective); if not contained by a TTG this is a no-op

+ +

Implements ttg::TTBase.

+ +

Definition at line 100 of file tt.h.

+ +
+
+ +

◆ get_op()

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + + +
+ + + + + + + + +
TTBase* ttg::TTG< input_terminalsT, output_terminalsT >::get_op (std::size_t i)
+
+inline
+
+ +

Definition at line 96 of file tt.h.

+ +
+
+ +

◆ get_world()

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + + +
+ + + + + + + +
ttg::World ttg::TTG< input_terminalsT, output_terminalsT >::get_world () const
+
+inlinefinaloverridevirtual
+
+
Returns
World in which this lives
+ +

Implements ttg::TTBase.

+ +

Definition at line 98 of file tt.h.

+ +
+
+ +

◆ in()

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
auto ttg::TTG< input_terminalsT, output_terminalsT >::in ()
+
+inline
+
+ +

Return a pointer to i'th input terminal.

+ +

Definition at line 86 of file tt.h.

+ +
+
+ +

◆ make_executable()

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + + +
+ + + + + + + +
void ttg::TTG< input_terminalsT, output_terminalsT >::make_executable ()
+
+inlineoverridevirtual
+
+ +

Marks this executable.

+ +

Implements ttg::TTBase.

+ +

Definition at line 102 of file tt.h.

+ +
+
+ +

◆ out()

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
auto ttg::TTG< input_terminalsT, output_terminalsT >::out ()
+
+inline
+
+ +

Return a pointer to i'th output terminal.

+ +

Definition at line 92 of file tt.h.

+ +
+
+

Member Data Documentation

+ +

◆ numins

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + + +
+ + + + +
constexpr int ttg::TTG< input_terminalsT, output_terminalsT >::numins = std::tuple_size_v<input_terminalsT>
+
+staticconstexpr
+
+ +

Definition at line 33 of file tt.h.

+ +
+
+ +

◆ numouts

+ +
+
+
+template<typename input_terminalsT , typename output_terminalsT >
+ + + + + +
+ + + + +
constexpr int ttg::TTG< input_terminalsT, output_terminalsT >::numouts = std::tuple_size_v<output_terminalsT>
+
+staticconstexpr
+
+ +

Definition at line 34 of file tt.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_t_t_g.png b/dox-master/classttg_1_1_t_t_g.png new file mode 100644 index 0000000000000000000000000000000000000000..6629040c71575a20ce05c2c684e7f31e87b855f8 GIT binary patch literal 821 zcmeAS@N?(olHy`uVBq!ia0y~yU=#te12~w0dtRv;x2;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z;wjZ#WAFU@$KBVMXL>XSg#*9uKn+> z_w@9(1Da3TChWA8)%D|aOH=ON|76bQla}F*(^P{0M|P>O>bOo~nx^E*=sj`Cf$F78 z3}+c@E)}}Ge^QBdx%W)JbvwkGdY&2yezT{@!FZP-Q4?9>zy0Hd>%igZBr}WuF0Q& z*KPNkDf1Jjey`tOYxY#pbN+GJpnLmdRbKLJ4>`4ad$Y>ihwI)dd&+k&^$0o;q@tOi zIZ0%Lh$k0MP|>-YPv&?t)NsTzu&p>0#1OS_Uk>YngFptG`Zgw$L`??iH7p7VnhcEI zj2sbM4hMo5n5HoaY!GQ^Sjxbn!%C*q2gjfwuairrtWsc{vCL10b-_`%xd*gTC7R|< z2@?Ixxu9>}#iD=TwGVYp;!kiczsDVHJ0U2||8Rv(MEL&oA`2Go`fzcM`Vt0{Khv@% zZnDU}e{t)Sb6@6L_oQy&xqST9@frNV>pp(_-1>RS&(|x(zK2EC+SlzfxSF@rC+ga! zm!6v3n%Adi`d*w`d|CDJC#ztmTd$^P>hD$w-P*e?NG|l$rRcJ28)dg?^LnqE6nff5 z;pw7~tNyiaUMmj=2TgOk8~JiiVYO+k*D3pDQSzUbOnI)gw076O!?L&R#FthDXqKwx z+_URGwQKp7wW)tgb}Z}vKE?NURqCp{^NezPF3mCvdUlR~%8l3W*WP?Km0@M?)?nZA zysTZjT&tg7U(WREhRw6i>$U-pc1AMT?kcaT)mqS}p!!9mq4`K;^6BhZMh7^51;@|h w%1{bBb=iFXpXa;R2Ql=Z#0U>4giY%2_mo*H6h!cc0n<2xr>mdKI;Vst08&e2ssI20 literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1_terminal_base-members.html b/dox-master/classttg_1_1_terminal_base-members.html new file mode 100644 index 000000000..31e76e472 --- /dev/null +++ b/dox-master/classttg_1_1_terminal_base-members.html @@ -0,0 +1,159 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::TerminalBase Member List
+
+
+ +

This is the complete list of members for ttg::TerminalBase, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
connect(TerminalBase *in)=0ttg::TerminalBasepure virtual
connect_base(TerminalBase *successor)ttg::TerminalBaseinlineprotected
connect_pull(TerminalBase *predecessor)ttg::TerminalBaseinlineprotected
connect_pull_nopred(TerminalBase *p)ttg::TerminalBaseinline
get_connections() constttg::TerminalBaseinline
get_index() constttg::TerminalBaseinline
get_key_type_str() constttg::TerminalBaseinline
get_name() constttg::TerminalBaseinline
get_predecessors() constttg::TerminalBaseinline
get_tt() constttg::TerminalBaseinline
get_type() constttg::TerminalBaseinline
get_value_type_str() constttg::TerminalBaseinline
In classttg::TerminalBasefriend
is_a_terminalttg::TerminalBasestatic
is_connected() constttg::TerminalBaseinline
is_pull_terminalttg::TerminalBase
Out classttg::TerminalBasefriend
set(TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)ttg::TerminalBaseinlineprotected
TerminalBase(Type type)ttg::TerminalBaseinlineprotected
TTBase classttg::TerminalBasefriend
Type enum namettg::TerminalBase
~TerminalBase()=defaultttg::TerminalBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_terminal_base.html b/dox-master/classttg_1_1_terminal_base.html new file mode 100644 index 000000000..af6f4f61e --- /dev/null +++ b/dox-master/classttg_1_1_terminal_base.html @@ -0,0 +1,884 @@ + + + + + + + + + + + ttg: ttg::TerminalBase Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+ +
+
+Inheritance diagram for ttg::TerminalBase:
+
+
+ + +ttg::InTerminalBase< void > +ttg::OutTerminalBase< void > +ttg::InTerminalBase< keyT > +ttg::OutTerminalBase< keyT > +ttg::In< keyT, valueT > +ttg::Out< keyT, valueT > +ttg::Out< keyT, valueT > + +
+

Documentation

+

Provides basic information and graph connectivity (eventually statistics, etc.)

+ +

Definition at line 12 of file terminal.h.

+
+ + + + +

+Public Types

enum class  Type { Write +, Read +, Consume + }
 describes the terminal type More...
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

TTBaseget_tt () const
 Return ptr to containing tt. More...
 
size_t get_index () const
 Returns index of terminal. More...
 
const std::string & get_name () const
 Returns name of terminal. More...
 
const std::string & get_key_type_str () const
 Returns string representation of key type. More...
 
const std::string & get_value_type_str () const
 Returns string representation of value type. More...
 
Type get_type () const
 Returns the terminal type. More...
 
const std::vector< TerminalBase * > & get_connections () const
 Get connections to successors. More...
 
const std::vector< TerminalBase * > & get_predecessors () const
 
void connect_pull_nopred (TerminalBase *p)
 
bool is_connected () const
 Returns true if this terminal (input or output) is connected. More...
 
virtual void connect (TerminalBase *in)=0
 
virtual ~TerminalBase ()=default
 
+ + + +

+Public Attributes

bool is_pull_terminal = false
 
+ + + +

+Static Public Attributes

static constexpr bool is_a_terminal = true
 
+ + + + + + + + + +

+Protected Member Functions

 TerminalBase (Type type)
 
void set (TTBase *tt, size_t index, const std::string &name, const std::string &key_type_str, const std::string &value_type_str, Type type)
 
void connect_base (TerminalBase *successor)
 
void connect_pull (TerminalBase *predecessor)
 
+ + + + + + + + + +

+Friends

class TTBase
 
template<typename keyT , typename valueT >
class In
 
template<typename keyT , typename valueT >
class Out
 
+

Member Enumeration Documentation

+ +

◆ Type

+ +
+
+ + + + + +
+ + + + +
enum ttg::TerminalBase::Type
+
+strong
+
+ +

describes the terminal type

+ + + + +
Enumerator
Write 

can only be written to

+
Read 

can only be used to read immutable data

+
Consume 

can only be used to read consumable data

+
+ +

Definition at line 18 of file terminal.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ TerminalBase()

+ +
+
+ + + + + +
+ + + + + + + + +
ttg::TerminalBase::TerminalBase (Type type)
+
+inlineprotected
+
+ +

Definition at line 46 of file terminal.h.

+ +
+
+ +

◆ ~TerminalBase()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ttg::TerminalBase::~TerminalBase ()
+
+virtualdefault
+
+ +
+
+

Member Function Documentation

+ +

◆ connect()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg::TerminalBase::connect (TerminalBasein)
+
+pure virtual
+
+

Connect this (a TTG output terminal) to a TTG input terminal. The base class method forwards to the the derived class connect method and so type checking for the key/value will be done at runtime when performing the dynamic down cast from TerminalBase* to In<keyT,valueT>.

+ +

Implemented in ttg::Out< keyT, valueT >, and ttg::Out< keyT, valueT >.

+ +
+
+ +

◆ connect_base()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::TerminalBase::connect_base (TerminalBasesuccessor)
+
+inlineprotected
+
+

Add directed connection (this --> successor) in internal representation of the TTG. This is called by the derived class's connect method

+ +

Definition at line 60 of file terminal.h.

+ +
+
+ +

◆ connect_pull()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::TerminalBase::connect_pull (TerminalBasepredecessor)
+
+inlineprotected
+
+ +

Definition at line 66 of file terminal.h.

+ +
+
+ +

◆ connect_pull_nopred()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::TerminalBase::connect_pull_nopred (TerminalBasep)
+
+inline
+
+ +

Definition at line 113 of file terminal.h.

+ +
+
+ +

◆ get_connections()

+ +
+
+ + + + + +
+ + + + + + + +
const std::vector<TerminalBase *>& ttg::TerminalBase::get_connections () const
+
+inline
+
+ +

Get connections to successors.

+ +

Definition at line 107 of file terminal.h.

+ +
+
+ +

◆ get_index()

+ +
+
+ + + + + +
+ + + + + + + +
size_t ttg::TerminalBase::get_index () const
+
+inline
+
+ +

Returns index of terminal.

+ +

Definition at line 80 of file terminal.h.

+ +
+
+ +

◆ get_key_type_str()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string& ttg::TerminalBase::get_key_type_str () const
+
+inline
+
+ +

Returns string representation of key type.

+ +

Definition at line 92 of file terminal.h.

+ +
+
+ +

◆ get_name()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string& ttg::TerminalBase::get_name () const
+
+inline
+
+ +

Returns name of terminal.

+ +

Definition at line 86 of file terminal.h.

+ +
+
+ +

◆ get_predecessors()

+ +
+
+ + + + + +
+ + + + + + + +
const std::vector<TerminalBase *>& ttg::TerminalBase::get_predecessors () const
+
+inline
+
+ +

Definition at line 109 of file terminal.h.

+ +
+
+ +

◆ get_tt()

+ +
+
+ + + + + +
+ + + + + + + +
TTBase* ttg::TerminalBase::get_tt () const
+
+inline
+
+ +

Return ptr to containing tt.

+ +

Definition at line 74 of file terminal.h.

+ +
+
+ +

◆ get_type()

+ +
+
+ + + + + +
+ + + + + + + +
Type ttg::TerminalBase::get_type () const
+
+inline
+
+ +

Returns the terminal type.

+ +

Definition at line 104 of file terminal.h.

+ +
+
+ +

◆ get_value_type_str()

+ +
+
+ + + + + +
+ + + + + + + +
const std::string& ttg::TerminalBase::get_value_type_str () const
+
+inline
+
+ +

Returns string representation of value type.

+ +

Definition at line 98 of file terminal.h.

+ +
+
+ +

◆ is_connected()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::TerminalBase::is_connected () const
+
+inline
+
+ +

Returns true if this terminal (input or output) is connected.

+ +

Definition at line 118 of file terminal.h.

+ +
+
+ +

◆ set()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void ttg::TerminalBase::set (TTBasett,
size_t index,
const std::string & name,
const std::string & key_type_str,
const std::string & value_type_str,
Type type 
)
+
+inlineprotected
+
+ +

Definition at line 48 of file terminal.h.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ In

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + +
friend class In
+
+friend
+
+ +

Definition at line 41 of file terminal.h.

+ +
+
+ +

◆ Out

+ +
+
+
+template<typename keyT , typename valueT >
+ + + + + +
+ + + + +
friend class Out
+
+friend
+
+ +

Definition at line 43 of file terminal.h.

+ +
+
+ +

◆ TTBase

+ +
+
+ + + + + +
+ + + + +
friend class TTBase
+
+friend
+
+ +

Definition at line 39 of file terminal.h.

+ +
+
+

Member Data Documentation

+ +

◆ is_a_terminal

+ +
+
+ + + + + +
+ + + + +
constexpr bool ttg::TerminalBase::is_a_terminal = true
+
+staticconstexpr
+
+ +

Definition at line 14 of file terminal.h.

+ +
+
+ +

◆ is_pull_terminal

+ +
+
+ + + + +
bool ttg::TerminalBase::is_pull_terminal = false
+
+ +

Definition at line 15 of file terminal.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_terminal_base.png b/dox-master/classttg_1_1_terminal_base.png new file mode 100644 index 0000000000000000000000000000000000000000..94dcbb97e3f624644139bdc8761fa8730074a4d2 GIT binary patch literal 2226 zcmd6pYcyNw8pn4iIxS&!dT`1xEow{=(>B7ytwYD8K{P16x!=>KI&p1KGkTd$JALM3u`bUvK5&N&~>x3kyUd%w@#|M%U``+uL` zyY?+_FL$k7`*r~UpoRI)4G#b+JgEKCPF3hyc#s3aB|RSWC!i&xTst zCzHukyES19g*)T%UOoUMQXV5czK5Yl$1rZke3M~IMQlo$jn0l-{0@bp8*Ll>!pgyw zbivcEgOGi1m=^noihjl?etv#Z6(*pcaex^03sS=dm{K2`wUpJ4a<-TIOr4L z!GMtm1L|S)4(^#ZB48)3WZc!2u7Ld4OM zcySibgxpwPBu(QB=}pk%DZ4EEsy4U5aEa*3y>QHcQA1 zm5);~Ab24`s;Yj*_mVS13DFro9~0uRd`B4fPeaCd_bt)ul}Q?In{r3#nD$F$4~;No zKAFE)RW<7Y>P(;zs}&4rGLIo;yhB1^8ZaZ=h>sI#LmOcM3-v9e& zAh~vF&EnhPg!8oKn#BWvu(ODKw^8*4ltp`7Vn#CE-bKF;u9Jn-*xA8`%|QAPJG6@f z%kXo}D2<=GsH)ed1;9!GDZ{4lv(JqPaGe|fb7#W>$BI07sh35CNt`4Pf93_-=S0j7 z3`OV`NW?UM+GmY{#>edHV4GPO5v(yGb}gozVW63XW>i6WGM!<1eOf@-+y9;Ty*y|5 zs#9Av4@Y_6Vck~z$l)ACH#*7^S7;&i5b)MA`GLW(-BpEn$v?iT7EvRe83MF!ovYYS zY8vArEtgYeIlOmGB2UsQmDV@1x?!=aWLQ4iAPQi5i-`!?o21-G_sFd1rq_gC^2DOQ zZ55-aYw2KkQ`hqkAz+&%pX`))>Twc|!BpWPogWIy-k_0fE^Mrx%{WM#&oxfTkSx{y zEiq@)Lf*TOpE}}-z0u)>GOyQb*|3w$uJIAUk7+jx9EZYQQZCOGG;iFBKm;-=ys{^U z4U+N>&_?D&NmG?78=?M|Y(L@kG1}U%LCm|n(ujUz^tk5D{Gb6@c|!qW$^abSi@iLa zdm(u}b&qZ1O*O+yuS?Cw=eTD@V%=o}Q1NvFp*xN{-`j64J0t#7Z#e>GOe|aZ{m9kz zSu!brnSg~a@XW2I3OF*HkF<0%$URBis9RT_qImR2B|miH^2u*2x1z@iJ;$jCM^gVn z%B;$hqgj@lzZG~{vWW=ug0wD`msAwLeGyyLfNR}PD+^y*j^VP4@Jsny**WE~4bpg6 z?AOtr;ut}Hj+9ZT_nxk18I%4k+u0ia=a`Q)_jPL+%mnOGT&Bb$b$uCE1WN)wZ!%SU zMsg@G&8maWldI>ISJwv!30>CX_bcZn(^v44+j(io_Eb~}y1;Bl_6tbj;6PR4iWqUu&({81y-@ za4LKbD$KLf0*i{h+RU$p0n}U{8z$`0S|lnrAPZ?V`TXQ)J~~R{=^+%oMagl+M6J;I z)}_UsqDIw;d;=Co2`ip>T8h3M+6|jwgmAVuIEdP7A>c=(Abz$B7M|I^p} zr_GglgZqaqD&lwazkl%sPXK$B)HsMx`xI;F$NzYq<9c-@8O66Psg59>pzA=kN;lVCum{@sD%Tn^sfZ)Swn&S9EJ~LP{FN zw;e@oLxlS`y-w>@*+PM}KGNf0OWJA&A0w*pu*J17BmEQZ1S%LKTKfXm(V$)^-`-iI z8N|#)wk30#np1L9SKrBt`NVz^F2ednJpYH}A9!U%?!^ZK z?`{uz6{FFqet(971uZ=>yVns%+rl|*L#fNpY%h|d($=IMwDsm#ia4gx|gvr6w2W0HvVU4qa zzikM|_U}$^g=V@Li4wszFkemq^=1(z?Znn2iIAt6#PosYOR?4%|NGt~OtYcl2OcHf zUb)Nu=Ox_cNV&@CM{y7*Ir->{Jfa#?j + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::Traverse< TTVisitor, InVisitor, OutVisitor > Member List
+
+
+ +

This is the complete list of members for ttg::Traverse< TTVisitor, InVisitor, OutVisitor >, including all inherited members.

+ + + + + + +
in_visitor() constttg::Traverse< TTVisitor, InVisitor, OutVisitor >inline
operator()(TTBasePtr &&op, TTBasePtrs &&... ops)ttg::Traverse< TTVisitor, InVisitor, OutVisitor >inline
out_visitor() constttg::Traverse< TTVisitor, InVisitor, OutVisitor >inline
Traverse(TTVisitor_ &&tt_v=TTVisitor_{}, InVisitor_ &&in_v=InVisitor_{}, OutVisitor_ &&out_v=OutVisitor_{})ttg::Traverse< TTVisitor, InVisitor, OutVisitor >inline
tt_visitor() constttg::Traverse< TTVisitor, InVisitor, OutVisitor >inline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_traverse.html b/dox-master/classttg_1_1_traverse.html new file mode 100644 index 000000000..6bfeb12b8 --- /dev/null +++ b/dox-master/classttg_1_1_traverse.html @@ -0,0 +1,359 @@ + + + + + + + + + + + ttg: ttg::Traverse< TTVisitor, InVisitor, OutVisitor > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::Traverse< TTVisitor, InVisitor, OutVisitor > Class Template Reference
+
+
+
+Inheritance diagram for ttg::Traverse< TTVisitor, InVisitor, OutVisitor >:
+
+
+ + +ttg::detail::Traverse + +
+

Documentation

+

template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
+class ttg::Traverse< TTVisitor, InVisitor, OutVisitor >

+ +

Traverses a graph of ops in depth-first manner following out edges.

+
Template Parameters
+ + + + +
TTVisitorA Callable type that visits each TT
InVisitorA Callable type that visits each In terminal
OutVisitorA Callable type that visits each Out terminal
+
+
+ +

Definition at line 144 of file traverse.h.

+
+ + + + + + + + + + + + + +

+Public Member Functions

template<typename TTVisitor_ = detail::Traverse::null_visitor<TTBase>, typename InVisitor_ = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor_ = detail::Traverse::null_visitor<TerminalBase>>
 Traverse (TTVisitor_ &&tt_v=TTVisitor_{}, InVisitor_ &&in_v=InVisitor_{}, OutVisitor_ &&out_v=OutVisitor_{})
 
const TTVisitor & tt_visitor () const
 
const InVisitor & in_visitor () const
 
const OutVisitor & out_visitor () const
 
template<typename TTBasePtr , typename ... TTBasePtrs>
std::enable_if_t< std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtr >)))> > &&(std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtrs >)))> bool operator() (TTBasePtr &&op, TTBasePtrs &&... ops)
 
+

Constructor & Destructor Documentation

+ +

◆ Traverse()

+ +
+
+
+template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
+
+template<typename TTVisitor_ = detail::Traverse::null_visitor<TTBase>, typename InVisitor_ = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor_ = detail::Traverse::null_visitor<TerminalBase>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::Traverse (TTVisitor_ && tt_v = TTVisitor_{},
InVisitor_ && in_v = InVisitor_{},
OutVisitor_ && out_v = OutVisitor_{} 
)
+
+inline
+
+ +

Definition at line 159 of file traverse.h.

+ +
+
+

Member Function Documentation

+ +

◆ in_visitor()

+ +
+
+
+template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
+ + + + + +
+ + + + + + + +
const InVisitor& ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::in_visitor () const
+
+inline
+
+ +

Definition at line 165 of file traverse.h.

+ +
+
+ +

◆ operator()()

+ +
+
+
+template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
+
+template<typename TTBasePtr , typename ... TTBasePtrs>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<std::is_base_of_v<TTBase, std::decay_t<decltype(*(std::declval<TTBasePtr>)))> > && (std::is_base_of_v<TTBase, std::decay_t<decltype(*(std::declval<TTBasePtrs>)))> bool ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::operator() (TTBasePtr && op,
TTBasePtrs &&... ops 
)
+
+inline
+
+ +

Definition at line 172 of file traverse.h.

+ +
+
+ +

◆ out_visitor()

+ +
+
+
+template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
+ + + + + +
+ + + + + + + +
const OutVisitor& ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::out_visitor () const
+
+inline
+
+ +

Definition at line 166 of file traverse.h.

+ +
+
+ +

◆ tt_visitor()

+ +
+
+
+template<typename TTVisitor = detail::Traverse::null_visitor<TTBase>, typename InVisitor = detail::Traverse::null_visitor<TerminalBase>, typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
+ + + + + +
+ + + + + + + +
const TTVisitor& ttg::Traverse< TTVisitor, InVisitor, OutVisitor >::tt_visitor () const
+
+inline
+
+ +

Definition at line 164 of file traverse.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_traverse.png b/dox-master/classttg_1_1_traverse.png new file mode 100644 index 0000000000000000000000000000000000000000..e51303a71facc8f732834f3465989d3215b78585 GIT binary patch literal 877 zcmeAS@N?(olHy`uVBq!ia0y~yU=#te12~w0dtRv;x2;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|!1Tw{#WAFU@$KA)Ws4OA-1OyZ|EJ%} z5t$*$o8_N7`|inyYJrIjuNmrBZoRhTS{7I6B%$A)nv+C4knj#~uSzk`qMqt^@w+un zyHBc{6t8eJ{?Cqyzn5$=|97AwLhl;;TkRjw|Ln5A9bX(-zo|^gGyeSEnVb6T<9ejE zik5m8_Mh$VFAt8ptC!kSZS5JZpVAfG8rHS?^LdX*@oT$Is0CfK-LAiD->hj*i|^0- zV?0x+I3fJhfwqrlRbRgTIn6fpPSxJ!d!`xf<9WYxxy`+N``TYwhQ~duYkgREU)*;2 zXpZ9BFPW#G|Mi>ywtjJg{C~K|h z%B_7&AH07scrXM9aWy=Dth|=N0>pTzvX)`p5|IX$2OVdG8(0$j(zqO$4AhNT6&Pns zp2;+U;mk=NMh}K(Da#mC7>bR88H5@vXKFHV9+-0ms0oYmpRO~5yfi&EkBV?PJo==v zl%XPs%Ryl&0}GH^;9dEL#Wq)+?FY+Jk>G0&woT9NPYd~X|74o?a=UX!8Qg>JJYdi> zcA9-~Zs&gGr&l)k_)BYwKf48$!tYYmH3we!wZ_J8=^jHfX z_XT}3db(iq4?RDRn_phsyY45hK3mpvCaXlww(V5e&Z>`#}{0;Bx zo+;dC?>xA*tib{uljf>D@M0uk6{e3p+0#*WAXuec`eozS&=0?>!ex`>4f` zaQa+lNkIqmoulfz|Gg4q*Sy`s@ + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::Void Member List
+
+
+ +

This is the complete list of members for ttg::Void, including all inherited members.

+ + + +
Void()=defaultttg::Void
Void(T &&)ttg::Voidinlineexplicit
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_void.html b/dox-master/classttg_1_1_void.html new file mode 100644 index 000000000..cdb4e42c2 --- /dev/null +++ b/dox-master/classttg_1_1_void.html @@ -0,0 +1,210 @@ + + + + + + + + + + + ttg: ttg::Void Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::Void Class Reference
+
+
+

Documentation

+

A complete version of void.

+

Void can be used interchangeably with void as key or value type, but is also hashable, etc. May reduce the amount of metaprogramming relative to void.

+ +

Definition at line 11 of file void.h.

+
+ + + + + + +

+Public Member Functions

 Void ()=default
 
template<typename T >
 Void (T &&)
 
+

Constructor & Destructor Documentation

+ +

◆ Void() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
ttg::Void::Void ()
+
+default
+
+ +
+
+ +

◆ Void() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
ttg::Void::Void (T && )
+
+inlineexplicit
+
+ +

Definition at line 14 of file void.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_world-members.html b/dox-master/classttg_1_1_world-members.html new file mode 100644 index 000000000..7896ca0a7 --- /dev/null +++ b/dox-master/classttg_1_1_world-members.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::World Member List
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_world.html b/dox-master/classttg_1_1_world.html new file mode 100644 index 000000000..7c4d053c8 --- /dev/null +++ b/dox-master/classttg_1_1_world.html @@ -0,0 +1,194 @@ + + + + + + + + + + + ttg: ttg::World Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::World Class Reference
+
+
+
+Inheritance diagram for ttg::World:
+
+
+ + +ttg::base::World< TTG_IMPL_NS::WorldImpl > + +
+

Documentation

+
+

Definition at line 17 of file world.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Additional Inherited Members

- Public Member Functions inherited from ttg::base::World< TTG_IMPL_NS::WorldImpl >
 World (void)
 
 World (std::shared_ptr< ttg::base::WorldImplBase > world_impl)
 
 World (const World &other)=default
 
 World (World &&other)=default
 
 ~World ()
 
Worldoperator= (const World &other)=default
 
Worldoperator= (World &&other)=default
 
int size () const
 
int rank () const
 
bool is_valid (void) const
 
virtual void final_task ()
 
TTG_IMPL_NS::WorldImpl & impl (void)
 
const TTG_IMPL_NS::WorldImpl & impl (void) const
 
void profile_on ()
 
void profile_off ()
 
bool profiling ()
 
void dag_on (const std::string &filename)
 
void dag_off ()
 
bool dag_profiling ()
 
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1_world.png b/dox-master/classttg_1_1_world.png new file mode 100644 index 0000000000000000000000000000000000000000..a88f9e349cf7daaeff58a7588a1320922a6a6133 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0y~yVB`d{12~w0q^(22T_7b9;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z|`XD;uuoF_;&8?qQwRRF8#As{rRu1 z&sHMY=s5eX#PrL4N{GR?l(dzaSx%Qfk?KjJ& zXaAq+@-JlbY{hLGKQGLDlXSvdxBjE8y9(cm_{k@l-v&Q5>2kfDe0$Ei;w0`B_Q63{ zH*dBn`&{zS+(oIq%5%}4YMrjP%lnU`OD>-pyLx?U}&*qiE}b9YbZ_bhpNby7u` zdX~(>V{_amE(sGXth~t48T9CrmQ=4|fyJrLJ{Ql9WfkwH9sGC8eximBo5z)XwO=)_ z@0%=qU+v=h_1zkiu4GxLXMIpFO;Tw4Y<01?i~Fx-XFve^VvnG!4s# zR1uS+ewE&e87?<&s=T~xQI?3#MAmU=c_WQe$KRDrIm~OB8YdMgmbnd&E1Z1Z{dQ&v{^;$-S2Ak5A@$ud8e>3_x9(Fe77b==&e&+d)EJa=Tuj}2?f(QO|~=c zIr4o%23xGL0^?l%Ydj$3_u5=?|9J`JGFm8pJXo3}xAu)}rT5zV``*YdEvnP$oWa46 z|3unj&n^ZAo*#X4ZiF!&kp8*sD&vPVGtS8jO<*U?bn()>sri@jV4!KQwwu>{U>arc MboFyt=akR{0QTik>i_@% literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1base_1_1_world-members.html b/dox-master/classttg_1_1base_1_1_world-members.html new file mode 100644 index 000000000..c4f4f7ab0 --- /dev/null +++ b/dox-master/classttg_1_1base_1_1_world-members.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::base::World< WorldImplT > Member List
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1base_1_1_world.html b/dox-master/classttg_1_1base_1_1_world.html new file mode 100644 index 000000000..e70577770 --- /dev/null +++ b/dox-master/classttg_1_1base_1_1_world.html @@ -0,0 +1,744 @@ + + + + + + + + + + + ttg: ttg::base::World< WorldImplT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::base::World< WorldImplT > Class Template Reference
+
+
+

Documentation

+

template<typename WorldImplT>
+class ttg::base::World< WorldImplT >

+ +

Slim wrapper around World implementation objects This wrapper should be passed by value, not by reference, to avoid lifetime issues of the world object.

+ +

Definition at line 174 of file world.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 World (void)
 
 World (std::shared_ptr< ttg::base::WorldImplBase > world_impl)
 
 World (const World &other)=default
 
 World (World &&other)=default
 
 ~World ()
 
Worldoperator= (const World &other)=default
 
Worldoperator= (World &&other)=default
 
int size () const
 
int rank () const
 
bool is_valid (void) const
 
virtual void final_task ()
 
WorldImplT & impl (void)
 
const WorldImplT & impl (void) const
 
void profile_on ()
 
void profile_off ()
 
bool profiling ()
 
void dag_on (const std::string &filename)
 
void dag_off ()
 
bool dag_profiling ()
 
+

Constructor & Destructor Documentation

+ +

◆ World() [1/4]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
ttg::base::World< WorldImplT >::World (void )
+
+inline
+
+ +

Definition at line 179 of file world.h.

+ +
+
+ +

◆ World() [2/4]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
ttg::base::World< WorldImplT >::World (std::shared_ptr< ttg::base::WorldImplBaseworld_impl)
+
+inline
+
+ +

Definition at line 181 of file world.h.

+ +
+
+ +

◆ World() [3/4]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
ttg::base::World< WorldImplT >::World (const World< WorldImplT > & other)
+
+default
+
+ +
+
+ +

◆ World() [4/4]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
ttg::base::World< WorldImplT >::World (World< WorldImplT > && other)
+
+default
+
+ +
+
+ +

◆ ~World()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
ttg::base::World< WorldImplT >::~World ()
+
+inline
+
+ +

Definition at line 189 of file world.h.

+ +
+
+

Member Function Documentation

+ +

◆ dag_off()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
void ttg::base::World< WorldImplT >::dag_off ()
+
+inline
+
+ +

Definition at line 231 of file world.h.

+ +
+
+ +

◆ dag_on()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
void ttg::base::World< WorldImplT >::dag_on (const std::string & filename)
+
+inline
+
+ +

Definition at line 230 of file world.h.

+ +
+
+ +

◆ dag_profiling()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
bool ttg::base::World< WorldImplT >::dag_profiling ()
+
+inline
+
+ +

Definition at line 232 of file world.h.

+ +
+
+ +

◆ final_task()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
virtual void ttg::base::World< WorldImplT >::final_task ()
+
+inlinevirtual
+
+ +

Definition at line 213 of file world.h.

+ +
+
+ +

◆ impl() [1/2]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
WorldImplT& ttg::base::World< WorldImplT >::impl (void )
+
+inline
+
+ +

Definition at line 216 of file world.h.

+ +
+
+ +

◆ impl() [2/2]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
const WorldImplT& ttg::base::World< WorldImplT >::impl (void ) const
+
+inline
+
+ +

Definition at line 221 of file world.h.

+ +
+
+ +

◆ is_valid()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
bool ttg::base::World< WorldImplT >::is_valid (void ) const
+
+inline
+
+ +

Definition at line 211 of file world.h.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
World& ttg::base::World< WorldImplT >::operator= (const World< WorldImplT > & other)
+
+default
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + + +
World& ttg::base::World< WorldImplT >::operator= (World< WorldImplT > && other)
+
+default
+
+ +
+
+ +

◆ profile_off()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
void ttg::base::World< WorldImplT >::profile_off ()
+
+inline
+
+ +

Definition at line 227 of file world.h.

+ +
+
+ +

◆ profile_on()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
void ttg::base::World< WorldImplT >::profile_on ()
+
+inline
+
+ +

Definition at line 226 of file world.h.

+ +
+
+ +

◆ profiling()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
bool ttg::base::World< WorldImplT >::profiling ()
+
+inline
+
+ +

Definition at line 228 of file world.h.

+ +
+
+ +

◆ rank()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
int ttg::base::World< WorldImplT >::rank () const
+
+inline
+
+ +

Definition at line 204 of file world.h.

+ +
+
+ +

◆ size()

+ +
+
+
+template<typename WorldImplT >
+ + + + + +
+ + + + + + + +
int ttg::base::World< WorldImplT >::size () const
+
+inline
+
+ +

Definition at line 198 of file world.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1base_1_1_world_impl_base-members.html b/dox-master/classttg_1_1base_1_1_world_impl_base-members.html new file mode 100644 index 000000000..227cc35ba --- /dev/null +++ b/dox-master/classttg_1_1base_1_1_world_impl_base-members.html @@ -0,0 +1,161 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::base::WorldImplBase Member List
+
+
+ +

This is the complete list of members for ttg::base::WorldImplBase, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
dag_off()ttg::base::WorldImplBaseinlinevirtual
dag_on(const std::string &filename)ttg::base::WorldImplBaseinlinevirtual
dag_profiling()ttg::base::WorldImplBaseinlinevirtual
deregister_op(ttg::TTBase *op)ttg::base::WorldImplBaseinline
destroy(void)=0ttg::base::WorldImplBasepure virtual
execute()ttg::base::WorldImplBaseinlinevirtual
fence(void)ttg::base::WorldImplBaseinline
fence_impl(void)=0ttg::base::WorldImplBaseprotectedpure virtual
final_task()ttg::base::WorldImplBaseinlinevirtual
is_valid(void) constttg::base::WorldImplBaseinline
mark_invalid()ttg::base::WorldImplBaseinlineprotected
profile_off()ttg::base::WorldImplBaseinlinevirtual
profile_on()ttg::base::WorldImplBaseinlinevirtual
profiling()ttg::base::WorldImplBaseinlinevirtual
rank()ttg::base::WorldImplBaseinline
register_callback(Callback &&callback)ttg::base::WorldImplBaseinline
register_op(ttg::TTBase *op)ttg::base::WorldImplBaseinline
register_ptr(const std::shared_ptr< T > &ptr)ttg::base::WorldImplBaseinline
register_ptr(std::unique_ptr< T > &&ptr)ttg::base::WorldImplBaseinline
register_status(const std::shared_ptr< std::promise< void >> &status_ptr)ttg::base::WorldImplBaseinline
release_ops(void)ttg::base::WorldImplBaseinlineprotected
size()ttg::base::WorldImplBaseinline
WorldImplBase(int size, int rank)ttg::base::WorldImplBaseinlineprotected
~WorldImplBase(void)ttg::base::WorldImplBaseinlinevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1base_1_1_world_impl_base.html b/dox-master/classttg_1_1base_1_1_world_impl_base.html new file mode 100644 index 000000000..7bd672afa --- /dev/null +++ b/dox-master/classttg_1_1base_1_1_world_impl_base.html @@ -0,0 +1,917 @@ + + + + + + + + + + + ttg: ttg::base::WorldImplBase Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::base::WorldImplBase Class Referenceabstract
+
+
+
+Inheritance diagram for ttg::base::WorldImplBase:
+
+
+ + +ttg_madness::WorldImpl +ttg_parsec::WorldImpl + +
+

Documentation

+

Base class for implementation-specific Worlds.

+ +

Definition at line 33 of file world.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual ~WorldImplBase (void)
 
int size ()
 
int rank ()
 
virtual void destroy (void)=0
 
template<typename T >
void register_ptr (const std::shared_ptr< T > &ptr)
 
template<typename T >
void register_ptr (std::unique_ptr< T > &&ptr)
 
void register_status (const std::shared_ptr< std::promise< void >> &status_ptr)
 
template<typename Callback >
void register_callback (Callback &&callback)
 
void fence (void)
 
virtual void execute ()
 
void register_op (ttg::TTBase *op)
 
void deregister_op (ttg::TTBase *op)
 
bool is_valid (void) const
 
virtual void final_task ()
 
virtual void profile_on ()
 
virtual void profile_off ()
 
virtual bool profiling ()
 
virtual void dag_on (const std::string &filename)
 
virtual void dag_off ()
 
virtual bool dag_profiling ()
 
+ + + + + + + + + +

+Protected Member Functions

void mark_invalid ()
 
virtual void fence_impl (void)=0
 
void release_ops (void)
 
 WorldImplBase (int size, int rank)
 
+

Constructor & Destructor Documentation

+ +

◆ WorldImplBase()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ttg::base::WorldImplBase::WorldImplBase (int size,
int rank 
)
+
+inlineprotected
+
+ +

Definition at line 61 of file world.h.

+ +
+
+ +

◆ ~WorldImplBase()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual ttg::base::WorldImplBase::~WorldImplBase (void )
+
+inlinevirtual
+
+ +

Definition at line 66 of file world.h.

+ +
+
+

Member Function Documentation

+ +

◆ dag_off()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg::base::WorldImplBase::dag_off ()
+
+inlinevirtual
+
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 163 of file world.h.

+ +
+
+ +

◆ dag_on()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg::base::WorldImplBase::dag_on (const std::string & filename)
+
+inlinevirtual
+
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 162 of file world.h.

+ +
+
+ +

◆ dag_profiling()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool ttg::base::WorldImplBase::dag_profiling ()
+
+inlinevirtual
+
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 164 of file world.h.

+ +
+
+ +

◆ deregister_op()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::deregister_op (ttg::TTBaseop)
+
+inline
+
+

Deregister a TT from this world. TTs deregister themselves during destruction to avoid dangling references.

+ +

Definition at line 144 of file world.h.

+ +
+
+ +

◆ destroy()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg::base::WorldImplBase::destroy (void )
+
+pure virtual
+
+ +

Implemented in ttg_madness::WorldImpl, and ttg_parsec::WorldImpl.

+ +
+
+ +

◆ execute()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg::base::WorldImplBase::execute ()
+
+inlinevirtual
+
+

Start the execution of tasks in this world. The call to execute() will return immediately, i.e., it will not wait for all tasks to complete executing.

+
See also
fence
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 128 of file world.h.

+ +
+
+ +

◆ fence()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::fence (void )
+
+inline
+
+

Wait for all tasks in this world to complete execution. This is a synchronizing call, even if no active tasks exist (i.e., fence() behaves as a barrier).

+ +

Definition at line 109 of file world.h.

+ +
+
+ +

◆ fence_impl()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg::base::WorldImplBase::fence_impl (void )
+
+protectedpure virtual
+
+ +

Implemented in ttg_parsec::WorldImpl, and ttg_madness::WorldImpl.

+ +
+
+ +

◆ final_task()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg::base::WorldImplBase::final_task ()
+
+inlinevirtual
+
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 156 of file world.h.

+ +
+
+ +

◆ is_valid()

+ +
+
+ + + + + +
+ + + + + + + + +
bool ttg::base::WorldImplBase::is_valid (void ) const
+
+inline
+
+

Whether this world is valid. A word is marked as invalid during destruction and/or finalization of TTG.

+ +

Definition at line 154 of file world.h.

+ +
+
+ +

◆ mark_invalid()

+ +
+
+ + + + + +
+ + + + + + + +
void ttg::base::WorldImplBase::mark_invalid ()
+
+inlineprotected
+
+ +

Definition at line 50 of file world.h.

+ +
+
+ +

◆ profile_off()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg::base::WorldImplBase::profile_off ()
+
+inlinevirtual
+
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 159 of file world.h.

+ +
+
+ +

◆ profile_on()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg::base::WorldImplBase::profile_on ()
+
+inlinevirtual
+
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 158 of file world.h.

+ +
+
+ +

◆ profiling()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool ttg::base::WorldImplBase::profiling ()
+
+inlinevirtual
+
+ +

Reimplemented in ttg_parsec::WorldImpl.

+ +

Definition at line 160 of file world.h.

+ +
+
+ +

◆ rank()

+ +
+
+ + + + + +
+ + + + + + + +
int ttg::base::WorldImplBase::rank ()
+
+inline
+
+

Returns the rank of the calling process in this World.

+ +

Definition at line 78 of file world.h.

+ +
+
+ +

◆ register_callback()

+ +
+
+
+template<typename Callback >
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::register_callback (Callback && callback)
+
+inline
+
+ +

Definition at line 99 of file world.h.

+ +
+
+ +

◆ register_op()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::register_op (ttg::TTBaseop)
+
+inline
+
+

Register a TT with this world. All registered TTs will be destroyed during destruction of this world.

+ +

Definition at line 135 of file world.h.

+ +
+
+ +

◆ register_ptr() [1/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::register_ptr (const std::shared_ptr< T > & ptr)
+
+inline
+
+ +

Definition at line 85 of file world.h.

+ +
+
+ +

◆ register_ptr() [2/2]

+ +
+
+
+template<typename T >
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::register_ptr (std::unique_ptr< T > && ptr)
+
+inline
+
+ +

Definition at line 90 of file world.h.

+ +
+
+ +

◆ register_status()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::register_status (const std::shared_ptr< std::promise< void >> & status_ptr)
+
+inline
+
+ +

Definition at line 94 of file world.h.

+ +
+
+ +

◆ release_ops()

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::base::WorldImplBase::release_ops (void )
+
+inlineprotected
+
+ +

Definition at line 54 of file world.h.

+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
int ttg::base::WorldImplBase::size ()
+
+inline
+
+

Returns the number of processes that belong this World.

+ +

Definition at line 71 of file world.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1base_1_1_world_impl_base.png b/dox-master/classttg_1_1base_1_1_world_impl_base.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c0307c67891339494f92be7cee9ae4fa791450 GIT binary patch literal 912 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-12~w0Ws402SiQraZ}_j; z&&=_KA$qPrbV^m*Cd2+`%O*taXAl>1;%H_x(0hEeIFW%ZMxudHoGsx%E2G4Y_6^6w zWxu3;SkEmKD|&sgewdSZ7!!zQ?)w1|c86}g3_W)s)rNJ!qOw4_Q&l$t zAKvDU{=e_*;yIJ=3r+Jqx%g1I_%`|M+ds(q+V*qR5$zimrT;xDw{1<* z%~xS-Ce1!sDi%6#Q)p54KgLtJyN%E8Yd-W{@Y`$SMf=~(Z3#8zd!Y4i*@m1XhM1G` zqHG^Bk-Sv^^rf4)m=i}b;|F;IMhk}89R>|`%TD$(mOMVh@T>AiQ8L5c9R>`->$ndz za5Eb`IK;pMp@3=wbZHazA%BdO=3&@n!7)l7|| z#7QP1dOnkYHhLO8IHYp2fqSwF^UMtf`IElP>FeI7=eea^&OXDwL~D)tLKWFhn`89e zq#ru;=lyHz-D&sc*PnZS>E?0w(t_VPO-r+xRuOu2XhqNxoYZb6h#6 z`rfR<^;71~)#US1ynSk~h=%@z>G$;CNhSIodKAcRxb9S`)|!g?o3`$n-!8j8e7cv_ zQ}lS>+C!&WBKN&X5B_$1XU?H(Hv^`{^KA?M#C#}dimvCZ{gb}Etvxi4XKihT=&_(5 z-#J#_sx;K?yY+ABp;LM{O&TWu3%FJ%v?jxN`u7dZ(@I0vx!u^L6OtWZrW)*>6Fw_P zDWr1K)r{;-j#}H#g?>_bxKHApcGYIDxQVO9!uGLwR`H*`?AI!L_j7e*zqa`yv6aQg z&+Oiz@>eJcVeoYIb6Mw<&;$UzI+iW~ literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1detail_1_1_backtrace-members.html b/dox-master/classttg_1_1detail_1_1_backtrace-members.html new file mode 100644 index 000000000..55662fe24 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_backtrace-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::Backtrace Member List
+
+
+ +

This is the complete list of members for ttg::detail::Backtrace, including all inherited members.

+ + + + + +
Backtrace(const std::string &prefix=std::string(""))ttg::detail::Backtrace
Backtrace(const Backtrace &)ttg::detail::Backtrace
empty() constttg::detail::Backtraceinline
str(const size_t nframes_to_skip=0) constttg::detail::Backtrace
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_backtrace.html b/dox-master/classttg_1_1detail_1_1_backtrace.html new file mode 100644 index 000000000..ebb513516 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_backtrace.html @@ -0,0 +1,268 @@ + + + + + + + + + + + ttg: ttg::detail::Backtrace Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::Backtrace Class Reference
+
+
+

Documentation

+

Creates a backtrace of a running program/thread. Example of use:

void make_omelet(int num_eggs) {
+
if (num_eggs < 1) {
+
ttg::detail::Backtrace bt("breakfast fail:");
+
throw std::runtime_error(bt.str());
+
}
+
stove.on();
+
// etc.
+
}
+ +
+

Definition at line 50 of file backtrace.h.

+
+ + + + + + + + + +

+Public Member Functions

 Backtrace (const std::string &prefix=std::string(""))
 
 Backtrace (const Backtrace &)
 
bool empty () const
 
std::string str (const size_t nframes_to_skip=0) const
 
+

Constructor & Destructor Documentation

+ +

◆ Backtrace() [1/2]

+ +
+
+ + + + + + + + +
ttg::detail::Backtrace::Backtrace (const std::string & prefix = std::string(""))
+
+
Parameters
+ + +
prefixwill be prepended to each line
+
+
+ +

Definition at line 51 of file backtrace.cpp.

+ +
+
+ +

◆ Backtrace() [2/2]

+ +
+
+ + + + + + + + +
ttg::detail::Backtrace::Backtrace (const Backtraceother)
+
+ +

Definition at line 152 of file backtrace.cpp.

+ +
+
+

Member Function Documentation

+ +

◆ empty()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::detail::Backtrace::empty () const
+
+inline
+
+
Returns
true if did not get a backtrace
+ +

Definition at line 61 of file backtrace.h.

+ +
+
+ +

◆ str()

+ +
+
+ + + + + + + + +
std::string ttg::detail::Backtrace::str (const size_t nframes_to_skip = 0) const
+
+

converts to a string

Parameters
+ + +
nframes_to_skiphow many frames to skip
+
+
+
Returns
string representation of Backtrace, with each frame on a separate line, from bottom to top
+ +

Definition at line 154 of file backtrace.cpp.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_f_n_vhasher-members.html b/dox-master/classttg_1_1detail_1_1_f_n_vhasher-members.html new file mode 100644 index 000000000..e372ededa --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_f_n_vhasher-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::FNVhasher Member List
+
+
+ +

This is the complete list of members for ttg::detail::FNVhasher, including all inherited members.

+ + + + + +
initial_value()ttg::detail::FNVhasherinlinestatic
update(std::byte byte) noexceptttg::detail::FNVhasherinline
update(size_t n, const std::byte *bytes) noexceptttg::detail::FNVhasherinline
value() const noexceptttg::detail::FNVhasherinline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_f_n_vhasher.html b/dox-master/classttg_1_1detail_1_1_f_n_vhasher.html new file mode 100644 index 000000000..c3924d6d6 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_f_n_vhasher.html @@ -0,0 +1,292 @@ + + + + + + + + + + + ttg: ttg::detail::FNVhasher Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::FNVhasher Class Reference
+
+
+

Documentation

+

byte-wise hasher

+ +

Definition at line 12 of file hash.h.

+
+ + + + + + + + +

+Public Member Functions

void update (std::byte byte) noexcept
 
void update (size_t n, const std::byte *bytes) noexcept
 Updates the hash with an additional n bytes. More...
 
auto value () const noexcept
 
+ + + +

+Static Public Member Functions

static result_type initial_value ()
 
+

Member Function Documentation

+ +

◆ initial_value()

+ +
+
+ + + + + +
+ + + + + + + +
static result_type ttg::detail::FNVhasher::initial_value ()
+
+inlinestatic
+
+
Returns
the initial hash value
+ +

Definition at line 33 of file hash.h.

+ +
+
+ +

◆ update() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::detail::FNVhasher::update (size_t n,
const std::byte * bytes 
)
+
+inlinenoexcept
+
+ +

Updates the hash with an additional n bytes.

+ +

Definition at line 25 of file hash.h.

+ +
+
+ +

◆ update() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
void ttg::detail::FNVhasher::update (std::byte byte)
+
+inlinenoexcept
+
+

Updates the hash with one byte

Parameters
+ + +
[in]bytethe input value
+
+
+ +

Definition at line 22 of file hash.h.

+ +
+
+ +

◆ value()

+ +
+
+ + + + + +
+ + + + + + + +
auto ttg::detail::FNVhasher::value () const
+
+inlinenoexcept
+
+
Returns
the value of the hash of the stream
+ +

Definition at line 30 of file hash.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64-members.html b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64-members.html new file mode 100644 index 000000000..78a242469 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64-members.html @@ -0,0 +1,164 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::MemoryWatchpoint_x86_64 Member List
+
+
+ +

This is the complete list of members for ttg::detail::MemoryWatchpoint_x86_64, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
address() constttg::detail::MemoryWatchpoint_x86_64inline
BreakState enum namettg::detail::MemoryWatchpoint_x86_64
Condition enum namettg::detail::MemoryWatchpoint_x86_64
condition() constttg::detail::MemoryWatchpoint_x86_64inline
debug_register() constttg::detail::MemoryWatchpoint_x86_64inline
DebugRegister enum namettg::detail::MemoryWatchpoint_x86_64
kBreakStateMask enum valuettg::detail::MemoryWatchpoint_x86_64
kByte enum valuettg::detail::MemoryWatchpoint_x86_64
kConditionMask enum valuettg::detail::MemoryWatchpoint_x86_64
kDisabled enum valuettg::detail::MemoryWatchpoint_x86_64
kDR0 enum valuettg::detail::MemoryWatchpoint_x86_64
kDR1 enum valuettg::detail::MemoryWatchpoint_x86_64
kDR2 enum valuettg::detail::MemoryWatchpoint_x86_64
kDR3 enum valuettg::detail::MemoryWatchpoint_x86_64
kEnabledGlobally enum valuettg::detail::MemoryWatchpoint_x86_64
kEnabledLocally enum valuettg::detail::MemoryWatchpoint_x86_64
kHalfWord enum valuettg::detail::MemoryWatchpoint_x86_64
kSizeMask enum valuettg::detail::MemoryWatchpoint_x86_64
kWhenExecuted enum valuettg::detail::MemoryWatchpoint_x86_64
kWhenWritten enum valuettg::detail::MemoryWatchpoint_x86_64
kWhenWrittenOrRead enum valuettg::detail::MemoryWatchpoint_x86_64
kWord enum valuettg::detail::MemoryWatchpoint_x86_64
MemoryWatchpoint_x86_64(void *addr, Size size, Condition cond, DebugRegister dr, const pthread_t *thread)ttg::detail::MemoryWatchpoint_x86_64inline
MemoryWatchPool classttg::detail::MemoryWatchpoint_x86_64friend
size() constttg::detail::MemoryWatchpoint_x86_64inline
Size enum namettg::detail::MemoryWatchpoint_x86_64
~MemoryWatchpoint_x86_64()ttg::detail::MemoryWatchpoint_x86_64inline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64.html b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64.html new file mode 100644 index 000000000..c5cf63022 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64.html @@ -0,0 +1,527 @@ + + + + + + + + + + + ttg: ttg::detail::MemoryWatchpoint_x86_64 Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::MemoryWatchpoint_x86_64 Class Reference
+
+
+

Documentation

+

MemoryWatchpoint represents a hardware watchpoint for a memory location Implements a memory watchpoint on x86 ... only implemented for macOS so far this is a slightly tweaked version of https://m.habrahabr.ru/post/103073/ see also http://www.sandpile.org/x86/drx.htm for the x86 debugging register map.

+ +

Definition at line 50 of file bug.h.

+
+ + + + +

+Classes

class  Pool
 a singleton pool of MemoryWatchpoint objects More...
 
+ + + + + + + + + +

+Public Types

enum  DebugRegister { kDR0 = 0 +, kDR1 = 1 +, kDR2 = 2 +, kDR3 = 3 + }
 
enum  Size { kByte = 0 +, kHalfWord = 1 +, kWord = 3 +, kSizeMask = 3 + }
 
enum  BreakState { kDisabled = 0 +, kEnabledLocally = 1 +, kEnabledGlobally = 2 +, kBreakStateMask = 3 + }
 
enum  Condition { kWhenExecuted = 0 +, kWhenWritten = 1 +, kWhenWrittenOrRead = 3 +, kConditionMask = 3 + }
 
+ + + + + + + + + + + + + + +

+Public Member Functions

 MemoryWatchpoint_x86_64 (void *addr, Size size, Condition cond, DebugRegister dr, const pthread_t *thread)
 creates a MemoryWatchpoint watching memory window [addr,addr+size) for condition cond from threads threads More...
 
 ~MemoryWatchpoint_x86_64 ()
 
void * address () const
 
Size size () const
 
Condition condition () const
 
DebugRegister debug_register () const
 
+ + + +

+Friends

class MemoryWatchPool
 
+

Member Enumeration Documentation

+ +

◆ BreakState

+ +
+
+ + + + + +
Enumerator
kDisabled 
kEnabledLocally 
kEnabledGlobally 
kBreakStateMask 
+ +

Definition at line 64 of file bug.h.

+ +
+
+ +

◆ Condition

+ +
+
+ + + + + +
Enumerator
kWhenExecuted 
kWhenWritten 
kWhenWrittenOrRead 
kConditionMask 
+ +

Definition at line 71 of file bug.h.

+ +
+
+ +

◆ DebugRegister

+ +
+
+ + + + + +
Enumerator
kDR0 
kDR1 
kDR2 
kDR3 
+ +

Definition at line 54 of file bug.h.

+ +
+
+ +

◆ Size

+ +
+
+ + + + + +
Enumerator
kByte 
kHalfWord 
kWord 
kSizeMask 
+ +

Definition at line 56 of file bug.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ MemoryWatchpoint_x86_64()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg::detail::MemoryWatchpoint_x86_64::MemoryWatchpoint_x86_64 (void * addr,
Size size,
Condition cond,
DebugRegister dr,
const pthread_t * thread 
)
+
+inline
+
+ +

creates a MemoryWatchpoint watching memory window [addr,addr+size) for condition cond from threads threads

+
Parameters
+ + + + + + +
[in]addrthe beginning of the memory window
[in]sizethe size of the memory window
[in]condthe condition to watch for
[in]drthe debugging register to use
[in]threadthe thread to watch
+
+
+
Exceptions
+ + +
std::runtime_errorif setting the watchpoint fails (either due to the lack of available registers or another reason)
+
+
+ +

Definition at line 184 of file bug.h.

+ +
+
+ +

◆ ~MemoryWatchpoint_x86_64()

+ +
+
+ + + + + +
+ + + + + + + +
ttg::detail::MemoryWatchpoint_x86_64::~MemoryWatchpoint_x86_64 ()
+
+inline
+
+ +

Definition at line 189 of file bug.h.

+ +
+
+

Member Function Documentation

+ +

◆ address()

+ +
+
+ + + + + +
+ + + + + + + +
void* ttg::detail::MemoryWatchpoint_x86_64::address () const
+
+inline
+
+ +

Definition at line 191 of file bug.h.

+ +
+
+ +

◆ condition()

+ +
+
+ + + + + +
+ + + + + + + +
Condition ttg::detail::MemoryWatchpoint_x86_64::condition () const
+
+inline
+
+ +

Definition at line 193 of file bug.h.

+ +
+
+ +

◆ debug_register()

+ +
+
+ + + + + +
+ + + + + + + +
DebugRegister ttg::detail::MemoryWatchpoint_x86_64::debug_register () const
+
+inline
+
+ +

Definition at line 194 of file bug.h.

+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
Size ttg::detail::MemoryWatchpoint_x86_64::size () const
+
+inline
+
+ +

Definition at line 192 of file bug.h.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ MemoryWatchPool

+ +
+
+ + + + + +
+ + + + +
friend class MemoryWatchPool
+
+friend
+
+ +

Definition at line 210 of file bug.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool-members.html b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool-members.html new file mode 100644 index 000000000..e948d660a --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool-members.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::MemoryWatchpoint_x86_64::Pool Member List
+
+
+ +

This is the complete list of members for ttg::detail::MemoryWatchpoint_x86_64::Pool, including all inherited members.

+ + + + + + + + +
clear(void *addr, const pthread_t *thread)ttg::detail::MemoryWatchpoint_x86_64::Poolinline
find(void *addr, const pthread_t *thread)ttg::detail::MemoryWatchpoint_x86_64::Poolinline
initialize_instance(const std::vector< const pthread_t * > &threads)ttg::detail::MemoryWatchpoint_x86_64::Poolinlinestatic
instance()ttg::detail::MemoryWatchpoint_x86_64::Poolinlinestatic
nwatchpoints_per_threadttg::detail::MemoryWatchpoint_x86_64::Poolstatic
set(void *addr, Size size, Condition cond, const pthread_t *thread)ttg::detail::MemoryWatchpoint_x86_64::Poolinline
~Pool()=defaultttg::detail::MemoryWatchpoint_x86_64::Pool
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html new file mode 100644 index 000000000..473e98a21 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html @@ -0,0 +1,443 @@ + + + + + + + + + + + ttg: ttg::detail::MemoryWatchpoint_x86_64::Pool Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::MemoryWatchpoint_x86_64::Pool Class Reference
+
+
+

Documentation

+

a singleton pool of MemoryWatchpoint objects

+ +

Definition at line 79 of file bug.h.

+
+ + + + + + + + + +

+Public Member Functions

 ~Pool ()=default
 
Poolset (void *addr, Size size, Condition cond, const pthread_t *thread)
 
MemoryWatchpoint_x86_64find (void *addr, const pthread_t *thread)
 
Poolclear (void *addr, const pthread_t *thread)
 
+ + + + + + +

+Static Public Member Functions

static void initialize_instance (const std::vector< const pthread_t * > &threads)
 
static std::shared_ptr< Poolinstance ()
 accesses the unique pool; asserts that the default instance has been initialized by calling initialize() More...
 
+ + + +

+Static Public Attributes

static constexpr const size_t nwatchpoints_per_thread = 4
 
+

Constructor & Destructor Documentation

+ +

◆ ~Pool()

+ +
+
+ + + + + +
+ + + + + + + +
ttg::detail::MemoryWatchpoint_x86_64::Pool::~Pool ()
+
+default
+
+ +
+
+

Member Function Documentation

+ +

◆ clear()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
Pool& ttg::detail::MemoryWatchpoint_x86_64::Pool::clear (void * addr,
const pthread_t * thread 
)
+
+inline
+
+

Clear a watchpoint

Parameters
+ + + +
addraddress that is watched
threadpointer to the pthread_t
+
+
+ +

Definition at line 142 of file bug.h.

+ +
+
+ +

◆ find()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
MemoryWatchpoint_x86_64* ttg::detail::MemoryWatchpoint_x86_64::Pool::find (void * addr,
const pthread_t * thread 
)
+
+inline
+
+

Find watchpoint in thread thread and pointing to addr

Parameters
+ + + +
addrbase address to watch
threadpointer to the pthread_t
+
+
+
Returns
the pointer to the MemoryWatchpoint object; nullptr if such a watchpoint does not exist
+ +

Definition at line 130 of file bug.h.

+ +
+
+ +

◆ initialize_instance()

+ +
+
+ + + + + +
+ + + + + + + + +
static void ttg::detail::MemoryWatchpoint_x86_64::Pool::initialize_instance (const std::vector< const pthread_t * > & threads)
+
+inlinestatic
+
+

Constructs the unique pool from a set of thread IDs

Parameters
+ + +
threadsa vector of pthread_t obtained via pthread_self (for the main thread) and pthread_create for other threads; only pointers to these unique objects can be used in subsequent calls.
+
+
+ +

Definition at line 89 of file bug.h.

+ +
+
+ +

◆ instance()

+ +
+
+ + + + + +
+ + + + + + + +
static std::shared_ptr<Pool> ttg::detail::MemoryWatchpoint_x86_64::Pool::instance ()
+
+inlinestatic
+
+ +

accesses the unique pool; asserts that the default instance has been initialized by calling initialize()

+ +

Definition at line 94 of file bug.h.

+ +
+
+ +

◆ set()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Pool& ttg::detail::MemoryWatchpoint_x86_64::Pool::set (void * addr,
Size size,
Condition cond,
const pthread_t * thread 
)
+
+inline
+
+

Sets a watchpoint in thread thread and pointing to size bytes starting at addr if cond holds

Parameters
+ + + + + +
addrbase address to watch
sizehow many bytes to watch starting at address addr
condcondition that need to hold to trigger the watchpoint
threadpthread_t object
+
+
+
Exceptions
+ + +
std::runtime_errorif setting memory watchpoint failed
+
+
+
Returns
reference to this
+ +

Definition at line 107 of file bug.h.

+ +
+
+

Member Data Documentation

+ +

◆ nwatchpoints_per_thread

+ +
+
+ + + + + +
+ + + + +
constexpr const size_t ttg::detail::MemoryWatchpoint_x86_64::Pool::nwatchpoints_per_thread = 4
+
+staticconstexpr
+
+ +

Definition at line 81 of file bug.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_traverse-members.html b/dox-master/classttg_1_1detail_1_1_traverse-members.html new file mode 100644 index 000000000..04a94b1e4 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_traverse-members.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::Traverse Member List
+
+
+ +

This is the complete list of members for ttg::detail::Traverse, including all inherited members.

+ + + + + + + + + +
infunc(TerminalBase *in)=0ttg::detail::Traversepure virtual
outfunc(TerminalBase *out)=0ttg::detail::Traversepure virtual
reset()ttg::detail::Traverseinline
traverse(TTBase *tt)ttg::detail::Traverseinline
traverse(TT *tt)ttg::detail::Traverseinline
traverse(const std::shared_ptr< TTBase > &tt)ttg::detail::Traverseinline
traverse(const std::unique_ptr< TT, Deleter > &tt)ttg::detail::Traverseinline
ttfunc(TTBase *tt)=0ttg::detail::Traversepure virtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_traverse.html b/dox-master/classttg_1_1detail_1_1_traverse.html new file mode 100644 index 000000000..3eaf2036a --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1_traverse.html @@ -0,0 +1,413 @@ + + + + + + + + + + + ttg: ttg::detail::Traverse Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::Traverse Class Referenceabstract
+
+
+
+Inheritance diagram for ttg::detail::Traverse:
+
+
+ + +ttg::Dot +ttg::Traverse< TTVisitor, InVisitor, OutVisitor > + +
+

Documentation

+

Traverses a graph of TTs in depth-first manner following out edges.

+ +

Definition at line 14 of file traverse.h.

+
+ + + +

+Classes

struct  null_visitor
 
+ + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

virtual void ttfunc (TTBase *tt)=0
 
virtual void infunc (TerminalBase *in)=0
 
virtual void outfunc (TerminalBase *out)=0
 
void reset ()
 
bool traverse (TTBase *tt)
 
template<typename TT >
std::enable_if_t< std::is_base_of_v< TTBase, TT > &&!std::is_same_v< TT, TTBase >, bool > traverse (TT *tt)
 
template<typename TT >
std::enable_if_t< std::is_base_of_v< TTBase, TT >, bool > traverse (const std::shared_ptr< TTBase > &tt)
 
template<typename TT , typename Deleter >
std::enable_if_t< std::is_base_of_v< TTBase, TT >, bool > traverse (const std::unique_ptr< TT, Deleter > &tt)
 
+

Member Function Documentation

+ +

◆ infunc()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg::detail::Traverse::infunc (TerminalBasein)
+
+pure virtual
+
+ +

Implemented in ttg::Dot.

+ +
+
+ +

◆ outfunc()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg::detail::Traverse::outfunc (TerminalBaseout)
+
+pure virtual
+
+ +

Implemented in ttg::Dot.

+ +
+
+ +

◆ reset()

+ +
+
+ + + + + +
+ + + + + + + +
void ttg::detail::Traverse::reset ()
+
+inline
+
+ +

Definition at line 26 of file traverse.h.

+ +
+
+ +

◆ traverse() [1/4]

+ +
+
+
+template<typename TT >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<std::is_base_of_v<TTBase, TT>, bool> ttg::detail::Traverse::traverse (const std::shared_ptr< TTBase > & tt)
+
+inline
+
+ +

Definition at line 113 of file traverse.h.

+ +
+
+ +

◆ traverse() [2/4]

+ +
+
+
+template<typename TT , typename Deleter >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<std::is_base_of_v<TTBase, TT>, bool> ttg::detail::Traverse::traverse (const std::unique_ptr< TT, Deleter > & tt)
+
+inline
+
+ +

Definition at line 120 of file traverse.h.

+ +
+
+ +

◆ traverse() [3/4]

+ +
+
+
+template<typename TT >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<std::is_base_of_v<TTBase, TT> && !std::is_same_v<TT, TTBase>, bool> ttg::detail::Traverse::traverse (TTtt)
+
+inline
+
+ +

Definition at line 106 of file traverse.h.

+ +
+
+ +

◆ traverse() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
bool ttg::detail::Traverse::traverse (TTBasett)
+
+inline
+
+ +

Definition at line 30 of file traverse.h.

+ +
+
+ +

◆ ttfunc()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg::detail::Traverse::ttfunc (TTBasett)
+
+pure virtual
+
+ +

Implemented in ttg::Dot.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1_traverse.png b/dox-master/classttg_1_1detail_1_1_traverse.png new file mode 100644 index 0000000000000000000000000000000000000000..2f68f2c9ce13537701f6ba60bd6a79994d8c0785 GIT binary patch literal 1217 zcmeAS@N?(olHy`uVBq!ia0y~yU@`)-12~w0q{+s7VIU{ePr z62U(m++CTHwd7x{@JKk5{pqJnY5s$+yWidYdAOwNptWXd!kODsU)swg?(~wB_&llR z+|@^uk4?JV{`An#^T*a*zWv@>fBN;j>Ds5AAN-tRWbkZiXj0+I z|F4g6=9L-=?c&;-`|8&^l;2-=s^od}YM*j{P3HQu^R+k2M4tZmwb^L->E(-G+<9BG z^e5XqZ%yXpdx5Fjz9xsyoLV+xpS8{WAhu(BB4%zC(2=hS%nL~SdwIiG!Fg^#b#YUE zrRQ2$URv}1X-DL_Y3s|+@~)Pj-n{Z-l4a|)=9hnXZKi|tTFw8T@NX$kPi3mzdTZ+k zsUWv5{kiAOn}+Fur?3Ww&r@buQO=%~H47FiH5y(v@jYtd>)Xu4caB{o;K2JSMga$M zYigz#2ORK)u%&{}IWTSyIOV{|D)J#`)iE#~vkJn;LLWHz^T&b*kCWv!vZ4>`hFAqS zF!l%j=5V8gC8II7a^CZ#dC!-HT79-TuYATcXv_MrnJSvUO0=e^ywpgYl;WZ}Sw-4w zrix_XDV39LL290EQ;a+}Eu7*xN$`De+OIs%Yi6~3e??Dva(-vnv#L$^i{GZrRxvmB z4Zb|>;O*sajugwDj=k&0e>b{uHoL_FBWeG>HD~tEzjtZx&x_I8lT+GdQ}bqB^V{>C z_d{Chx!GSf9o@w;%{#y7nb*v{C)Zux>+|(c=A+Y7QyWxXW=xITU3b6c)t!_LwePN9 zW#47GXiol~3gt;_1ypEi6HyJEihdxopbLd2hZYyxNoTXJ?H6rL7Z}5Cgl)_==rD4e6|t) mY_ooCVA{OrJ72{8XLuf&f2CgN^J-vu!{F)a=d#Wzp$P!fiC4P- literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive-members.html b/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive-members.html new file mode 100644 index 000000000..359705381 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive-members.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::boost_optimized_iarchive< StreamOrStreambuf > Member List
+
+
+ +

This is the complete list of members for ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
base_type typedefttg::detail::boost_optimized_iarchive< StreamOrStreambuf >
boost::archive::detail::common_iarchive< boost_optimized_iarchive > classttg::detail::boost_optimized_iarchive< StreamOrStreambuf >friend
boost::archive::save_access classttg::detail::boost_optimized_iarchive< StreamOrStreambuf >friend
boost_optimized_iarchive()ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
boost_optimized_iarchive(StreamOrStreambuf sbuf)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
boost_optimized_iarchive(Arg &&arg)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load(T &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load(bool &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_array(boost::serialization::array_wrapper< ValueType > &a, unsigned int)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_binary(void *address, std::size_t count)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_object(void *x, const boost::archive::detail::basic_oserializer &bos)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_override(T &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_override(boost::archive::class_id_optional_type &)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_override(boost::archive::version_type &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_override(boost::serialization::item_version_type &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_override(boost::archive::class_id_type &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
load_override(boost::archive::class_id_reference_type &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
operator&(T &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
operator>>(T &t)ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
pbase_derived_from_stdstreambufttg::detail::boost_optimized_iarchive< StreamOrStreambuf >static
pbase_type typedefttg::detail::boost_optimized_iarchive< StreamOrStreambuf >
stream() constttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
streambuf() constttg::detail::boost_optimized_iarchive< StreamOrStreambuf >inline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive.html b/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive.html new file mode 100644 index 000000000..c4c38e8bf --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive.html @@ -0,0 +1,931 @@ + + + + + + + + + + + ttg: ttg::detail::boost_optimized_iarchive< StreamOrStreambuf > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::boost_optimized_iarchive< StreamOrStreambuf > Class Template Reference
+
+
+
+Inheritance diagram for ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >:
+
+
+ +
+

Documentation

+

template<typename StreamOrStreambuf>
+class ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >

+ +

optimized data-only deserializer for boost_optimized_oarchive

+ +

Definition at line 249 of file archive.h.

+
+ + + + + +

+Public Types

using pbase_type = StreamOrStreambuf
 
using base_type = boost::archive::binary_iarchive_impl< boost_optimized_iarchive, std::ostream::char_type, std::ostream::traits_type >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 boost_optimized_iarchive ()
 
 boost_optimized_iarchive (StreamOrStreambuf sbuf)
 
template<typename Arg >
 boost_optimized_iarchive (Arg &&arg)
 
void load_object (void *x, const boost::archive::detail::basic_oserializer &bos)
 
template<class T >
auto & operator>> (T &t)
 
template<class T >
auto & operator& (T &t)
 
const auto & streambuf () const
 
const auto & stream () const
 
template<class T >
void load_override (T &t)
 
void load_override (boost::archive::class_id_optional_type &)
 
void load_override (boost::archive::version_type &t)
 
void load_override (boost::serialization::item_version_type &t)
 
void load_override (boost::archive::class_id_type &t)
 
void load_override (boost::archive::class_id_reference_type &t)
 
template<class T >
void load (T &t)
 
void load (bool &t)
 
template<class ValueType >
void load_array (boost::serialization::array_wrapper< ValueType > &a, unsigned int)
 
void load_binary (void *address, std::size_t count)
 
+ + + +

+Static Public Attributes

static constexpr bool pbase_derived_from_stdstreambuf = std::is_base_of_v<std::streambuf, pbase_type>
 
+ + + + + +

+Friends

class boost::archive::save_access
 
class boost::archive::detail::common_iarchive< boost_optimized_iarchive >
 
+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + +
using ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::base_type = boost::archive::binary_iarchive_impl<boost_optimized_iarchive, std::ostream::char_type, std::ostream::traits_type>
+
+ +

Definition at line 255 of file archive.h.

+ +
+
+ +

◆ pbase_type

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + +
using ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::pbase_type = StreamOrStreambuf
+
+ +

Definition at line 254 of file archive.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ boost_optimized_iarchive() [1/3]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + +
ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::boost_optimized_iarchive ()
+
+inline
+
+ +

Definition at line 271 of file archive.h.

+ +
+
+ +

◆ boost_optimized_iarchive() [2/3]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::boost_optimized_iarchive (StreamOrStreambuf sbuf)
+
+inline
+
+ +

Definition at line 274 of file archive.h.

+ +
+
+ +

◆ boost_optimized_iarchive() [3/3]

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<typename Arg >
+ + + + + +
+ + + + + + + + +
ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::boost_optimized_iarchive (Arg && arg)
+
+inline
+
+ +

Definition at line 279 of file archive.h.

+ +
+
+

Member Function Documentation

+ +

◆ load() [1/2]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load (bool & t)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_iprimitive<Archive>

+ +

Definition at line 316 of file archive.h.

+ +
+
+ +

◆ load() [2/2]

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load (T & t)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_iprimitive<Archive>

+ +

Definition at line 308 of file archive.h.

+ +
+
+ +

◆ load_array()

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class ValueType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_array (boost::serialization::array_wrapper< ValueType > & a,
unsigned int  
)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_iprimitive<Archive>

+ +

Definition at line 327 of file archive.h.

+ +
+
+ +

◆ load_binary()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_binary (void * address,
std::size_t count 
)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_iprimitive<Archive>

+ +

Definition at line 332 of file archive.h.

+ +
+
+ +

◆ load_object()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_object (void * x,
const boost::archive::detail::basic_oserializer & bos 
)
+
+inline
+
+ +

Definition at line 301 of file archive.h.

+ +
+
+ +

◆ load_override() [1/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_override (boost::archive::class_id_optional_type & )
+
+inline
+
+

these provide optimized implementation that's called by base_type::load_override

+ +

Definition at line 291 of file archive.h.

+ +
+
+ +

◆ load_override() [2/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_override (boost::archive::class_id_reference_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::load_override

+ +

Definition at line 297 of file archive.h.

+ +
+
+ +

◆ load_override() [3/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_override (boost::archive::class_id_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::load_override

+ +

Definition at line 296 of file archive.h.

+ +
+
+ +

◆ load_override() [4/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_override (boost::archive::version_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::load_override

+ +

Definition at line 293 of file archive.h.

+ +
+
+ +

◆ load_override() [5/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_override (boost::serialization::item_version_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::load_override

+ +

Definition at line 294 of file archive.h.

+ +
+
+ +

◆ load_override() [6/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::load_override (T & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::load_override

+ +

Definition at line 287 of file archive.h.

+ +
+
+ +

◆ operator&()

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
auto& ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::operator& (T & t)
+
+inline
+
+ +

Definition at line 359 of file archive.h.

+ +
+
+ +

◆ operator>>()

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
auto& ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::operator>> (T & t)
+
+inline
+
+ +

Definition at line 352 of file archive.h.

+ +
+
+ +

◆ stream()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + +
const auto& ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::stream () const
+
+inline
+
+ +

Definition at line 371 of file archive.h.

+ +
+
+ +

◆ streambuf()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + +
const auto& ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::streambuf () const
+
+inline
+
+ +

Definition at line 363 of file archive.h.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ boost::archive::detail::common_iarchive< boost_optimized_iarchive >

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + +
friend class boost::archive::detail::common_iarchive< boost_optimized_iarchive >
+
+friend
+
+ +

Definition at line 261 of file archive.h.

+ +
+
+ +

◆ boost::archive::save_access

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + +
friend class boost::archive::save_access
+
+friend
+
+ +

Definition at line 261 of file archive.h.

+ +
+
+

Member Data Documentation

+ +

◆ pbase_derived_from_stdstreambuf

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + +
constexpr bool ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >::pbase_derived_from_stdstreambuf = std::is_base_of_v<std::streambuf, pbase_type>
+
+staticconstexpr
+
+ +

Definition at line 258 of file archive.h.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • ttg/ttg/serialization/backends/boost/archive.h
  • +
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive.png b/dox-master/classttg_1_1detail_1_1boost__optimized__iarchive.png new file mode 100644 index 0000000000000000000000000000000000000000..5a1d56113fed823dee521ee00ecc3e8b39a77224 GIT binary patch literal 2439 zcmbVOdsI@{8YitRT}BU0Ck*eMFg0Igjrl;Wu8(l?i9JL^TV8vK+V~1JHEXIdNeWFe z^F66$;;0oN2Il*LSr($Aq9B-W!7xFRd%&6Qn!j%Ap0&<*etVz&`+nc|?S1yysa_tg zn(8~$K_HMO;;54k2(%s!V6P3TfPGkK`Xlhr^*ZM3ESJjx_-R@kgKxMCAmv?OU%xJO zP#gw-TdpQ>v8{yWjarFtTR$?Th+D67SaeuF@8jIRicjPd*8>{u=P26v+_2%a z`jt;#!sz?k?bcfjSK>Vhn3~{d$%S&ZcqowawUKb1#m4{6`AP$$Bz1=5(LiuQ^kHp0 zEY2Za9;dTBDjfSedY}1iEwFoG5x-imEGd*veAQ0<_HvYom zVQjVGlt*cE<&m%HCP2UvOAl%y<929zE^;Oslr_F0T39LLQJYyXV}$5{RTJ+l+clCM zUPNB8#t**o_dhjR-zd00+HyuEh@ue&I!V^1N1X1%JRA!+&z*R zS6oV7dYeG~dW*SL-Yt%kiybw|`A!F=FHmE34POigw&Iz0r-&iV9)#@DI7`o{ALI}I zOl6_p_6?+++(tTkJX`pCkJ9klD#ymKu1GUiwr?%d7fpanvcF6KfI@?Yta=;O%YL_Fr z$LZu(ro$G$%B#FB$fc~PcNxGpv8``2zVl^wG7^?vh;o@LIfmv022&WakW(j_JXHbN z?QIB&0-rSt{Uxt5(Za*@Y5zncHz=uPCc?AG&wUtURvIwZGwYPLCFd}jQKNm=Fu^j$ zHYu06LNh^RRRCXy0iuHj%o$zq1erYCH)p(^Q`6&TMvLht2Oz33z%n&P_#{2T>g`{` z8np8;n$onGXN)UN4S|$gm}5%v_+n&E7M)YDbB;pz_r*VlKg7c0xZOFSRYwVx+~-us zGa34kk5{!kw<$dm#%_5lH;>hBH^TJlUh8nFvPCxpx39z2xuBjb zR8!Y7dN8mCu-afFuMw!iW(^2SC)cb~e`c-s6zWyr3okg7vU3lB7z5tot19cxqMsK7 z@7b2Q%H=26Ln+mDD*#-FEC;a4I)L*tz{%u` zmD;Gk_@@;Lrj?EW@6AUARt%o?5nfdZiTkSHm7GxE4qW5tC8Jx7qh6bCH5TdtX01}b zyXdj{Y9LBS-^hTT(Iw(-HN~JqDO6=LfV08JTp&ZBbHw~_v3`qB>Gc0{RgYJcclEbW zssU*1{Qyf*c^n7mP4|2!68%gV3(593c}>fiH3!>Kqvk$bEO9+Iv_#W?D2%kWzyw~RVrm>3d+~Z+l#qPdP`K(xxVbFEXJs58${%hc5 zvvBnDsBAy8mk4c*r%I`Vc@=?D+A!VEI@^X;%czMxBV73?ww+=&9AImai#e>qlNziy z=OC?Q{2g1n`PgNM#s#J52ocs^wFk=Q2}Y$2d&y#*#usMVBfTO&XVM1?oJV->=QHdc zQ&m<~DOLO~?FRod5sgo;%})HuMn+dG3>ApXN_Z->A;vp@d1#{M + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::boost_optimized_oarchive< StreamOrStreambuf > Member List
+
+
+ +

This is the complete list of members for ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + +
base_type typedefttg::detail::boost_optimized_oarchive< StreamOrStreambuf >
boost::archive::detail::common_oarchive< StreamOrStreambuf > classttg::detail::boost_optimized_oarchive< StreamOrStreambuf >friend
boost::archive::save_access classttg::detail::boost_optimized_oarchive< StreamOrStreambuf >friend
boost_optimized_oarchive()ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
boost_optimized_oarchive(StreamOrStreambuf sbuf)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
boost_optimized_oarchive(Arg &&arg)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
operator&(const T &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
operator<<(const T &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
pbase_derived_from_stdstreambufttg::detail::boost_optimized_oarchive< StreamOrStreambuf >static
pbase_type typedefttg::detail::boost_optimized_oarchive< StreamOrStreambuf >
save(const T &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save(const bool t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_array(boost::serialization::array_wrapper< ValueType > const &a, unsigned int)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_binary(const void *address, std::size_t count)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_object(const void *x, const boost::archive::detail::basic_oserializer &bos)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_override(const T &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_override(const boost::archive::class_id_optional_type &)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_override(const boost::archive::version_type &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_override(const boost::serialization::item_version_type &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_override(const boost::archive::class_id_type &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
save_override(const boost::archive::class_id_reference_type &t)ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
stream() constttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
streambuf() constttg::detail::boost_optimized_oarchive< StreamOrStreambuf >inline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1boost__optimized__oarchive.html b/dox-master/classttg_1_1detail_1_1boost__optimized__oarchive.html new file mode 100644 index 000000000..b7a34e8e0 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1boost__optimized__oarchive.html @@ -0,0 +1,932 @@ + + + + + + + + + + + ttg: ttg::detail::boost_optimized_oarchive< StreamOrStreambuf > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::boost_optimized_oarchive< StreamOrStreambuf > Class Template Reference
+
+
+
+Inheritance diagram for ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >:
+
+
+ +
+

Documentation

+

template<typename StreamOrStreambuf>
+class ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >

+ +

optimized data-only serializer

+

skips metadata (class version, etc.) by providing optimized save_override function that will be called by boost::archive::binary_oarchive_impl::save_override

+ +

Definition at line 91 of file archive.h.

+
+ + + + + +

+Public Types

using pbase_type = StreamOrStreambuf
 
using base_type = boost::archive::binary_oarchive_impl< boost_optimized_oarchive< StreamOrStreambuf >, std::ostream::char_type, std::ostream::traits_type >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 boost_optimized_oarchive ()
 
 boost_optimized_oarchive (StreamOrStreambuf sbuf)
 
template<typename Arg >
 boost_optimized_oarchive (Arg &&arg)
 
void save_object (const void *x, const boost::archive::detail::basic_oserializer &bos)
 
template<class T >
auto & operator<< (const T &t)
 
template<class T >
auto & operator& (const T &t)
 
const auto & streambuf () const
 
const auto & stream () const
 
template<class T >
void save_override (const T &t)
 
void save_override (const boost::archive::class_id_optional_type &)
 
void save_override (const boost::archive::version_type &t)
 
void save_override (const boost::serialization::item_version_type &t)
 
void save_override (const boost::archive::class_id_type &t)
 
void save_override (const boost::archive::class_id_reference_type &t)
 
template<class T >
void save (const T &t)
 
void save (const bool t)
 
template<class ValueType >
void save_array (boost::serialization::array_wrapper< ValueType > const &a, unsigned int)
 
void save_binary (const void *address, std::size_t count)
 
+ + + +

+Static Public Attributes

static constexpr bool pbase_derived_from_stdstreambuf = std::is_base_of_v<std::streambuf, pbase_type>
 
+ + + + + +

+Friends

class boost::archive::save_access
 
class boost::archive::detail::common_oarchive< StreamOrStreambuf >
 
+

Member Typedef Documentation

+ +

◆ base_type

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + +
using ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::base_type = boost::archive::binary_oarchive_impl<boost_optimized_oarchive<StreamOrStreambuf>, std::ostream::char_type, std::ostream::traits_type>
+
+ +

Definition at line 97 of file archive.h.

+ +
+
+ +

◆ pbase_type

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + +
using ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::pbase_type = StreamOrStreambuf
+
+ +

Definition at line 96 of file archive.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ boost_optimized_oarchive() [1/3]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + +
ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::boost_optimized_oarchive ()
+
+inline
+
+ +

Definition at line 113 of file archive.h.

+ +
+
+ +

◆ boost_optimized_oarchive() [2/3]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::boost_optimized_oarchive (StreamOrStreambuf sbuf)
+
+inline
+
+ +

Definition at line 116 of file archive.h.

+ +
+
+ +

◆ boost_optimized_oarchive() [3/3]

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<typename Arg >
+ + + + + +
+ + + + + + + + +
ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::boost_optimized_oarchive (Arg && arg)
+
+inline
+
+ +

Definition at line 121 of file archive.h.

+ +
+
+

Member Function Documentation

+ +

◆ operator&()

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
auto& ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::operator& (const T & t)
+
+inline
+
+ +

Definition at line 196 of file archive.h.

+ +
+
+ +

◆ operator<<()

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
auto& ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::operator<< (const T & t)
+
+inline
+
+ +

Definition at line 189 of file archive.h.

+ +
+
+ +

◆ save() [1/2]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save (const bool t)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_oprimitive<Archive>

+ +

Definition at line 157 of file archive.h.

+ +
+
+ +

◆ save() [2/2]

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save (const T & t)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_oprimitive<Archive>

+ +

Definition at line 150 of file archive.h.

+ +
+
+ +

◆ save_array()

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class ValueType >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_array (boost::serialization::array_wrapper< ValueType > const & a,
unsigned int  
)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_oprimitive<Archive>

+ +

Definition at line 166 of file archive.h.

+ +
+
+ +

◆ save_binary()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_binary (const void * address,
std::size_t count 
)
+
+inline
+
+

override default implementations in base_type provided by basic_binary_oprimitive<Archive>

+ +

Definition at line 171 of file archive.h.

+ +
+
+ +

◆ save_object()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_object (const void * x,
const boost::archive::detail::basic_oserializer & bos 
)
+
+inline
+
+ +

Definition at line 143 of file archive.h.

+ +
+
+ +

◆ save_override() [1/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_override (const boost::archive::class_id_optional_type & )
+
+inline
+
+

these provide optimized implementation that's called by base_type::save_override

+ +

Definition at line 133 of file archive.h.

+ +
+
+ +

◆ save_override() [2/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_override (const boost::archive::class_id_reference_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::save_override

+ +

Definition at line 139 of file archive.h.

+ +
+
+ +

◆ save_override() [3/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_override (const boost::archive::class_id_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::save_override

+ +

Definition at line 138 of file archive.h.

+ +
+
+ +

◆ save_override() [4/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_override (const boost::archive::version_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::save_override

+ +

Definition at line 135 of file archive.h.

+ +
+
+ +

◆ save_override() [5/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_override (const boost::serialization::item_version_type & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::save_override

+ +

Definition at line 136 of file archive.h.

+ +
+
+ +

◆ save_override() [6/6]

+ +
+
+
+template<typename StreamOrStreambuf >
+
+template<class T >
+ + + + + +
+ + + + + + + + +
void ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::save_override (const T & t)
+
+inline
+
+

these provide optimized implementation that's called by base_type::save_override

+ +

Definition at line 129 of file archive.h.

+ +
+
+ +

◆ stream()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + +
const auto& ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::stream () const
+
+inline
+
+ +

Definition at line 208 of file archive.h.

+ +
+
+ +

◆ streambuf()

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + + + + +
const auto& ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::streambuf () const
+
+inline
+
+ +

Definition at line 200 of file archive.h.

+ +
+
+

Friends And Related Function Documentation

+ +

◆ boost::archive::detail::common_oarchive< StreamOrStreambuf >

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + +
friend class boost::archive::detail::common_oarchive< StreamOrStreambuf >
+
+friend
+
+ +

Definition at line 103 of file archive.h.

+ +
+
+ +

◆ boost::archive::save_access

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + +
friend class boost::archive::save_access
+
+friend
+
+ +

Definition at line 103 of file archive.h.

+ +
+
+

Member Data Documentation

+ +

◆ pbase_derived_from_stdstreambuf

+ +
+
+
+template<typename StreamOrStreambuf >
+ + + + + +
+ + + + +
constexpr bool ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >::pbase_derived_from_stdstreambuf = std::is_base_of_v<std::streambuf, pbase_type>
+
+staticconstexpr
+
+ +

Definition at line 100 of file archive.h.

+ +
+
+
The documentation for this class was generated from the following file:
    +
  • ttg/ttg/serialization/backends/boost/archive.h
  • +
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1boost__optimized__oarchive.png b/dox-master/classttg_1_1detail_1_1boost__optimized__oarchive.png new file mode 100644 index 0000000000000000000000000000000000000000..670db1ae3b57b8c631a427f400b8f6967c4dd68b GIT binary patch literal 2516 zcmbVOc~}!!5@%2s4T7J`2y&VIh8Pec#F2QxkU>QZ28fIoM&yUDQ@^?UWJs#jgzg*ZQN z6NnYWz`(!+vwv@Zfx%y}pp09&3_QmU)i;5c^*HPyFP%;YibEsQDVK%+2BoFr@#DuU z3j3ho?aJf;zh4Z%NqXvfcIZa~gH_>}y`G28emB~$NUYwmZ261o+ndx{!9;0c!pd-L zDv6R=k$NU}^^oE2VL|Kq>OV$%$LQA9^{CI|So}WHp(WO`R+C}%ORT;dN`hSlImYCZ zig^3aDS{)oS=l-mP}!aWb!6`1HT(_Zi184GmyNg&^A2{qEHsV5h;O|%TDM8)2T8Hg z`eY(O!LZw&GPEe@xX?Q~>fNf;FpXj~la=m#Lq(W(!Y$B|;P(qa{6$|{5P^fYE)|$E$C*SY~wM$wvjHWecomsMXn)z_$BTFAgYD}?`M#?3UU%q z%u6vTLQRMJB7_m|7Xlk>w2dr64on@FT_G3dbWca_)+x*gJi?_9{J1I2TvTHQzAer@Wb1eE*3ANS@eAgQMEZc zIJCE+UW=#AEX!Fk9|pS{&1RNvY8nwk)3Q!>=!6%Jr-U%M9`2-w2$m&aO}Rcu?Qp&; z{O~$G@j!kXjM#rwx{Oc;11zr9wMgZvii<5XN@rWAE)d-%6^R`)7N_L=wn+h*trJAVYPM7<8?;v*?JsZvIUr81PQIDzwt~Wk^j^$Jx(x|e8*qAqtztZP%PNbc@g9xq2%ud~M*L@Z<`dRYJvQOa`#iVv@8HtGZGZml5QLIQarSIu}gEB{gv+%-F<*npErK z|LL|F@p8kTR{=kjJMW@W-bLSZ!j#~_P#r-QZvchGIO@O@_2}#a^GkxH#-#N5E;+yJ zDy;qgU19JC?DMUfc?{`tkK?SoE3+m)r*9gjFulk&UbzdAS^)2;vs|5&@^K!*JG8 zAJRSWCDyO}sn+`3 zgGcmp%(hDnQmbQ92j*Hh+R5*8$ST%0eiltJ6`6p>j>Swg>l@~ODFw)#RH-R>yX3&Y z%!Ylj!;;!-Em^Voz{`M&P!;)IjedXKtl&kpsXpg<$iU5XBT+;+CTD*=4@o=$(5F2% zH(A1=4opip+TLdgNg>YzvNmz&%k3g;;r{004y2{K^kd6hWLbmxgj7;nho{9p5gysT z-H{kXIOC?UH$?CG6x(&Ar5rUeD(5Hjbwn+Do;ZjlU>1IFawO2-(K48klg + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::byte_istreambuf Member List
+
+
+ +

This is the complete list of members for ttg::detail::byte_istreambuf, including all inherited members.

+ + + + + +
byte_istreambuf(const char_type *buffer, std::size_t buffer_size=std::numeric_limits< std::size_t >::max())ttg::detail::byte_istreambufinline
sgetn(char_type *s, std::streamsize n) noexceptttg::detail::byte_istreambufinline
size() const noexceptttg::detail::byte_istreambufinline
xsgetn(char_type *s, std::streamsize max_n) noexcept override finalttg::detail::byte_istreambufinline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1byte__istreambuf.html b/dox-master/classttg_1_1detail_1_1byte__istreambuf.html new file mode 100644 index 000000000..ecdccc70e --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1byte__istreambuf.html @@ -0,0 +1,308 @@ + + + + + + + + + + + ttg: ttg::detail::byte_istreambuf Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::byte_istreambuf Class Reference
+
+
+
+Inheritance diagram for ttg::detail::byte_istreambuf:
+
+
+ +
+

Documentation

+

streambuf that writes bytes to a buffer in memory

+ +

Definition at line 101 of file stream.h.

+
+ + + + + + + + + + +

+Public Member Functions

 byte_istreambuf (const char_type *buffer, std::size_t buffer_size=std::numeric_limits< std::size_t >::max())
 
std::streamsize sgetn (char_type *s, std::streamsize n) noexcept
 
std::streamsize xsgetn (char_type *s, std::streamsize max_n) noexcept override final
 
std::streamsize size () const noexcept
 number of characters read from the buffer More...
 
+

Constructor & Destructor Documentation

+ +

◆ byte_istreambuf()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ttg::detail::byte_istreambuf::byte_istreambuf (const char_type * buffer,
std::size_t buffer_size = std::numeric_limits<std::size_t>::max() 
)
+
+inline
+
+ +

Definition at line 105 of file stream.h.

+ +
+
+

Member Function Documentation

+ +

◆ sgetn()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::streamsize ttg::detail::byte_istreambuf::sgetn (char_type * s,
std::streamsize n 
)
+
+inlinenoexcept
+
+ +

Definition at line 108 of file stream.h.

+ +
+
+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
std::streamsize ttg::detail::byte_istreambuf::size () const
+
+inlinenoexcept
+
+ +

number of characters read from the buffer

+ +

Definition at line 120 of file stream.h.

+ +
+
+ +

◆ xsgetn()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::streamsize ttg::detail::byte_istreambuf::xsgetn (char_type * s,
std::streamsize max_n 
)
+
+inlinefinaloverridenoexcept
+
+ +

Definition at line 112 of file stream.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1byte__istreambuf.png b/dox-master/classttg_1_1detail_1_1byte__istreambuf.png new file mode 100644 index 0000000000000000000000000000000000000000..c2bb172f5fe369d616262a7143a226cfa26e545f GIT binary patch literal 643 zcmeAS@N?(olHy`uVBq!ia0vp^bAUL2gBeKP_Ia}bNJ#|vgt-3y{~ySF@#br3|Dg#$ z78oBmaDcV*jy#adQ4-`A%m7pb0#{Fk7%?y~33<9WhEy=VoqK!I9R(iNX#L`U|N9>s zCY(9ix%TeO30Gm z?)?v#cYJT#UVi@G%E_y~=H97(svjAo{&(rSzoPkvXNJu7jMd)8wIyFk**wj2*HZU_ zvzO*>4ctF{TI8g>mx)pAJBkl|D_K_P_vQS-Qt#4h@2;d|-Fklc)}5V_?;Q+dE}mcZ zb;Y${*(;|0SF4InU5!%ry2N|*x%VU+E(_038V^)XE^e5t(r;#AyxEoYLvI!1npIOD z#;tFC8P<0D#Og}+TN&4^gsQQ6ux-C& z+E&xO$rsK^D#iR@G(y9@u1waX`%vdT2LuRc6;rtYfvpI>6joq~F^fhmT;)78&q Iol`;+0N%qcSpWb4 literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1detail_1_1byte__ostreambuf-members.html b/dox-master/classttg_1_1detail_1_1byte__ostreambuf-members.html new file mode 100644 index 000000000..d665a47e3 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1byte__ostreambuf-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::byte_ostreambuf Member List
+
+
+ +

This is the complete list of members for ttg::detail::byte_ostreambuf, including all inherited members.

+ + + + + +
byte_ostreambuf(char_type *buffer, std::streamsize buffer_size=std::numeric_limits< std::streamsize >::max())ttg::detail::byte_ostreambufinline
size() const noexceptttg::detail::byte_ostreambufinline
sputn(const char_type *s, std::streamsize n) noexceptttg::detail::byte_ostreambufinline
xsputn(const char_type *s, std::streamsize n) noexcept override finalttg::detail::byte_ostreambufinline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1byte__ostreambuf.html b/dox-master/classttg_1_1detail_1_1byte__ostreambuf.html new file mode 100644 index 000000000..0e7f026c2 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1byte__ostreambuf.html @@ -0,0 +1,308 @@ + + + + + + + + + + + ttg: ttg::detail::byte_ostreambuf Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::byte_ostreambuf Class Reference
+
+
+
+Inheritance diagram for ttg::detail::byte_ostreambuf:
+
+
+ +
+

Documentation

+

streambuf that writes bytes to a buffer in memory

+ +

Definition at line 71 of file stream.h.

+
+ + + + + + + + + + +

+Public Member Functions

 byte_ostreambuf (char_type *buffer, std::streamsize buffer_size=std::numeric_limits< std::streamsize >::max())
 
std::streamsize sputn (const char_type *s, std::streamsize n) noexcept
 
std::streamsize xsputn (const char_type *s, std::streamsize n) noexcept override final
 
std::streamsize size () const noexcept
 number of characters written to the buffer More...
 
+

Constructor & Destructor Documentation

+ +

◆ byte_ostreambuf()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ttg::detail::byte_ostreambuf::byte_ostreambuf (char_type * buffer,
std::streamsize buffer_size = std::numeric_limits<std::streamsize>::max() 
)
+
+inline
+
+ +

Definition at line 75 of file stream.h.

+ +
+
+

Member Function Documentation

+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
std::streamsize ttg::detail::byte_ostreambuf::size () const
+
+inlinenoexcept
+
+ +

number of characters written to the buffer

+ +

Definition at line 90 of file stream.h.

+ +
+
+ +

◆ sputn()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::streamsize ttg::detail::byte_ostreambuf::sputn (const char_type * s,
std::streamsize n 
)
+
+inlinenoexcept
+
+ +

Definition at line 78 of file stream.h.

+ +
+
+ +

◆ xsputn()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::streamsize ttg::detail::byte_ostreambuf::xsputn (const char_type * s,
std::streamsize n 
)
+
+inlinefinaloverridenoexcept
+
+ +

Definition at line 82 of file stream.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1byte__ostreambuf.png b/dox-master/classttg_1_1detail_1_1byte__ostreambuf.png new file mode 100644 index 0000000000000000000000000000000000000000..27260362dc257ac138d9a5a9745b58464e84fba9 GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^3xGI)gBeJ!Z0=(NQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM; zRbp;WzH-^vBUy7d>+u<^$DW89Z=Txfd1)7ygXbp=2Gx^`e>dFRFa6DV%Dvyemi%Y= zaBj+WhWXt0^Oo%mY!iKbdB^s?{VATkU#8D0f3}A)BdF5n)x5)D3%<3cyg8=hDPAhP zVdlQgX0NVaF7m$Qde`qGLxg(1f9|X2OaAL6n8&8SE%RUY?B`q&^YnsaHWPTjIU^EsV2f>gqJ?U&VglRFv$8 zj}dbUN)Pnr=N@{>xVVe4hRcDWpGn}rVg{BE8Vrm!xVbO>Gn*JkM@k$3`WB)^xZwBf zg<{c{t*qb9_}=|DQG3_*=)ZMb5#{^XD!%X?sCjO)Q+wH!llp!0^Vs<>-?OP*75(i- z-ZgnVL;XYtid${9~`S(gzj)>)j zJLQ?4J$c^zfosFpy!h)Uwe?C(#1n#Dix0@8uh=5Ao-2+i$>hB1fldFur*DX1V}7vP z_{XD&E$#JOGrBb9UpF>P7oFc4VYy_L4*MFB*K4{??+Fz(zvy>g^1;*BTnUTvYbRJ8 zFmq%OH?3j2mBjeN=PzHK#Mf&1FP>eD*8&-sDnuF> + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::counting_streambuf Member List
+
+
+ +

This is the complete list of members for ttg::detail::counting_streambuf, including all inherited members.

+ + + +
size() constttg::detail::counting_streambufinline
xsputn(const char_type *s, std::streamsize n) overridettg::detail::counting_streambufinlineprotected
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1counting__streambuf.html b/dox-master/classttg_1_1detail_1_1counting__streambuf.html new file mode 100644 index 000000000..bc7929b6c --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1counting__streambuf.html @@ -0,0 +1,229 @@ + + + + + + + + + + + ttg: ttg::detail::counting_streambuf Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::counting_streambuf Class Reference
+
+
+
+Inheritance diagram for ttg::detail::counting_streambuf:
+
+
+ +
+

Documentation

+

streambuf that counts bytes

+ +

Definition at line 14 of file stream.h.

+
+ + + +

+Public Member Functions

size_t size () const
 
+ + + +

+Protected Member Functions

std::streamsize xsputn (const char_type *s, std::streamsize n) override
 
+

Member Function Documentation

+ +

◆ size()

+ +
+
+ + + + + +
+ + + + + + + +
size_t ttg::detail::counting_streambuf::size () const
+
+inline
+
+
Returns
the size of data put into *this
+ +

Definition at line 19 of file stream.h.

+ +
+
+ +

◆ xsputn()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::streamsize ttg::detail::counting_streambuf::xsputn (const char_type * s,
std::streamsize n 
)
+
+inlineoverrideprotected
+
+ +

Definition at line 22 of file stream.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1counting__streambuf.png b/dox-master/classttg_1_1detail_1_1counting__streambuf.png new file mode 100644 index 0000000000000000000000000000000000000000..06a605214c10c73a50193a3d10ef51db5e983ada GIT binary patch literal 654 zcmeAS@N?(olHy`uVBq!ia0vp^8-X~0gBeIBzE8OTq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0WIbIRLn;{G&b@o-l>(1zc;21&|Bo%_ z(%oNoE9=-{pE-HljE9(DM>dA0Pb?zg7b)rcOM^kjAKjWao_j5}ViZJ07m zdEebI=eWKK<~W{8+earv8SZfeAA@Ihi9opbD=#?%A96=IFI4_oAMiuG8OBayEL}4zE8|>&&g^D&5PrF7zw?-WoDt z + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::iovec_istreambuf Member List
+
+
+ +

This is the complete list of members for ttg::detail::iovec_istreambuf, including all inherited members.

+ + + +
iovec_istreambuf(const std::vector< std::pair< const void *, std::size_t >> &iovec)ttg::detail::iovec_istreambufinline
xsgetn(char_type *s, std::streamsize max_n) overridettg::detail::iovec_istreambufinlineprotected
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1iovec__istreambuf.html b/dox-master/classttg_1_1detail_1_1iovec__istreambuf.html new file mode 100644 index 000000000..51d5e223b --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1iovec__istreambuf.html @@ -0,0 +1,230 @@ + + + + + + + + + + + ttg: ttg::detail::iovec_istreambuf Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::iovec_istreambuf Class Reference
+
+
+
+Inheritance diagram for ttg::detail::iovec_istreambuf:
+
+
+ +
+

Documentation

+

streambuf that reads vector of address-size pairs

+ +

Definition at line 49 of file stream.h.

+
+ + + +

+Public Member Functions

 iovec_istreambuf (const std::vector< std::pair< const void *, std::size_t >> &iovec)
 
+ + + +

+Protected Member Functions

std::streamsize xsgetn (char_type *s, std::streamsize max_n) override
 
+

Constructor & Destructor Documentation

+ +

◆ iovec_istreambuf()

+ +
+
+ + + + + +
+ + + + + + + + +
ttg::detail::iovec_istreambuf::iovec_istreambuf (const std::vector< std::pair< const void *, std::size_t >> & iovec)
+
+inline
+
+ +

Definition at line 53 of file stream.h.

+ +
+
+

Member Function Documentation

+ +

◆ xsgetn()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::streamsize ttg::detail::iovec_istreambuf::xsgetn (char_type * s,
std::streamsize max_n 
)
+
+inlineoverrideprotected
+
+ +

Definition at line 56 of file stream.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1iovec__istreambuf.png b/dox-master/classttg_1_1detail_1_1iovec__istreambuf.png new file mode 100644 index 0000000000000000000000000000000000000000..7d052f6c281d684fa7020db1e816a0db485c8cff GIT binary patch literal 639 zcmeAS@N?(olHy`uVBq!ia0vp^i-9K%THo^j|KqbI z49wM&-8V-Dt=5{)D57}F>C>L1v~4>KJforxYIxSME>`*Zl`r|8Va^}Lb1!Ni-l#uP z@$y1vI`t+qN;(g_}1V{mR<2 z{r0a3@dqm0W8^+bODtZ`Sm%6@<3YFq(+|-ehB{W|hIriEzsq~l(z>~sBch;cwi@4S zSH6|?I_>wPJJRz?we;YdVb3BySLVyx==M$ zA-dt3cI2fcZMT$pDt)G0UL<9}H*dLfxa?6I>-?O%H*=NJjw!l7?t688+KGo3o^G5H zw*KeR`zdEaCul#COy;{dPp(()ykONzrUK)&fdMTaE0iFwAZfj*B48#*Gn*ze|GWzTjn3yQWC$lnF=&( zOZPG!xA~>a^k*I4JE;UsXeeBNygD;&+m?R}{HqgB`LA|)157Opp00i_>zopr05V-J Awg3PC literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1detail_1_1iovec__ostreambuf-members.html b/dox-master/classttg_1_1detail_1_1iovec__ostreambuf-members.html new file mode 100644 index 000000000..a3269dae8 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1iovec__ostreambuf-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::detail::iovec_ostreambuf Member List
+
+
+ +

This is the complete list of members for ttg::detail::iovec_ostreambuf, including all inherited members.

+ + + +
iovec() constttg::detail::iovec_ostreambufinline
xsputn(const char_type *s, std::streamsize n) overridettg::detail::iovec_ostreambufinlineprotected
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1iovec__ostreambuf.html b/dox-master/classttg_1_1detail_1_1iovec__ostreambuf.html new file mode 100644 index 000000000..d43e05b31 --- /dev/null +++ b/dox-master/classttg_1_1detail_1_1iovec__ostreambuf.html @@ -0,0 +1,228 @@ + + + + + + + + + + + ttg: ttg::detail::iovec_ostreambuf Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::detail::iovec_ostreambuf Class Reference
+
+
+
+Inheritance diagram for ttg::detail::iovec_ostreambuf:
+
+
+ +
+

Documentation

+

streambuf that records vector of address-size pairs

+ +

Definition at line 32 of file stream.h.

+
+ + + +

+Public Member Functions

const auto & iovec () const
 
+ + + +

+Protected Member Functions

std::streamsize xsputn (const char_type *s, std::streamsize n) override
 
+

Member Function Documentation

+ +

◆ iovec()

+ +
+
+ + + + + +
+ + + + + + + +
const auto& ttg::detail::iovec_ostreambuf::iovec () const
+
+inline
+
+ +

Definition at line 36 of file stream.h.

+ +
+
+ +

◆ xsputn()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::streamsize ttg::detail::iovec_ostreambuf::xsputn (const char_type * s,
std::streamsize n 
)
+
+inlineoverrideprotected
+
+ +

Definition at line 39 of file stream.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1detail_1_1iovec__ostreambuf.png b/dox-master/classttg_1_1detail_1_1iovec__ostreambuf.png new file mode 100644 index 0000000000000000000000000000000000000000..f3397dc297947819f91753f04d4f7ff278c92dc8 GIT binary patch literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^%Yit6gBeJA$4{*XQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;aAX&h}JhP_7zp?$*$4Ppge;)2A)@YjyBu zAkQ_w$LU{xOxhB^{9Wy%ocxlV?@i9n{GdMP@XF@Wj-@`azpqxm|5VIf%QWlK&+G5@ zUa1bY`}$+qz1gli@4a^OytVqreofChE}bq8 z^t0j)^B1)_{%4{a?zI}fl06W7kn_Rv2P_|g3z&XrS}^_*nZp3o&tT80-Y~yO_<%o> z^vnIvfJQYMG@RCkD%6^DKCgSntzCgL=lnRuAKf;8{?xi@pJnb@o-5r}^vwNL>-_~w zJ^v;CH9opIV)o5jSKX_4{ff3&WQMDGONEplJuPtF#maXTWAfs?Z*Q%CdF{Nk*uHmv z%oL2D3#=}5kG;O^blUa%afW3F<(t2pJ1=)`j-aLWy~4Ecv#&Zg@4dKbQ}Hk5bG;{O z5C2>z--JpJtd_n(U&t*I}2@;ofc_v^-!GhgXEFWR|m*}URbGwv)i6T?3t z@4x;?OMSj&&D}>|Dy13!b+VoNw~L`}$rr6^3z^3+AB!Fcm;TOIU&L^NOu$sb;OXk;vd$@?2>|tELq`Ar literal 0 HcmV?d00001 diff --git a/dox-master/classttg_1_1device_1_1_device-members.html b/dox-master/classttg_1_1device_1_1_device-members.html new file mode 100644 index 000000000..fe2b131ff --- /dev/null +++ b/dox-master/classttg_1_1device_1_1_device-members.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg::device::Device Member List
+
+
+ +

This is the complete list of members for ttg::device::Device, including all inherited members.

+ + + + + + + + + +
Device()=defaultttg::device::Device
Device(int id, ttg::ExecutionSpace space)ttg::device::Deviceinline
id() constttg::device::Deviceinline
is_device() constttg::device::Deviceinline
is_host() constttg::device::Deviceinline
is_invalid() constttg::device::Deviceinline
operator int() constttg::device::Deviceinline
space() constttg::device::Deviceinline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg_1_1device_1_1_device.html b/dox-master/classttg_1_1device_1_1_device.html new file mode 100644 index 000000000..0e48f68dc --- /dev/null +++ b/dox-master/classttg_1_1device_1_1_device.html @@ -0,0 +1,391 @@ + + + + + + + + + + + ttg: ttg::device::Device Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg::device::Device Class Reference
+
+
+

Documentation

+

Represents a device in a specific execution space.

+ +

Definition at line 23 of file device.h.

+
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

 Device ()=default
 
 Device (int id, ttg::ExecutionSpace space)
 
int id () const
 
 operator int () const
 
ttg::ExecutionSpace space () const
 
bool is_device () const
 
bool is_host () const
 
bool is_invalid () const
 
+

Constructor & Destructor Documentation

+ +

◆ Device() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
ttg::device::Device::Device ()
+
+default
+
+ +
+
+ +

◆ Device() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
ttg::device::Device::Device (int id,
ttg::ExecutionSpace space 
)
+
+inline
+
+ +

Definition at line 29 of file device.h.

+ +
+
+

Member Function Documentation

+ +

◆ id()

+ +
+
+ + + + + +
+ + + + + + + +
int ttg::device::Device::id () const
+
+inline
+
+ +

Definition at line 34 of file device.h.

+ +
+
+ +

◆ is_device()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::device::Device::is_device () const
+
+inline
+
+ +

Definition at line 52 of file device.h.

+ +
+
+ +

◆ is_host()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::device::Device::is_host () const
+
+inline
+
+ +

Definition at line 56 of file device.h.

+ +
+
+ +

◆ is_invalid()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg::device::Device::is_invalid () const
+
+inline
+
+ +

Definition at line 60 of file device.h.

+ +
+
+ +

◆ operator int()

+ +
+
+ + + + + +
+ + + + + + + +
ttg::device::Device::operator int () const
+
+inline
+
+ +

Definition at line 44 of file device.h.

+ +
+
+ +

◆ space()

+ +
+
+ + + + + +
+ + + + + + + +
ttg::ExecutionSpace ttg::device::Device::space () const
+
+inline
+
+ +

Definition at line 48 of file device.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__madness_1_1_t_t-members.html b/dox-master/classttg__madness_1_1_t_t-members.html new file mode 100644 index 000000000..8ac8d66b6 --- /dev/null +++ b/dox-master/classttg__madness_1_1_t_t-members.html @@ -0,0 +1,239 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs > Member List
+
+
+ +

This is the complete list of members for ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
call_depthttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
derived_has_cuda_op()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
derived_has_device_op()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
derived_has_hip_op()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
derived_has_level_zero_op()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
fence() overridettg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
finalize_argstream(const Key &key)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
finalize_argstream()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get(InTuple &&intuple)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotectedstatic
get(InTuple &&intuple)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotectedstatic
get_class_name() constttg::TTBaseinline
get_defer_writer(bool _)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get_inputs() constttg::TTBaseinline
get_instance_id() constttg::TTBaseinline
get_keymap() constttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get_name() constttg::TTBaseinline
get_output_terminals() constttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
get_outputs() constttg::TTBaseinline
get_outputs_tls_ptr()ttg::TTBaseinlinestatic
get_priomap(void) constttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get_terminal_data(const int owner, const Key &key)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
get_world() const override finalttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
in()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
ttg::TTBase::in(size_t i)ttg::TTBaseinline
input_args_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_edges_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_refs_full_tuple_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_refs_tuple_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_terminals_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_values_full_tuple_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_values_tuple_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
invoke(const Key &key, const input_values_tuple_type &args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
invoke(const input_values_tuple_type &args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
invoke(const Key &key)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
invoke()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
invoke() overridettg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
invoke_pull_terminal(terminalT &in, const Key &key, TTArgs *args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
invoke_pull_terminals(std::index_sequence< IS... >, const Key &key, TTArgs *args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
is_executable() constttg::TTBaseinline
is_lazy_pull()ttg::TTBaseinline
is_ttg() constttg::TTBaseinline
key_hashttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
key_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
make_executable() overridettg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
numinedgesttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >protectedstatic
numinsttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >protectedstatic
numoutsttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >protectedstatic
ttg::TTBase::operator=(TTBase &&other)ttg::TTBaseinlineprotected
out()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
ttg::TTBase::out(size_t i)ttg::TTBaseinline
output_edges_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
output_terminals_type typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
outputs_tls_ptr_accessor()ttg::TTBaseinlineprotectedstatic
owner(const Key &key) constttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
owner() constttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
register_input_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_output_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)ttg::TTBaseinlineprotected
register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)ttg::TTBaseinlineprotected
release()ttg::TTBaseinlinevirtual
set_arg(const Key &key, Value &&value)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg(const Key &key)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg(Value &&value)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_argstream_size(std::size_t size)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_argstream_size(const Key &key, std::size_t size)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_defer_writer(bool _)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_input(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_input_reducer(Reducer &&reducer)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_input_reducer(Reducer &&reducer, std::size_t size)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_keymap(Keymap &&km)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_lazy_pull(bool value)ttg::TTBaseinlinestatic
set_lazy_pull_instance(bool value)ttg::TTBaseinline
set_name(const std::string &name)ttg::TTBaseinline
set_output(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_outputs_tls_ptr()ttg::TTBaseinlineprotected
set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)ttg::TTBaseinlineprotected
set_priomap(Priomap &&pm)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_static_argstream_size(std::size_t size)ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_terminals(const terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_trace_all(bool value)ttg::TTBaseinlinestatic
set_trace_instance(bool value)ttg::TTBaseinline
threaddatattg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >protectedstatic
trace(const T &t, const Ts &...ts)ttg::TTBaseinline
tracing() constttg::TTBaseinline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TTBase(TTBase &&other)ttg::TTBaseinlineprotected
TTBase(const std::string &name, size_t numins, size_t numouts)ttg::TTBaseinlineprotected
ttg() constttg::TTBaseinline
ttg_ptr() constttg::TTBaseinline
ttT typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
worldobjT typedefttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >protected
~TT()ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
~TTBase()=defaultttg::TTBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__madness_1_1_t_t.html b/dox-master/classttg__madness_1_1_t_t.html new file mode 100644 index 000000000..e15d9fb9e --- /dev/null +++ b/dox-master/classttg__madness_1_1_t_t.html @@ -0,0 +1,2703 @@ + + + + + + + + + + + ttg: ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs > Class Template Reference
+
+
+
+Inheritance diagram for ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >:
+
+
+ + +ttg::TTBase + +
+

Documentation

+

template<typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs>
+class ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >

+ +

CRTP base for MADNESS-based TT classes

Template Parameters
+ + + + + +
keyTa Key type
output_terminalsT
derivedT
input_valueTsttg::typelist of value types (no references; pointers are OK) encoding the types of input values flowing into this TT; a const type indicates nonmutating (read-only) use, nonconst type indicates mutating use (e.g. the corresponding input can be used as scratch, moved-from, etc.)
+
+
+ +

Definition at line 187 of file ttg.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using ttT = TT
 
using key_type = keyT
 
using input_terminals_type = ttg::detail::input_terminals_tuple_t< keyT, input_tuple_type >
 
using input_edges_type = ttg::detail::edges_tuple_t< keyT, ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t< ttg::meta::decayed_typelist_t< actual_input_tuple_type > >
 
using input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t< ttg::meta::void_to_Void_tuple_t< actual_input_tuple_type > >
 
using input_args_type = actual_input_tuple_type
 
using input_values_tuple_type = ttg::meta::drop_void_t< ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_refs_tuple_type = ttg::meta::drop_void_t< ttg::meta::add_glvalue_reference_tuple_t< input_tuple_type > >
 
using output_terminals_type = output_terminalsT
 
using output_edges_type = typename ttg::terminals_to_edges< output_terminalsT >::type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ttg::World get_world () const override final
 
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, void > set_argstream_size (std::size_t size)
 
template<std::size_t i>
void set_static_argstream_size (std::size_t size)
 
template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
std::enable_if_t<!key_is_void, void > set_argstream_size (const Key &key, std::size_t size)
 
template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
std::enable_if_t<!key_is_void, void > finalize_argstream (const Key &key)
 finalizes stream for input i More...
 
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, void > finalize_argstream ()
 finalizes stream for input i More...
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
virtual ~TT ()
 
template<std::size_t i, typename Reducer >
void set_input_reducer (Reducer &&reducer)
 
template<std::size_t i, typename Reducer >
void set_input_reducer (Reducer &&reducer, std::size_t size)
 
template<typename Keymap >
void set_keymap (Keymap &&km)
 
auto get_priomap (void) const
 
template<typename Priomap >
void set_priomap (Priomap &&pm)
 
void make_executable () override
 implementation of TTBase::make_executable() More...
 
void fence () override
 Waits for the entire TTG associated with this TT to be completed (collective) More...
 
template<std::size_t i>
std::tuple_element_t< i, input_terminals_type > * in ()
 Returns pointer to input terminal i to facilitate connection — terminal cannot be copied, moved or assigned. More...
 
template<std::size_t i>
std::tuple_element_t< i, output_terminalsT > * out ()
 Returns pointer to output terminal for purpose of connection — terminal cannot be copied, moved or assigned. More...
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key, const input_values_tuple_type &args)
 Manual injection of a task with all input arguments specified as a tuple. More...
 
template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const input_values_tuple_type &args)
 Manual injection of a key-free task with all input arguments specified as a tuple. More...
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key)
 Manual injection of a task that has no arguments. More...
 
template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke ()
 Manual injection of a task that has no key or arguments. More...
 
void invoke () override
 
void set_defer_writer (bool _)
 
bool get_defer_writer (bool _)
 
decltype(keymap) const & get_keymap () const
 
template<typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, int > owner (const Key &key) const
 
template<typename Key >
std::enable_if_t< ttg::meta::is_void_v< Key >, int > owner () const
 
- Public Member Functions inherited from ttg::TTBase
virtual ~TTBase ()=default
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
virtual void release ()
 
bool is_executable () const
 
+ + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static constexpr bool derived_has_cuda_op ()
 
static constexpr bool derived_has_hip_op ()
 
static constexpr bool derived_has_level_zero_op ()
 
static constexpr bool derived_has_device_op ()
 
- Static Public Member Functions inherited from ttg::TTBase
static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals. More...
 
+ + + +

+Protected Types

using worldobjT = ::madness::WorldObject< ttT >
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

const auto & get_output_terminals () const
 
template<typename terminalT , std::size_t i, typename Key >
void invoke_pull_terminal (terminalT &in, const Key &key, TTArgs *args)
 
template<std::size_t i, typename Key >
void get_terminal_data (const int owner, const Key &key)
 
template<std::size_t... IS, typename Key = keyT>
void invoke_pull_terminals (std::index_sequence< IS... >, const Key &key, TTArgs *args)
 
template<std::size_t i, typename Key , typename Value >
void set_arg (const Key &key, Value &&value)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > set_arg (const Key &key)
 
template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg (Value &&value)
 
template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > set_arg ()
 
template<typename Key , typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)
 
template<typename Key , typename... Ts, size_t... Is>
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)
 
template<typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)
 
template<typename Key = keyT, typename... Ts, size_t... Is>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const std::tuple< Ts... > &args)
 
- Protected Member Functions inherited from ttg::TTBase
void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 
+ + + + + + + + + + +

+Static Protected Member Functions

template<std::size_t i, typename resultT , typename InTuple >
static resultT get (InTuple &&intuple)
 
template<std::size_t i, typename InTuple >
static auto & get (InTuple &&intuple)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 
+ + + + + + + + + + + + + + +

+Static Protected Attributes

static constexpr int numinedges = std::tuple_size_v<input_tuple_type>
 
static constexpr int numins = std::tuple_size_v<actual_input_tuple_type>
 
static constexpr int numouts = std::tuple_size_v<output_terminalsT>
 
struct {
   uint64_t   key_hash = 0
 
   size_t   call_depth = 0
 
threaddata
 
+

Member Typedef Documentation

+ +

◆ input_args_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_args_type = actual_input_tuple_type
+
+ +

Definition at line 260 of file ttg.h.

+ +
+
+ +

◆ input_edges_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_edges_type = ttg::detail::edges_tuple_t<keyT, ttg::meta::decayed_typelist_t<input_tuple_type> >
+
+ +

Definition at line 250 of file ttg.h.

+ +
+
+ +

◆ input_refs_full_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t<ttg::meta::void_to_Void_tuple_t<actual_input_tuple_type> >
+
+ +

Definition at line 257 of file ttg.h.

+ +
+
+ +

◆ input_refs_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_refs_tuple_type = ttg::meta::drop_void_t<ttg::meta::add_glvalue_reference_tuple_t<input_tuple_type> >
+
+ +

Definition at line 263 of file ttg.h.

+ +
+
+ +

◆ input_terminals_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_terminals_type = ttg::detail::input_terminals_tuple_t<keyT, input_tuple_type>
+
+ +

Definition at line 249 of file ttg.h.

+ +
+
+ +

◆ input_values_full_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t<ttg::meta::decayed_typelist_t<actual_input_tuple_type> >
+
+ +

Definition at line 255 of file ttg.h.

+ +
+
+ +

◆ input_values_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_values_tuple_type = ttg::meta::drop_void_t<ttg::meta::decayed_typelist_t<input_tuple_type> >
+
+ +

Definition at line 262 of file ttg.h.

+ +
+
+ +

◆ key_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::key_type = keyT
+
+ +

Definition at line 197 of file ttg.h.

+ +
+
+ +

◆ output_edges_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::output_edges_type = typename ttg::terminals_to_edges<output_terminalsT>::type
+
+ +

Definition at line 267 of file ttg.h.

+ +
+
+ +

◆ output_terminals_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::output_terminals_type = output_terminalsT
+
+ +

Definition at line 266 of file ttg.h.

+ +
+
+ +

◆ ttT

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::ttT = TT
+
+ +

Definition at line 196 of file ttg.h.

+ +
+
+ +

◆ worldobjT

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + +
using ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::worldobjT = ::madness::WorldObject<ttT>
+
+protected
+
+ +

Definition at line 236 of file ttg.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ TT() [1/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
ttg::World world,
keymapT && keymap_ = keymapT(),
priomapT && priomap_ = priomapT() 
)
+
+inline
+
+ +

Definition at line 1074 of file ttg.h.

+ +
+
+ +

◆ TT() [2/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
keymapT && keymap = keymapT(ttg::default_execution_context()),
priomapT && priomap = priomapT() 
)
+
+inline
+
+ +

Definition at line 1101 of file ttg.h.

+ +
+
+ +

◆ TT() [3/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const input_edges_typeinedges,
const output_edges_typeoutedges,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
ttg::World world,
keymapT && keymap_ = keymapT(),
priomapT && priomap_ = priomapT() 
)
+
+inline
+
+ +

Definition at line 1108 of file ttg.h.

+ +
+
+ +

◆ TT() [4/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const input_edges_typeinedges,
const output_edges_typeoutedges,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
keymapT && keymap = keymapT(ttg::default_execution_context()),
priomapT && priomap = priomapT() 
)
+
+inline
+
+ +

Definition at line 1139 of file ttg.h.

+ +
+
+ +

◆ ~TT()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
virtual ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::~TT ()
+
+inlinevirtual
+
+ +

Definition at line 1146 of file ttg.h.

+ +
+
+

Member Function Documentation

+ +

◆ derived_has_cuda_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_cuda_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if derivedT::have_cuda_op exists and is defined to true
+ +

Definition at line 216 of file ttg.h.

+ +
+
+ +

◆ derived_has_device_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_device_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if the TT supports device execution
+ +

Definition at line 231 of file ttg.h.

+ +
+
+ +

◆ derived_has_hip_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_hip_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if derivedT::have_hip_op exists and is defined to true
+ +

Definition at line 221 of file ttg.h.

+ +
+
+ +

◆ derived_has_level_zero_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_level_zero_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if derivedT::have_hip_op exists and is defined to true
+ +

Definition at line 226 of file ttg.h.

+ +
+
+ +

◆ fence()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::fence (void )
+
+inlineoverridevirtual
+
+ +

Waits for the entire TTG associated with this TT to be completed (collective)

+

This is a collective operation and must be invoked by the main thread on all processes. In the MADNESS implementation it fences the entire world associated with the TTG. If you wish to fence TTGs independently, then give each its own world.

+ +

Implements ttg::TTBase.

+ +

Definition at line 1220 of file ttg.h.

+ +
+
+ +

◆ finalize_argstream() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
+ + + + + +
+ + + + + + + +
std::enable_if_t<key_is_void, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::finalize_argstream ()
+
+inline
+
+ +

finalizes stream for input i

+ +

Definition at line 921 of file ttg.h.

+ +
+
+ +

◆ finalize_argstream() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!key_is_void, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::finalize_argstream (const Key & key)
+
+inline
+
+ +

finalizes stream for input i

+ +

Definition at line 872 of file ttg.h.

+ +
+
+ +

◆ get() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename resultT , typename InTuple >
+ + + + + +
+ + + + + + + + +
static resultT ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get (InTuple && intuple)
+
+inlinestaticprotected
+
+ +

Definition at line 271 of file ttg.h.

+ +
+
+ +

◆ get() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename InTuple >
+ + + + + +
+ + + + + + + + +
static auto& ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get (InTuple && intuple)
+
+inlinestaticprotected
+
+ +

Definition at line 275 of file ttg.h.

+ +
+
+ +

◆ get_defer_writer()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
bool ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_defer_writer (bool _)
+
+inline
+
+ +

Definition at line 1296 of file ttg.h.

+ +
+
+ +

◆ get_keymap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
decltype(keymap) const& ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_keymap () const
+
+inline
+
+

keymap accessor

Returns
the keymap
+ +

Definition at line 1300 of file ttg.h.

+ +
+
+ +

◆ get_output_terminals()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
const auto& ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_output_terminals () const
+
+inlineprotected
+
+ +

Definition at line 284 of file ttg.h.

+ +
+
+ +

◆ get_priomap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
auto ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_priomap (void ) const
+
+inline
+
+ +

Definition at line 1198 of file ttg.h.

+ +
+
+ +

◆ get_terminal_data()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_terminal_data (const int owner,
const Key & key 
)
+
+inlineprotected
+
+ +

Definition at line 476 of file ttg.h.

+ +
+
+ +

◆ get_world()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
ttg::World ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_world () const
+
+inlinefinaloverridevirtual
+
+
Returns
World in which this lives
+ +

Implements ttg::TTBase.

+ +

Definition at line 213 of file ttg.h.

+ +
+
+ +

◆ in()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
std::tuple_element_t<i, input_terminals_type>* ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::in ()
+
+inline
+
+ +

Returns pointer to input terminal i to facilitate connection — terminal cannot be copied, moved or assigned.

+ +

Definition at line 1224 of file ttg.h.

+ +
+
+ +

◆ invoke() [1/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke ()
+
+inlinevirtual
+
+ +

Manual injection of a task that has no key or arguments.

+ +

Reimplemented from ttg::TTBase.

+ +

Definition at line 1280 of file ttg.h.

+ +
+
+ +

◆ invoke() [2/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke ()
+
+inlineoverridevirtual
+
+

Use this to create a task that takes no data "manually"

Warning
calls ttg::abort() if the derived class TT did not override this; only makes sense to override this if the derived TT uses void for key or data
+ +

Reimplemented from ttg::TTBase.

+ +

Definition at line 1287 of file ttg.h.

+ +
+
+ +

◆ invoke() [3/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke (const input_values_tuple_typeargs)
+
+inline
+
+ +

Manual injection of a key-free task with all input arguments specified as a tuple.

+ +

Definition at line 1253 of file ttg.h.

+ +
+
+ +

◆ invoke() [4/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke (const Key & key)
+
+inline
+
+ +

Manual injection of a task that has no arguments.

+ +

Definition at line 1265 of file ttg.h.

+ +
+
+ +

◆ invoke() [5/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke (const Key & key,
const input_values_tuple_typeargs 
)
+
+inline
+
+ +

Manual injection of a task with all input arguments specified as a tuple.

+ +

Definition at line 1236 of file ttg.h.

+ +
+
+ +

◆ invoke_pull_terminal()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename terminalT , std::size_t i, typename Key >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke_pull_terminal (terminalT & in,
const Key & key,
TTArgs * args 
)
+
+inlineprotected
+
+ +

Definition at line 432 of file ttg.h.

+ +
+
+ +

◆ invoke_pull_terminals()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t... IS, typename Key = keyT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke_pull_terminals (std::index_sequence< IS... > ,
const Key & key,
TTArgs * args 
)
+
+inlineprotected
+
+ +

Definition at line 494 of file ttg.h.

+ +
+
+ +

◆ make_executable()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::make_executable ()
+
+inlineoverridevirtual
+
+ +

implementation of TTBase::make_executable()

+ +

Implements ttg::TTBase.

+ +

Definition at line 1209 of file ttg.h.

+ +
+
+ +

◆ out()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
std::tuple_element_t<i, output_terminalsT>* ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::out ()
+
+inline
+
+ +

Returns pointer to output terminal for purpose of connection — terminal cannot be copied, moved or assigned.

+ +

Definition at line 1230 of file ttg.h.

+ +
+
+ +

◆ owner() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key >
+ + + + + +
+ + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key>, int> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::owner () const
+
+inline
+
+

computes the owner of void key

Returns
the owner of void key
+ +

Definition at line 1313 of file ttg.h.

+ +
+
+ +

◆ owner() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key>, int> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::owner (const Key & key) const
+
+inline
+
+

computes the owner of key key

Parameters
+ + +
[in]keythe key
+
+
+
Returns
the owner of key
+ +

Definition at line 1306 of file ttg.h.

+ +
+
+ +

◆ set_arg() [1/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT, typename Value >
+ + + + + +
+ + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && std::is_void_v<Value>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg ()
+
+inlineprotected
+
+ +

Definition at line 686 of file ttg.h.

+ +
+
+ +

◆ set_arg() [2/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && std::is_void_v<Value>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg (const Key & key)
+
+inlineprotected
+
+ +

Definition at line 674 of file ttg.h.

+ +
+
+ +

◆ set_arg() [3/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg (const Key & key,
Value && value 
)
+
+inlineprotected
+
+ +

Definition at line 512 of file ttg.h.

+ +
+
+ +

◆ set_arg() [4/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT, typename Value >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg (Value && value)
+
+inlineprotected
+
+ +

Definition at line 680 of file ttg.h.

+ +
+
+ +

◆ set_args() [1/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key , typename... Ts, size_t... Is>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > is,
const Key & key,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 705 of file ttg.h.

+ +
+
+ +

◆ set_args() [2/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT, typename... Ts, size_t... Is>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > is,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 725 of file ttg.h.

+ +
+
+ +

◆ set_args() [3/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key , typename... Ts, size_t... Is, size_t... Js>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > ,
std::index_sequence< Js... > ,
const Key & key,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 694 of file ttg.h.

+ +
+
+ +

◆ set_args() [4/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key>, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > ,
std::index_sequence< Js... > ,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 714 of file ttg.h.

+ +
+
+ +

◆ set_argstream_size() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!key_is_void, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_argstream_size (const Key & key,
std::size_t size 
)
+
+inline
+
+

sets stream size for input i and key key

Template Parameters
+ + +
<i>index of the input terminal to set
+
+
+
Parameters
+ + + +
keythe task identifier
sizepositive integer that specifies the stream size
+
+
+ +

Definition at line 816 of file ttg.h.

+ +
+
+ +

◆ set_argstream_size() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<key_is_void, void> ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_argstream_size (std::size_t size)
+
+inline
+
+

sets stream size for input i

Parameters
+ + +
sizepositive integer that specifies the stream size
+
+
+ +

Definition at line 734 of file ttg.h.

+ +
+
+ +

◆ set_defer_writer()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_defer_writer (bool _)
+
+inline
+
+ +

Definition at line 1294 of file ttg.h.

+ +
+
+ +

◆ set_input_reducer() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Reducer >
+ + + + + +
+ + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_input_reducer (Reducer && reducer)
+
+inline
+
+

define the reducer function to be called when additional inputs are received on a streaming terminal

Template Parameters
+ + +
<i>the index of the input terminal that is used as a streaming terminal
+
+
+
Parameters
+ + +
[in]reducera function of prototype void(input_type<i> &a, const input_type<i> &b) that function should aggregate b into a
+
+
+ +

Definition at line 1175 of file ttg.h.

+ +
+
+ +

◆ set_input_reducer() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Reducer >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_input_reducer (Reducer && reducer,
std::size_t size 
)
+
+inline
+
+

define the reducer function to be called when additional inputs are received on a streaming terminal

Template Parameters
+ + +
<i>the index of the input terminal that is used as a streaming terminal
+
+
+
Parameters
+ + + +
[in]reducera function of prototype void(input_type<i> &a, const input_type<i> &b) that function should aggregate b into a
[in]sizethe default number of inputs that are received in this streaming terminal, for each task
+
+
+ +

Definition at line 1188 of file ttg.h.

+ +
+
+ +

◆ set_keymap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Keymap >
+ + + + + +
+ + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_keymap (Keymap && km)
+
+inline
+
+ +

Definition at line 1194 of file ttg.h.

+ +
+
+ +

◆ set_priomap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Priomap >
+ + + + + +
+ + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_priomap (Priomap && pm)
+
+inline
+
+

Set the priority map, mapping a Key to an integral value. Higher values indicate higher priority. The default priority is 0, higher values are treated as high priority tasks in the MADNESS backend.

+ +

Definition at line 1204 of file ttg.h.

+ +
+
+ +

◆ set_static_argstream_size()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + + +
void ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_static_argstream_size (std::size_t size)
+
+inline
+
+ +

Definition at line 795 of file ttg.h.

+ +
+
+

Member Data Documentation

+ +

◆ call_depth

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
size_t ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::call_depth = 0
+
+ +

Definition at line 245 of file ttg.h.

+ +
+
+ +

◆ key_hash

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
uint64_t ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::key_hash = 0
+
+ +

Definition at line 244 of file ttg.h.

+ +
+
+ +

◆ numinedges

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + +
constexpr int ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::numinedges = std::tuple_size_v<input_tuple_type>
+
+staticconstexprprotected
+
+ +

Definition at line 238 of file ttg.h.

+ +
+
+ +

◆ numins

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + +
constexpr int ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::numins = std::tuple_size_v<actual_input_tuple_type>
+
+staticconstexprprotected
+
+ +

Definition at line 239 of file ttg.h.

+ +
+
+ +

◆ numouts

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + +
constexpr int ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::numouts = std::tuple_size_v<output_terminalsT>
+
+staticconstexprprotected
+
+ +

Definition at line 240 of file ttg.h.

+ +
+
+ +

◆ 

+ +
+
+ + + + +
__thread { ... } ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >::threaddata
+
+ +
+
+
The documentation for this class was generated from the following files: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__madness_1_1_t_t.png b/dox-master/classttg__madness_1_1_t_t.png new file mode 100644 index 0000000000000000000000000000000000000000..56a4b68df391de218c2b861724872567a2cbf4b8 GIT binary patch literal 2034 zcmbtUdobH+7yd;`6|Jn6xKt5ZyHpjcidD)l(iU;2X-TwoH;r}8x-4m_OS)y_T6Jq{ zG>c%1x)hPsMZ|5l8k!Qi#9~QQGkD5j6;DyA>ti|(x0D_T(r*uF z#l^ln?rHITfz{nfDkG{NjmPRY6=A$z=?Q2_&7}kDT(4VEf=>3Eytw|Fj1oNa=6>84 zZAwFEuD~EaU42@ISM^4o>Pg1k@$Pjw+*Tbf5U9CvohC60b4PgMDWqtVHDpi4zMgD- zo`)|YfLZQ?+IeXnlDHE%OK+_HIEaO_VCHc!l>1x-RbD%RG>*ikWg0C9>f@qf^3#>f zry5uRCXHohVVhvpYhJ5=eOWyN)!nQYd4)1oy8D7uvK~S(Kef9lSPR|KCf6)63QDQL zt)vpK*HCiJOmR^R{VTHmojA&jEV<>k`9 z_T{V`>mP(#O-OvI_o3X8=28-+DWPC*fn=;{*K3Esq{IRZ*Nw`dL8`_fkQSao(H@9v z{C3KGwS>=S_4q6xpY^%>hB_KualNOHfajc27j&zet*XvEPxG~FV6PF^5r*=J15fYk zU3J7JHlF?9J302JU4&By7eD7)&iiWsE<2>q|?{g z!j|%+E`+sC0Yg0_ad>uy+4!1?^-TmQ1-ztf2B%ME#O!pLd#m3AgWD^=50`Vk7SpOMl8 zw(K*d7T|MmKOirdh;QTM`4Rc9k0D#gO-W_oxaz~J{6){(ka*N5S!J%V5Gk8afF#$X z{~u`M;LRf1IrvVfCa}+Df3P!D8i2g3yxPpad&rui!JMpAdT9#HaZ>QYB>{Q zu!63b!Ed_bn4up_y^HTP^yJsZO`D=$N{5>{n)8j{ZhK-7P`O`(q;G0U_-m8d^DJGA zb}IKvFiX(GnLJ|Nb)^`;?sfUZg_N7%<$qO#q|6M^^{vx0AVbpL8jxi@ALsW>{ZQzj z5@xEa7lGt5qZ7yjgiFU_6LXs=p@#MUsD-)8`Sf99l3{lf?Cqm6wQnM z*o)RwMqGJp;p|NL*l#D9SzK zO;QLJeb>fS2nYLnaVxcVJ5sGg)z0|_I)*gN(e1j$u*b)+7K2K5#uKqBZ`F0gU+yUU zt7}4&?Kl)-tuZ2Rf3khoq}Cv#Ka$}Guz literal 0 HcmV?d00001 diff --git a/dox-master/classttg__madness_1_1_world_impl-members.html b/dox-master/classttg__madness_1_1_world_impl-members.html new file mode 100644 index 000000000..5626e3848 --- /dev/null +++ b/dox-master/classttg__madness_1_1_world_impl-members.html @@ -0,0 +1,172 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg_madness::WorldImpl Member List
+
+
+ +

This is the complete list of members for ttg_madness::WorldImpl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ctl_edge()ttg_madness::WorldImplinline
ctl_edge() constttg_madness::WorldImplinline
dag_off()ttg::base::WorldImplBaseinlinevirtual
dag_on(const std::string &filename)ttg::base::WorldImplBaseinlinevirtual
dag_profiling()ttg::base::WorldImplBaseinlinevirtual
deregister_op(ttg::TTBase *op)ttg::base::WorldImplBaseinline
destroy(void) overridettg_madness::WorldImplinlinevirtual
execute()ttg::base::WorldImplBaseinlinevirtual
fence(void)ttg::base::WorldImplBaseinline
fence_impl(void) overridettg_madness::WorldImplinlinevirtual
final_task()ttg::base::WorldImplBaseinlinevirtual
impl()ttg_madness::WorldImplinline
impl() constttg_madness::WorldImplinline
is_valid(void) constttg::base::WorldImplBaseinline
mark_invalid()ttg::base::WorldImplBaseinlineprotected
operator=(const WorldImpl &other)=deletettg_madness::WorldImpl
operator=(WorldImpl &&other)=deletettg_madness::WorldImpl
profile_off()ttg::base::WorldImplBaseinlinevirtual
profile_on()ttg::base::WorldImplBaseinlinevirtual
profiling()ttg::base::WorldImplBaseinlinevirtual
rank()ttg::base::WorldImplBaseinline
register_callback(Callback &&callback)ttg::base::WorldImplBaseinline
register_op(ttg::TTBase *op)ttg::base::WorldImplBaseinline
register_ptr(const std::shared_ptr< T > &ptr)ttg::base::WorldImplBaseinline
register_ptr(std::unique_ptr< T > &&ptr)ttg::base::WorldImplBaseinline
register_status(const std::shared_ptr< std::promise< void >> &status_ptr)ttg::base::WorldImplBaseinline
release_ops(void)ttg::base::WorldImplBaseinlineprotected
size()ttg::base::WorldImplBaseinline
WorldImpl(::madness::World &world)ttg_madness::WorldImplinline
WorldImpl(const SafeMPI::Intracomm &comm)ttg_madness::WorldImplinline
WorldImpl(const WorldImpl &other)=deletettg_madness::WorldImpl
WorldImpl(WorldImpl &&other)=deletettg_madness::WorldImpl
WorldImplBase(int size, int rank)ttg::base::WorldImplBaseinlineprotected
~WorldImpl() overridettg_madness::WorldImplinlinevirtual
~WorldImplBase(void)ttg::base::WorldImplBaseinlinevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__madness_1_1_world_impl.html b/dox-master/classttg__madness_1_1_world_impl.html new file mode 100644 index 000000000..632a450a1 --- /dev/null +++ b/dox-master/classttg__madness_1_1_world_impl.html @@ -0,0 +1,593 @@ + + + + + + + + + + + ttg: ttg_madness::WorldImpl Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg_madness::WorldImpl Class Referencefinal
+
+
+
+Inheritance diagram for ttg_madness::WorldImpl:
+
+
+ + +ttg::base::WorldImplBase + +
+

Documentation

+
+

Definition at line 66 of file ttg.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 WorldImpl (::madness::World &world)
 
 WorldImpl (const SafeMPI::Intracomm &comm)
 
 WorldImpl (const WorldImpl &other)=delete
 
 WorldImpl (WorldImpl &&other)=delete
 
virtual ~WorldImpl () override
 
WorldImploperator= (const WorldImpl &other)=delete
 
WorldImploperator= (WorldImpl &&other)=delete
 
virtual void fence_impl (void) override
 
ttg::Edgectl_edge ()
 
const ttg::Edgectl_edge () const
 
virtual void destroy (void) override
 
::madness::World & impl ()
 
const ::madness::World & impl () const
 
- Public Member Functions inherited from ttg::base::WorldImplBase
virtual ~WorldImplBase (void)
 
int size ()
 
int rank ()
 
template<typename T >
void register_ptr (const std::shared_ptr< T > &ptr)
 
template<typename T >
void register_ptr (std::unique_ptr< T > &&ptr)
 
void register_status (const std::shared_ptr< std::promise< void >> &status_ptr)
 
template<typename Callback >
void register_callback (Callback &&callback)
 
void fence (void)
 
virtual void execute ()
 
void register_op (ttg::TTBase *op)
 
void deregister_op (ttg::TTBase *op)
 
bool is_valid (void) const
 
virtual void final_task ()
 
virtual void profile_on ()
 
virtual void profile_off ()
 
virtual bool profiling ()
 
virtual void dag_on (const std::string &filename)
 
virtual void dag_off ()
 
virtual bool dag_profiling ()
 
+ + + + + + + + +

+Additional Inherited Members

- Protected Member Functions inherited from ttg::base::WorldImplBase
void mark_invalid ()
 
void release_ops (void)
 
 WorldImplBase (int size, int rank)
 
+

Constructor & Destructor Documentation

+ +

◆ WorldImpl() [1/4]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg_madness::WorldImpl::WorldImpl (::madness::World & world)
+
+inline
+
+ +

Definition at line 74 of file ttg.h.

+ +
+
+ +

◆ WorldImpl() [2/4]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg_madness::WorldImpl::WorldImpl (const SafeMPI::Intracomm & comm)
+
+inline
+
+ +

Definition at line 76 of file ttg.h.

+ +
+
+ +

◆ WorldImpl() [3/4]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg_madness::WorldImpl::WorldImpl (const WorldImplother)
+
+delete
+
+ +
+
+ +

◆ WorldImpl() [4/4]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg_madness::WorldImpl::WorldImpl (WorldImpl && other)
+
+delete
+
+ +
+
+ +

◆ ~WorldImpl()

+ +
+
+ + + + + +
+ + + + + + + +
virtual ttg_madness::WorldImpl::~WorldImpl ()
+
+inlineoverridevirtual
+
+ +

Definition at line 85 of file ttg.h.

+ +
+
+

Member Function Documentation

+ +

◆ ctl_edge() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
ttg::Edge& ttg_madness::WorldImpl::ctl_edge ()
+
+inline
+
+ +

Definition at line 95 of file ttg.h.

+ +
+
+ +

◆ ctl_edge() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const ttg::Edge& ttg_madness::WorldImpl::ctl_edge () const
+
+inline
+
+ +

Definition at line 97 of file ttg.h.

+ +
+
+ +

◆ destroy()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg_madness::WorldImpl::destroy (void )
+
+inlineoverridevirtual
+
+ +

Implements ttg::base::WorldImplBase.

+ +

Definition at line 99 of file ttg.h.

+ +
+
+ +

◆ fence_impl()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg_madness::WorldImpl::fence_impl (void )
+
+inlineoverridevirtual
+
+ +

Implements ttg::base::WorldImplBase.

+ +

Definition at line 93 of file ttg.h.

+ +
+
+ +

◆ impl() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
::madness::World& ttg_madness::WorldImpl::impl (void )
+
+inline
+
+ +

Definition at line 112 of file ttg.h.

+ +
+
+ +

◆ impl() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
const ::madness::World& ttg_madness::WorldImpl::impl (void ) const
+
+inline
+
+ +

Definition at line 114 of file ttg.h.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
WorldImpl& ttg_madness::WorldImpl::operator= (const WorldImplother)
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
WorldImpl& ttg_madness::WorldImpl::operator= (WorldImpl && other)
+
+delete
+
+ +
+
+
The documentation for this class was generated from the following file:
    +
  • ttg/ttg/madness/ttg.h
  • +
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__madness_1_1_world_impl.png b/dox-master/classttg__madness_1_1_world_impl.png new file mode 100644 index 0000000000000000000000000000000000000000..cba8e9525ea08f546bb6b724e05eee112f05396d GIT binary patch literal 660 zcmeAS@N?(olHy`uVBq!ia0vp^lYuyZgBeI_xo@`xQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;4};sfDxk~%6@h`*l}ys>QY z0r5FS@$l$^Wg9mBc@ehg;sSP~u+pz7~vwg{*-GZ=_M6}MilDm?lA z(1Pz1T>d}%;k+|DZ}|?>HP63&EZc4C?SI|*a;1#*auc;WE!GnYlQ-~x-V*(k*OXmz zUS7ytfv&K4)#*kKl2-h7<*Vex53hc2x;)MDTO_B$;UDRDO1ikC-S1id-uhd1Ilu4} z^_7#nDu46@&s`HcsprbADLrc?XfXFfaWU0VL6s$tjM z>v#Lh6dKxJ?7L>UR95+^{(=8T%e;ztKUl{UF#XVjI^X?fyTBoxKg_=c + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs > Member List
+
+
+ +

This is the complete list of members for ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
argstream_set_size_from_msg(void *data, std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
broadcast_arg(const ttg::span< const Key > &keylist, const Value &value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
broadcast_arg_local(Iterator &&begin, Iterator &&end, const Value &value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
can_inline_data(Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
copy_mark_pushout(detail::ttg_data_copy_t *copy)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
create_new_reducer_task(task_t *task, bool is_first)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
create_new_task(const Key &key)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
derived_has_cuda_op()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
derived_has_device_op()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
derived_has_hip_op()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
derived_has_level_zero_op()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
do_prepare_send(const Value &value, RemoteCheckFn &&remote_check)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
do_release()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
finalize_argstream(const Key &key)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
finalize_argstream()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
finalize_argstream_from_msg(void *data, std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
get(InTuple &&intuple)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
get(InTuple &&intuple)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
get_class_name() constttg::TTBaseinline
get_defer_writer(bool value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get_devicemap()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get_from_pull_msg(void *data, std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
get_inputs() constttg::TTBaseinline
get_instance_id() constttg::TTBaseinline
get_keymap() constttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get_name() constttg::TTBaseinline
get_output_terminals() constttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
get_outputs() constttg::TTBaseinline
get_outputs_tls_ptr()ttg::TTBaseinlinestatic
get_priomap() constttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
get_task_mempool(void)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
get_world() const override finalttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
ht_iter_cb(void *item, void *cb_data)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinestatic
in()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
ttg::TTBase::in(size_t i)ttg::TTBaseinline
input_args_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_edges_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_refs_full_tuple_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_refs_tuple_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_terminals_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_values_full_tuple_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
input_values_tuple_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
invoke(const Key &key, const input_values_tuple_type &args)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
invoke(const input_values_tuple_type &args)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
invoke(const Key &key)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
invoke()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
invoke() overridettg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
invoke(const Key &key, Arg &&arg, Args &&... args)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
is_executable() constttg::TTBaseinline
is_lazy_pull()ttg::TTBaseinline
is_ttg() constttg::TTBaseinline
key_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
make_executable() overridettg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
numinvalsttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >static
ttg::TTBase::operator=(TTBase &&other)ttg::TTBaseinlineprotected
out()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
ttg::TTBase::out(size_t i)ttg::TTBaseinline
output_edges_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
output_terminals_type typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
outputs_tls_ptr_accessor()ttg::TTBaseinlineprotectedstatic
pack(T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
prepare_send(const ttg::span< const Key > &keylist, const Value &value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
prepare_send(const Value &value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
print_incomplete_tasks()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
register_input_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_output_terminals(terminalsT &terms, const namesT &names)ttg::TTBaseinlineprotected
register_static_op_function(void)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
register_terminal(terminalT &term, const std::string &name, const setfuncT setfunc)ttg::TTBaseinlineprotected
register_terminals(std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)ttg::TTBaseinlineprotected
release() overridettg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
release_task(task_t *task, parsec_task_t **task_ring=nullptr)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
runtimettg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >static
set_arg(const Key &key, Value &&value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg(Value &&value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg(const Key &key)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_from_msg(void *data, std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_from_msg_keylist(ttg::span< keyT > &&keylist, detail::ttg_data_copy_t *copy)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_local(const Key &key, Value &&value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_local(Value &&value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_local(const Key &key, const Value &value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_local(const Value &value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_local(std::shared_ptr< const Value > &valueptr)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_arg_local_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
set_argstream_size(const Key &key, std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_argstream_size(std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_defer_writer(bool value)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_devicemap(Devicemap &&dm)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_input(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_input_reducer(Reducer &&reducer)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_input_reducer(Reducer &&reducer, std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_keymap(Keymap &&km)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_lazy_pull(bool value)ttg::TTBaseinlinestatic
set_lazy_pull_instance(bool value)ttg::TTBaseinline
set_name(const std::string &name)ttg::TTBaseinline
set_output(size_t i, TerminalBase *t)ttg::TTBaseinlineprotected
set_outputs_tls_ptr()ttg::TTBaseinlineprotected
set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)ttg::TTBaseinlineprotected
set_priomap(Priomap &&pm)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_static_argstream_size(std::size_t size)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_terminals(const terminalsT &terms, const setfuncT setfunc)ttg::TTBaseinlineprotected
set_trace_all(bool value)ttg::TTBaseinlinestatic
set_trace_instance(bool value)ttg::TTBaseinline
static_set_arg(void *data, std::size_t size, ttg::TTBase *bop)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotectedstatic
trace(const T &t, const Ts &...ts)ttg::TTBaseinline
tracing() constttg::TTBaseinline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inline
TTBase(TTBase &&other)ttg::TTBaseinlineprotected
TTBase(const std::string &name, size_t numins, size_t numouts)ttg::TTBaseinlineprotected
ttg() constttg::TTBaseinline
ttg_ptr() constttg::TTBaseinline
ttT typedefttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
unpack(T &obj, void *_bytes, uint64_t pos)ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlineprotected
~TT()ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >inlinevirtual
~TTBase()=defaultttg::TTBasevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__parsec_1_1_t_t.html b/dox-master/classttg__parsec_1_1_t_t.html new file mode 100644 index 000000000..af0aa7c52 --- /dev/null +++ b/dox-master/classttg__parsec_1_1_t_t.html @@ -0,0 +1,3745 @@ + + + + + + + + + + + ttg: ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs > Class Template Reference
+
+
+
+Inheritance diagram for ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >:
+
+
+ + +ttg::TTBase +ttg_parsec::detail::ParsecTTBase + +
+

Documentation

+

template<typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs>
+class ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >

+ + +

Definition at line 1151 of file ttg.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Public Types

using ttT = TT
 
using key_type = keyT
 
using input_terminals_type = ttg::detail::input_terminals_tuple_t< keyT, input_tuple_type >
 
using input_args_type = actual_input_tuple_type
 
using input_edges_type = ttg::detail::edges_tuple_t< keyT, ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t< ttg::meta::decayed_typelist_t< actual_input_tuple_type > >
 
using input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t< ttg::meta::void_to_Void_tuple_t< actual_input_tuple_type > >
 
using input_values_tuple_type = ttg::meta::drop_void_t< ttg::meta::decayed_typelist_t< input_tuple_type > >
 
using input_refs_tuple_type = ttg::meta::drop_void_t< ttg::meta::add_glvalue_reference_tuple_t< input_tuple_type > >
 
using output_terminals_type = output_terminalsT
 
using output_edges_type = typename ttg::terminals_to_edges< output_terminalsT >::type
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

ttg::World get_world () const override final
 
template<std::size_t i>
void set_static_argstream_size (std::size_t size)
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_argstream_size (const Key &key, std::size_t size)
 
template<std::size_t i, typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_argstream_size (std::size_t size)
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > finalize_argstream (const Key &key)
 finalizes stream for input i More...
 
template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
std::enable_if_t< key_is_void, void > finalize_argstream ()
 finalizes stream for input i More...
 
void copy_mark_pushout (detail::ttg_data_copy_t *copy)
 
template<std::size_t i, typename Value , typename RemoteCheckFn >
std::enable_if_t<!std::is_void_v< std::decay_t< Value > >, void > do_prepare_send (const Value &value, RemoteCheckFn &&remote_check)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send (const ttg::span< const Key > &keylist, const Value &value)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send (const Value &value)
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())
 
template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
 TT (const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
 
virtual ~TT ()
 
void print_incomplete_tasks ()
 
virtual void release () override
 
void do_release ()
 
template<std::size_t i, typename Reducer >
void set_input_reducer (Reducer &&reducer)
 
template<std::size_t i, typename Reducer >
void set_input_reducer (Reducer &&reducer, std::size_t size)
 
template<std::size_t i>
std::tuple_element_t< i, input_terminals_type > * in ()
 
template<std::size_t i>
std::tuple_element_t< i, output_terminalsT > * out ()
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key, const input_values_tuple_type &args)
 
template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const input_values_tuple_type &args)
 
template<typename Key = keyT>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key)
 
template<typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke ()
 
void invoke () override
 
template<typename Key = keyT, typename Arg , typename... Args>
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke (const Key &key, Arg &&arg, Args &&... args)
 
void set_defer_writer (bool value)
 
bool get_defer_writer (bool value)
 
void make_executable () override
 Marks this executable. More...
 
decltype(keymap) const & get_keymap () const
 
template<typename Keymap >
void set_keymap (Keymap &&km)
 keymap setter More...
 
decltype(priomap) const & get_priomap () const
 
template<typename Priomap >
void set_priomap (Priomap &&pm)
 
template<typename Devicemap >
void set_devicemap (Devicemap &&dm)
 
auto get_devicemap ()
 
void register_static_op_function (void)
 
- Public Member Functions inherited from ttg::TTBase
virtual ~TTBase ()=default
 
bool set_trace_instance (bool value)
 
bool tracing () const
 
template<typename T , typename... Ts>
void trace (const T &t, const Ts &...ts)
 Like ttg::trace(), but only produces tracing output if this->tracing()==true More...
 
bool set_lazy_pull_instance (bool value)
 
bool is_lazy_pull ()
 
std::optional< std::reference_wrapper< const TTBase > > ttg () const
 
const TTBasettg_ptr () const
 
bool is_ttg () const
 
void set_name (const std::string &name)
 Sets the name of this operation. More...
 
const std::string & get_name () const
 Gets the name of this operation. More...
 
std::string get_class_name () const
 Gets the demangled class name (uses RTTI) More...
 
const std::vector< TerminalBase * > & get_inputs () const
 Returns the vector of input terminals. More...
 
const std::vector< TerminalBase * > & get_outputs () const
 Returns the vector of output terminals. More...
 
ttg::TerminalBasein (size_t i)
 Returns a pointer to the i'th input terminal. More...
 
ttg::TerminalBaseout (size_t i)
 Returns a pointer to the i'th output terminal. More...
 
template<std::size_t i>
ttg::TerminalBasein ()
 Returns a pointer to the i'th input terminal ... to make API consistent with TT. More...
 
template<std::size_t i>
ttg::TerminalBaseout ()
 Returns a pointer to the i'th output terminal ... to make API consistent with TT. More...
 
auto get_instance_id () const
 
bool is_executable () const
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Static Public Member Functions

static constexpr bool derived_has_cuda_op ()
 
static constexpr bool derived_has_hip_op ()
 
static constexpr bool derived_has_level_zero_op ()
 
static constexpr bool derived_has_device_op ()
 
template<std::size_t i, typename resultT , typename InTuple >
static resultT get (InTuple &&intuple)
 
template<std::size_t i, typename InTuple >
static auto & get (InTuple &&intuple)
 
static void ht_iter_cb (void *item, void *cb_data)
 
- Static Public Member Functions inherited from ttg::TTBase
static bool set_trace_all (bool value)
 
static bool set_lazy_pull (bool value)
 
static const std::vector< TerminalBase * > * get_outputs_tls_ptr ()
 Returns this thread's pointer to the vector of output terminals. More...
 
+ + + + + +

+Static Public Attributes

static constexpr int numinvals
 
static constexpr const ttg::Runtime runtime = ttg::Runtime::PaRSEC
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Protected Member Functions

const auto & get_output_terminals () const
 
template<typename T >
uint64_t unpack (T &obj, void *_bytes, uint64_t pos)
 
template<typename T >
uint64_t pack (T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)
 
parsec_thread_mempool_t * get_task_mempool (void)
 
template<size_t i, typename valueT >
void set_arg_from_msg_keylist (ttg::span< keyT > &&keylist, detail::ttg_data_copy_t *copy)
 
template<std::size_t i>
void set_arg_from_msg (void *data, std::size_t size)
 
template<std::size_t i>
void finalize_argstream_from_msg (void *data, std::size_t size)
 
template<std::size_t i>
void argstream_set_size_from_msg (void *data, std::size_t size)
 
template<std::size_t i>
void get_from_pull_msg (void *data, std::size_t size)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Key &key, Value &&value)
 
template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (Value &&value)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Key &key, const Value &value)
 
template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (const Value &value)
 
template<std::size_t i, typename Key = keyT, typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local (std::shared_ptr< const Value > &valueptr)
 
template<typename Key >
task_tcreate_new_task (const Key &key)
 
template<std::size_t i>
detail::reducer_task_tcreate_new_reducer_task (task_t *task, bool is_first)
 
template<std::size_t i, typename Key , typename Value >
void set_arg_local_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)
 
void release_task (task_t *task, parsec_task_t **task_ring=nullptr)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg (const Key &key, Value &&value)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg (Value &&value)
 
template<std::size_t i, typename Key = keyT>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_arg ()
 
template<std::size_t i, typename Key >
std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_arg (const Key &key)
 
template<typename Value , typename Key >
bool can_inline_data (Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)
 
template<std::size_t i, typename Key , typename Value >
void set_arg_impl (const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)
 
template<int i, typename Iterator , typename Value >
void broadcast_arg_local (Iterator &&begin, Iterator &&end, const Value &value)
 
template<std::size_t i, typename Key , typename Value >
std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > broadcast_arg (const ttg::span< const Key > &keylist, const Value &value)
 
template<typename Key , typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)
 
template<typename Key , typename... Ts, size_t... Is>
std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)
 
template<typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)
 
template<typename Key = keyT, typename... Ts, size_t... Is>
std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args (std::index_sequence< Is... > is, const std::tuple< Ts... > &args)
 
- Protected Member Functions inherited from ttg::TTBase
void set_input (size_t i, TerminalBase *t)
 
void set_output (size_t i, TerminalBase *t)
 
template<bool out, typename terminalT , std::size_t i, typename setfuncT >
void register_terminal (terminalT &term, const std::string &name, const setfuncT setfunc)
 
template<bool out, std::size_t... IS, typename terminalsT , typename namesT , typename setfuncT >
void register_terminals (std::index_sequence< IS... >, terminalsT &terms, const namesT &names, const setfuncT setfunc)
 
template<typename terminalsT , typename namesT >
void register_input_terminals (terminalsT &terms, const namesT &names)
 
template<typename terminalsT , typename namesT >
void register_output_terminals (terminalsT &terms, const namesT &names)
 
template<std::size_t... IS, typename terminalsT , typename setfuncT >
void set_terminals (std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
 
template<typename terminalsT , typename setfuncT >
void set_terminals (const terminalsT &terms, const setfuncT setfunc)
 
 TTBase (TTBase &&other)
 
TTBaseoperator= (TTBase &&other)
 
 TTBase (const std::string &name, size_t numins, size_t numouts)
 
void set_outputs_tls_ptr ()
 
void set_outputs_tls_ptr (const std::vector< TerminalBase * > *ptr)
 
+ + + + + + +

+Static Protected Member Functions

static void static_set_arg (void *data, std::size_t size, ttg::TTBase *bop)
 
- Static Protected Member Functions inherited from ttg::TTBase
static const std::vector< TerminalBase * > *& outputs_tls_ptr_accessor ()
 
+

Member Typedef Documentation

+ +

◆ input_args_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_args_type = actual_input_tuple_type
+
+ +

Definition at line 1220 of file ttg.h.

+ +
+
+ +

◆ input_edges_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_edges_type = ttg::detail::edges_tuple_t<keyT, ttg::meta::decayed_typelist_t<input_tuple_type> >
+
+ +

Definition at line 1221 of file ttg.h.

+ +
+
+ +

◆ input_refs_full_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_refs_full_tuple_type = ttg::meta::add_glvalue_reference_tuple_t<ttg::meta::void_to_Void_tuple_t<actual_input_tuple_type> >
+
+ +

Definition at line 1225 of file ttg.h.

+ +
+
+ +

◆ input_refs_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_refs_tuple_type = ttg::meta::drop_void_t<ttg::meta::add_glvalue_reference_tuple_t<input_tuple_type> >
+
+ +

Definition at line 1228 of file ttg.h.

+ +
+
+ +

◆ input_terminals_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_terminals_type = ttg::detail::input_terminals_tuple_t<keyT, input_tuple_type>
+
+ +

Definition at line 1219 of file ttg.h.

+ +
+
+ +

◆ input_values_full_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_values_full_tuple_type = ttg::meta::void_to_Void_tuple_t<ttg::meta::decayed_typelist_t<actual_input_tuple_type> >
+
+ +

Definition at line 1223 of file ttg.h.

+ +
+
+ +

◆ input_values_tuple_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::input_values_tuple_type = ttg::meta::drop_void_t<ttg::meta::decayed_typelist_t<input_tuple_type> >
+
+ +

Definition at line 1227 of file ttg.h.

+ +
+
+ +

◆ key_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::key_type = keyT
+
+ +

Definition at line 1218 of file ttg.h.

+ +
+
+ +

◆ output_edges_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::output_edges_type = typename ttg::terminals_to_edges<output_terminalsT>::type
+
+ +

Definition at line 1235 of file ttg.h.

+ +
+
+ +

◆ output_terminals_type

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::output_terminals_type = output_terminalsT
+
+ +

Definition at line 1234 of file ttg.h.

+ +
+
+ +

◆ ttT

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + +
using ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::ttT = TT
+
+ +

Definition at line 1217 of file ttg.h.

+ +
+
+

Constructor & Destructor Documentation

+ +

◆ TT() [1/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
ttg::World world,
keymapT && keymap_ = keymapT(),
priomapT && priomap_ = priomapT() 
)
+
+inline
+
+ +

Definition at line 3744 of file ttg.h.

+ +
+
+ +

◆ TT() [2/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
keymapT && keymap = keymapT(ttg::default_execution_context()),
priomapT && priomap = priomapT() 
)
+
+inline
+
+ +

Definition at line 3896 of file ttg.h.

+ +
+
+ +

◆ TT() [3/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const input_edges_typeinedges,
const output_edges_typeoutedges,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
ttg::World world,
keymapT && keymap_ = keymapT(),
priomapT && priomap = priomapT() 
)
+
+inline
+
+ +

Definition at line 3903 of file ttg.h.

+ +
+
+ +

◆ TT() [4/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename keymapT = ttg::detail::default_keymap<keyT>, typename priomapT = ttg::detail::default_priomap<keyT>>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::TT (const input_edges_typeinedges,
const output_edges_typeoutedges,
const std::string & name,
const std::vector< std::string > & innames,
const std::vector< std::string > & outnames,
keymapT && keymap = keymapT(ttg::default_execution_context()),
priomapT && priomap = priomapT() 
)
+
+inline
+
+ +

Definition at line 3916 of file ttg.h.

+ +
+
+ +

◆ ~TT()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
virtual ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::~TT ()
+
+inlinevirtual
+
+ +

Definition at line 3923 of file ttg.h.

+ +
+
+

Member Function Documentation

+ +

◆ argstream_set_size_from_msg()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::argstream_set_size_from_msg (void * data,
std::size_t size 
)
+
+inlineprotected
+
+ +

Definition at line 2231 of file ttg.h.

+ +
+
+ +

◆ broadcast_arg()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::broadcast_arg (const ttg::span< const Key > & keylist,
const Value & value 
)
+
+inlineprotected
+
+

pack the registration handles memory layout: [<lreg_size, lreg, lreg_fn>, ...] NOTE: we need to pack these for every receiver to ensure correct ref-counting of the registration

+ +

Definition at line 2860 of file ttg.h.

+ +
+
+ +

◆ broadcast_arg_local()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<int i, typename Iterator , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::broadcast_arg_local (Iterator && begin,
Iterator && end,
const Value & value 
)
+
+inlineprotected
+
+ +

Definition at line 2830 of file ttg.h.

+ +
+
+ +

◆ can_inline_data()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Value , typename Key >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::can_inline_data (Value * value_ptr,
detail::ttg_data_copy_tcopy,
const Key & key,
std::size_t num_keys 
)
+
+inlineprotected
+
+ +

Definition at line 2626 of file ttg.h.

+ +
+
+ +

◆ copy_mark_pushout()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::copy_mark_pushout (detail::ttg_data_copy_tcopy)
+
+inline
+
+ +

Definition at line 3317 of file ttg.h.

+ +
+
+ +

◆ create_new_reducer_task()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
detail::reducer_task_t* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::create_new_reducer_task (task_ttask,
bool is_first 
)
+
+inlineprotected
+
+ +

Definition at line 2325 of file ttg.h.

+ +
+
+ +

◆ create_new_task()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key >
+ + + + + +
+ + + + + + + + +
task_t* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::create_new_task (const Key & key)
+
+inlineprotected
+
+ +

Definition at line 2298 of file ttg.h.

+ +
+
+ +

◆ derived_has_cuda_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_cuda_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if derivedT::have_cuda_op exists and is defined to true
+ +

Definition at line 1186 of file ttg.h.

+ +
+
+ +

◆ derived_has_device_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_device_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if the TT supports device execution
+ +

Definition at line 1213 of file ttg.h.

+ +
+
+ +

◆ derived_has_hip_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_hip_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if derivedT::have_hip_op exists and is defined to true
+ +

Definition at line 1195 of file ttg.h.

+ +
+
+ +

◆ derived_has_level_zero_op()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
static constexpr bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::derived_has_level_zero_op ()
+
+inlinestaticconstexpr
+
+
Returns
true if derivedT::have_hip_op exists and is defined to true
+ +

Definition at line 1204 of file ttg.h.

+ +
+
+ +

◆ do_prepare_send()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Value , typename RemoteCheckFn >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::do_prepare_send (const Value & value,
RemoteCheckFn && remote_check 
)
+
+inline
+
+ +

Definition at line 3354 of file ttg.h.

+ +
+
+ +

◆ do_release()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::do_release ()
+
+inline
+
+ +

Definition at line 3954 of file ttg.h.

+ +
+
+ +

◆ finalize_argstream() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
+ + + + + +
+ + + + + + + +
std::enable_if_t<key_is_void, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::finalize_argstream ()
+
+inline
+
+ +

finalizes stream for input i

+ +

Definition at line 3270 of file ttg.h.

+ +
+
+ +

◆ finalize_argstream() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::finalize_argstream (const Key & key)
+
+inline
+
+ +

finalizes stream for input i

+ +

Definition at line 3218 of file ttg.h.

+ +
+
+ +

◆ finalize_argstream_from_msg()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::finalize_argstream_from_msg (void * data,
std::size_t size 
)
+
+inlineprotected
+
+ +

Definition at line 2212 of file ttg.h.

+ +
+
+ +

◆ get() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename resultT , typename InTuple >
+ + + + + +
+ + + + + + + + +
static resultT ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get (InTuple && intuple)
+
+inlinestatic
+
+ +

Definition at line 1238 of file ttg.h.

+ +
+
+ +

◆ get() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename InTuple >
+ + + + + +
+ + + + + + + + +
static auto& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get (InTuple && intuple)
+
+inlinestatic
+
+ +

Definition at line 1242 of file ttg.h.

+ +
+
+ +

◆ get_defer_writer()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
bool ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_defer_writer (bool value)
+
+inline
+
+ +

Definition at line 4198 of file ttg.h.

+ +
+
+ +

◆ get_devicemap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
auto ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_devicemap ()
+
+inline
+
+

device map accessor

Returns
the device map
+ +

Definition at line 4259 of file ttg.h.

+ +
+
+ +

◆ get_from_pull_msg()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_from_pull_msg (void * data,
std::size_t size 
)
+
+inlineprotected
+
+ +

Definition at line 2254 of file ttg.h.

+ +
+
+ +

◆ get_keymap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
decltype(keymap) const& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_keymap () const
+
+inline
+
+

keymap accessor

Returns
the keymap
+ +

Definition at line 4211 of file ttg.h.

+ +
+
+ +

◆ get_output_terminals()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
const auto& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_output_terminals () const
+
+inlineprotected
+
+ +

Definition at line 1259 of file ttg.h.

+ +
+
+ +

◆ get_priomap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
decltype(priomap) const& ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_priomap () const
+
+inline
+
+

priority map accessor

Returns
the priority map
+ +

Definition at line 4221 of file ttg.h.

+ +
+
+ +

◆ get_task_mempool()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
parsec_thread_mempool_t* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_task_mempool (void )
+
+inlineprotected
+
+

Returns the task memory pool owned by the calling thread

+ +

Definition at line 1978 of file ttg.h.

+ +
+
+ +

◆ get_world()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
ttg::World ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::get_world () const
+
+inlinefinaloverridevirtual
+
+
Returns
World in which this lives
+ +

Implements ttg::TTBase.

+ +

Definition at line 1315 of file ttg.h.

+ +
+
+ +

◆ ht_iter_cb()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::ht_iter_cb (void * item,
void * cb_data 
)
+
+inlinestatic
+
+ +

Definition at line 3938 of file ttg.h.

+ +
+
+ +

◆ in()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
std::tuple_element_t<i, input_terminals_type>* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::in ()
+
+inline
+
+ +

Definition at line 4078 of file ttg.h.

+ +
+
+ +

◆ invoke() [1/6]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke ()
+
+inlinevirtual
+
+

Use this to create a task that takes no data "manually"

Warning
calls ttg::abort() if the derived class TT did not override this; only makes sense to override this if the derived TT uses void for key or data
+ +

Reimplemented from ttg::TTBase.

+ +

Definition at line 4136 of file ttg.h.

+ +
+
+ +

◆ invoke() [2/6]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke ()
+
+inlineoverridevirtual
+
+

Use this to create a task that takes no data "manually"

Warning
calls ttg::abort() if the derived class TT did not override this; only makes sense to override this if the derived TT uses void for key or data
+ +

Reimplemented from ttg::TTBase.

+ +

Definition at line 4144 of file ttg.h.

+ +
+
+ +

◆ invoke() [3/6]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke (const input_values_tuple_typeargs)
+
+inline
+
+ +

Definition at line 4108 of file ttg.h.

+ +
+
+ +

◆ invoke() [4/6]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke (const Key & key)
+
+inline
+
+ +

Definition at line 4120 of file ttg.h.

+ +
+
+ +

◆ invoke() [5/6]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT, typename Arg , typename... Args>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke (const Key & key,
Arg && arg,
Args &&... args 
)
+
+inline
+
+ +

Definition at line 4180 of file ttg.h.

+ +
+
+ +

◆ invoke() [6/6]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::invoke (const Key & key,
const input_values_tuple_typeargs 
)
+
+inline
+
+ +

Definition at line 4091 of file ttg.h.

+ +
+
+ +

◆ make_executable()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::make_executable ()
+
+inlineoverridevirtual
+
+ +

Marks this executable.

+ +

Implements ttg::TTBase.

+ +

Definition at line 4203 of file ttg.h.

+ +
+
+ +

◆ out()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + +
std::tuple_element_t<i, output_terminalsT>* ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::out ()
+
+inline
+
+ +

Definition at line 4085 of file ttg.h.

+ +
+
+ +

◆ pack()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::pack (T & obj,
void * bytes,
uint64_t pos,
detail::ttg_data_copy_tcopy = nullptr 
)
+
+inlineprotected
+
+ +

Definition at line 1918 of file ttg.h.

+ +
+
+ +

◆ prepare_send() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::prepare_send (const ttg::span< const Key > & keylist,
const Value & value 
)
+
+inline
+
+ +

Definition at line 3446 of file ttg.h.

+ +
+
+ +

◆ prepare_send() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::prepare_send (const Value & value)
+
+inline
+
+ +

Definition at line 3460 of file ttg.h.

+ +
+
+ +

◆ print_incomplete_tasks()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::print_incomplete_tasks ()
+
+inline
+
+ +

Definition at line 3948 of file ttg.h.

+ +
+
+ +

◆ register_static_op_function()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::register_static_op_function (void )
+
+inline
+
+ +

Definition at line 4262 of file ttg.h.

+ +
+
+ +

◆ release()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + +
virtual void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::release ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::TTBase.

+ +

Definition at line 3952 of file ttg.h.

+ +
+
+ +

◆ release_task()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::release_task (task_ttask,
parsec_task_t ** task_ring = nullptr 
)
+
+inlineprotected
+
+ +

Definition at line 2553 of file ttg.h.

+ +
+
+ +

◆ set_arg() [1/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT>
+ + + + + +
+ + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg ()
+
+inlineprotected
+
+ +

Definition at line 2615 of file ttg.h.

+ +
+
+ +

◆ set_arg() [2/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg (const Key & key)
+
+inlineprotected
+
+ +

Definition at line 2621 of file ttg.h.

+ +
+
+ +

◆ set_arg() [3/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg (const Key & key,
Value && value 
)
+
+inlineprotected
+
+ +

Definition at line 2603 of file ttg.h.

+ +
+
+ +

◆ set_arg() [4/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg (Value && value)
+
+inlineprotected
+
+ +

Definition at line 2610 of file ttg.h.

+ +
+
+ +

◆ set_arg_from_msg()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_from_msg (void * data,
std::size_t size 
)
+
+inlineprotected
+
+ +

Definition at line 2035 of file ttg.h.

+ +
+
+ +

◆ set_arg_from_msg_keylist()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<size_t i, typename valueT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_from_msg_keylist (ttg::span< keyT > && keylist,
detail::ttg_data_copy_tcopy 
)
+
+inlineprotected
+
+ +

Definition at line 1986 of file ttg.h.

+ +
+
+ +

◆ set_arg_impl()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_impl (const Key & key,
Value && value,
detail::ttg_data_copy_tcopy_in = nullptr 
)
+
+inlineprotected
+
+

register the generic iovecs and pack the registration handles memory layout: [<lreg_size, lreg, release_cb_ptr>, ...]

+ +

Definition at line 2656 of file ttg.h.

+ +
+
+ +

◆ set_arg_local() [1/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_local (const Key & key,
const Value & value 
)
+
+inlineprotected
+
+ +

Definition at line 2280 of file ttg.h.

+ +
+
+ +

◆ set_arg_local() [2/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_local (const Key & key,
Value && value 
)
+
+inlineprotected
+
+ +

Definition at line 2268 of file ttg.h.

+ +
+
+ +

◆ set_arg_local() [3/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT, typename Value >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_local (const Value & value)
+
+inlineprotected
+
+ +

Definition at line 2286 of file ttg.h.

+ +
+
+ +

◆ set_arg_local() [4/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT, typename Value >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_local (std::shared_ptr< const Value > & valueptr)
+
+inlineprotected
+
+ +

Definition at line 2292 of file ttg.h.

+ +
+
+ +

◆ set_arg_local() [5/5]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT, typename Value >
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value> >, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_local (Value && value)
+
+inlineprotected
+
+ +

Definition at line 2274 of file ttg.h.

+ +
+
+ +

◆ set_arg_local_impl()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key , typename Value >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_arg_local_impl (const Key & key,
Value && value,
detail::ttg_data_copy_tcopy_in = nullptr,
parsec_task_t ** task_ring = nullptr 
)
+
+inlineprotected
+
+ +

Definition at line 2352 of file ttg.h.

+ +
+
+ +

◆ set_args() [1/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key , typename... Ts, size_t... Is>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_none_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > is,
const Key & key,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 3051 of file ttg.h.

+ +
+
+ +

◆ set_args() [2/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT, typename... Ts, size_t... Is>
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > is,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 3071 of file ttg.h.

+ +
+
+ +

◆ set_args() [3/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key , typename... Ts, size_t... Is, size_t... Js>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_none_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > ,
std::index_sequence< Js... > ,
const Key & key,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 3039 of file ttg.h.

+ +
+
+ +

◆ set_args() [4/4]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_args (std::index_sequence< Is... > ,
std::index_sequence< Js... > ,
const std::tuple< Ts... > & args 
)
+
+inlineprotected
+
+ +

Definition at line 3060 of file ttg.h.

+ +
+
+ +

◆ set_argstream_size() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::enable_if_t<!ttg::meta::is_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_argstream_size (const Key & key,
std::size_t size 
)
+
+inline
+
+

sets stream size for input i

Parameters
+ + + +
sizepositive integer that specifies the stream size
keythe task identifier that expects this number of inputs in the streaming terminal
+
+
+ +

Definition at line 3099 of file ttg.h.

+ +
+
+ +

◆ set_argstream_size() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Key = keyT>
+ + + + + +
+ + + + + + + + +
std::enable_if_t<ttg::meta::is_void_v<Key>, void> ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_argstream_size (std::size_t size)
+
+inline
+
+

sets stream size for input i

Parameters
+ + +
sizepositive integer that specifies the stream size
+
+
+ +

Definition at line 3160 of file ttg.h.

+ +
+
+ +

◆ set_defer_writer()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_defer_writer (bool value)
+
+inline
+
+ +

Definition at line 4194 of file ttg.h.

+ +
+
+ +

◆ set_devicemap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Devicemap >
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_devicemap (Devicemap && dm)
+
+inline
+
+

device map setter The device map provides a hint on which device a task should execute. TTG may not be able to honor the request and the corresponding task may execute on a different device.

    +
  • pm a function that provides a hint on which device the task should execute.
  • +
+ +

Definition at line 4236 of file ttg.h.

+ +
+
+ +

◆ set_input_reducer() [1/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Reducer >
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_input_reducer (Reducer && reducer)
+
+inline
+
+

define the reducer function to be called when additional inputs are received on a streaming terminal

Template Parameters
+ + +
<i>the index of the input terminal that is used as a streaming terminal
+
+
+
Parameters
+ + +
[in]reducera function of prototype void(input_type<i> &a, const input_type<i> &b) that function should aggregate b into a
+
+
+ +

Definition at line 3989 of file ttg.h.

+ +
+
+ +

◆ set_input_reducer() [2/2]

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i, typename Reducer >
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_input_reducer (Reducer && reducer,
std::size_t size 
)
+
+inline
+
+

define the reducer function to be called when additional inputs are received on a streaming terminal

Template Parameters
+ + +
<i>the index of the input terminal that is used as a streaming terminal
+
+
+
Parameters
+ + + +
[in]reducera function of prototype void(input_type<i> &a, const input_type<i> &b) that function should aggregate b into a
[in]sizethe default number of inputs that are received in this streaming terminal, for each task
+
+
+ +

Definition at line 4070 of file ttg.h.

+ +
+
+ +

◆ set_keymap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Keymap >
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_keymap (Keymap && km)
+
+inline
+
+ +

keymap setter

+ +

Definition at line 4215 of file ttg.h.

+ +
+
+ +

◆ set_priomap()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename Priomap >
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_priomap (Priomap && pm)
+
+inline
+
+

priomap setter

    +
  • pm a function that maps a key to an integral priority value.
  • +
+ +

Definition at line 4226 of file ttg.h.

+ +
+
+ +

◆ set_static_argstream_size()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<std::size_t i>
+ + + + + +
+ + + + + + + + +
void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::set_static_argstream_size (std::size_t size)
+
+inline
+
+

sets the default stream size for input i

Parameters
+ + +
sizepositive integer that specifies the default stream size
+
+
+ +

Definition at line 3080 of file ttg.h.

+ +
+
+ +

◆ static_set_arg()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::static_set_arg (void * data,
std::size_t size,
ttg::TTBasebop 
)
+
+inlinestaticprotected
+
+ +

Definition at line 1933 of file ttg.h.

+ +
+
+ +

◆ unpack()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+
+template<typename T >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
uint64_t ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::unpack (T & obj,
void * _bytes,
uint64_t pos 
)
+
+inlineprotected
+
+ +

Definition at line 1905 of file ttg.h.

+ +
+
+

Member Data Documentation

+ +

◆ numinvals

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + +
constexpr int ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::numinvals
+
+staticconstexpr
+
+Initial value:
=
+
std::tuple_size_v<input_refs_tuple_type>
+
+

Definition at line 1230 of file ttg.h.

+ +
+
+ +

◆ runtime

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs >
+ + + + + +
+ + + + +
constexpr const ttg::Runtime ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >::runtime = ttg::Runtime::PaRSEC
+
+staticconstexpr
+
+ +

Definition at line 3981 of file ttg.h.

+ +
+
+
The documentation for this class was generated from the following files: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__parsec_1_1_t_t.png b/dox-master/classttg__parsec_1_1_t_t.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d5ec3eaaa3fc189febcd70aa76e0fe9219c35e GIT binary patch literal 1613 zcma)4doHb<{@crY&ij4Och37f-+9mTB)Yq~sHy0y007ho zcqbA7@+cU)E6Ky>6Y8iUeCfLH_H>rXWH5X^C84vL*f9FD1p)ywad-{IqmH;4!2~IfA2!#0NAT(yKfpqn<{VdzCa%4}2JvF_$bJ$QvUC#A3-*ti5Wt)*1 z=3w-sAv0{Nt?2A_D#0?9W|@OZrJ^UOrkBty0tTLB{x6_tEk4S>A5T2S&#g+Ok-Idx ztO9gQYH-4v21#eqJpx9{>r%46H`~mpTR3Av&>8Pkz`UsaDI-X)E*bUVR%k<-u|YzZ z1H>8VunD`2YOZ!re`gZW&3cn!ng1dCgH?y?Gu+VdRF|$)pT#&(de~= zQQIM91QVr4cpcUAMe~ z2bv`Id?8QTT+A%5Tjc_Ff~gk9Q^)<>8y<0`HMcf{dN)FCo|p21JS!FgA^# z0Jk;WOX?W zrcexRsS=8{m4Q43#431c{Y4f4-FU@iWpkkTbK^2oH69VPEW57ybc+3$ zkuCw)s6z%%qXR#sjFQ?;r!~IqP1AXy=eRfsFK+0F##^s)_k9`3+An3GfYwF&Lc3}A zyV}a(4a7yt&J}VRS21QCy-=QM>qL3R$~uvY1W(uhTIs!RMtyCM(O63!OD3wQIyZKr zB{tXIEa^J`2FGwFX=2;{vO=j(++a|e&;%YjL|F zx@F~&;sKm~x5Kx1thol);@0z1-sc5Sg-di*&*EZd|8}T=1 zk8=*=IL-xXbcP{~4MljqS}<*K)w}42gDMC1dhjaiY5Pi10O8#}?_cd~9;{wr9^$;0GONyG^ncz)gy>b!d=xnAQqfQ#Vl K=2Wzk!uSJQ&%ZhV literal 0 HcmV?d00001 diff --git a/dox-master/classttg__parsec_1_1_world_impl-members.html b/dox-master/classttg__parsec_1_1_world_impl-members.html new file mode 100644 index 000000000..b7907a13e --- /dev/null +++ b/dox-master/classttg__parsec_1_1_world_impl-members.html @@ -0,0 +1,182 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg_parsec::WorldImpl Member List
+
+
+ +

This is the complete list of members for ttg_parsec::WorldImpl, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
comm() constttg_parsec::WorldImplinline
context()ttg_parsec::WorldImplinline
create_tpool()ttg_parsec::WorldImplinline
ctl_edge()ttg_parsec::WorldImplinline
ctl_edge() constttg_parsec::WorldImplinline
dag_off() overridettg_parsec::WorldImplinlinevirtual
dag_on(const std::string &filename) overridettg_parsec::WorldImplinlinevirtual
dag_profiling() overridettg_parsec::WorldImplinlinevirtual
decrement_inflight_msg()ttg_parsec::WorldImplinline
deregister_op(ttg::TTBase *op)ttg::base::WorldImplBaseinline
destroy() overridettg_parsec::WorldImplinlinevirtual
destroy_tpool()ttg_parsec::WorldImplinline
execute() overridettg_parsec::WorldImplinlinevirtual
execution_stream()ttg_parsec::WorldImplinline
fence(void)ttg::base::WorldImplBaseinline
fence_impl(void) overridettg_parsec::WorldImplinlineprotectedvirtual
final_task() overridettg_parsec::WorldImplinlinevirtual
increment_created()ttg_parsec::WorldImplinline
increment_inflight_msg()ttg_parsec::WorldImplinline
is_valid(void) constttg::base::WorldImplBaseinline
mark_invalid()ttg::base::WorldImplBaseinlineprotected
mpi_support(ttg::ExecutionSpace space)ttg_parsec::WorldImplinline
operator=(const WorldImpl &other)=deletettg_parsec::WorldImpl
operator=(WorldImpl &&other)=deletettg_parsec::WorldImpl
parsec_ttg_rma_tag()ttg_parsec::WorldImplinlinestatic
parsec_ttg_tag()ttg_parsec::WorldImplinlinestatic
profile_off() overridettg_parsec::WorldImplinlinevirtual
profile_on() overridettg_parsec::WorldImplinlinevirtual
profiling() overridettg_parsec::WorldImplinlinevirtual
rank()ttg::base::WorldImplBaseinline
register_callback(Callback &&callback)ttg::base::WorldImplBaseinline
register_op(ttg::TTBase *op)ttg::base::WorldImplBaseinline
register_ptr(const std::shared_ptr< T > &ptr)ttg::base::WorldImplBaseinline
register_ptr(std::unique_ptr< T > &&ptr)ttg::base::WorldImplBaseinline
register_status(const std::shared_ptr< std::promise< void >> &status_ptr)ttg::base::WorldImplBaseinline
register_tt_profiling(const TT< keyT, output_terminalsT, derivedT, input_valueTs > *t)ttg_parsec::WorldImplinline
release_ops(void)ttg::base::WorldImplBaseinlineprotected
size()ttg::base::WorldImplBaseinline
taskpool()ttg_parsec::WorldImplinline
WorldImpl(int *argc, char **argv[], int ncores, parsec_context_t *c=nullptr)ttg_parsec::WorldImplinline
WorldImpl(const WorldImpl &other)=deletettg_parsec::WorldImpl
WorldImpl(WorldImpl &&other)=deletettg_parsec::WorldImpl
WorldImplBase(int size, int rank)ttg::base::WorldImplBaseinlineprotected
~WorldImpl()ttg_parsec::WorldImplinline
~WorldImplBase(void)ttg::base::WorldImplBaseinlinevirtual
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__parsec_1_1_world_impl.html b/dox-master/classttg__parsec_1_1_world_impl.html new file mode 100644 index 000000000..a9d0c4054 --- /dev/null +++ b/dox-master/classttg__parsec_1_1_world_impl.html @@ -0,0 +1,1147 @@ + + + + + + + + + + + ttg: ttg_parsec::WorldImpl Class Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+ +
+
+Inheritance diagram for ttg_parsec::WorldImpl:
+
+
+ + +ttg::base::WorldImplBase + +
+

Documentation

+
+

Definition at line 231 of file ttg.h.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 WorldImpl (int *argc, char **argv[], int ncores, parsec_context_t *c=nullptr)
 
auto * context ()
 
auto * execution_stream ()
 
auto * taskpool ()
 
void create_tpool ()
 
 WorldImpl (const WorldImpl &other)=delete
 
 WorldImpl (WorldImpl &&other)=delete
 
WorldImploperator= (const WorldImpl &other)=delete
 
WorldImploperator= (WorldImpl &&other)=delete
 
 ~WorldImpl ()
 
MPI_Comm comm () const
 
virtual void execute () override
 
void destroy_tpool ()
 
virtual void destroy () override
 
ttg::Edgectl_edge ()
 
const ttg::Edgectl_edge () const
 
void increment_created ()
 
void increment_inflight_msg ()
 
void decrement_inflight_msg ()
 
bool dag_profiling () override
 
virtual void dag_on (const std::string &filename) override
 
virtual void dag_off () override
 
virtual void profile_off () override
 
virtual void profile_on () override
 
virtual bool profiling () override
 
bool mpi_support (ttg::ExecutionSpace space)
 
virtual void final_task () override
 
template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs = ttg::typelist<>>
void register_tt_profiling (const TT< keyT, output_terminalsT, derivedT, input_valueTs > *t)
 
- Public Member Functions inherited from ttg::base::WorldImplBase
virtual ~WorldImplBase (void)
 
int size ()
 
int rank ()
 
template<typename T >
void register_ptr (const std::shared_ptr< T > &ptr)
 
template<typename T >
void register_ptr (std::unique_ptr< T > &&ptr)
 
void register_status (const std::shared_ptr< std::promise< void >> &status_ptr)
 
template<typename Callback >
void register_callback (Callback &&callback)
 
void fence (void)
 
void register_op (ttg::TTBase *op)
 
void deregister_op (ttg::TTBase *op)
 
bool is_valid (void) const
 
+ + + + + +

+Static Public Member Functions

static constexpr int parsec_ttg_tag ()
 
static constexpr int parsec_ttg_rma_tag ()
 
+ + + + + + + + + + +

+Protected Member Functions

virtual void fence_impl (void) override
 
- Protected Member Functions inherited from ttg::base::WorldImplBase
void mark_invalid ()
 
void release_ops (void)
 
 WorldImplBase (int size, int rank)
 
+

Constructor & Destructor Documentation

+ +

◆ WorldImpl() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_parsec::WorldImpl::WorldImpl (int * argc,
char ** argv[],
int ncores,
parsec_context_t * c = nullptr 
)
+
+inline
+
+ +

Definition at line 269 of file ttg.h.

+ +
+
+ +

◆ WorldImpl() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg_parsec::WorldImpl::WorldImpl (const WorldImplother)
+
+delete
+
+ +
+
+ +

◆ WorldImpl() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
ttg_parsec::WorldImpl::WorldImpl (WorldImpl && other)
+
+delete
+
+ +
+
+ +

◆ ~WorldImpl()

+ +
+
+ + + + + +
+ + + + + + + +
ttg_parsec::WorldImpl::~WorldImpl ()
+
+inline
+
+ +

Definition at line 386 of file ttg.h.

+ +
+
+

Member Function Documentation

+ +

◆ comm()

+ +
+
+ + + + + +
+ + + + + + + +
MPI_Comm ttg_parsec::WorldImpl::comm () const
+
+inline
+
+ +

Definition at line 391 of file ttg.h.

+ +
+
+ +

◆ context()

+ +
+
+ + + + + +
+ + + + + + + +
auto* ttg_parsec::WorldImpl::context ()
+
+inline
+
+ +

Definition at line 327 of file ttg.h.

+ +
+
+ +

◆ create_tpool()

+ +
+
+ + + + + +
+ + + + + + + +
void ttg_parsec::WorldImpl::create_tpool ()
+
+inline
+
+ +

Definition at line 331 of file ttg.h.

+ +
+
+ +

◆ ctl_edge() [1/2]

+ +
+
+ + + + + +
+ + + + + + + +
ttg::Edge& ttg_parsec::WorldImpl::ctl_edge ()
+
+inline
+
+ +

Definition at line 448 of file ttg.h.

+ +
+
+ +

◆ ctl_edge() [2/2]

+ +
+
+ + + + + +
+ + + + + + + +
const ttg::Edge& ttg_parsec::WorldImpl::ctl_edge () const
+
+inline
+
+ +

Definition at line 450 of file ttg.h.

+ +
+
+ +

◆ dag_off()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg_parsec::WorldImpl::dag_off ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 475 of file ttg.h.

+ +
+
+ +

◆ dag_on()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg_parsec::WorldImpl::dag_on (const std::string & filename)
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 459 of file ttg.h.

+ +
+
+ +

◆ dag_profiling()

+ +
+
+ + + + + +
+ + + + + + + +
bool ttg_parsec::WorldImpl::dag_profiling ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 457 of file ttg.h.

+ +
+
+ +

◆ decrement_inflight_msg()

+ +
+
+ + + + + +
+ + + + + + + +
void ttg_parsec::WorldImpl::decrement_inflight_msg ()
+
+inline
+
+ +

Definition at line 455 of file ttg.h.

+ +
+
+ +

◆ destroy()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg_parsec::WorldImpl::destroy (void )
+
+inlineoverridevirtual
+
+ +

Implements ttg::base::WorldImplBase.

+ +

Definition at line 417 of file ttg.h.

+ +
+
+ +

◆ destroy_tpool()

+ +
+
+ + + + + +
+ + + + + + + +
void ttg_parsec::WorldImpl::destroy_tpool ()
+
+inline
+
+ +

Definition at line 404 of file ttg.h.

+ +
+
+ +

◆ execute()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg_parsec::WorldImpl::execute ()
+
+inlineoverridevirtual
+
+

Start the execution of tasks in this world. The call to execute() will return immediately, i.e., it will not wait for all tasks to complete executing.

+
See also
fence
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 393 of file ttg.h.

+ +
+
+ +

◆ execution_stream()

+ +
+
+ + + + + +
+ + + + + + + +
auto* ttg_parsec::WorldImpl::execution_stream ()
+
+inline
+
+ +

Definition at line 328 of file ttg.h.

+ +
+
+ +

◆ fence_impl()

+ +
+
+ + + + + +
+ + + + + + + + +
virtual void ttg_parsec::WorldImpl::fence_impl (void )
+
+inlineoverrideprotectedvirtual
+
+ +

Implements ttg::base::WorldImplBase.

+ +

Definition at line 551 of file ttg.h.

+ +
+
+ +

◆ final_task()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg_parsec::WorldImpl::final_task ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 502 of file ttg.h.

+ +
+
+ +

◆ increment_created()

+ +
+
+ + + + + +
+ + + + + + + +
void ttg_parsec::WorldImpl::increment_created ()
+
+inline
+
+ +

Definition at line 452 of file ttg.h.

+ +
+
+ +

◆ increment_inflight_msg()

+ +
+
+ + + + + +
+ + + + + + + +
void ttg_parsec::WorldImpl::increment_inflight_msg ()
+
+inline
+
+ +

Definition at line 454 of file ttg.h.

+ +
+
+ +

◆ mpi_support()

+ +
+
+ + + + + +
+ + + + + + + + +
bool ttg_parsec::WorldImpl::mpi_support (ttg::ExecutionSpace space)
+
+inline
+
+ +

Definition at line 498 of file ttg.h.

+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
WorldImpl& ttg_parsec::WorldImpl::operator= (const WorldImplother)
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
WorldImpl& ttg_parsec::WorldImpl::operator= (WorldImpl && other)
+
+delete
+
+ +
+
+ +

◆ parsec_ttg_rma_tag()

+ +
+
+ + + + + +
+ + + + + + + +
static constexpr int ttg_parsec::WorldImpl::parsec_ttg_rma_tag ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 389 of file ttg.h.

+ +
+
+ +

◆ parsec_ttg_tag()

+ +
+
+ + + + + +
+ + + + + + + +
static constexpr int ttg_parsec::WorldImpl::parsec_ttg_tag ()
+
+inlinestaticconstexpr
+
+ +

Definition at line 388 of file ttg.h.

+ +
+
+ +

◆ profile_off()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg_parsec::WorldImpl::profile_off ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 484 of file ttg.h.

+ +
+
+ +

◆ profile_on()

+ +
+
+ + + + + +
+ + + + + + + +
virtual void ttg_parsec::WorldImpl::profile_on ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 490 of file ttg.h.

+ +
+
+ +

◆ profiling()

+ +
+
+ + + + + +
+ + + + + + + +
virtual bool ttg_parsec::WorldImpl::profiling ()
+
+inlineoverridevirtual
+
+ +

Reimplemented from ttg::base::WorldImplBase.

+ +

Definition at line 496 of file ttg.h.

+ +
+
+ +

◆ register_tt_profiling()

+ +
+
+
+template<typename keyT , typename output_terminalsT , typename derivedT , typename input_valueTs = ttg::typelist<>>
+ + + + + +
+ + + + + + + + +
void ttg_parsec::WorldImpl::register_tt_profiling (const TT< keyT, output_terminalsT, derivedT, input_valueTs > * t)
+
+inline
+
+ +

Definition at line 512 of file ttg.h.

+ +
+
+ +

◆ taskpool()

+ +
+
+ + + + + +
+ + + + + + + +
auto* ttg_parsec::WorldImpl::taskpool ()
+
+inline
+
+ +

Definition at line 329 of file ttg.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__parsec_1_1_world_impl.png b/dox-master/classttg__parsec_1_1_world_impl.png new file mode 100644 index 0000000000000000000000000000000000000000..7b4e4725f686f6be4701f2d0a8ba4b465fedcbcd GIT binary patch literal 646 zcmeAS@N?(olHy`uVBq!ia0vp^lYuyZgBeI_xo@`xQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;Qq~^Klsn4X8)dsDLJ*>R%PhaBpo-^`# zDf4lYU;jKV_3k^AG9!Ii^WTd0;&1nQP8Wxk>iJY&`gqpP-BaY`+O%DU@4jgU#YS;i zosQMsT(X*f+O_Ss*59i*6Y~D@SD9OjyLJnyl)n1EPIlF!%oLl$Q*8P^2p?{vy>YJ{bx&+j)@9$SH2Jygfu1>>2c{V_-Y8OIh(5=XaC#;~j-_yeZaUM3 zr#=kZkR<hxRH^=v=m=3eE!e=Gi(-uWr-+V`$I_Wj#M%Xv#w z-+HXk^SRn|!`El$xpTq4L;jgGP80XJ_I%5>U0Z&!F7>K;{zP(F+Wc30*Y6Syem&#c z(op7_%9ZUtA0r+&-|%ARo%3|QQR&6%D&9kuM=!R|tm|0r_~VM6y@BaM3weJ-(Y()k z);yoq*;qZ+eIDESl_7WL$=w&1e*B*IYvbn`n)hW5JFX{WKCtL?E;6i aez7XB%kvm>o-qU_8U{~SKbLh*2~7apOD?kj literal 0 HcmV?d00001 diff --git a/dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate-members.html b/dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate-members.html new file mode 100644 index 000000000..e74e6ef31 --- /dev/null +++ b/dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT > Member List
+
+
+ +

This is the complete list of members for ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >, including all inherited members.

+ + + +
complete_transfer(void)ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >inline
rma_delayed_activate(std::vector< KeyT > &&key, detail::ttg_data_copy_t *copy, int num_transfers, ActivationCallbackT cb)ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >inline
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate.html b/dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate.html new file mode 100644 index 000000000..fc1833dc3 --- /dev/null +++ b/dox-master/classttg__parsec_1_1detail_1_1rma__delayed__activate.html @@ -0,0 +1,238 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT > Class Template Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT > Class Template Reference
+
+
+

Documentation

+

template<typename KeyT, typename ActivationCallbackT>
+class ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >

+ + +

Definition at line 831 of file ttg.h.

+
+ + + + + +

+Public Member Functions

 rma_delayed_activate (std::vector< KeyT > &&key, detail::ttg_data_copy_t *copy, int num_transfers, ActivationCallbackT cb)
 
bool complete_transfer (void)
 
+

Constructor & Destructor Documentation

+ +

◆ rma_delayed_activate()

+ +
+
+
+template<typename KeyT , typename ActivationCallbackT >
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >::rma_delayed_activate (std::vector< KeyT > && key,
detail::ttg_data_copy_tcopy,
int num_transfers,
ActivationCallbackT cb 
)
+
+inline
+
+ +

Definition at line 838 of file ttg.h.

+ +
+
+

Member Function Documentation

+ +

◆ complete_transfer()

+ +
+
+
+template<typename KeyT , typename ActivationCallbackT >
+ + + + + +
+ + + + + + + + +
bool ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >::complete_transfer (void )
+
+inline
+
+ +

Definition at line 841 of file ttg.h.

+ +
+
+
The documentation for this class was generated from the following file: +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/closed.png b/dox-master/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/dox-master/config_8hpp.html b/dox-master/config_8hpp.html new file mode 100644 index 000000000..e31b67a47 --- /dev/null +++ b/dox-master/config_8hpp.html @@ -0,0 +1,367 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/config.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
config.hpp File Reference
+
+
+
#include <type_traits>
+#include <tuple>
+#include <utility>
+#include <cstdint>
+#include <boost/callable_traits/detail/polyfills/disjunction.hpp>
+#include <boost/callable_traits/detail/polyfills/make_index_sequence.hpp>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define BOOST_CLBL_TRTS_EMPTY_
 
#define BOOST_CLBL_TRTS_EMPTY   BOOST_CLBL_TRTS_EMPTY_
 
#define BOOST_CLBL_TRAITS_INLINE_VAR
 
#define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
 
#define BOOST_CLBL_TRTS_IX_SEQ(...)   ::std::index_sequence< __VA_ARGS__ >
 
#define BOOST_CLBL_TRTS_MAKE_IX_SEQ(...)   ::std::make_index_sequence< __VA_ARGS__ >
 
#define BOOST_CLBL_TRTS_DISJUNCTION(...)   ::std::disjunction< __VA_ARGS__ >
 
#define BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
 
#define BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
 
#define BOOST_CLBL_TRTS_ABOMINABLE_CONST   const
 
#define BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE   volatile
 
#define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER   BOOST_CLBL_TRTS_EMPTY
 
+

Macro Definition Documentation

+ +

◆ BOOST_CLBL_TRAITS_INLINE_VAR

+ +
+
+ + + + +
#define BOOST_CLBL_TRAITS_INLINE_VAR
+
+ +

Definition at line 27 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_ABOMINABLE_CONST

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_ABOMINABLE_CONST   const
+
+ +

Definition at line 99 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE   volatile
+
+ +

Definition at line 100 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
+
+ +

Definition at line 87 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
+
+ +

Definition at line 72 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_DISJUNCTION

+ +
+
+ + + + + + + + +
#define BOOST_CLBL_TRTS_DISJUNCTION( ...)   ::std::disjunction< __VA_ARGS__ >
+
+ +

Definition at line 69 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_EMPTY

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_EMPTY   BOOST_CLBL_TRTS_EMPTY_
+
+ +

Definition at line 18 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_EMPTY_

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_EMPTY_
+
+ +

Definition at line 17 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_IX_SEQ

+ +
+
+ + + + + + + + +
#define BOOST_CLBL_TRTS_IX_SEQ( ...)   ::std::index_sequence< __VA_ARGS__ >
+
+ +

Definition at line 67 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_MAKE_IX_SEQ

+ +
+
+ + + + + + + + +
#define BOOST_CLBL_TRTS_MAKE_IX_SEQ( ...)   ::std::make_index_sequence< __VA_ARGS__ >
+
+ +

Definition at line 68 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER   BOOST_CLBL_TRTS_EMPTY
+
+ +

Definition at line 106 of file config.hpp.

+ +
+
+ +

◆ BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER

+ +
+
+ + + + +
#define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
+
+ +

Definition at line 37 of file config.hpp.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/config_8hpp_source.html b/dox-master/config_8hpp_source.html new file mode 100644 index 000000000..7743edc76 --- /dev/null +++ b/dox-master/config_8hpp_source.html @@ -0,0 +1,237 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/config.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
config.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 @Copyright Barrett Adair 2016-2017
+
3 
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_DETAIL_CONFIG_HPP
+
10 #define BOOST_CLBL_TRTS_DETAIL_CONFIG_HPP
+
11 
+
12 #include <type_traits>
+
13 #include <tuple>
+
14 #include <utility>
+
15 #include <cstdint>
+
16 
+
17 #define BOOST_CLBL_TRTS_EMPTY_
+
18 #define BOOST_CLBL_TRTS_EMPTY BOOST_CLBL_TRTS_EMPTY_
+
19 
+
20 #ifdef __cpp_transactional_memory
+
21 # define BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
+
22 #endif
+
23 
+
24 #ifdef __cpp_inline_variables
+
25 # define BOOST_CLBL_TRAITS_INLINE_VAR inline
+
26 #else
+
27 # define BOOST_CLBL_TRAITS_INLINE_VAR
+
28 #endif
+
29 
+
30 #ifdef __cpp_noexcept_function_type
+
31 # define BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
+
32 #endif
+
33 
+
34 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
+
35 # define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER transaction_safe
+
36 #else
+
37 # define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
+
38 #endif
+
39 
+
40 #ifndef __clang__
+
41 # if defined(__GNUC__)
+
42 # define BOOST_CLBL_TRTS_GCC
+
43 # if __GNUC__ >= 6
+
44 # define BOOST_CLBL_TRTS_GCC_AT_LEAST_6_0_0
+
45 # endif
+
46 # if __GNUC__ < 5
+
47 # define BOOST_CLBL_TRTS_GCC_OLDER_THAN_5_0_0
+
48 # endif
+
49 # if __GNUC__ >= 5
+
50 # define BOOST_CLBL_TRTS_GCC_AT_LEAST_4_9_2
+
51 # elif __GNUC__ == 4 && __GNUC_MINOR__ == 9 && __GNUC_PATCHLEVEL__ >= 2
+
52 # define BOOST_CLBL_TRTS_GCC_AT_LEAST_4_9_2
+
53 # else
+
54 # define BOOST_CLBL_TRTS_GCC_OLDER_THAN_4_9_2
+
55 # endif //#if __GNUC__ >= 5
+
56 # endif //#if defined __GNUC__
+
57 #endif // #ifndef __clang__
+
58 
+
59 #ifdef _MSC_VER
+
60 # ifdef __clang__
+
61 # define BOOST_CLBL_TRTS_CLANG_C2
+
62 # else
+
63 # define BOOST_CLBL_TRTS_MSVC
+
64 # endif // #ifdef __clang__
+
65 #endif // #ifdef _MSC_VER
+
66 
+
67 #define BOOST_CLBL_TRTS_IX_SEQ(...) ::std::index_sequence< __VA_ARGS__ >
+
68 #define BOOST_CLBL_TRTS_MAKE_IX_SEQ(...) ::std::make_index_sequence< __VA_ARGS__ >
+
69 #define BOOST_CLBL_TRTS_DISJUNCTION(...) ::std::disjunction< __VA_ARGS__ >
+
70 
+
71 #ifndef __cpp_variable_templates
+
72 # define BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
+
73 #endif
+
74 
+
75 #ifndef __cpp_lib_logical_traits
+ +
77 #endif //__cpp_lib_logical_traits
+
78 
+
79 #ifndef __cpp_lib_integer_sequence
+ +
81 #endif // __cpp_lib_integer_sequence
+
82 
+
83 #if defined(BOOST_CLBL_TRTS_MSVC) && !defined(BOOST_DISABLE_WIN32)
+
84 # define BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC __cdecl
+
85 # define BOOST_CLBL_TRTS_PMF_VARGARGS_CDECL_DEFAULT
+
86 #else
+
87 # define BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
+
88 #endif // #if defined(BOOST_CLBL_TRTS_MSVC) && !defined(BOOST_DISABLE_WIN32))
+
89 
+
90 #if (defined(BOOST_CLBL_TRTS_GCC) && !defined(BOOST_CLBL_TRTS_GCC_AT_LEAST_4_9_2)) || defined(__INTEL_COMPILER)
+
91 # define BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
+
92 # define BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
93 #endif // #if defined BOOST_CLBL_TRTS_GCC && !defined(BOOST_CLBL_TRTS_GCC_AT_LEAST_4_9_2)
+
94 
+
95 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
96 # define BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_EMPTY
+
97 # define BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE BOOST_CLBL_TRTS_EMPTY
+
98 #else
+
99 # define BOOST_CLBL_TRTS_ABOMINABLE_CONST const
+
100 # define BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE volatile
+
101 #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
+
102 
+
103 #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
+
104 # define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER noexcept
+
105 #else
+
106 # define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER BOOST_CLBL_TRTS_EMPTY
+
107 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
+
108 
+
109 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_CONFIG_HPP
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/config_8in_8h.html b/dox-master/config_8in_8h.html new file mode 100644 index 000000000..d4ba538dd --- /dev/null +++ b/dox-master/config_8in_8h.html @@ -0,0 +1,342 @@ + + + + + + + + + + + ttg: ttg/ttg/config.in.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
config.in.h File Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define TTG_CXX_COROUTINE_HEADER   <@CXX_COROUTINE_HEADER@>
 
#define TTG_CXX_COROUTINE_NAMESPACE   @CXX_COROUTINE_NAMESPACE@
 
#define TTG_HAVE_COROUTINE
 
#define TTG_HAVE_CUDA
 
#define TTG_HAVE_CUDART
 
#define TTG_HAVE_HIP
 
#define TTG_HAVE_HIPBLAS
 
#define TTG_HAVE_LEVEL_ZERO
 
#define TTG_HAVE_DEVICE
 
#define TTG_HAVE_MPI
 
#define TTG_HAVE_MPIEXT
 
+

Macro Definition Documentation

+ +

◆ TTG_CXX_COROUTINE_HEADER

+ +
+
+ + + + +
#define TTG_CXX_COROUTINE_HEADER   <@CXX_COROUTINE_HEADER@>
+
+

the C++ header containing the coroutine API

+ +

Definition at line 9 of file config.in.h.

+ +
+
+ +

◆ TTG_CXX_COROUTINE_NAMESPACE

+ +
+
+ + + + +
#define TTG_CXX_COROUTINE_NAMESPACE   @CXX_COROUTINE_NAMESPACE@
+
+

the C++ namespace containing the coroutine API

+ +

Definition at line 12 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_COROUTINE

+ +
+
+ + + + +
#define TTG_HAVE_COROUTINE
+
+

whether the compiler supports C++ coroutines

+ +

Definition at line 15 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_CUDA

+ +
+
+ + + + +
#define TTG_HAVE_CUDA
+
+

whether TTG has CUDA language support

+ +

Definition at line 18 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_CUDART

+ +
+
+ + + + +
#define TTG_HAVE_CUDART
+
+

whether TTG has CUDA runtime support

+ +

Definition at line 21 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_DEVICE

+ +
+
+ + + + +
#define TTG_HAVE_DEVICE
+
+

whether TTG has any device programming model (CUDA/HIP/LEVEL_ZERO) support

+ +

Definition at line 33 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_HIP

+ +
+
+ + + + +
#define TTG_HAVE_HIP
+
+

whether TTG has HIP support

+ +

Definition at line 24 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_HIPBLAS

+ +
+
+ + + + +
#define TTG_HAVE_HIPBLAS
+
+

whether TTG has HIP BLAS library

+ +

Definition at line 27 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_LEVEL_ZERO

+ +
+
+ + + + +
#define TTG_HAVE_LEVEL_ZERO
+
+

whether TTG has Intel Level Zero support

+ +

Definition at line 30 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_MPI

+ +
+
+ + + + +
#define TTG_HAVE_MPI
+
+

whether TTG has MPI library

+ +

Definition at line 36 of file config.in.h.

+ +
+
+ +

◆ TTG_HAVE_MPIEXT

+ +
+
+ + + + +
#define TTG_HAVE_MPIEXT
+
+

whether TTG has the mpi-ext.h header

+ +

Definition at line 39 of file config.in.h.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/config_8in_8h_source.html b/dox-master/config_8in_8h_source.html new file mode 100644 index 000000000..f73a7d618 --- /dev/null +++ b/dox-master/config_8in_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/config.in.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
config.in.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 10/31/22.
+
3 //
+
4 
+
5 #ifndef TTG_CONFIG_IN_H
+
6 #define TTG_CONFIG_IN_H
+
7 
+
9 #define TTG_CXX_COROUTINE_HEADER <@CXX_COROUTINE_HEADER@>
+
10 
+
12 #define TTG_CXX_COROUTINE_NAMESPACE @CXX_COROUTINE_NAMESPACE@
+
13 
+
15 #cmakedefine TTG_HAVE_COROUTINE
+
16 
+
18 #cmakedefine TTG_HAVE_CUDA
+
19 
+
21 #cmakedefine TTG_HAVE_CUDART
+
22 
+
24 #cmakedefine TTG_HAVE_HIP
+
25 
+
27 #cmakedefine TTG_HAVE_HIPBLAS
+
28 
+
30 #cmakedefine TTG_HAVE_LEVEL_ZERO
+
31 
+
33 #cmakedefine TTG_HAVE_DEVICE
+
34 
+
36 #cmakedefine TTG_HAVE_MPI
+
37 
+
39 #cmakedefine TTG_HAVE_MPIEXT
+
40 
+
41 #endif // TTG_CONFIG_IN_H
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/contrib_2top_8md.html b/dox-master/contrib_2top_8md.html new file mode 100644 index 000000000..43b440670 --- /dev/null +++ b/dox-master/contrib_2top_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/contrib/top.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/contrib/top.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/contribguide.html b/dox-master/contribguide.html new file mode 100644 index 000000000..eda2907e2 --- /dev/null +++ b/dox-master/contribguide.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Contributor Guide + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Contributor Guide
+
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/core_8hpp.html b/dox-master/core_8hpp.html new file mode 100644 index 000000000..c124f0a9c --- /dev/null +++ b/dox-master/core_8hpp.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/core.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
core.hpp File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/core_8hpp_source.html b/dox-master/core_8hpp_source.html new file mode 100644 index 000000000..e1cd2159c --- /dev/null +++ b/dox-master/core_8hpp_source.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/core.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
core.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 
+
3 @Copyright Barrett Adair 2016-2017
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_DETAIL_CORE_HPP
+
10 #define BOOST_CLBL_TRTS_DETAIL_CORE_HPP
+
11 
+ + + + + + +
18 
+
19 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_CORE_HPP
+ + + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/coroutine_8h.html b/dox-master/coroutine_8h.html new file mode 100644 index 000000000..ae006fa1b --- /dev/null +++ b/dox-master/coroutine_8h.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: ttg/ttg/coroutine.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
coroutine.h File Reference
+
+
+
#include "ttg/config.h"
+#include <algorithm>
+#include <array>
+
+ + + + + + + + + + + +

+Classes

struct  ttg::event
 represents a generic one-time event More...
 
struct  ttg::resumable_task
 task that can be resumed after some events occur More...
 
struct  ttg::resumable_task_state
 
struct  ttg::resumable_task_events< N >
 
+ + + + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::device
 
 ttg::device::detail
 
+ + + + + + + + +

+Typedefs

using ttg::suspend_always = TTG_CXX_COROUTINE_NAMESPACE::suspend_always
 
using ttg::suspend_never = TTG_CXX_COROUTINE_NAMESPACE::suspend_never
 
template<typename Promise >
using ttg::coroutine_handle = TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise >
 
+ + + +

+Enumerations

enum class  ttg::TaskCoroutineID { ttg::Invalid +, ttg::ResumableTask +, ttg::DeviceTask + }
 
+ + + + +

+Functions

template<typename... Events>
 ttg::resumable_task_events (Events &&...) -> resumable_task_events< sizeof...(Events)>
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/coroutine_8h_source.html b/dox-master/coroutine_8h_source.html new file mode 100644 index 000000000..437527240 --- /dev/null +++ b/dox-master/coroutine_8h_source.html @@ -0,0 +1,356 @@ + + + + + + + + + + + ttg: ttg/ttg/coroutine.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
coroutine.h
+
+
+Go to the documentation of this file.
1 //
+
2 // Created by Eduard Valeyev on 10/31/22.
+
3 //
+
4 
+
5 #ifndef TTG_COROUTINE_H
+
6 #define TTG_COROUTINE_H
+
7 
+
8 #include "ttg/config.h"
+
9 
+
10 #ifdef TTG_HAVE_COROUTINE
+
11 #include TTG_CXX_COROUTINE_HEADER
+
12 
+
13 #include <algorithm>
+
14 #include <array>
+
15 
+
16 
+
17 namespace ttg {
+
18 
+
19  // import std coroutine API into ttg namespace
+
20 
+ + +
23  template <typename Promise>
+
24  using coroutine_handle = TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle<Promise>;
+
25 
+
27 
+
31 
+
33 
+
34  // fwd-declares
+
35 
+
36  struct resumable_task_state;
+
37 
+
38  template <std::size_t N>
+
39  struct resumable_task_events;
+
40 
+
42  struct event {
+
43  void finish() { finished_ = true; }
+
44 
+
46  bool finished() const { return finished_; }
+
47 
+
48  private:
+
49  std::atomic<bool> finished_ = false;
+
50  };
+
51 
+
53  struct resumable_task : public ttg::coroutine_handle<resumable_task_state> {
+ +
55 
+
58 
+ +
60 
+
62 
+
63  resumable_task(base_type base) : base_type(std::move(base)) {}
+
64 
+
65  base_type handle() { return *this; }
+
66 
+
68  inline bool ready() const;
+
69 
+
71  inline bool completed() const;
+
72 
+
74  inline ttg::span<event*> events();
+
75  };
+
76 
+ +
80  resumable_task_state() noexcept = default;
+
81  // these only live on coroutine frames so make noncopyable and nonmovable
+ +
83  resumable_task_state& operator=(const resumable_task_state&) = delete;
+ + +
86 
+
87  constexpr static inline std::size_t MaxNumEvents = 20;
+ +
89 
+
92 
+
93  resumable_task get_return_object() { return resumable_task{handle_type::from_promise(*this)}; }
+
94 
+
96  suspend_never initial_suspend() noexcept { return {}; }
+
97 
+ +
100  completed_ = true;
+
101  return {};
+
102  }
+
103  void return_void() {}
+ +
105 
+
107 
+
110 
+
111  // these can be used to use optional storage provided by the runtime (e.g. part of the runtime's task data struct)
+
112  // N.B. the existing buffer must be passed to operator new via TLS
+
113  // void* operator new(std::size_t size)
+
114  // {
+
115  // return ::operator new(size);
+
116  // }
+
117 
+
118  // N.B. whether the external buffer was used by operator new must be passed via TLS
+
119  // void operator delete(void* ptr, std::size_t size)
+
120  // {
+
121  // ::operator delete(ptr, size);
+
122  // }
+
123 
+
125 
+
127  constexpr bool ready() const {
+
128  for (std::size_t e = 0; e != nevents_; ++e)
+
129  if (!events_storage_[e]->finished()) return false;
+
130  return true;
+
131  }
+
132 
+
134  constexpr bool completed() const { return completed_; }
+
135 
+
136  ttg::span<event*> events() { return ttg::span(events_storage_.data(), nevents_); }
+
137 
+
138  private:
+
139  std::array<event*, MaxNumEvents> events_storage_;
+
140  std::size_t nevents_;
+
141  bool completed_ = false;
+
142 
+
143  template <std::size_t N>
+
144  friend struct resumable_task_events;
+
145 
+
146  void reset_events() {
+
147  std::fill(events_storage_.begin(), events_storage_.begin() + nevents_, nullptr);
+
148  nevents_ = 0;
+
149  }
+
150 
+
151  template <std::size_t N>
+
152  void set_events(const std::array<event*, N> events) {
+
153  static_assert(N <= MaxNumEvents);
+
154  std::copy(events.begin(), events.end(), events_storage_.begin());
+
155  nevents_ = N;
+
156  }
+
157  };
+
158 
+
159  bool resumable_task::ready() const { return base_type::promise().ready(); }
+
160  bool resumable_task::completed() const { return base_type::promise().completed(); }
+
161  ttg::span<event*> resumable_task::events() { return base_type::promise().events(); }
+
162 
+
167  template <std::size_t N>
+ +
169  private:
+
170  template <std::size_t... I>
+
171  constexpr bool await_ready(std::index_sequence<I...>) const {
+
172  return (std::get<I>(events_)->finished() && ...);
+
173  }
+
174 
+
175  public:
+
176  template <typename... Events>
+
177  constexpr resumable_task_events(Events&&... events) : events_{(&events)...} {}
+
178 
+
181 
+
182  constexpr bool await_ready() const { return await_ready(std::make_index_sequence<N>{}); }
+
183 
+ +
185  pending_task_ = pending_task;
+
186  pending_task_.promise().set_events(events_);
+
187  }
+
188 
+
189  void await_resume() {
+
190  if (pending_task_) {
+
191  pending_task_.promise().reset_events();
+
192  pending_task_ = {};
+
193  }
+
194  }
+
195 
+
197 
+
198  private:
+
199  std::array<event*, N> events_;
+ +
201  }; // resumable_task_events
+
202 
+
203  // deduce the number of events properly
+
204  template <typename... Events>
+
205  resumable_task_events(Events&&...) -> resumable_task_events<sizeof...(Events)>;
+
206 
+
207  static_assert(resumable_task_events<0>{}.await_ready() == true);
+
208 
+
210 
+
212  // describe all types of coroutine tasks known to TTG
+
214 
+
215  // fwd declare all coro promise types that have not been declared yet
+
216  namespace device::detail {
+
217  struct device_task_promise_type;
+
218  } // namespace device::detail
+
219 
+
222  enum class TaskCoroutineID {
+
224  Invalid,
+ +
228  DeviceTask
+
229  };
+
230 
+
231 } // namespace ttg
+
232 
+
233 #endif // TTG_HAVE_COROUTINE
+
234 
+
235 #endif // TTG_COROUTINE_H
+
bool ready() const
Definition: coroutine.h:159
+
ttg::span< event * > events()
Definition: coroutine.h:161
+
bool completed() const
Definition: coroutine.h:160
+
resumable_task_events(Events &&...) -> resumable_task_events< sizeof...(Events)>
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
TTG_CXX_COROUTINE_NAMESPACE::suspend_always suspend_always
Definition: coroutine.h:21
+
TTG_CXX_COROUTINE_NAMESPACE::suspend_never suspend_never
Definition: coroutine.h:22
+
TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise > coroutine_handle
Definition: coroutine.h:24
+
TaskCoroutineID
Definition: coroutine.h:222
+
@ ResumableTask
-> ttg::resumable_task
+
@ Invalid
not a coroutine, i.e. a standard task function, -> void
+
@ DeviceTask
-> ttg::device::Task
+
represents a generic one-time event
Definition: coroutine.h:42
+
bool finished() const
Definition: coroutine.h:46
+
void finish()
Definition: coroutine.h:43
+ +
constexpr bool await_ready() const
Definition: coroutine.h:182
+
constexpr resumable_task_events(Events &&... events)
Definition: coroutine.h:177
+ +
void await_suspend(coroutine_handle< resumable_task_state > pending_task)
Definition: coroutine.h:184
+ +
constexpr bool completed() const
Definition: coroutine.h:134
+
resumable_task get_return_object()
Definition: coroutine.h:93
+
resumable_task_state() noexcept=default
+ +
constexpr bool ready() const
Definition: coroutine.h:127
+
suspend_always final_suspend() noexcept
Definition: coroutine.h:99
+
suspend_never initial_suspend() noexcept
Definition: coroutine.h:96
+
constexpr static std::size_t MaxNumEvents
Definition: coroutine.h:87
+
ttg::span< event * > events()
Definition: coroutine.h:136
+
coroutine_handle< resumable_task_state > handle_type
Definition: coroutine.h:88
+ +
task that can be resumed after some events occur
Definition: coroutine.h:53
+
resumable_task(base_type base)
Definition: coroutine.h:63
+
ttg::coroutine_handle< resumable_task_state > base_type
Definition: coroutine.h:54
+
base_type handle()
Definition: coroutine.h:65
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/customdoxygen.css b/dox-master/customdoxygen.css new file mode 100644 index 000000000..725ee7e17 --- /dev/null +++ b/dox-master/customdoxygen.css @@ -0,0 +1,485 @@ +h1, .h1, h2, .h2, h3, .h3{ + font-weight: 200 !important; +} + +.sm-dox a span.sub-arrow { + position: absolute; + top: 50%; + margin-top: -14px; + left: auto; + right: 3px; + width: 28px; + height: 28px; + overflow: hidden; + font: bold 12px / 28px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(255, 255, 255, 0.5); + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px +} + +/* Handing of arrow-carets in the smart menus */ +.sm-dox a.highlighted span.sub-arrow:before { + display: block; + content: '-' +} + +.sm-dox a span.sub-arrow { + top: 50%; + margin-top: -2px; + right: 12px; + width: 0; + height: 0; + border-width: 4px; + border-style: solid dashed dashed dashed; + border-color: #283a5d transparent transparent transparent; + background: transparent; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0 +} + +.sm-dox a:hover span.sub-arrow { + border-color: red transparent transparent transparent +} + + +.sm-dox.sm-rtl a.has-submenu { + padding-right: 12px; + padding-left: 24px +} + +.sm-dox.sm-rtl a span.sub-arrow { + right: auto; + left: 12px +} + +.sm-dox.sm-rtl.sm-vertical a.has-submenu { + padding: 10px 20px +} + +.sm-dox.sm-rtl.sm-vertical a span.sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent #555 transparent transparent +} + +.sm-dox.sm-rtl ul a.has-submenu { + padding: 10px 20px !important +} + +.sm-dox.sm-rtl ul a span.sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent #555 transparent transparent +} + +.sm-dox.sm-vertical a.disabled { +} + +.sm-dox.sm-vertical a span.sub-arrow { + right: 8px; + top: 50%; + margin-top: -5px; + border-width: 5px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #555 +} +.sm-dox ul a span.sub-arrow { + right: 8px; + top: 50%; + margin-top: -5px; + border-width: 5px; + border-color: transparent transparent transparent #555; + border-style: dashed dashed dashed solid +} + +#navrow1, #navrow2, #navrow3, #navrow4, #navrow5{ + border-bottom: 1px solid #EEEEEE; +} + +.adjust-right { +margin-left: 30px !important; +font-size: 1.15em !important; +} +.navbar{ + border: 0px solid #222 !important; +} +table{ + white-space:pre-wrap !important; +} +/* + =========================== + */ + + +/* Sticky footer styles +-------------------------------------------------- */ +html, +body { + height: 100%; + /* The html and body elements cannot have any padding or margin. */ +} + +/* Wrapper for page content to push down footer */ +#wrap { + min-height: 100%; + height: auto; + /* Negative indent footer by its height */ + margin: 0 auto -60px; + /* Pad bottom by footer height */ + padding: 0 0 60px; +} + +/* Set the fixed height of the footer here */ +#footer { + font-size: 0.9em; + padding: 8px 0px; + background-color: #f5f5f5; +} + +.footer-row { + line-height: 44px; +} + +#footer > .container { + padding-left: 15px; + padding-right: 15px; +} + +.footer-follow-icon { + margin-left: 3px; + text-decoration: none !important; +} + +.footer-follow-icon img { + width: 20px; +} + +.footer-link { + padding-top: 5px; + display: inline-block; + color: #999999; + text-decoration: none; +} + +.footer-copyright { + text-align: center; +} + + +@media (min-width: 992px) { + .footer-row { + text-align: left; + } + + .footer-icons { + text-align: right; + } +} +@media (max-width: 991px) { + .footer-row { + text-align: center; + } + + .footer-icons { + text-align: center; + } +} + +/* DOXYGEN Code Styles +----------------------------------- */ + + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; + font-size: 12px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: normal; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} +div.line:hover{ + background-color: #FBFF00; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + color:rgba(0,0,0,0.3); + border-right: 1px solid #EEE; + border-left: 1px solid #EEE; + background-color: #FFF; + white-space: pre; + font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace ; +} +span.lineno a { + background-color: #FAFAFA; + cursor:pointer; +} + +span.lineno a:hover { + background-color: #EFE200; + color: #1e1e1e; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/*---------------- Search Box */ + +#search-box { + margin: 10px 0px; +} +#search-box .close { + display: none; + position: absolute; + right: 0px; + padding: 6px 12px; + z-index: 5; +} + +/*---------------- Search results window */ + +#search-results-window { + display: none; +} + +iframe#MSearchResults { + width: 100%; + height: 15em; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} +.SRPage .SRChildren { + display: none; +} +a.SRScope { + display: block; +} +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} +span.SRScope { + padding-left: 4px; +} +.SRResult { + display: none; +} + +/* class and file list */ +.directory .icona, +.directory .arrow { + height: auto; +} +.directory .icona .icon { + height: 16px; +} +.directory .icondoc { + background-position: 0px 0px; + height: 20px; +} +.directory .iconfopen { + background-position: 0px 0px; +} +.directory td.entry { + padding: 7px 8px 6px 8px; +} + +.table > tbody > tr > td.memSeparator { + line-height: 0; + .table-hover; + +} + +.memItemLeft, .memTemplItemLeft { + white-space: normal; +} + +/* enumerations */ +.panel-body thead > tr { + background-color: #e0e0e0; +} + +/* todo lists */ +.todoname, +.todoname a { + font-weight: bold; +} + +/* Class title */ +.summary { + margin-top: 25px; +} +.page-header { + margin: 20px 0px !important; +} +.page-header .title { + display: inline-block; +} +.page-header .pull-right { + margin-top: 0.3em; + margin-left: 0.5em; +} +.page-header .label { + font-size: 50%; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} diff --git a/dox-master/data__descriptor_8h.html b/dox-master/data__descriptor_8h.html new file mode 100644 index 000000000..c89ad9437 --- /dev/null +++ b/dox-master/data__descriptor_8h.html @@ -0,0 +1,159 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/data_descriptor.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
data_descriptor.h File Reference
+
+
+
#include <cstdint>
+#include "ttg/serialization/traits.h"
+#include "ttg/serialization/stream.h"
+#include <cstring>
+#include "ttg/serialization/splitmd_data_descriptor.h"
+
+ + + + + + + + + +

+Classes

struct  ttg_data_descriptor
 
struct  ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >
 default_data_descriptor for trivially-copyable types More...
 
struct  ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >
 default_data_descriptor for types that support 2-stage serialization (metadata first, then the rest) for implementing zero-copy transfers More...
 
+ + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
+ + + + +

+Functions

template<typename T >
const ttg_data_descriptorttg::get_data_descriptor ()
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/data__descriptor_8h_source.html b/dox-master/data__descriptor_8h_source.html new file mode 100644 index 000000000..bda239dbc --- /dev/null +++ b/dox-master/data__descriptor_8h_source.html @@ -0,0 +1,355 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/data_descriptor.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
data_descriptor.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_SERIALIZATION_DATA_DESCRIPTOR_H
+
2 #define TTG_SERIALIZATION_DATA_DESCRIPTOR_H
+
3 
+
4 #include <cstdint>
+
5 
+
6 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
+
7 #include <madness/world/buffer_archive.h>
+
8 #endif
+
9 
+ +
11 
+ +
13 
+
14 #include <cstring> // for std::memcpy
+
15 
+ +
17 
+
22 extern "C" struct ttg_data_descriptor {
+
23  const char *name;
+
24 
+
28  uint64_t (*payload_size)(const void *object);
+
29 
+
36  uint64_t (*pack_payload)(const void *object, uint64_t max_nbytes_to_write, uint64_t offset, void *buf);
+
37 
+
44  uint64_t (*unpack_payload)(void *object, uint64_t max_nbytes_to_read, uint64_t offset, const void *buf);
+
45 
+
46  void (*print)(const void *object);
+
47 };
+
48 
+
49 namespace ttg {
+
50 
+
59  template <typename T, typename Enabler = void>
+ +
61 
+
64  template <typename T>
+ +
66  T, std::enable_if_t<detail::is_memcpyable_v<T> && !detail::is_user_buffer_serializable_v<T> &&
+
67  !ttg::has_split_metadata<T>::value>> {
+
68  static constexpr const bool serialize_size_is_const = true;
+
69 
+
73  static uint64_t payload_size(const void *object) { return static_cast<uint64_t>(sizeof(T)); }
+
74 
+
81  static uint64_t pack_payload(const void *object, uint64_t max_nbytes_to_write, uint64_t begin, void *buf) {
+
82  unsigned char *char_buf = reinterpret_cast<unsigned char *>(buf);
+
83  assert(sizeof(T)<=max_nbytes_to_write);
+
84  std::memcpy(&char_buf[begin], object, sizeof(T));
+
85  return begin + sizeof(T);
+
86  }
+
87 
+
94  static uint64_t unpack_payload(void *object, uint64_t max_nbytes_to_read, uint64_t begin, const void *buf) {
+
95  const unsigned char *char_buf = reinterpret_cast<const unsigned char *>(buf);
+
96  assert(sizeof(T)<=max_nbytes_to_read);
+
97  std::memcpy(object, &char_buf[begin], sizeof(T));
+
98  return begin + sizeof(T);
+
99  }
+
100  };
+
101 
+
104  template <typename T>
+
105  struct default_data_descriptor<T, std::enable_if_t<ttg::has_split_metadata<T>::value>> {
+
106  static constexpr const bool serialize_size_is_const = false;
+
107 
+
111  static uint64_t payload_size(const void *object) {
+ +
113  const T *t = reinterpret_cast<T *>(object);
+
114  auto metadata = smd.get_metadata(t);
+
115  size_t size = sizeof(metadata);
+
116  for (auto &&iovec : smd.get_data(t)) {
+
117  size += iovec.num_bytes;
+
118  }
+
119 
+
120  return static_cast<uint64_t>(size);
+
121  }
+
122 
+
129  static uint64_t pack_payload(const void *object, uint64_t max_nbytes_to_write, uint64_t begin, void *buf) {
+ +
131  const T *t = reinterpret_cast<T *>(object);
+
132 
+
133  unsigned char *char_buf = reinterpret_cast<unsigned char *>(buf);
+
134  auto metadata = smd.get_metadata(t);
+
135  assert(sizeof(metadata) <= max_nbytes_to_write);
+
136  std::memcpy(&char_buf[begin], metadata, sizeof(metadata));
+
137  size_t pos = sizeof(metadata);
+
138  for (auto &&iovec : smd.get_data(t)) {
+
139  std::memcpy(&char_buf[begin + pos], iovec.data, iovec.num_bytes);
+
140  pos += iovec.num_bytes;
+
141  assert(pos <= max_nbytes_to_write);
+
142  }
+
143  return begin + pos;
+
144  }
+
145 
+
152  static uint64_t unpack_payload(void *object, uint64_t max_nbytes_to_read, uint64_t begin, const void *buf) {
+ +
154  T *t = reinterpret_cast<T *>(object);
+
155 
+
156  using metadata_t = decltype(smd.get_metadata(t));
+
157  assert(sizeof(metadata_t) <= max_nbytes_to_read);
+
158  const unsigned char *char_buf = reinterpret_cast<const unsigned char *>(buf);
+
159  const metadata_t *metadata = reinterpret_cast<const metadata_t *>(char_buf + begin);
+
160  T t_created = smd.create_from_metadata();
+
161  size_t pos = sizeof(metadata);
+
162  *t = t_created;
+
163  for (auto &&iovec : smd.get_data(t)) {
+
164  std::memcpy(iovec.data, &char_buf[begin + pos], iovec.num_bytes);
+
165  pos += iovec.num_bytes;
+
166  assert(pos <= max_nbytes_to_read);
+
167  }
+
168  return begin + pos;
+
169  }
+
170  };
+
171 
+
172 } // namespace ttg
+
173 
+
174 #if defined(TTG_SERIALIZATION_SUPPORTS_MADNESS)
+
175 
+
176 namespace ttg {
+
177 
+
179  template <typename T>
+
180  struct default_data_descriptor<
+
181  T, std::enable_if_t<((!detail::is_memcpyable_v<T> && detail::is_madness_buffer_serializable_v<T>) ||
+
182  detail::is_madness_user_buffer_serializable_v<T>)&&!ttg::has_split_metadata<T>::value>> {
+
183  static constexpr const bool serialize_size_is_const = false;
+
184 
+
188  static uint64_t payload_size(const void *object) {
+
189  madness::archive::BufferOutputArchive ar;
+
190  ar & (*static_cast<std::add_pointer_t<std::add_const_t<T>>>(object));
+
191  return static_cast<uint64_t>(ar.size());
+
192  }
+
193 
+
200  static uint64_t pack_payload(const void *object, uint64_t max_nbytes_to_write, uint64_t pos, void *_buf) {
+
201  unsigned char *buf = reinterpret_cast<unsigned char *>(_buf);
+
202  madness::archive::BufferOutputArchive ar(&buf[pos], max_nbytes_to_write);
+
203  ar & (*static_cast<std::add_pointer_t<std::add_const_t<T>>>(object));
+
204  return pos + ar.size();
+
205  }
+
206 
+
213  static uint64_t unpack_payload(void *object, uint64_t max_nbytes_to_read, uint64_t pos, const void *_buf) {
+
214  const unsigned char *buf = reinterpret_cast<const unsigned char *>(_buf);
+
215  madness::archive::BufferInputArchive ar(&buf[pos], max_nbytes_to_read);
+
216  ar & (*static_cast<std::add_pointer_t<T>>(object));
+
217  return pos + (max_nbytes_to_read - ar.nbyte_avail());
+
218  }
+
219  };
+
220 
+
221 } // namespace ttg
+
222 
+
223 #endif // has MADNESS serialization
+
224 
+
225 #if defined(TTG_SERIALIZATION_SUPPORTS_BOOST)
+
226 
+ +
228 
+
229 namespace ttg {
+
230 
+
232  template <typename T>
+
233  struct default_data_descriptor<
+
234  T, std::enable_if_t<(!detail::is_memcpyable_v<T> && !detail::is_madness_buffer_serializable_v<T> &&
+
235  detail::is_boost_buffer_serializable_v<T>) ||
+
236  (!detail::is_madness_user_buffer_serializable_v<T> &&
+
237  detail::is_boost_user_buffer_serializable_v<T>)>> {
+
238  static constexpr const bool serialize_size_is_const = false;
+
239 
+
243  static uint64_t payload_size(const void *object) {
+ +
245  oa << (*static_cast<std::add_pointer_t<std::add_const_t<T>>>(object));
+
246  return oa.streambuf().size();
+
247  }
+
248 
+
255  static uint64_t pack_payload(const void *object, uint64_t max_nbytes_to_write, uint64_t pos, void *buf) {
+
256  auto oa = ttg::detail::make_boost_buffer_oarchive(buf, pos + max_nbytes_to_write, pos);
+
257  oa << (*static_cast<std::add_pointer_t<std::add_const_t<T>>>(object));
+
258  assert(oa.streambuf().size() <= max_nbytes_to_write);
+
259  return pos + oa.streambuf().size();
+
260  }
+
261 
+
268  static uint64_t unpack_payload(void *object, uint64_t max_nbytes_to_read, uint64_t pos, const void *buf) {
+
269  auto ia = ttg::detail::make_boost_buffer_iarchive(buf, pos + max_nbytes_to_read, pos);
+
270  ia >> (*static_cast<std::add_pointer_t<T>>(object));
+
271  assert(ia.streambuf().size() <= max_nbytes_to_read);
+
272  return pos + ia.streambuf().size();
+
273  }
+
274  };
+
275 
+
276 } // namespace ttg
+
277 
+
278 #endif // has Boost serialization
+
279 
+
280 namespace ttg {
+
281 
+
282  // Returns a pointer to a constant static instance initialized
+
283  // once at run time.
+
284  template <typename T>
+ +
286  static const ttg_data_descriptor d = {
+ + +
289  return &d;
+
290  }
+
291 
+
292 } // namespace ttg
+
293 
+
294 #endif // TTG_SERIALIZATION_DATA_DESCRIPTOR_H
+ +
optimized data-only serializer
Definition: archive.h:94
+
auto make_boost_buffer_iarchive(const void *const buf, std::size_t size, std::size_t buf_offset=0)
constructs a boost_buffer_iarchive object
Definition: archive.h:390
+
auto make_boost_buffer_oarchive(void *const buf, std::size_t size, std::size_t buf_offset=0)
constructs a boost_buffer_oarchive object
Definition: archive.h:230
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
int size(World world=default_execution_context())
Definition: run.h:89
+
const ttg_data_descriptor * get_data_descriptor()
+ + + +
static uint64_t unpack_payload(void *object, uint64_t max_nbytes_to_read, uint64_t begin, const void *buf)
deserializes object from a buffer
+ +
static uint64_t pack_payload(const void *object, uint64_t max_nbytes_to_write, uint64_t begin, void *buf)
serializes object to a buffer
+
static uint64_t unpack_payload(void *object, uint64_t max_nbytes_to_read, uint64_t begin, const void *buf)
deserializes object from a buffer
+
static uint64_t pack_payload(const void *object, uint64_t max_nbytes_to_write, uint64_t begin, void *buf)
serializes object to a buffer
+
static uint64_t payload_size(const void *object)
measures the size of the binary representation of object
+
Provides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor.
+ + +
std::size_t num_bytes
The number of bytes to read from / write to the memory location given by data.
Definition: iovec.h:13
+
void * data
Pointer to the data to be read from / written to.
Definition: iovec.h:15
+ +
uint64_t(* pack_payload)(const void *object, uint64_t max_nbytes_to_write, uint64_t offset, void *buf)
serializes object to a buffer
+
uint64_t(* payload_size)(const void *object)
measures the size of the binary representation of object
+
uint64_t(* unpack_payload)(void *object, uint64_t max_nbytes_to_read, uint64_t offset, const void *buf)
deserializes object from a buffer
+ +
void(* print)(const void *object)
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/default__callable__traits_8hpp.html b/dox-master/default__callable__traits_8hpp.html new file mode 100644 index 000000000..86b7a54c9 --- /dev/null +++ b/dox-master/default__callable__traits_8hpp.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/default_callable_traits.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
default_callable_traits.hpp File Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/default__callable__traits_8hpp_source.html b/dox-master/default__callable__traits_8hpp_source.html new file mode 100644 index 000000000..439a4bdec --- /dev/null +++ b/dox-master/default__callable__traits_8hpp_source.html @@ -0,0 +1,394 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/default_callable_traits.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
default_callable_traits.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 Copyright Barrett Adair 2016-2017
+
3 
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http ://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_DETAIL_DEFAULT_BOOST_CLBL_TRTS_HPP
+
10 #define BOOST_CLBL_TRTS_DETAIL_DEFAULT_BOOST_CLBL_TRTS_HPP
+
11 
+
12 namespace boost { namespace callable_traits { namespace detail {
+
13 
+
14 template<typename T = void>
+ +
16 
+
17  // value is used by all traits classes to participate
+
18  // in the <callable_traits/detail/traits.hpp> disjunction.
+
19  static constexpr bool value = false;
+
20 
+
21  // used facilitate the disjunction in
+
22  // <callable_traits/detail/traits.hpp>
+ +
24 
+ +
26 
+
27  // represents the type under consideration
+
28  using type = error_t;
+
29 
+
30  // std::true_type for callables with C-style variadics
+
31  using has_varargs = std::false_type;
+
32 
+ +
34 
+
35  // arg_types is a std::tuple of argument types for
+
36  // callables that are not overloaded/templated function objects.
+
37  // arg_types IS defined in terms of INVOKE, which means
+
38  // a PMF's arg_types tuple will use a reference to its
+
39  // parent class as the first argument, with qualifiers added to
+
40  // match the PMF's own qualifiers.
+
41  using arg_types = error_t;
+
42 
+
43  // arg_types without the decltype(*this) parameter for member functions
+ +
45 
+
46  // An "approximation" of a callable type, in the form
+
47  // of a plain function type. Defined in terms of INVOKE.
+
48  // An identity alias for qualified/unqualified plain function
+
49  // types.
+ +
51 
+
52  // Used to smoothen the edges between PMFs and function objects
+ +
54 
+
55  // An identity alias for qualified/unqualified plain function
+
56  // types. Equivalent to remove_member_pointer for PMFs. Same
+
57  // as function_type for other callable types.
+ +
59 
+
60  // Removes C-style variadics from a signature, if present.
+
61  // Aliases error_t for function objects and PMDs.
+ +
63 
+
64  // Adds C-style variadics to a signature. Aliases
+
65  // error_t for function objects and PMDs.
+ +
67 
+
68  // std::true_type when the signature includes noexcept, when
+
69  // the feature is available
+
70  using is_noexcept = std::false_type;
+
71 
+
72  // adds noexcept to a signature if the feature is available
+ +
74 
+
75  // removes noexcept from a signature if present
+ +
77 
+
78  // std::true_type when the signature includes transaction_safe, when
+
79  // the feature is available
+
80  using is_transaction_safe = std::false_type;
+
81 
+
82  // adds transaction_safe to a signature if the feature is available
+ +
84 
+
85  // removes transaction_safe from a signature if present
+ +
87 
+
88  // The class of a PMD or PMF. error_t for other types
+ +
90 
+
91  // The qualified reference type of class_type. error_t
+
92  // for non-member-pointers.
+ +
94 
+
95  // Removes reference qualifiers from a signature.
+ +
97 
+
98  // Adds an lvalue qualifier to a signature, in arbitrary
+
99  // accordance with C++11 reference collapsing rules.
+ +
101 
+
102  // Adds an rvalue qualifier to a signature, in arbitrary
+
103  // accordance with C++11 reference collapsing rules.
+ +
105 
+
106  // Adds a const qualifier to a signature.
+ +
108 
+
109  // Adds a volatile qualifier to a signature.
+ +
111 
+
112  // Adds both const and volatile qualifiers to a signature.
+ +
114 
+
115  // Removes a const qualifier from a signature, if present.
+ +
117 
+
118  // Removes a volatile qualifier from a signature, if present.
+ +
120 
+
121  // Removes both const and volatile qualifiers from a
+
122  // signature, if any.
+ +
124 
+
125  // Removes the member pointer from PMDs and PMFs. An identity
+
126  // alias for other callable types.
+ +
128 
+
129  // Changes the parent class type for PMDs and PMFs. Turns
+
130  // function pointers, function references, and
+
131  // qualified/unqualified function types into PMFs. Turns
+
132  // everything else into member data pointers.
+
133  template<typename C,
+
134  typename U = T,
+
135  typename K = typename std::remove_reference<U>::type,
+
136  typename L = typename std::conditional<
+
137  std::is_same<void, K>::value, error_t, K>::type,
+
138  typename Class = typename std::conditional<
+
139  std::is_class<C>::value, C, error_t>::type>
+
140  using apply_member_pointer = typename std::conditional<
+
141  std::is_same<L, error_t>::value || std::is_same<Class, error_t>::value,
+
142  error_t, L Class::*>::type;
+
143 
+
144  // Changes the return type of PMFs, function pointers, function
+
145  // references, and qualified/unqualified function types. Changes
+
146  // the data type of PMDs. error_t for function objects.
+
147  template<typename>
+ +
149 
+
150  // Expands the argument types into a template
+
151  template<template<class...> class Container>
+ +
153 
+
154  template<template<class...> class Container, typename... RightArgs>
+ +
156 
+
157  template<template<class...> class Container, typename... LeftArgs>
+ +
159 
+ +
161 
+
162  template<typename... NewArgs>
+ +
164 
+
165  template<typename... NewArgs>
+ +
167 
+
168  template<std::size_t ElementCount>
+ +
170 
+
171  template<std::size_t ElementCount>
+
172  using pop_back = error_t;
+
173 
+
174  template<std::size_t Index, typename... NewArgs>
+ +
176 
+
177  template<std::size_t Index, std::size_t Count>
+ +
179 
+
180  template<std::size_t Index, typename... NewArgs>
+ +
182 
+ + + +
186 
+
187  using has_member_qualifiers = std::integral_constant<bool, q_flags != default_>;
+
188  using is_const_member = std::integral_constant<bool, 0 < (cv_flags & const_)>;
+
189  using is_volatile_member = std::integral_constant<bool, 0 < (cv_flags & volatile_)>;
+
190  using is_cv_member = std::integral_constant<bool, cv_flags == (const_ | volatile_)>;
+
191 
+
192 #ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
+
193  using is_reference_member = std::false_type;
+
194  using is_lvalue_reference_member = std::false_type;
+
195  using is_rvalue_reference_member = std::false_type;
+
196 #else
+
197  using is_reference_member = std::integral_constant<bool, 0 < ref_flags>;
+
198  using is_lvalue_reference_member = std::integral_constant<bool, ref_flags == lref_>;
+
199  using is_rvalue_reference_member = std::integral_constant<bool, ref_flags == rref_>;
+
200 #endif //#ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
+
201 
+
202 };
+
203 
+
204 }}} // namespace boost::callable_traits::detail
+
205 
+
206 #endif // BOOST_CLBL_TRTS_DETAIL_DEFAULT_BOOST_CLBL_TRTS_HPP
+
207 
+
constexpr qualifier_flags volatile_
+
typename std::conditional< std::is_reference< T >::value, reference_error, invalid_type >::type error_type
Definition: utility.hpp:28
+
constexpr qualifier_flags const_
+
std::integral_constant< qualifier_flags,(std::is_const< T >::value ? const_ :default_)|(std::is_volatile< T >::value ? volatile_ :default_)> cv_of
+
std::integral_constant< qualifier_flags, std::is_rvalue_reference< T >::value ? rref_ :(std::is_lvalue_reference< T >::value ? lref_ :default_)> ref_of
+ + + + +
std::integral_constant< bool, cv_flags==(const_|volatile_)> is_cv_member
+ + + + + + +
std::integral_constant< bool, 0<(cv_flags &const_)> is_const_member
+ + +
typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type apply_member_pointer
+
std::integral_constant< bool, ref_flags==rref_ > is_rvalue_reference_member
+ + + + + + + + + + + + +
std::integral_constant< bool, 0< ref_flags > is_reference_member
+
std::integral_constant< bool, ref_flags==lref_ > is_lvalue_reference_member
+ + + + + + + + + + + + + + +
std::integral_constant< bool, q_flags !=default_ > has_member_qualifiers
+
std::integral_constant< bool, 0<(cv_flags &volatile_)> is_volatile_member
+ + + + + + + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/demangle_8h.html b/dox-master/demangle_8h.html new file mode 100644 index 000000000..2062001a1 --- /dev/null +++ b/dox-master/demangle_8h.html @@ -0,0 +1,164 @@ + + + + + + + + + + + ttg: ttg/ttg/util/demangle.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
demangle.h File Reference
+
+
+
#include <cxxabi.h>
+#include <string>
+#include <typeinfo>
+#include <memory>
+
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+ + + +

+Macros

#define HAVE_CXA_DEMANGLE
 
+

Macro Definition Documentation

+ +

◆ HAVE_CXA_DEMANGLE

+ +
+
+ + + + +
#define HAVE_CXA_DEMANGLE
+
+ +

Definition at line 9 of file demangle.h.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/demangle_8h_source.html b/dox-master/demangle_8h_source.html new file mode 100644 index 000000000..3ca6ae08a --- /dev/null +++ b/dox-master/demangle_8h_source.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ttg: ttg/ttg/util/demangle.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
demangle.h
+
+
+Go to the documentation of this file.
1 
+
2 #ifndef TTG_DEMANGLE_H_INCLUDED
+
3 #define TTG_DEMANGLE_H_INCLUDED
+
4 
+
5 #include <cxxabi.h>
+
6 #include <string>
+
7 #include <typeinfo>
+
8 #include <memory>
+
9 #define HAVE_CXA_DEMANGLE
+
10 #ifdef HAVE_CXA_DEMANGLE
+
11 
+
12 namespace ttg {
+
13  namespace detail {
+
14  template <typename T>
+
15  static std::string demangled_type_name(T *x = nullptr) {
+
16  const char *name = nullptr;
+
17  if constexpr (std::is_void_v<T>)
+
18  name = "void";
+
19  else
+
20  name = (x != nullptr) ? typeid(*x).name() : // this works for polymorphic types
+
21  typeid(T).name();
+
22  static size_t buf_size = 1024;
+
23  static std::unique_ptr<char, decltype(std::free) *> buf{reinterpret_cast<char *>(malloc(sizeof(char) * buf_size)),
+
24  std::free};
+
25  int status;
+
26  char *res = abi::__cxa_demangle(name, buf.get(), &buf_size, &status);
+
27  if (status != 0 || res == nullptr) {
+
28  return name;
+
29  } else {
+
30  if (res != buf.get()) {
+
31  buf.release();
+
32  buf = std::unique_ptr<char, decltype(std::free) *>{res, std::free};
+
33  }
+
34  return res;
+
35  }
+
36  }
+
37 #else
+
38 template <typename T>
+
39 std::string demangled_type_name(T* x = nullptr) {
+
40  const char* name = (x != nullptr) ? typeid(*x).name() : // this works for polymorphic types
+
41  typeid(T).name();
+
42  return std::string(name);
+
43 }
+
44 #endif
+
45  } // namespace detail
+
46 } // namespace ttg
+
47 
+
48 #endif // TTG_DEMANGLE_H_INCLUDED
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dev_2top_8md.html b/dox-master/dev_2top_8md.html new file mode 100644 index 000000000..50b2a5644 --- /dev/null +++ b/dox-master/dev_2top_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/dev/top.md File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ +
+
+
+
doc/dox/dev/top.md File Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/devguide.html b/dox-master/devguide.html new file mode 100644 index 000000000..8631dfaf6 --- /dev/null +++ b/dox-master/devguide.html @@ -0,0 +1,117 @@ + + + + + + + + + + + ttg: Developer Guide + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + +
+
+ + +
+ +
+ +
+
+
+
Developer Guide
+
+
+

+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/device_2device_8h.html b/dox-master/device_2device_8h.html new file mode 100644 index 000000000..d981e7ac5 --- /dev/null +++ b/dox-master/device_2device_8h.html @@ -0,0 +1,208 @@ + + + + + + + + + + + ttg: ttg/ttg/device/device.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
device.h File Reference
+
+
+
#include "ttg/config.h"
+#include "ttg/execution.h"
+#include "ttg/impl_selector.h"
+#include "ttg/fwd.h"
+
+ + + + +

+Classes

class  ttg::device::Device
 Represents a device in a specific execution space. More...
 
+ + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::device
 
+ + + + + + + + + + +

+Functions

std::ostream & std::operator<< (std::ostream &os, ttg::device::Device device)
 
Device ttg::device::current_device ()
 
template<ttg::ExecutionSpace Space = ttg::ExecutionSpace::Invalid>
const void * ttg::device::current_stream ()
 
int ttg::device::num_devices ()
 
+ + + +

+Variables

constexpr ttg::ExecutionSpace ttg::device::available_execution_space = ttg::ExecutionSpace::Invalid
 
+

Function Documentation

+ +

◆ operator<<()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
std::ostream& std::operator<< (std::ostream & os,
ttg::device::Device device 
)
+
+inline
+
+
Examples
iterative.cc, and reducing.cc.
+
+ +

Definition at line 68 of file device.h.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/device_2device_8h_source.html b/dox-master/device_2device_8h_source.html new file mode 100644 index 000000000..2ee7efb10 --- /dev/null +++ b/dox-master/device_2device_8h_source.html @@ -0,0 +1,340 @@ + + + + + + + + + + + ttg: ttg/ttg/device/device.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
device.h
+
+
+Go to the documentation of this file.
1 #pragma once
+
2 
+
3 #include "ttg/config.h"
+
4 #include "ttg/execution.h"
+
5 #include "ttg/impl_selector.h"
+
6 #include "ttg/fwd.h"
+
7 
+
8 
+
9 
+
10 namespace ttg::device {
+
11 
+
12 #if defined(TTG_HAVE_CUDA)
+ +
14 #elif defined(TTG_HAVE_HIP)
+ +
16 #elif defined(TTG_HAVE_LEVEL_ZERO)
+ +
18 #else
+ +
20 #endif
+
21 
+
23  class Device {
+
24  int m_id = 0;
+ +
26 
+
27  public:
+
28  Device() = default;
+ +
30  : m_id(id)
+
31  , m_space(space)
+
32  { }
+
33 
+
34  int id() const {
+
35  if (is_host()) {
+
36  throw std::runtime_error("No valid ID for Host execution space!");
+
37  }
+
38  if (is_invalid()) {
+
39  throw std::runtime_error("Invalid execution space!");
+
40  }
+
41  return m_id;
+
42  }
+
43 
+
44  operator int() const {
+
45  return id();
+
46  }
+
47 
+ +
49  return m_space;
+
50  }
+
51 
+
52  bool is_device() const {
+
53  return !is_host();
+
54  }
+
55 
+
56  bool is_host() const {
+
57  return !is_invalid() && (m_space == ttg::ExecutionSpace::Host);
+
58  }
+
59 
+
60  bool is_invalid() const {
+
61  return (m_space == ttg::ExecutionSpace::Invalid);
+
62  }
+
63  };
+
64 } // namespace ttg::device
+
65 
+
66 namespace std {
+
67  inline
+
68  std::ostream& operator<<(std::ostream& os, ttg::device::Device device) {
+ +
70  if (device.is_device()) {
+
71  os << "(" << device.id() << ")";
+
72  }
+
73  return os;
+
74  }
+
75 } // namespace std
+
76 
+
77 #if defined(TTG_HAVE_CUDA)
+
78 #include <cuda_runtime.h>
+
79 
+
80 namespace ttg::device {
+
81  namespace detail {
+
82  inline thread_local ttg::device::Device current_device_ts = {};
+
83  inline thread_local cudaStream_t current_stream_ts = 0; // default stream
+
84 
+
85  inline void reset_current() {
+
86  current_device_ts = {};
+
87  current_stream_ts = 0;
+
88  }
+
89 
+
90  inline void set_current(int device, cudaStream_t stream) {
+
91  current_device_ts = ttg::device::Device(device, ttg::ExecutionSpace::CUDA);
+
92  current_stream_ts = stream;
+
93  }
+
94  } // namespace detail
+
95 
+
96  inline
+
97  Device current_device() {
+
98  return detail::current_device_ts;
+
99  }
+
100 
+
101  inline
+
102  cudaStream_t current_stream() {
+
103  return detail::current_stream_ts;
+
104  }
+
105 } // namespace ttg
+
106 
+
107 #elif defined(TTG_HAVE_HIP)
+
108 
+
109 #include <hip/hip_runtime.h>
+
110 
+
111 namespace ttg::device {
+
112  namespace detail {
+
113  inline thread_local ttg::device::Device current_device_ts = {};
+
114  inline thread_local hipStream_t current_stream_ts = 0; // default stream
+
115 
+
116  inline void reset_current() {
+
117  current_device_ts = {};
+
118  current_stream_ts = 0;
+
119  }
+
120 
+
121  inline void set_current(int device, hipStream_t stream) {
+
122  current_device_ts = ttg::device::Device(device, ttg::ExecutionSpace::HIP);
+
123  current_stream_ts = stream;
+
124  }
+
125  } // namespace detail
+
126 
+
127  inline
+
128  Device current_device() {
+
129  return detail::current_device_ts;
+
130  }
+
131 
+
132  inline
+
133  hipStream_t current_stream() {
+
134  return detail::current_stream_ts;
+
135  }
+
136 } // namespace ttg
+
137 
+
138 #elif defined(TTG_HAVE_LEVEL_ZERO)
+
139 
+
140 #include <CL/sycl.hpp>
+
141 
+
142 namespace ttg::device {
+
143  namespace detail {
+
144  inline thread_local ttg::device::Device current_device_ts = {};
+
145  inline thread_local sycl::queue* current_stream_ts = nullptr; // default stream
+
146 
+
147 
+
148  inline void reset_current() {
+
149  current_device_ts = {};
+
150  current_stream_ts = nullptr;
+
151  }
+
152 
+
153  inline void set_current(int device, sycl::queue& stream) {
+
154  current_device_ts = ttg::device::Device(device, ttg::ExecutionSpace::HIP);
+
155  current_stream_ts = &stream;
+
156  }
+
157  } // namespace detail
+
158 
+
159  inline
+
160  Device current_device() {
+
161  return detail::current_device_ts;
+
162  }
+
163 
+
164  inline
+
165  sycl::queue& current_stream() {
+
166  return *detail::current_stream_ts;
+
167  }
+
168 } // namespace ttg
+
169 
+
170 #else
+
171 
+
172 namespace ttg::device {
+ +
174  return {};
+
175  }
+
176 
+
177  template<ttg::ExecutionSpace Space = ttg::ExecutionSpace::Invalid>
+
178  inline const void* current_stream() {
+
179  static_assert(Space != ttg::ExecutionSpace::Invalid,
+
180  "TTG was built without any known device support so we cannot provide a current stream!");
+
181  return nullptr;
+
182  }
+
183 } // namespace ttg
+
184 #endif // defined(TTG_HAVE_HIP)
+
185 
+
186 namespace ttg::device {
+
187  inline int num_devices() {
+
188  return TTG_IMPL_NS::num_devices();
+
189  }
+
190 }
+
Represents a device in a specific execution space.
Definition: device.h:23
+
bool is_host() const
Definition: device.h:56
+
bool is_device() const
Definition: device.h:52
+
ttg::ExecutionSpace space() const
Definition: device.h:48
+
bool is_invalid() const
Definition: device.h:60
+ +
Device(int id, ttg::ExecutionSpace space)
Definition: device.h:29
+
int id() const
Definition: device.h:34
+
std::ostream & operator<<(std::ostream &os, ttg::device::Device device)
Definition: device.h:68
+ + + +
const char * execution_space_name(ExecutionSpace space) noexcept
Definition: execution.h:26
+ +
Device current_device()
Definition: device.h:173
+
constexpr ttg::ExecutionSpace available_execution_space
Definition: device.h:19
+
const void * current_stream()
Definition: device.h:178
+
int num_devices()
Definition: device.h:187
+
int num_devices()
Definition: device.h:41
+
ExecutionSpace
denotes task execution space
Definition: execution.h:17
+ + + + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/device_2task_8h.html b/dox-master/device_2task_8h.html new file mode 100644 index 000000000..436d09c4b --- /dev/null +++ b/dox-master/device_2task_8h.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/device/task.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
task.h File Reference
+
+
+
#include <array>
+#include <type_traits>
+#include <span>
+#include "ttg/fwd.h"
+#include "ttg/impl_selector.h"
+#include "ttg/ptr.h"
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/device_2task_8h_source.html b/dox-master/device_2task_8h_source.html new file mode 100644 index 000000000..5baeca086 --- /dev/null +++ b/dox-master/device_2task_8h_source.html @@ -0,0 +1,745 @@ + + + + + + + + + + + ttg: ttg/ttg/device/task.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
task.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_DEVICE_TASK_H
+
2 #define TTG_DEVICE_TASK_H
+
3 
+
4 #include <array>
+
5 #include <type_traits>
+
6 #include <span>
+
7 
+
8 #include "ttg/fwd.h"
+
9 #include "ttg/impl_selector.h"
+
10 #include "ttg/ptr.h"
+
11 
+
12 #ifdef TTG_HAVE_COROUTINE
+
13 
+
14 namespace ttg::device {
+
15 
+
16  namespace detail {
+
17  template <typename... Ts>
+
18  struct to_device_t {
+
19  std::tuple<std::add_lvalue_reference_t<Ts>...> ties;
+
20  };
+
21  } // namespace detail
+
22 
+
30  template <typename... Args>
+
31  [[nodiscard]]
+
32  inline auto select(Args &&...args) {
+
33  return detail::to_device_t<std::remove_reference_t<Args>...>{std::tie(std::forward<Args>(args)...)};
+
34  }
+
35 
+
36  namespace detail {
+
37 
+
38  enum ttg_device_coro_state {
+
39  TTG_DEVICE_CORO_STATE_NONE,
+
40  TTG_DEVICE_CORO_INIT,
+
41  TTG_DEVICE_CORO_WAIT_TRANSFER,
+
42  TTG_DEVICE_CORO_WAIT_KERNEL,
+
43  TTG_DEVICE_CORO_SENDOUT,
+
44  TTG_DEVICE_CORO_COMPLETE
+
45  };
+
46 
+
47  template <typename... Ts>
+
48  struct wait_kernel_t {
+
49  std::tuple<Ts &...> ties;
+
50 
+
51  /* always suspend */
+
52  constexpr bool await_ready() const noexcept { return false; }
+
53 
+
54  /* always suspend */
+
55  template <typename Promise>
+
56  constexpr void await_suspend(ttg::coroutine_handle<Promise>) const noexcept {}
+
57 
+
58  void await_resume() noexcept {
+
59  if constexpr (sizeof...(Ts) > 0) {
+
60  /* hook to allow the backend to handle the data after pushout */
+ +
62  }
+
63  }
+
64  };
+
65  } // namespace detail
+
66 
+
72  template <typename... Buffers>
+
73  [[nodiscard]]
+
74  inline auto wait(Buffers &&...args) {
+
75  static_assert(
+
76  ((ttg::meta::is_buffer_v<std::decay_t<Buffers>> || ttg::meta::is_devicescratch_v<std::decay_t<Buffers>>) &&
+
77  ...),
+
78  "Only ttg::Buffer and ttg::devicescratch can be waited on!");
+
79  return detail::wait_kernel_t<std::remove_reference_t<Buffers>...>{std::tie(std::forward<Buffers>(args)...)};
+
80  }
+
81 
+
82  /******************************
+
83  * Send/Broadcast handling
+
84  * We pass the value returned by the backend's copy handler into a coroutine
+
85  * and execute the first part (prepare), before suspending it.
+
86  * The second part (send/broadcast) is executed after the task completed.
+
87  ******************************/
+
88 
+
89  namespace detail {
+
90  struct send_coro_promise_type;
+
91 
+
92  using send_coro_handle_type = ttg::coroutine_handle<send_coro_promise_type>;
+
93 
+
95  struct send_coro_state : public send_coro_handle_type {
+
96  using base_type = send_coro_handle_type;
+
97 
+
100 
+
101  using promise_type = send_coro_promise_type;
+
102 
+
104 
+
105  send_coro_state(base_type base) : base_type(std::move(base)) {}
+
106 
+
107  base_type &handle() { return *this; }
+
108 
+
110  inline bool ready() { return true; }
+
111 
+
113  inline bool completed();
+
114  };
+
115 
+
117  struct send_coro_promise_type {
+
118  /* do not suspend the coroutine on first invocation, we want to run
+
119  * the coroutine immediately and suspend only once.
+
120  */
+
121  ttg::suspend_never initial_suspend() { return {}; }
+
122 
+
123  /* we don't suspend the coroutine at the end.
+
124  * it can be destroyed once the send/broadcast is done
+
125  */
+
126  ttg::suspend_never final_suspend() noexcept { return {}; }
+
127 
+
128  send_coro_state get_return_object() { return send_coro_state{send_coro_handle_type::from_promise(*this)}; }
+
129 
+
130  /* the send coros only have an empty co_await */
+
131  ttg::suspend_always await_transform(ttg::Void) { return {}; }
+
132 
+
133  void unhandled_exception() {
+
134  std::cerr << "Send coroutine caught an unhandled exception!" << std::endl;
+
135  throw; // fwd
+
136  }
+
137 
+
138  void return_void() {}
+
139  };
+
140 
+
141  template <typename Key, typename Value, ttg::Runtime Runtime = ttg::ttg_runtime>
+
142  inline send_coro_state send_coro(const Key &key, Value &&value, ttg::Out<Key, std::decay_t<Value>> &t,
+ +
144  ttg::detail::value_copy_handler<Runtime> copy_handler = std::move(ch); // destroyed at the end of the coro
+
145  Key k = key;
+
146  t.prepare_send(k, std::forward<Value>(value));
+
147  co_await ttg::Void{}; // we'll come back once the task is done
+
148  t.send(k, std::forward<Value>(value));
+
149  };
+
150 
+
151  template <typename Value, ttg::Runtime Runtime = ttg::ttg_runtime>
+
152  inline send_coro_state sendv_coro(Value &&value, ttg::Out<void, std::decay_t<Value>> &t,
+ +
154  ttg::detail::value_copy_handler<Runtime> copy_handler = std::move(ch); // destroyed at the end of the coro
+
155  t.prepare_send(std::forward<Value>(value));
+
156  co_await ttg::Void{}; // we'll come back once the task is done
+
157  t.sendv(std::forward<Value>(value));
+
158  };
+
159 
+
160  template <typename Key, ttg::Runtime Runtime = ttg::ttg_runtime>
+
161  inline send_coro_state sendk_coro(const Key &key, ttg::Out<Key, void> &t) {
+
162  // no need to prepare the send but we have to suspend once
+
163  Key k = key;
+
164  co_await ttg::Void{}; // we'll come back once the task is done
+
165  t.sendk(k);
+
166  };
+
167 
+
168  template <ttg::Runtime Runtime = ttg::ttg_runtime>
+
169  inline send_coro_state send_coro(ttg::Out<void, void> &t) {
+
170  // no need to prepare the send but we have to suspend once
+
171  co_await ttg::Void{}; // we'll come back once the task is done
+
172  t.send();
+
173  };
+
174 
+
175  struct send_t {
+
176  send_coro_state coro;
+
177  };
+
178  } // namespace detail
+
179 
+
180  template <size_t i, typename keyT, typename valueT, typename... out_keysT, typename... out_valuesT,
+ +
182  inline detail::send_t send(const keyT &key, valueT &&value, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
+ +
184  return detail::send_t{
+
185  detail::send_coro(key, copy_handler(std::forward<valueT>(value)), std::get<i>(t), copy_handler)};
+
186  }
+
187 
+
188  template <size_t i, typename valueT, typename... out_keysT, typename... out_valuesT,
+ +
190  inline detail::send_t sendv(valueT &&value, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
+ +
192  return detail::send_t{detail::sendv_coro(copy_handler(std::forward<valueT>(value)), std::get<i>(t), copy_handler)};
+
193  }
+
194 
+
195  template <size_t i, typename Key, typename... out_keysT, typename... out_valuesT,
+ +
197  inline detail::send_t sendk(const Key &key, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
+
198  return detail::send_t{detail::sendk_coro(key, std::get<i>(t))};
+
199  }
+
200 
+
201  // clang-format off
+
206  // clang-format on
+
207  template <typename keyT, typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
+
208  inline detail::send_t send(size_t i, const keyT &key, valueT &&value) {
+ +
210  auto *terminal_ptr = ttg::detail::get_out_terminal<keyT, valueT>(i, "ttg::device::send(i, key, value)");
+
211  return detail::send_t{detail::send_coro(key, copy_handler(std::forward<valueT>(value)), *terminal_ptr, copy_handler)};
+
212  }
+
213 
+
214  // clang-format off
+
220  // clang-format on
+
221  template <size_t i, typename keyT, typename valueT>
+
222  inline auto send(const keyT &key, valueT &&value) {
+
223  return ttg::device::send(i, key, std::forward<valueT>(value));
+
224  }
+
225 
+
226 
+
227  template <typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
+
228  inline detail::send_t sendv(std::size_t i, valueT &&value) {
+
229  auto *terminal_ptr = ttg::detail::get_out_terminal<void, valueT>(i, "ttg::device::send(i, key, value)");
+ +
231  return detail::send_t{detail::sendv_coro(copy_handler(std::forward<valueT>(value)), *terminal_ptr, copy_handler)};
+
232  }
+
233 
+
234  template <typename Key, ttg::Runtime Runtime = ttg::ttg_runtime>
+
235  inline detail::send_t sendk(std::size_t i, const Key& key) {
+
236  auto *terminal_ptr = ttg::detail::get_out_terminal<Key, void>(i, "ttg::device::send(i, key, value)");
+
237  return detail::send_t{detail::sendk_coro(key, *terminal_ptr)};
+
238  }
+
239 
+
240  template <ttg::Runtime Runtime = ttg::ttg_runtime>
+
241  inline detail::send_t send(std::size_t i) {
+
242  auto *terminal_ptr = ttg::detail::get_out_terminal<void, void>(i, "ttg::device::send(i, key, value)");
+
243  return detail::send_t{detail::send_coro(*terminal_ptr)};
+
244  }
+
245 
+
246 
+
247  template <std::size_t i, typename valueT, typename... out_keysT, typename... out_valuesT,
+ +
249  inline detail::send_t sendv(valueT &&value) {
+
250  return sendv(i, std::forward<valueT>(value));
+
251  }
+
252 
+
253  template <size_t i, typename Key, ttg::Runtime Runtime = ttg::ttg_runtime>
+
254  inline detail::send_t sendk(const Key& key) {
+
255  return sendk(i, key);
+
256  }
+
257 
+
258  template <size_t i, ttg::Runtime Runtime = ttg::ttg_runtime>
+
259  inline detail::send_t sendk() {
+
260  return send(i);
+
261  }
+
262 
+
263  namespace detail {
+
264 
+
265  template<typename T, typename Enabler = void>
+
266  struct broadcast_keylist_trait {
+
267  using type = T;
+
268  };
+
269 
+
270  /* overload for iterable types that extracts the type of the first element */
+
271  template<typename T>
+
272  struct broadcast_keylist_trait<T, std::enable_if_t<ttg::meta::is_iterable_v<T>>> {
+
273  using key_type = decltype(*std::begin(std::get<0>(std::declval<T>())));
+
274  };
+
275 
+
276  template <size_t KeyId, size_t I, size_t... Is, typename... RangesT, typename valueT,
+
277  typename... out_keysT, typename... out_valuesT>
+
278  inline void prepare_broadcast(const std::tuple<RangesT...> &keylists, valueT &&value,
+
279  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
+
280  std::get<I>(t).prepare_send(std::get<KeyId>(keylists), std::forward<valueT>(value));
+
281  if constexpr (sizeof...(Is) > 0) {
+
282  prepare_broadcast<KeyId+1, Is...>(keylists, std::forward<valueT>(value), t);
+
283  }
+
284  }
+
285 
+
286  template <size_t KeyId, size_t I, size_t... Is, typename... RangesT, typename valueT,
+
287  typename... out_keysT, typename... out_valuesT>
+
288  inline void prepare_broadcast(const std::tuple<RangesT...> &keylists, valueT &&value) {
+
289  using key_t = typename broadcast_keylist_trait<
+
290  std::tuple_element_t<KeyId, std::tuple<std::remove_reference_t<RangesT>...>>
+
291  >::key_type;
+
292  auto *terminal_ptr = ttg::detail::get_out_terminal<key_t, valueT>(I, "ttg::device::broadcast(keylists, value)");
+
293  terminal_ptr->prepare_send(std::get<KeyId>(keylists), value);
+
294  if constexpr (sizeof...(Is) > 0) {
+
295  prepare_broadcast<KeyId+1, Is...>(keylists, std::forward<valueT>(value));
+
296  }
+
297  }
+
298 
+
299  template <size_t KeyId, size_t I, size_t... Is, typename... RangesT, typename valueT,
+
300  typename... out_keysT, typename... out_valuesT>
+
301  inline void broadcast(const std::tuple<RangesT...> &keylists, valueT &&value,
+
302  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
+
303  std::get<I>(t).broadcast(std::get<KeyId>(keylists), std::forward<valueT>(value));
+
304  if constexpr (sizeof...(Is) > 0) {
+
305  detail::broadcast<KeyId+1, Is...>(keylists, std::forward<valueT>(value), t);
+
306  }
+
307  }
+
308 
+
309  template <size_t KeyId, size_t I, size_t... Is, typename... RangesT, typename valueT,
+
310  typename... out_keysT, typename... out_valuesT>
+
311  inline void broadcast(const std::tuple<RangesT...> &keylists, valueT &&value) {
+
312  using key_t = typename broadcast_keylist_trait<
+
313  std::tuple_element_t<KeyId, std::tuple<std::remove_reference_t<RangesT>...>>
+
314  >::key_type;
+
315  auto *terminal_ptr = ttg::detail::get_out_terminal<key_t, valueT>(I, "ttg::device::broadcast(keylists, value)");
+
316  terminal_ptr->broadcast(std::get<KeyId>(keylists), value);
+
317  if constexpr (sizeof...(Is) > 0) {
+
318  ttg::device::detail::broadcast<KeyId+1, Is...>(keylists, std::forward<valueT>(value));
+
319  }
+
320  }
+
321 
+
322  /* overload with explicit terminals */
+
323  template <size_t I, size_t... Is, typename RangesT, typename valueT,
+
324  typename... out_keysT, typename... out_valuesT,
+ +
326  inline send_coro_state
+
327  broadcast_coro(RangesT &&keylists, valueT &&value,
+
328  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t,
+ +
330  ttg::detail::value_copy_handler<Runtime> copy_handler = std::move(ch); // destroyed at the end of the coro
+
331  RangesT kl = std::forward<RangesT>(keylists); // capture the keylist(s)
+
332  if constexpr (ttg::meta::is_tuple_v<RangesT>) {
+
333  // treat as tuple
+
334  prepare_broadcast<0, I, Is...>(kl, std::forward<std::decay_t<decltype(value)>>(value), t);
+
335  co_await ttg::Void{}; // we'll come back once the task is done
+
336  ttg::device::detail::broadcast<0, I, Is...>(kl, std::forward<std::decay_t<decltype(value)>>(value), t);
+
337  } else if constexpr (!ttg::meta::is_tuple_v<RangesT>) {
+
338  // create a tie to the captured keylist
+
339  prepare_broadcast<0, I, Is...>(std::tie(kl), std::forward<std::decay_t<decltype(value)>>(value), t);
+
340  co_await ttg::Void{}; // we'll come back once the task is done
+
341  ttg::device::detail::broadcast<0, I, Is...>(std::tie(kl), std::forward<std::decay_t<decltype(value)>>(value), t);
+
342  }
+
343  }
+
344 
+
345  /* overload with implicit terminals */
+
346  template <size_t I, size_t... Is, typename RangesT, typename valueT,
+ +
348  inline send_coro_state
+
349  broadcast_coro(RangesT &&keylists, valueT &&value,
+ +
351  ttg::detail::value_copy_handler<Runtime> copy_handler = std::move(ch); // destroyed at the end of the coro
+
352  RangesT kl = std::forward<RangesT>(keylists); // capture the keylist(s)
+
353  if constexpr (ttg::meta::is_tuple_v<RangesT>) {
+
354  // treat as tuple
+
355  static_assert(sizeof...(Is)+1 == std::tuple_size_v<RangesT>,
+
356  "Size of keylist tuple must match the number of output terminals");
+
357  prepare_broadcast<0, I, Is...>(kl, std::forward<std::decay_t<decltype(value)>>(value));
+
358  co_await ttg::Void{}; // we'll come back once the task is done
+
359  ttg::device::detail::broadcast<0, I, Is...>(kl, std::forward<std::decay_t<decltype(value)>>(value));
+
360  } else if constexpr (!ttg::meta::is_tuple_v<RangesT>) {
+
361  // create a tie to the captured keylist
+
362  prepare_broadcast<0, I, Is...>(std::tie(kl), std::forward<std::decay_t<decltype(value)>>(value));
+
363  co_await ttg::Void{}; // we'll come back once the task is done
+
364  ttg::device::detail::broadcast<0, I, Is...>(std::tie(kl), std::forward<std::decay_t<decltype(value)>>(value));
+
365  }
+
366  }
+
367  } // namespace detail
+
368 
+
369  /* overload with explicit terminals and keylist passed by const reference */
+
370  template <size_t I, size_t... Is, typename rangeT, typename valueT, typename... out_keysT, typename... out_valuesT,
+ +
372  [[nodiscard]]
+
373  inline detail::send_t broadcast(rangeT &&keylist,
+
374  valueT &&value,
+
375  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
+ +
377  return detail::send_t{
+
378  detail::broadcast_coro<I, Is...>(std::forward<rangeT>(keylist),
+
379  copy_handler(std::forward<valueT>(value)),
+
380  t, std::move(copy_handler))};
+
381  }
+
382 
+
383  /* overload with implicit terminals and keylist passed by const reference */
+
384  template <size_t i, typename rangeT, typename valueT,
+ +
386  inline detail::send_t broadcast(rangeT &&keylist, valueT &&value) {
+ +
388  return detail::send_t{broadcast_coro<i>(std::tie(keylist), copy_handler(std::forward<valueT>(value)),
+
389  std::move(copy_handler))};
+
390  }
+
391 
+
392  template<typename... Args, ttg::Runtime Runtime = ttg::ttg_runtime>
+
393  [[nodiscard]]
+
394  std::vector<device::detail::send_t> forward(Args&&... args) {
+
395  // TODO: check the cost of this!
+
396  return std::vector{std::forward<Args>(args)...};
+
397  }
+
398 
+
399  /*******************************************
+
400  * Device task promise and coroutine handle
+
401  *******************************************/
+
402 
+
403  namespace detail {
+
404  // fwd-decl
+
405  struct device_task_promise_type;
+
406  // base type for ttg::device::Task
+
407  using device_task_handle_type = ttg::coroutine_handle<device_task_promise_type>;
+
408  } // namespace detail
+
409 
+
411 
+
418  struct Task : public detail::device_task_handle_type {
+
419  using base_type = detail::device_task_handle_type;
+
420 
+
423 
+
424  using promise_type = detail::device_task_promise_type;
+
425 
+
427 
+
428  Task(base_type base) : base_type(std::move(base)) {}
+
429 
+
430  base_type& handle() { return *this; }
+
431 
+
433  inline bool ready() {
+
434  return true;
+
435  }
+
436 
+
438  inline bool completed();
+
439  };
+
440 
+
441  namespace detail {
+
442 
+
443  /* The promise type that stores the views provided by the
+
444  * application task coroutine on the first co_yield. It subsequently
+
445  * tracks the state of the task when it moves from waiting for transfers
+
446  * to waiting for the submitted kernel to complete. */
+
447  struct device_task_promise_type {
+
448 
+
449  /* do not suspend the coroutine on first invocation, we want to run
+
450  * the coroutine immediately and suspend when we get the device transfers.
+
451  */
+
452  ttg::suspend_never initial_suspend() {
+
453  m_state = ttg::device::detail::TTG_DEVICE_CORO_INIT;
+
454  return {};
+
455  }
+
456 
+
457  /* suspend the coroutine at the end of the execution
+
458  * so we can access the promise.
+
459  * TODO: necessary? maybe we can save one suspend here
+
460  */
+
461  ttg::suspend_always final_suspend() noexcept {
+
462  m_state = ttg::device::detail::TTG_DEVICE_CORO_COMPLETE;
+
463  return {};
+
464  }
+
465 
+
466  /* Allow co_await on a tuple */
+
467  template<typename... Views>
+
468  ttg::suspend_always await_transform(std::tuple<Views&...> &views) {
+
469  return yield_value(views);
+
470  }
+
471 
+
472  template<typename... Ts>
+
473  ttg::suspend_always await_transform(detail::to_device_t<Ts...>&& a) {
+
474  bool need_transfer = !(TTG_IMPL_NS::register_device_memory(a.ties));
+
475  /* TODO: are we allowed to not suspend here and launch the kernel directly? */
+
476  m_state = ttg::device::detail::TTG_DEVICE_CORO_WAIT_TRANSFER;
+
477  return {};
+
478  }
+
479 
+
480  template<typename... Ts>
+
481  auto await_transform(detail::wait_kernel_t<Ts...>&& a) {
+
482  //std::cout << "yield_value: wait_kernel_t" << std::endl;
+
483  if constexpr (sizeof...(Ts) > 0) {
+ +
485  }
+
486  m_state = ttg::device::detail::TTG_DEVICE_CORO_WAIT_KERNEL;
+
487  return a;
+
488  }
+
489 
+
490  ttg::suspend_always await_transform(std::vector<device::detail::send_t>&& v) {
+
491  m_sends = std::forward<std::vector<device::detail::send_t>>(v);
+
492  m_state = ttg::device::detail::TTG_DEVICE_CORO_SENDOUT;
+
493  return {};
+
494  }
+
495 
+
496  ttg::suspend_always await_transform(device::detail::send_t&& v) {
+
497  m_sends.clear();
+
498  m_sends.push_back(std::forward<device::detail::send_t>(v));
+
499  m_state = ttg::device::detail::TTG_DEVICE_CORO_SENDOUT;
+
500  return {};
+
501  }
+
502 
+
503  void return_void() {
+
504  m_state = ttg::device::detail::TTG_DEVICE_CORO_COMPLETE;
+
505  }
+
506 
+
507  bool complete() const {
+
508  return m_state == ttg::device::detail::TTG_DEVICE_CORO_COMPLETE;
+
509  }
+
510 
+
511  ttg::device::Task get_return_object() { return {detail::device_task_handle_type::from_promise(*this)}; }
+
512 
+
513  void unhandled_exception() {
+
514  std::cerr << "Task coroutine caught an unhandled exception!" << std::endl;
+
515  throw; // fwd
+
516  }
+
517 
+
518  //using iterator = std::vector<device_obj_view>::iterator;
+
519 
+
520  /* execute all pending send and broadcast operations */
+
521  void do_sends() {
+
522  for (auto& send : m_sends) {
+
523  send.coro();
+
524  }
+
525  m_sends.clear();
+
526  }
+
527 
+
528  auto state() {
+
529  return m_state;
+
530  }
+
531 
+
532  private:
+
533  std::vector<device::detail::send_t> m_sends;
+
534  ttg_device_coro_state m_state = ttg::device::detail::TTG_DEVICE_CORO_STATE_NONE;
+
535 
+
536  };
+
537 
+
538  } // namespace detail
+
539 
+
540  bool Task::completed() { return base_type::promise().state() == ttg::device::detail::TTG_DEVICE_CORO_COMPLETE; }
+
541 
+
542  struct device_wait_kernel
+
543  { };
+
544 
+
545 
+
546  /* NOTE: below is preliminary for reductions on the device, which is not available yet */
+
547 #if 0
+
548  /**************************
+
549  * Device reduction coros *
+
550  **************************/
+
551 
+
552  struct device_reducer_promise_type;
+
553 
+
554  using device_reducer_handle_type = ttg::coroutine_handle<device_reducer_promise_type>;
+
555 
+
557  struct device_reducer : public device_reducer_handle_type {
+
558  using base_type = device_reducer_handle_type;
+
559 
+
562 
+
563  using promise_type = device_reducer_promise_type;
+
564 
+
566 
+
567  device_reducer(base_type base) : base_type(std::move(base)) {}
+
568 
+
569  base_type& handle() { return *this; }
+
570 
+
572  inline bool ready() {
+
573  return true;
+
574  }
+
575 
+
577  inline bool completed();
+
578  };
+
579 
+
580 
+
581  /* The promise type that stores the views provided by the
+
582  * application task coroutine on the first co_yield. It subsequently
+
583  * tracks the state of the task when it moves from waiting for transfers
+
584  * to waiting for the submitted kernel to complete. */
+
585  struct device_reducer_promise_type {
+
586 
+
587  /* do not suspend the coroutine on first invocation, we want to run
+
588  * the coroutine immediately and suspend when we get the device transfers.
+
589  */
+
590  ttg::suspend_never initial_suspend() {
+
591  m_state = ttg::device::detail::TTG_DEVICE_CORO_INIT;
+
592  return {};
+
593  }
+
594 
+
595  /* suspend the coroutine at the end of the execution
+
596  * so we can access the promise.
+
597  * TODO: necessary? maybe we can save one suspend here
+
598  */
+
599  ttg::suspend_always final_suspend() noexcept {
+
600  m_state = ttg::device::detail::TTG_DEVICE_CORO_COMPLETE;
+
601  return {};
+
602  }
+
603 
+
604  template<typename... Ts>
+
605  ttg::suspend_always await_transform(detail::to_device_t<Ts...>&& a) {
+
606  bool need_transfer = !(TTG_IMPL_NS::register_device_memory(a.ties));
+
607  /* TODO: are we allowed to not suspend here and launch the kernel directly? */
+
608  m_state = ttg::device::detail::TTG_DEVICE_CORO_WAIT_TRANSFER;
+
609  return {};
+
610  }
+
611 
+
612  void return_void() {
+
613  m_state = ttg::device::detail::TTG_DEVICE_CORO_COMPLETE;
+
614  }
+
615 
+
616  bool complete() const {
+
617  return m_state == ttg::device::detail::TTG_DEVICE_CORO_COMPLETE;
+
618  }
+
619 
+
620  device_reducer get_return_object() { return device_reducer{device_reducer_handle_type::from_promise(*this)}; }
+
621 
+
622  void unhandled_exception() { }
+
623 
+
624  auto state() {
+
625  return m_state;
+
626  }
+
627 
+
628 
+
629  private:
+
630  ttg::device::detail::ttg_device_coro_state m_state = ttg::device::detail::TTG_DEVICE_CORO_STATE_NONE;
+
631 
+
632  };
+
633 
+
634  bool device_reducer::completed() { return base_type::promise().state() == ttg::device::detail::TTG_DEVICE_CORO_COMPLETE; }
+
635 #endif // 0
+
636 
+
637 } // namespace ttg::device
+
638 
+
639 #endif // TTG_HAVE_COROUTINE
+
640 
+
641 #endif // TTG_DEVICE_TASK_H
+ +
std::enable_if_t< meta::is_none_void_v< Key, Value >, void > send(const Key &key, const Value &value)
Definition: terminal.h:467
+
std::enable_if_t<!meta::is_void_v< Key > &&meta::is_void_v< Value >, void > sendk(const Key &key)
Definition: terminal.h:479
+
A complete version of void.
Definition: void.h:11
+ + +
void broadcast(const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
Definition: func.h:335
+ +
constexpr bool is_devicescratch_v
Definition: meta.h:340
+
constexpr bool is_buffer_v
Definition: meta.h:325
+
void mark_device_out(std::tuple< Buffer &... > &b)
+
bool register_device_memory(std::tuple< Views &... > &views)
+
void post_device_out(std::tuple< Buffer &... > &b)
+
TTG_CXX_COROUTINE_NAMESPACE::suspend_always suspend_always
Definition: coroutine.h:21
+
void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
Sends a task id and a value to the given output terminal.
Definition: func.h:158
+
constexpr const ttg::Runtime ttg_runtime
Definition: import.h:20
+
Runtime
Definition: runtimes.h:15
+
TTG_CXX_COROUTINE_NAMESPACE::suspend_never suspend_never
Definition: coroutine.h:22
+
TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise > coroutine_handle
Definition: coroutine.h:24
+
void sendk(const keyT &key, ttg::Out< keyT, void > &t)
Sends a task id (without an accompanying value) to the given output terminal.
Definition: func.h:169
+
void sendv(valueT &&value, ttg::Out< void, valueT > &t)
Sends a value (without an accompanying task id) to the given output terminal.
Definition: func.h:179
+
void broadcast(const rangeT &keylist, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
Definition: func.h:402
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/devicefunc_8h.html b/dox-master/devicefunc_8h.html new file mode 100644 index 000000000..b09468808 --- /dev/null +++ b/dox-master/devicefunc_8h.html @@ -0,0 +1,162 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/devicefunc.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
devicefunc.h File Reference
+
+
+
#include "ttg/parsec/task.h"
+#include <parsec.h>
+#include <parsec/mca/device/device_gpu.h>
+
+ + + + + + +

+Namespaces

 ttg_parsec
 this contains PaRSEC-based TTG functionality
 
 ttg_parsec::detail
 
+ + + + + + + + + + + + + + + + + + + +

+Functions

template<typename... Views, std::size_t I, std::size_t... Is>
bool ttg_parsec::detail::register_device_memory (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
 
template<typename... Views>
bool ttg_parsec::register_device_memory (std::tuple< Views &... > &views)
 
template<typename... Views, std::size_t I, std::size_t... Is, bool DeviceAvail = false>
void ttg_parsec::detail::mark_device_out (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
 
template<typename... Buffer>
void ttg_parsec::mark_device_out (std::tuple< Buffer &... > &b)
 
template<typename... Views, std::size_t I, std::size_t... Is>
void ttg_parsec::detail::post_device_out (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
 
template<typename... Buffer>
void ttg_parsec::post_device_out (std::tuple< Buffer &... > &b)
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/devicefunc_8h_source.html b/dox-master/devicefunc_8h_source.html new file mode 100644 index 000000000..8b9d990b4 --- /dev/null +++ b/dox-master/devicefunc_8h_source.html @@ -0,0 +1,323 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/devicefunc.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
devicefunc.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_PARSEC_DEVICEFUNC_H
+
2 #define TTG_PARSEC_DEVICEFUNC_H
+
3 
+
4 #if defined(TTG_HAVE_CUDART)
+
5 #include <cuda.h>
+
6 #endif
+
7 
+
8 #include "ttg/parsec/task.h"
+
9 #include <parsec.h>
+
10 #include <parsec/mca/device/device_gpu.h>
+
11 
+
12 #if defined(PARSEC_HAVE_DEV_CUDA_SUPPORT)
+
13 #include <parsec/mca/device/cuda/device_cuda.h>
+
14 #elif defined(PARSEC_HAVE_DEV_HIP_SUPPORT)
+
15 #include <parsec/mca/device/hip/device_hip.h>
+
16 #endif // PARSEC_HAVE_DEV_CUDA_SUPPORT
+
17 
+
18 namespace ttg_parsec {
+
19  namespace detail {
+
20  template<typename... Views, std::size_t I, std::size_t... Is>
+
21  inline bool register_device_memory(std::tuple<Views&...> &views, std::index_sequence<I, Is...>) {
+
22  static_assert(I < MAX_PARAM_COUNT,
+
23  "PaRSEC only supports MAX_PARAM_COUNT device input/outputs. "
+
24  "Increase MAX_PARAM_COUNT and recompile PaRSEC/TTG.");
+
25  using view_type = std::remove_reference_t<std::tuple_element_t<I, std::tuple<Views&...>>>;
+ +
27  assert(nullptr != caller->dev_ptr);
+
28  parsec_gpu_task_t *gpu_task = caller->dev_ptr->gpu_task;
+
29  parsec_flow_t *flows = caller->dev_ptr->flows;
+
30 
+
31  auto& view = std::get<I>(views);
+
32  bool is_current = false;
+
33  static_assert(ttg::meta::is_buffer_v<view_type> || ttg::meta::is_devicescratch_v<view_type>);
+
34  /* get_parsec_data is overloaded for buffer and devicescratch */
+
35  parsec_data_t* data = detail::get_parsec_data(view);
+
36  /* TODO: check whether the device is current */
+
37 
+
38  auto access = PARSEC_FLOW_ACCESS_RW;
+
39  if constexpr (std::is_const_v<view_type>) {
+
40  // keep the flow at RW if it was RW to make sure we pull the data back out eventually
+
41  //if (flows[I].flow_flags != PARSEC_FLOW_ACCESS_RW) {
+
42  access = PARSEC_FLOW_ACCESS_READ;
+
43  //}
+
44  } else if constexpr (ttg::meta::is_devicescratch_v<view_type>) {
+
45  if (view.scope() == ttg::scope::Allocate) {
+
46  access = PARSEC_FLOW_ACCESS_WRITE;
+
47  }
+
48  }
+
49 
+
50  //std::cout << "register_device_memory task " << detail::parsec_ttg_caller << " data " << I << " "
+
51  // << data << " size " << data->nb_elts << std::endl;
+
52 
+
53  /* build the flow */
+
54  /* TODO: reuse the flows of the task class? How can we control the sync direction then? */
+
55  flows[I] = parsec_flow_t{.name = nullptr,
+
56  .sym_type = PARSEC_SYM_INOUT,
+
57  .flow_flags = static_cast<uint8_t>(access),
+
58  .flow_index = I,
+
59  .flow_datatype_mask = ~0 };
+
60 
+
61  gpu_task->flow_nb_elts[I] = data->nb_elts; // size in bytes
+
62  gpu_task->flow[I] = &flows[I];
+
63 
+
64  /* set the input data copy, parsec will take care of the transfer
+
65  * and the buffer will look at the parsec_data_t for the current pointer */
+
66  //detail::parsec_ttg_caller->parsec_task.data[I].data_in = data->device_copies[data->owner_device];
+
67  assert(nullptr != data->device_copies[0]->original);
+
68  caller->parsec_task.data[I].data_in = data->device_copies[0];
+
69  caller->parsec_task.data[I].source_repo_entry = NULL;
+
70 
+
71  if constexpr (sizeof...(Is) > 0) {
+
72  is_current |= register_device_memory(views, std::index_sequence<Is...>{});
+
73  }
+
74  return is_current;
+
75  }
+
76  } // namespace detail
+
77 
+
78  /* Takes a tuple of ttg::Views or ttg::buffers and register them
+
79  * with the currently executing task. Returns true if all memory
+
80  * is current on the target device, false if transfers are required. */
+
81  template<typename... Views>
+
82  inline bool register_device_memory(std::tuple<Views&...> &views) {
+
83  bool is_current = true;
+
84  if (nullptr == detail::parsec_ttg_caller) {
+
85  throw std::runtime_error("register_device_memory may only be invoked from inside a task!");
+
86  }
+
87 
+
88  if (nullptr == detail::parsec_ttg_caller->dev_ptr) {
+
89  throw std::runtime_error("register_device_memory called inside a non-gpu task!");
+
90  }
+
91 
+
92  if constexpr (sizeof...(Views) > 0) {
+
93  is_current = detail::register_device_memory(views, std::index_sequence_for<Views...>{});
+
94  }
+
95 
+
96  /* reset all entries in the current task */
+
97  for (int i = sizeof...(Views); i < MAX_PARAM_COUNT; ++i) {
+
98  detail::parsec_ttg_caller->parsec_task.data[i].data_in = nullptr;
+
99  detail::parsec_ttg_caller->dev_ptr->flows[i].flow_flags = PARSEC_FLOW_ACCESS_NONE;
+
100  detail::parsec_ttg_caller->dev_ptr->flows[i].flow_index = i;
+ +
102  detail::parsec_ttg_caller->dev_ptr->gpu_task->flow_nb_elts[i] = 0;
+
103  }
+
104 
+
105  return is_current;
+
106  }
+
107 
+
108  namespace detail {
+
109  template<typename... Views, std::size_t I, std::size_t... Is, bool DeviceAvail = false>
+
110  inline void mark_device_out(std::tuple<Views&...> &views, std::index_sequence<I, Is...>) {
+
111 
+
112  using view_type = std::remove_reference_t<std::tuple_element_t<I, std::tuple<Views&...>>>;
+
113  auto& view = std::get<I>(views);
+
114 
+
115  /* get_parsec_data is overloaded for buffer and devicescratch */
+
116  parsec_data_t* data = detail::get_parsec_data(view);
+
117  parsec_gpu_task_t *gpu_task = detail::parsec_ttg_caller->dev_ptr->gpu_task;
+
118  parsec_gpu_exec_stream_t *stream = detail::parsec_ttg_caller->dev_ptr->stream;
+
119 
+
120  /* enqueue the transfer into the compute stream to come back once the compute and transfer are complete */
+
121  parsec_device_gpu_module_t *device_module = detail::parsec_ttg_caller->dev_ptr->device;
+
122  device_module->memcpy_async(device_module, stream,
+
123  data->device_copies[0]->device_private,
+
124  data->device_copies[data->owner_device]->device_private,
+
125  data->nb_elts, parsec_device_gpu_transfer_direction_d2h);
+
126 
+
127  if constexpr (sizeof...(Is) > 0) {
+
128  // recursion
+
129  mark_device_out(views, std::index_sequence<Is...>{});
+
130  }
+
131  }
+
132  } // namespace detail
+
133 
+
134  template<typename... Buffer>
+
135  inline void mark_device_out(std::tuple<Buffer&...> &b) {
+
136 
+
137  if (nullptr == detail::parsec_ttg_caller) {
+
138  throw std::runtime_error("mark_device_out may only be invoked from inside a task!");
+
139  }
+
140 
+
141  if (nullptr == detail::parsec_ttg_caller->dev_ptr) {
+
142  throw std::runtime_error("mark_device_out called inside a non-gpu task!");
+
143  }
+
144 
+
145  detail::mark_device_out(b, std::index_sequence_for<Buffer...>{});
+
146  }
+
147 
+
148  namespace detail {
+
149 
+
150  template<typename... Views, std::size_t I, std::size_t... Is>
+
151  inline void post_device_out(std::tuple<Views&...> &views, std::index_sequence<I, Is...>) {
+
152 
+
153  using view_type = std::remove_reference_t<std::tuple_element_t<I, std::tuple<Views&...>>>;
+
154 
+
155  if constexpr (!std::is_const_v<view_type>) {
+
156  auto& view = std::get<I>(views);
+
157 
+
158  /* get_parsec_data is overloaded for buffer and devicescratch */
+
159  parsec_data_t* data = detail::get_parsec_data(view);
+
160  data->device_copies[0]->version = data->device_copies[data->owner_device]->version;
+
161  parsec_data_transfer_ownership_to_copy(data, 0, PARSEC_FLOW_ACCESS_READ);
+
162  }
+
163 
+
164  if constexpr (sizeof...(Is) > 0) {
+
165  // recursion
+
166  post_device_out(views, std::index_sequence<Is...>{});
+
167  }
+
168  }
+
169  } // namespace detail
+
170  template<typename... Buffer>
+
171  inline void post_device_out(std::tuple<Buffer&...> &b) {
+
172  detail::post_device_out(b, std::index_sequence_for<Buffer...>{});
+
173  }
+
174 
+
175 } // namespace ttg_parsec
+
176 
+
177 #endif // TTG_PARSEC_DEVICEFUNC_H
+
constexpr auto data(C &c) -> decltype(c.data())
Definition: span.h:189
+
void mark_device_out(std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
Definition: devicefunc.h:110
+
bool register_device_memory(std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
Definition: devicefunc.h:21
+
void post_device_out(std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
Definition: devicefunc.h:151
+
parsec_data_t * get_parsec_data(const ttg_parsec::Buffer< T, A > &db)
Definition: buffer.h:393
+
thread_local parsec_ttg_task_base_t * parsec_ttg_caller
Definition: thread_local.h:12
+
this contains PaRSEC-based TTG functionality
Definition: fwd.h:18
+
void post_device_out(std::tuple< Buffer &... > &b)
Definition: devicefunc.h:171
+
bool register_device_memory(std::tuple< Views &... > &views)
Definition: devicefunc.h:82
+
void mark_device_out(std::tuple< Buffer &... > &b)
Definition: devicefunc.h:135
+ +
TTG_IMPL_NS::Buffer< T, Allocator > Buffer
Definition: buffer.h:9
+ +
parsec_gpu_task_t * gpu_task
Definition: task.h:14
+
parsec_gpu_exec_stream_t * stream
Definition: task.h:16
+
parsec_flow_t * flows
Definition: task.h:15
+
parsec_device_gpu_module_t * device
Definition: task.h:17
+ + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/devicescope_8h.html b/dox-master/devicescope_8h.html new file mode 100644 index 000000000..65a0c6858 --- /dev/null +++ b/dox-master/devicescope_8h.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg/ttg/devicescope.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
devicescope.h File Reference
+
+
+ + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
+ + + +

+Enumerations

enum class  ttg::scope { ttg::Allocate = 0x0 +, ttg::SyncIn = 0x2 + }
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/devicescope_8h_source.html b/dox-master/devicescope_8h_source.html new file mode 100644 index 000000000..8b9999519 --- /dev/null +++ b/dox-master/devicescope_8h_source.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: ttg/ttg/devicescope.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
devicescope.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_DEVICESCOPE_H
+
2 #define TTG_DEVICESCOPE_H
+
3 
+
4 namespace ttg {
+
5  enum class scope {
+
6  Allocate = 0x0, //< memory allocated as scratch, but not moved in or out
+
7  SyncIn = 0x2, //< memory allocated as scratch and data transferred to device
+
8  };
+
9 } // namespace ttg
+
10 
+
11 #endif // TTG_DEVICESCOPE_H
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
scope
Definition: devicescope.h:5
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/devicescratch_8h.html b/dox-master/devicescratch_8h.html new file mode 100644 index 000000000..2509400d6 --- /dev/null +++ b/dox-master/devicescratch_8h.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg/ttg/devicescratch.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
devicescratch.h File Reference
+
+
+
#include "ttg/devicescope.h"
+#include "ttg/fwd.h"
+
+ + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
+ + + + +

+Typedefs

template<typename T >
using ttg::devicescratch = TTG_IMPL_NS::devicescratch< T >
 
+ + + + +

+Functions

template<typename T >
auto ttg::make_scratch (T *val, ttg::scope scope, std::size_t count=1)
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/devicescratch_8h_source.html b/dox-master/devicescratch_8h_source.html new file mode 100644 index 000000000..f3504e4e4 --- /dev/null +++ b/dox-master/devicescratch_8h_source.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg/ttg/devicescratch.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
devicescratch.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_DEVICESCRATCH_H
+
2 #define TTG_DEVICESCRATCH_H
+
3 
+
4 #include "ttg/devicescope.h"
+
5 #include "ttg/fwd.h"
+
6 
+
7 namespace ttg {
+
8 
+
9 template<typename T>
+
10 using devicescratch = TTG_IMPL_NS::devicescratch<T>;
+
11 
+
12 template<typename T>
+
13 auto make_scratch(T* val, ttg::scope scope, std::size_t count = 1) {
+
14  return devicescratch<T>(val, scope, count);
+
15 }
+
16 
+
17 } // namespace ttg
+
18 
+
19 #endif // TTG_DEVICESCRATCH_H
+ + +
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
scope
Definition: devicescope.h:5
+
auto make_scratch(T *val, ttg::scope scope, std::size_t count=1)
Definition: devicescratch.h:13
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/diagnose_8h.html b/dox-master/diagnose_8h.html new file mode 100644 index 000000000..1a59443f1 --- /dev/null +++ b/dox-master/diagnose_8h.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg/ttg/util/diagnose.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
diagnose.h File Reference
+
+
+ + + + + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
 ttg::detail
 
+ + + + + + + + + +

+Functions

bool & ttg::detail::diagnose_accessor ()
 
bool ttg::diagnose ()
 
void ttg::diagnose_on ()
 
void ttg::diagnose_off ()
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/diagnose_8h_source.html b/dox-master/diagnose_8h_source.html new file mode 100644 index 000000000..b7020c5b1 --- /dev/null +++ b/dox-master/diagnose_8h_source.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg/ttg/util/diagnose.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
diagnose.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_DIAGNOSE_H
+
2 #define TTG_DIAGNOSE_H
+
3 
+
4 namespace ttg {
+
5  namespace detail {
+
6  inline bool &diagnose_accessor() {
+
7  static bool diagnose = true;
+
8  return diagnose;
+
9  }
+
10  } // namespace detail
+
11 
+
12  inline bool diagnose() { return detail::diagnose_accessor(); }
+
13  inline void diagnose_on() { detail::diagnose_accessor() = true; }
+
14  inline void diagnose_off() { detail::diagnose_accessor() = false; }
+
15 
+
16 } // namespace ttg
+
17 
+
18 #endif // TTG_DIAGNOSE_H
+
bool & diagnose_accessor()
Definition: diagnose.h:6
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
void diagnose_on()
Definition: diagnose.h:13
+
bool diagnose()
Definition: diagnose.h:12
+
void diagnose_off()
Definition: diagnose.h:14
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_07c857364c0556d18e94a3f35298c4a6.html b/dox-master/dir_07c857364c0556d18e94a3f35298c4a6.html new file mode 100644 index 000000000..61fb3021c --- /dev/null +++ b/dox-master/dir_07c857364c0556d18e94a3f35298c4a6.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: doc/dox/dev/devsamp Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
devsamp Directory Reference
+
+
+ + + + +

+Directories

directory  main
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_13fd119dab1db984ce4477363886eeb4.html b/dox-master/dir_13fd119dab1db984ce4477363886eeb4.html new file mode 100644 index 000000000..1103ab6da --- /dev/null +++ b/dox-master/dir_13fd119dab1db984ce4477363886eeb4.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
serialization Directory Reference
+
+
+ + + + + + +

+Directories

directory  backends
 
directory  std
 
+ + + + + + + + + + + + + + + +

+Files

file  backends.h [code]
 
file  buffer_archive.cpp [code]
 
file  buffer_archive.h [code]
 
file  data_descriptor.h [code]
 
file  splitmd_data_descriptor.h [code]
 
file  stream.h [code]
 
file  traits.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_1d76dac96d2bc88cf9e6140a5146aa51.html b/dox-master/dir_1d76dac96d2bc88cf9e6140a5146aa51.html new file mode 100644 index 000000000..4d9d818d1 --- /dev/null +++ b/dox-master/dir_1d76dac96d2bc88cf9e6140a5146aa51.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: doc/dox/user Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
user Directory Reference
+
+
+ + + + +

+Directories

directory  examples
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_2360215b1f4ba8a53485d6c71904a906.html b/dox-master/dir_2360215b1f4ba8a53485d6c71904a906.html new file mode 100644 index 000000000..41111f875 --- /dev/null +++ b/dox-master/dir_2360215b1f4ba8a53485d6c71904a906.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
std Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  allocator.h [code]
 
file  array.h [code]
 
file  list.h [code]
 
file  pair.h [code]
 
file  tuple.h [code]
 
file  variant.h [code]
 
file  vector.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_36f15a76b34aab76fd15ad9ec0b06ea0.html b/dox-master/dir_36f15a76b34aab76fd15ad9ec0b06ea0.html new file mode 100644 index 000000000..cc1a9f82a --- /dev/null +++ b/dox-master/dir_36f15a76b34aab76fd15ad9ec0b06ea0.html @@ -0,0 +1,136 @@ + + + + + + + + + + + ttg: doc/dox Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dox Directory Reference
+
+
+ + + + + + + + +

+Directories

directory  contrib
 
directory  dev
 
directory  user
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_48acf8476fa974f8d8d52fac470b66ad.html b/dox-master/dir_48acf8476fa974f8d8d52fac470b66ad.html new file mode 100644 index 000000000..85fe28043 --- /dev/null +++ b/dox-master/dir_48acf8476fa974f8d8d52fac470b66ad.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: doc/dox/dev/devsamp/main Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
main Directory Reference
+
+
+ + + + +

+Files

file  test.cpp [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_518e89f1c0c8b70cdfc5d2d3d6ce7940.html b/dox-master/dir_518e89f1c0c8b70cdfc5d2d3d6ce7940.html new file mode 100644 index 000000000..124c391da --- /dev/null +++ b/dox-master/dir_518e89f1c0c8b70cdfc5d2d3d6ce7940.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/polyfills Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
polyfills Directory Reference
+
+
+ + + + + + +

+Files

file  disjunction.hpp [code]
 
file  make_index_sequence.hpp [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_77fdb2182ae76ba6fbafe3d120eaee6b.html b/dox-master/dir_77fdb2182ae76ba6fbafe3d120eaee6b.html new file mode 100644 index 000000000..144570674 --- /dev/null +++ b/dox-master/dir_77fdb2182ae76ba6fbafe3d120eaee6b.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: doc/dox/dev Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dev Directory Reference
+
+
+ + + + +

+Directories

directory  devsamp
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_78211b2f39597c5113304cbc04c54190.html b/dox-master/dir_78211b2f39597c5113304cbc04c54190.html new file mode 100644 index 000000000..014883fd4 --- /dev/null +++ b/dox-master/dir_78211b2f39597c5113304cbc04c54190.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/util/meta Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
meta Directory Reference
+
+
+ + + + +

+Files

file  callable.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_78e60d79325cd27436b0d8d9522e9c57.html b/dox-master/dir_78e60d79325cd27436b0d8d9522e9c57.html new file mode 100644 index 000000000..abcabbf46 --- /dev/null +++ b/dox-master/dir_78e60d79325cd27436b0d8d9522e9c57.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/util/hash Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
hash Directory Reference
+
+
+ + + + +

+Directories

directory  std
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_8803a465e44b75ca1e251be94c39e69d.html b/dox-master/dir_8803a465e44b75ca1e251be94c39e69d.html new file mode 100644 index 000000000..456a81664 --- /dev/null +++ b/dox-master/dir_8803a465e44b75ca1e251be94c39e69d.html @@ -0,0 +1,201 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
callable_traits Directory Reference
+
+ + + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_9821395bc66cf1f03c298ff9baab0fee.html b/dox-master/dir_9821395bc66cf1f03c298ff9baab0fee.html new file mode 100644 index 000000000..64d3a69e0 --- /dev/null +++ b/dox-master/dir_9821395bc66cf1f03c298ff9baab0fee.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
parsec Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  buffer.h [code]
 
file  device.h [code]
 
file  devicefunc.h [code]
 
file  devicescratch.h [code]
 
file  fwd.h [code]
 
file  import.h [code]
 
file  parsec-ext.h [code]
 
file  ptr.h [code]
 
file  task.h [code]
 
file  thread_local.h [code]
 
file  ttg.h [code]
 
file  ttg_data_copy.h [code]
 
file  ttvalue.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_a17c6c13d389f7faedce3089b14133b4.html b/dox-master/dir_a17c6c13d389f7faedce3089b14133b4.html new file mode 100644 index 000000000..7df457aad --- /dev/null +++ b/dox-master/dir_a17c6c13d389f7faedce3089b14133b4.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
backends Directory Reference
+
+
+ + + + +

+Directories

directory  boost
 
+ + + + + +

+Files

file  boost.h [code]
 
file  madness.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_a825e1ba92545c3b5c2d3ccdfd8c48c1.html b/dox-master/dir_a825e1ba92545c3b5c2d3ccdfd8c48c1.html new file mode 100644 index 000000000..77f32b19e --- /dev/null +++ b/dox-master/dir_a825e1ba92545c3b5c2d3ccdfd8c48c1.html @@ -0,0 +1,137 @@ + + + + + + + + + + + ttg: ttg Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg Directory Reference
+
+
+ + + + +

+Directories

directory  ttg
 
+ + + +

+Files

file  ttg.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_a8c24be98ee2a1ad71d381b4091fdbf8.html b/dox-master/dir_a8c24be98ee2a1ad71d381b4091fdbf8.html new file mode 100644 index 000000000..470a31421 --- /dev/null +++ b/dox-master/dir_a8c24be98ee2a1ad71d381b4091fdbf8.html @@ -0,0 +1,165 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
detail Directory Reference
+
+
+ + + + + + +

+Directories

directory  polyfills
 
directory  unguarded
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  config.hpp [code]
 
file  core.hpp [code]
 
file  default_callable_traits.hpp [code]
 
file  forward_declarations.hpp [code]
 
file  function.hpp [code]
 
file  function_object.hpp [code]
 
file  is_invocable_impl.hpp [code]
 
file  pmd.hpp [code]
 
file  pmf.hpp [code]
 
file  qualifier_flags.hpp [code]
 
file  set_function_qualifiers.hpp [code]
 
file  sfinae_errors.hpp [code]
 
file  traits.hpp [code]
 
file  utility.hpp [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_bc97ab6845a366ec7354b4363128df1d.html b/dox-master/dir_bc97ab6845a366ec7354b4363128df1d.html new file mode 100644 index 000000000..2d7463327 --- /dev/null +++ b/dox-master/dir_bc97ab6845a366ec7354b4363128df1d.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: ttg/ttg/device Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
device Directory Reference
+
+
+ + + + + + +

+Files

file  device.h [code]
 
file  task.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_bcda4f8537b20778c16ba7f9dd698de8.html b/dox-master/dir_bcda4f8537b20778c16ba7f9dd698de8.html new file mode 100644 index 000000000..4e78941a8 --- /dev/null +++ b/dox-master/dir_bcda4f8537b20778c16ba7f9dd698de8.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends/boost Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
boost Directory Reference
+
+
+ + + + +

+Files

file  archive.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_c1a36a68cc63344d9be0575bb7d87b8b.html b/dox-master/dir_c1a36a68cc63344d9be0575bb7d87b8b.html new file mode 100644 index 000000000..5a301ee37 --- /dev/null +++ b/dox-master/dir_c1a36a68cc63344d9be0575bb7d87b8b.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: doc/dox/user/examples Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
examples Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  distributed.cc [code]
 
file  iterative.cc [code]
 
file  reducing.cc [code]
 
file  simple.cc [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_d14c430f5eb3e5ce89bbe9044e7ab1f9.html b/dox-master/dir_d14c430f5eb3e5ce89bbe9044e7ab1f9.html new file mode 100644 index 000000000..baefac2d7 --- /dev/null +++ b/dox-master/dir_d14c430f5eb3e5ce89bbe9044e7ab1f9.html @@ -0,0 +1,164 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
unguarded Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  function.hpp [code]
 
file  function_2.hpp [code]
 
file  function_3.hpp [code]
 
file  function_ptr.hpp [code]
 
file  function_ptr_2.hpp [code]
 
file  function_ptr_3.hpp [code]
 
file  function_ptr_varargs.hpp [code]
 
file  function_ptr_varargs_2.hpp [code]
 
file  function_ptr_varargs_3.hpp [code]
 
file  pmf.hpp [code]
 
file  pmf_2.hpp [code]
 
file  pmf_3.hpp [code]
 
file  pmf_4.hpp [code]
 
file  pmf_varargs.hpp [code]
 
file  pmf_varargs_2.hpp [code]
 
file  pmf_varargs_3.hpp [code]
 
file  pmf_varargs_4.hpp [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_d4db2781be3a279fb15a1d58748414cc.html b/dox-master/dir_d4db2781be3a279fb15a1d58748414cc.html new file mode 100644 index 000000000..764f3d430 --- /dev/null +++ b/dox-master/dir_d4db2781be3a279fb15a1d58748414cc.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/util/hash/std Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
std Directory Reference
+
+
+ + + + +

+Files

file  pair.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_d6fd4865185b9faac2b34d4b3d207028.html b/dox-master/dir_d6fd4865185b9faac2b34d4b3d207028.html new file mode 100644 index 000000000..582dc57b1 --- /dev/null +++ b/dox-master/dir_d6fd4865185b9faac2b34d4b3d207028.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg/ttg/external Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
external Directory Reference
+
+
+ + + + +

+Directories

directory  boost
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_deef7e8046556dd51a354e77490c821e.html b/dox-master/dir_deef7e8046556dd51a354e77490c821e.html new file mode 100644 index 000000000..715b31ccc --- /dev/null +++ b/dox-master/dir_deef7e8046556dd51a354e77490c821e.html @@ -0,0 +1,126 @@ + + + + + + + + + + + ttg: doc/dox/contrib Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
contrib Directory Reference
+
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_df54c121214d62d549578fca829a256a.html b/dox-master/dir_df54c121214d62d549578fca829a256a.html new file mode 100644 index 000000000..068391140 --- /dev/null +++ b/dox-master/dir_df54c121214d62d549578fca829a256a.html @@ -0,0 +1,137 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
boost Directory Reference
+
+
+ + + + +

+Directories

directory  callable_traits
 
+ + + +

+Files

file  callable_traits.hpp [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_e1343a3dc90010149b86ffe6d9c5dcc4.html b/dox-master/dir_e1343a3dc90010149b86ffe6d9c5dcc4.html new file mode 100644 index 000000000..9b016248a --- /dev/null +++ b/dox-master/dir_e1343a3dc90010149b86ffe6d9c5dcc4.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: ttg/ttg/madness Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
madness Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  buffer.h [code]
 
file  device.h [code]
 
file  fwd.h [code]
 
file  import.h [code]
 
file  ttg.h [code]
 
file  ttvalue.h [code]
 
file  watch.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_e67ae4b516638ba86976c7f6d8216122.html b/dox-master/dir_e67ae4b516638ba86976c7f6d8216122.html new file mode 100644 index 000000000..dcb1e00e7 --- /dev/null +++ b/dox-master/dir_e67ae4b516638ba86976c7f6d8216122.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: ttg/ttg/base Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
base Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  keymap.h [code]
 
file  terminal.h [code]
 
file  tt.h [code]
 
file  world.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_e68e8157741866f444e17edd764ebbae.html b/dox-master/dir_e68e8157741866f444e17edd764ebbae.html new file mode 100644 index 000000000..43aca47fd --- /dev/null +++ b/dox-master/dir_e68e8157741866f444e17edd764ebbae.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: doc Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
doc Directory Reference
+
+
+ + + + +

+Directories

directory  dox
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_eadfcb2e6dc630a96ad146c380f23e4d.html b/dox-master/dir_eadfcb2e6dc630a96ad146c380f23e4d.html new file mode 100644 index 000000000..305560b26 --- /dev/null +++ b/dox-master/dir_eadfcb2e6dc630a96ad146c380f23e4d.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: ttg/ttg Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
ttg Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Directories

directory  base
 
directory  device
 
directory  external
 
directory  madness
 
directory  parsec
 
directory  serialization
 
directory  util
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  broadcast.h [code]
 
file  buffer.h [code]
 
file  config.in.h [code]
 
file  coroutine.h [code]
 
file  devicescope.h [code]
 
file  devicescratch.h [code]
 
file  edge.h [code]
 
file  execution.h [code]
 
file  func.h [code]
 
file  fwd.h [code]
 
file  impl_selector.h [code]
 
file  make_tt.h [code]
 
file  ptr.h [code]
 
file  reduce.h [code]
 
file  run.h [code]
 
file  runtimes.h [code]
 
file  serialization.h [code]
 
file  terminal.h [code]
 
file  traverse.h [code]
 
file  tt.h [code]
 
file  ttvalue.h [code]
 
file  world.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dir_fb38b30f47951bfe30ef4589dd313e50.html b/dox-master/dir_fb38b30f47951bfe30ef4589dd313e50.html new file mode 100644 index 000000000..a2b2eb0ff --- /dev/null +++ b/dox-master/dir_fb38b30f47951bfe30ef4589dd313e50.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: ttg/ttg/util Directory Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
util Directory Reference
+
+
+ + + + + + +

+Directories

directory  hash
 
directory  meta
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  backtrace.cpp [code]
 
file  backtrace.h [code]
 
file  bug.cpp [code]
 
file  bug.h [code]
 
file  demangle.h [code]
 
file  diagnose.h [code]
 
file  dot.h [code]
 
file  env.cpp [code]
 
file  env.h [code]
 
file  future.h [code]
 
file  hash.h [code]
 
file  iovec.h [code]
 
file  macro.h [code]
 
file  meta.h [code]
 
file  multiindex.h [code]
 
file  print.h [code]
 
file  span.h [code]
 
file  trace.h [code]
 
file  tree.h [code]
 
file  typelist.h [code]
 
file  version.cc [code]
 
file  void.h [code]
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/disjunction_8hpp.html b/dox-master/disjunction_8hpp.html new file mode 100644 index 000000000..db9b639af --- /dev/null +++ b/dox-master/disjunction_8hpp.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/polyfills/disjunction.hpp File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
disjunction.hpp File Reference
+
+
+ + + + + + + + +

+Classes

struct  boost::callable_traits::detail::disjunction<... >
 
struct  boost::callable_traits::detail::disjunction< T >
 
struct  boost::callable_traits::detail::disjunction< T, Ts... >
 
+ + + + + + + +

+Namespaces

 boost
 
 boost::callable_traits
 
 boost::callable_traits::detail
 
+ + + +

+Macros

#define BOOST_CLBL_TRTS_DISJUNCTION(...)    ::boost::callable_traits::detail::disjunction<__VA_ARGS__>
 
+

Macro Definition Documentation

+ +

◆ BOOST_CLBL_TRTS_DISJUNCTION

+ +
+
+ + + + + + + + +
#define BOOST_CLBL_TRTS_DISJUNCTION( ...)    ::boost::callable_traits::detail::disjunction<__VA_ARGS__>
+
+ +

Definition at line 13 of file disjunction.hpp.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/disjunction_8hpp_source.html b/dox-master/disjunction_8hpp_source.html new file mode 100644 index 000000000..c36a31d25 --- /dev/null +++ b/dox-master/disjunction_8hpp_source.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/polyfills/disjunction.hpp Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
disjunction.hpp
+
+
+Go to the documentation of this file.
1 /*
+
2 Copyright Barrett Adair 2015-2017
+
3 
+
4 Distributed under the Boost Software License, Version 1.0.
+
5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
+
6 
+
7 */
+
8 
+
9 #ifndef BOOST_CLBL_TRTS_DETAIL_POLYFILLS_DISJUNCTION_HPP
+
10 #define BOOST_CLBL_TRTS_DETAIL_POLYFILLS_DISJUNCTION_HPP
+
11 
+
12 #undef BOOST_CLBL_TRTS_DISJUNCTION
+
13 #define BOOST_CLBL_TRTS_DISJUNCTION(...) \
+
14  ::boost::callable_traits::detail::disjunction<__VA_ARGS__>
+
15 
+
16 namespace boost { namespace callable_traits { namespace detail {
+
17 
+
18 //polyfill for C++17 std::disjunction
+
19 template<typename...>
+
20 struct disjunction : std::false_type {};
+
21 
+
22 template<typename T>
+
23 struct disjunction<T> : T {};
+
24 
+
25 template<typename T, typename... Ts>
+
26 struct disjunction<T, Ts...>
+
27  : std::conditional<T::value != false, T, disjunction<Ts...>>::type {};
+
28 
+
29 }}} // namespace boost::callable_traits::detail
+
30 
+
31 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_POLYFILLS_DISJUNCTION_HPP
+ + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/distributed_8cc-example.html b/dox-master/distributed_8cc-example.html new file mode 100644 index 000000000..d4da2cf9e --- /dev/null +++ b/dox-master/distributed_8cc-example.html @@ -0,0 +1,199 @@ + + + + + + + + + + + ttg: distributed.cc + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + +
+ +
+
+ + +
+ +
+ +
+
+
distributed.cc
+
+
+

This is the iterative diamond DAG with variable number of inputs using the reducing terminals of Template Task Graph, adapted to run in distributed: iteratively, a reducing diamond of data-dependent width is run, until the amount of data gathered at the bottom of the diamond exceeds a given threshold. First and last tasks of each diamond are run on rank 0, while the tasks inside the diamond are distributed between the ranks in a round-robin fashion.

+
#include <ttg.h>
+ + +
+
const double threshold = 100.0;
+
using Key2 = std::pair<int, int>;
+
+
namespace std {
+
std::ostream &operator<<(std::ostream &os, const Key2 &key) {
+
os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
+
return os;
+
}
+
} // namespace std
+
+
static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>> &out) {
+
ttg::print("Called task B(", key, ") on rank", ttg::ttg_default_execution_context().rank(), "with input data ", input); ttg::send<0>(std::get<0>(key), input + 1.0, out);
+
}
+
+
static void c(const int &k, const double &sum, std::tuple<ttg::Out<int, double>> &out) {
+
ttg::print("Called task C(", k, ") on rank", ttg::ttg_default_execution_context().rank(), "with input ", sum);
+
if (sum < threshold) {
+
ttg::print(" ", sum, "<", threshold, " so continuing to iterate");
+
ttg::send<0>(k + 1, sum, out);
+
} else {
+
ttg::print(" ", sum, ">=", threshold, " so stopping the iterations");
+
}
+
}
+
+
int main(int argc, char **argv) {
+
ttg::initialize(argc, argv, -1);
+
+
ttg::Edge<Key2, double> A_B("A(k)->B(k, i)");
+
ttg::Edge<int, double> B_C("B(k, i)->C(k)");
+
ttg::Edge<int, double> C_A("C(k)->A(k)");
+
+
auto wc(ttg::make_tt(c, ttg::edges(B_C), ttg::edges(C_A), "C", {"From B"}, {"to A"}));
+
wc->set_input_reducer<0>([](double &a, const double &b) { a += b; });
+
+
auto wa(ttg::make_tt([&](const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
+
ttg::print("Called task A(", k, ") on rank", ttg::ttg_default_execution_context().rank());
+
wc->set_argstream_size<0>(k, k+1);
+
for(int i = 0; i < k+1; i++) {
+
ttg::send<0>(Key2{k, i}, 1.0 + k + input, out);
+
}
+
}, ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
+
+
auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C), "B", {"from A"}, {"to C"}));
+
+
wa->set_keymap([&](const int &k) { return 0; });
+
wb->set_keymap([&](const Key2 &k) { return std::get<1>(k) % wb->get_world().size(); });
+
wc->set_keymap([&](const int &k) { return 0; });
+
+ +
+
if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
+
+ + +
+ +
return EXIT_SUCCESS;
+
}
+
+
Edge is used to connect In and Out terminals.
Definition: edge.h:25
+ +
std::ostream & operator<<(std::ostream &os, ttg::device::Device device)
Definition: device.h:68
+
const double threshold
Definition: distributed.cc:5
+
int main(int argc, char **argv)
Definition: distributed.cc:31
+
std::pair< int, int > Key2
Definition: distributed.cc:6
+
auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
Factory function to assist in wrapping a callable with signature.
Definition: make_tt.h:560
+
ttg::World ttg_default_execution_context()
Definition: ttg.h:136
+
void execute(ttg::World world)
Starts the execution in the given execution context.
Definition: run.h:74
+
void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
Sends a task id and a value to the given output terminal.
Definition: func.h:158
+
void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
+
std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
Definition: func.h:80
+
void fence(ttg::World world)
Returns when all tasks associated with the given execution context have finished on all ranks.
Definition: run.h:81
+
void print(const T &t, const Ts &... ts)
atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
Definition: print.h:130
+
int rank(World world=default_execution_context())
Definition: run.h:85
+
std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
Definition: func.h:533
+
ttg::World & get_default_world()
Definition: world.h:80
+
auto edges(inedgesT &&...args)
Make a tuple of Edges to pass to.
Definition: func.h:147
+ + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/distributed_8cc.html b/dox-master/distributed_8cc.html new file mode 100644 index 000000000..6bf682ed1 --- /dev/null +++ b/dox-master/distributed_8cc.html @@ -0,0 +1,254 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/distributed.cc File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
distributed.cc File Reference
+
+
+
#include <ttg.h>
+#include <ttg/serialization/std/pair.h>
+#include <ttg/util/hash/std/pair.h>
+
+ + + +

+Typedefs

using Key2 = std::pair< int, int >
 
+ + + + + +

+Functions

std::ostream & std::operator<< (std::ostream &os, const Key2 &key)
 
int main (int argc, char **argv)
 
+ + + +

+Variables

const double threshold = 100.0
 
+

Typedef Documentation

+ +

◆ Key2

+ +
+
+ + + + +
using Key2 = std::pair<int, int>
+
+ +

Definition at line 6 of file distributed.cc.

+ +
+
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char ** argv 
)
+
+

! !

+

! !

+
Examples
distributed.cc.
+
+ +

Definition at line 31 of file distributed.cc.

+ +
+
+ +

◆ operator<<()

+ +
+
+ + + + + + + + + + + + + + + + + + +
std::ostream & std::operator<< (std::ostream & os,
const Key2key 
)
+
+
Examples
distributed.cc.
+
+ +

Definition at line 9 of file distributed.cc.

+ +
+
+

Variable Documentation

+ +

◆ threshold

+ +
+
+ + + + +
const double threshold = 100.0
+
+
Examples
distributed.cc.
+
+ +

Definition at line 5 of file distributed.cc.

+ +
+
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/distributed_8cc_source.html b/dox-master/distributed_8cc_source.html new file mode 100644 index 000000000..5ee518041 --- /dev/null +++ b/dox-master/distributed_8cc_source.html @@ -0,0 +1,210 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/distributed.cc Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
distributed.cc
+
+
+Go to the documentation of this file.
1 #include <ttg.h>
+ + +
4 
+
5 const double threshold = 100.0;
+
6 using Key2 = std::pair<int, int>;
+
7 
+
8 namespace std {
+
9  std::ostream &operator<<(std::ostream &os, const Key2 &key) {
+
10  os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
+
11  return os;
+
12  }
+
13 } // namespace std
+
14 
+
15 static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>> &out) {
+
16  ttg::print("Called task B(", key, ") on rank", ttg::ttg_default_execution_context().rank(), "with input data ", input); ttg::send<0>(std::get<0>(key), input + 1.0, out);
+
18 }
+
19 
+
20 static void c(const int &k, const double &sum, std::tuple<ttg::Out<int, double>> &out) {
+
21  ttg::print("Called task C(", k, ") on rank", ttg::ttg_default_execution_context().rank(), "with input ", sum);
+
22  if (sum < threshold) {
+
23  ttg::print(" ", sum, "<", threshold, " so continuing to iterate");
+
25  ttg::send<0>(k + 1, sum, out);
+
26  } else {
+
27  ttg::print(" ", sum, ">=", threshold, " so stopping the iterations");
+
28  }
+
29 }
+
30 
+
31 int main(int argc, char **argv) {
+
32  ttg::initialize(argc, argv, -1);
+
33 
+
34  ttg::Edge<Key2, double> A_B("A(k)->B(k, i)");
+
35  ttg::Edge<int, double> B_C("B(k, i)->C(k)");
+
36  ttg::Edge<int, double> C_A("C(k)->A(k)");
+
37 
+
38  auto wc(ttg::make_tt(c, ttg::edges(B_C), ttg::edges(C_A), "C", {"From B"}, {"to A"}));
+
39 wc->set_input_reducer<0>([](double &a, const double &b) { a += b; });
+
41 
+
42  auto wa(ttg::make_tt([&](const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
+
43  ttg::print("Called task A(", k, ") on rank", ttg::ttg_default_execution_context().rank());
+
44  wc->set_argstream_size<0>(k, k+1);
+
45  for(int i = 0; i < k+1; i++) {
+
47  ttg::send<0>(Key2{k, i}, 1.0 + k + input, out);
+
48  }
+
49  }, ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
+
50 
+
51  auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C), "B", {"from A"}, {"to C"}));
+
52 
+
53  wa->set_keymap([&](const int &k) { return 0; });
+
54  wb->set_keymap([&](const Key2 &k) { return std::get<1>(k) % wb->get_world().size(); });
+
55  wc->set_keymap([&](const int &k) { return 0; });
+
56 
+ +
58 
+
59  if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
+
60 
+
61  ttg::execute();
+ +
63 
+
64  ttg::finalize();
+
65  return EXIT_SUCCESS;
+
66 }
+
67 
+
Edge is used to connect In and Out terminals.
Definition: edge.h:25
+ +
std::ostream & operator<<(std::ostream &os, ttg::device::Device device)
Definition: device.h:68
+
const double threshold
Definition: distributed.cc:5
+
int main(int argc, char **argv)
Definition: distributed.cc:31
+
std::pair< int, int > Key2
Definition: distributed.cc:6
+
auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
Factory function to assist in wrapping a callable with signature.
Definition: make_tt.h:560
+
ttg::World ttg_default_execution_context()
Definition: ttg.h:136
+
void execute(ttg::World world)
Starts the execution in the given execution context.
Definition: run.h:74
+
void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
Sends a task id and a value to the given output terminal.
Definition: func.h:158
+
void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
+
std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
Definition: func.h:80
+
void fence(ttg::World world)
Returns when all tasks associated with the given execution context have finished on all ranks.
Definition: run.h:81
+
void print(const T &t, const Ts &... ts)
atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
Definition: print.h:130
+
int rank(World world=default_execution_context())
Definition: run.h:85
+
std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
Definition: func.h:533
+
ttg::World & get_default_world()
Definition: world.h:80
+
auto edges(inedgesT &&...args)
Make a tuple of Edges to pass to.
Definition: func.h:147
+ + + +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/doc.png b/dox-master/doc.png new file mode 100644 index 0000000000000000000000000000000000000000..17edabff95f7b8da13c9516a04efe05493c29501 GIT binary patch literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t literal 0 HcmV?d00001 diff --git a/dox-master/dot_8h.html b/dox-master/dot_8h.html new file mode 100644 index 000000000..ea131e8d2 --- /dev/null +++ b/dox-master/dot_8h.html @@ -0,0 +1,147 @@ + + + + + + + + + + + ttg: ttg/ttg/util/dot.h File Reference + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+ +
+
dot.h File Reference
+
+
+
#include <sstream>
+#include <map>
+#include <string>
+#include "ttg/base/terminal.h"
+#include "ttg/traverse.h"
+
+ + + + +

+Classes

class  ttg::Dot
 Prints the graph to a std::string in the format understood by GraphViz's dot program. More...
 
+ + + + +

+Namespaces

 ttg
 top-level TTG namespace contains runtime-neutral functionality
 
+
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/dot_8h_source.html b/dox-master/dot_8h_source.html new file mode 100644 index 000000000..18bbc7934 --- /dev/null +++ b/dox-master/dot_8h_source.html @@ -0,0 +1,352 @@ + + + + + + + + + + + ttg: ttg/ttg/util/dot.h Source File + + + + + + + + + + + + + + + + + + + +
+
+
+
+
+
+ + + + + + +
+
+ + +
+ +
+ + +
+
+
+
dot.h
+
+
+Go to the documentation of this file.
1 #ifndef TTG_UTIL_DOT_H
+
2 #define TTG_UTIL_DOT_H
+
3 
+
4 #include <sstream>
+
5 #include <map>
+
6 #include <string>
+
7 
+
8 #include "ttg/base/terminal.h"
+
9 #include "ttg/traverse.h"
+
10 
+
11 namespace ttg {
+
13  class Dot : private detail::Traverse {
+
14  std::stringstream edges;
+
15  std::map<const TTBase*, std::stringstream> tt_nodes;
+
16  std::multimap<const TTBase *, const TTBase *> ttg_hierarchy;
+
17  int cluster_cnt;
+
18  bool disable_type;
+
19 
+
20  public:
+
23  Dot(bool disable_type = false) : disable_type(disable_type){};
+
24 
+
25  // Insert backslash before characters that dot is interpreting
+
26  std::string escape(const std::string &in) {
+
27  std::stringstream s;
+
28  for (char c : in) {
+
29  if (c == '<' || c == '>' || c == '"' || c == '|')
+
30  s << "\\" << c;
+
31  else
+
32  s << c;
+
33  }
+
34  return s.str();
+
35  }
+
36 
+
37  // A unique name for the node derived from the pointer
+
38  std::string nodename(const TTBase *op) {
+
39  std::stringstream s;
+
40  s << "n" << (void *)op;
+
41  return s.str();
+
42  }
+
43 
+
44  void build_ttg_hierarchy(const TTBase *tt) {
+
45  if(nullptr == tt) {
+
46  return;
+
47  }
+
48  auto search = ttg_hierarchy.find(tt->ttg_ptr());
+
49  if(search == ttg_hierarchy.end()) {
+
50  build_ttg_hierarchy(tt->ttg_ptr()); // make sure the parent is in the hierarchy
+
51  }
+
52  search = ttg_hierarchy.find(tt);
+
53  if(search == ttg_hierarchy.end()) {
+
54  ttg_hierarchy.insert( decltype(ttg_hierarchy)::value_type(tt->ttg_ptr(), tt) );
+
55  }
+
56  }
+
57 
+
58  void ttfunc(TTBase *tt) {
+
59  std::string ttnm = nodename(tt);
+
60  bool is_ttg = true;
+
61 
+
62  const TTBase *ttc = reinterpret_cast<const TTBase*>(tt);
+ +
64  if(!tt->is_ttg()) {
+
65  std::stringstream ttss;
+
66 
+
67  ttss << " " << ttnm << " [shape=record,style=filled,fillcolor=gray90,label=\"{";
+
68 
+
69  size_t count = 0;
+
70  if (tt->get_inputs().size() > 0) ttss << "{";
+
71  for (auto in : tt->get_inputs()) {
+
72  if (in) {
+
73  if (count != in->get_index()) throw "ttg::Dot: lost count of ins";
+
74  if (disable_type) {
+
75  ttss << " <in" << count << ">"
+
76  << " " << escape(in->get_key_type_str()) << " " << escape(in->get_name());
+
77  } else {
+
78  ttss << " <in" << count << ">"
+
79  << " " << escape("<" + in->get_key_type_str() + "," + in->get_value_type_str() + ">") << " "
+
80  << escape(in->get_name());
+
81  }
+
82  } else {
+
83  ttss << " <in" << count << ">"
+
84  << " unknown ";
+
85  }
+
86  count++;
+
87  if (count < tt->get_inputs().size()) ttss << " |";
+
88  }
+
89  if (tt->get_inputs().size() > 0) ttss << "} |";
+
90 
+
91  ttss << tt->get_name() << " ";
+
92 
+
93  if (tt->get_outputs().size() > 0) ttss << " | {";
+
94 
+
95  count = 0;
+
96  for (auto out : tt->get_outputs()) {
+
97  if (out) {
+
98  if (count != out->get_index()) throw "ttg::Dot: lost count of outs";
+
99  if (disable_type) {
+
100  ttss << " <out" << count << ">"
+
101  << " " << escape(out->get_key_type_str()) << " " << out->get_name();
+
102  } else {
+
103  ttss << " <out" << count << ">"
+
104  << " " << escape("<" + out->get_key_type_str() + "," + out->get_value_type_str() + ">") << " "
+
105  << out->get_name();
+
106  }
+
107  } else {
+
108  ttss << " <out" << count << ">"
+
109  << " unknown ";
+
110  }
+
111  count++;
+
112  if (count < tt->get_outputs().size()) ttss << " |";
+
113  }
+
114 
+
115  if (tt->get_outputs().size() > 0) ttss << "}";
+
116 
+
117  ttss << " } \"];\n";
+
118 
+
119  auto search = tt_nodes.find(ttc);
+
120  if( tt_nodes.end() == search ) {
+
121  tt_nodes.insert( {ttc, std::move(ttss)} );
+
122  } else {
+
123  search->second << ttss.str();
+
124  }
+
125  } else {
+
126  std::cout << ttnm << " is a TTG" << std::endl;
+
127  }
+
128 
+
129  for (auto out : tt->get_outputs()) {
+
130  if (out) {
+
131  for (auto successor : out->get_connections()) {
+
132  if (successor) {
+
133  edges << ttnm << ":out" << out->get_index() << ":s -> " << nodename(successor->get_tt()) << ":in"
+
134  << successor->get_index() << ":n;\n";
+
135  }
+
136  }
+
137  }
+
138  }
+
139  }
+
140 
+
141  void infunc(TerminalBase *in) {}
+
142 
+
143  void outfunc(TerminalBase *out) {}
+
144 
+
145  void tree_down(int level, const TTBase *node, std::stringstream &buf) {
+
146  if(node == nullptr || node->is_ttg()) {
+
147  if(nullptr != node) {
+
148  buf << "subgraph cluster_" << cluster_cnt++ << " {\n";
+
149  }
+
150  auto children = ttg_hierarchy.equal_range(node);
+
151  for(auto child = children.first; child != children.second; child++) {
+
152  assert(child->first == node);
+
153  tree_down(level+1, child->second, buf);
+
154  }
+
155  if(nullptr != node) {
+
156  buf << " label = \"" << node->get_name() << "\";\n";
+
157  buf << "}\n";
+
158  }
+
159  } else {
+
160  auto child = tt_nodes.find(node);
+
161  if( child != tt_nodes.end()) {
+
162  assert(child->first == node);
+
163  buf << child->second.str();
+
164  }
+
165  }
+
166  }
+
167 
+
168  public:
+
170  template <typename... TTBasePtrs>
+
171  std::enable_if_t<(std::is_convertible_v<std::remove_const_t<std::remove_reference_t<TTBasePtrs>>, TTBase *> && ...),
+
172  std::string>
+
173  operator()(TTBasePtrs &&... ops) {
+
174  reset();
+
175  std::stringstream buf;
+
176  buf.str(std::string());
+
177  buf.clear();
+
178 
+
179  edges.str(std::string());
+
180  edges.clear();
+
181 
+
182  tt_nodes.clear();
+
183  ttg_hierarchy.clear();
+
184 
+
185  buf << "digraph G {\n";
+
186  buf << " ranksep=1.5;\n";
+
187  bool t = true;
+
188  t &= (traverse(std::forward<TTBasePtrs>(ops)) && ... );
+
189 
+
190  cluster_cnt = 0;
+
191  tree_down(0, nullptr, buf);
+
192 
+
193  buf << edges.str();
+
194  buf << "}\n";
+
195 
+
196  reset();
+
197  std::string result = buf.str();
+
198  buf.str(std::string());
+
199  buf.clear();
+
200 
+
201  return result;
+
202  }
+
203  };
+
204 } // namespace ttg
+
205 #endif // TTG_UTIL_DOT_H
+ +
Prints the graph to a std::string in the format understood by GraphViz's dot program.
Definition: dot.h:13
+
void ttfunc(TTBase *tt)
Definition: dot.h:58
+
void infunc(TerminalBase *in)
Definition: dot.h:141
+
void outfunc(TerminalBase *out)
Definition: dot.h:143
+
std::string nodename(const TTBase *op)
Definition: dot.h:38
+
std::string escape(const std::string &in)
Definition: dot.h:26
+
void tree_down(int level, const TTBase *node, std::stringstream &buf)
Definition: dot.h:145
+
Dot(bool disable_type=false)
Definition: dot.h:23
+
std::enable_if_t<(std::is_convertible_v< std::remove_const_t< std::remove_reference_t< TTBasePtrs >>, TTBase * > &&...), std::string > operator()(TTBasePtrs &&... ops)
Definition: dot.h:173
+
void build_ttg_hierarchy(const TTBase *tt)
Definition: dot.h:44
+
A base class for all template tasks.
Definition: tt.h:30
+
const std::vector< TerminalBase * > & get_inputs() const
Returns the vector of input terminals.
Definition: tt.h:223
+
const std::vector< TerminalBase * > & get_outputs() const
Returns the vector of output terminals.
Definition: tt.h:226
+
const std::string & get_name() const
Gets the name of this operation.
Definition: tt.h:217
+
bool is_ttg() const
Definition: tt.h:209
+
const TTBase * ttg_ptr() const
Definition: tt.h:205
+ +
Traverses a graph of TTs in depth-first manner following out edges.
Definition: traverse.h:14
+ +
bool traverse(TTBase *tt)
Definition: traverse.h:30
+
top-level TTG namespace contains runtime-neutral functionality
Definition: keymap.h:8
+
int size(World world=default_execution_context())
Definition: run.h:89
+
auto edges(inedgesT &&...args)
Make a tuple of Edges to pass to.
Definition: func.h:147
+ +
+ + + +
+
+
+
+
+ + + + diff --git a/dox-master/doxy-boot.js b/dox-master/doxy-boot.js new file mode 100644 index 000000000..ad4878c88 --- /dev/null +++ b/dox-master/doxy-boot.js @@ -0,0 +1,278 @@ +$( document ).ready(function() { + $("div.headertitle").addClass("page-header"); + $("div.title").addClass("h1"); + + $('li > a[href="index.html"] > span').before(" "); + $('li > a[href="modules.html"] > span').before(" "); + $('li > a[href="namespaces.html"] > span').before(" "); + $('li > a[href="annotated.html"] > span').before(" "); + $('li > a[href="classes.html"] > span').before(" "); + $('li > a[href="inherits.html"] > span').before(" "); + $('li > a[href="functions.html"] > span').before(" "); + $('li > a[href="functions_func.html"] > span').before(" "); + $('li > a[href="functions_vars.html"] > span').before(" "); + $('li > a[href="functions_enum.html"] > span').before(" "); + $('li > a[href="functions_eval.html"] > span').before(" "); + $('img[src="ftv2ns.png"]').replaceWith('N '); + $('img[src="ftv2cl.png"]').replaceWith('C '); + + $("ul.tablist").addClass("nav nav-pills nav-justified"); + $("ul.tablist").css("margin-top", "0.5em"); + $("ul.tablist").css("margin-bottom", "0.5em"); + $("li.current").addClass("active"); + $("iframe").attr("scrolling", "yes"); + + $("#nav-path > ul").addClass("breadcrumb"); + + $("table.params").addClass("table"); + $("div.ingroups").wrapInner(""); + $("div.levels").css("margin", "0.5em"); + $("div.levels > span").addClass("btn btn-default btn-xs"); + $("div.levels > span").css("margin-right", "0.25em"); + + $("table.directory").addClass("table table-striped"); + $("div.summary > a").addClass("btn btn-default btn-xs"); + $("table.fieldtable").addClass("table"); + $(".fragment").addClass("well"); + $(".memitem").addClass("panel panel-default"); + $(".memproto").addClass("panel-heading"); + $(".memdoc").addClass("panel-body"); + $("span.mlabel").addClass("label label-info"); + + $("table.memberdecls").addClass("table"); + $("[class^=memitem]").addClass("active"); + + $("div.ah").addClass("btn btn-default"); + $("span.mlabels").addClass("pull-right"); + $("table.mlabels").css("width", "100%") + $("td.mlabels-right").addClass("pull-right"); + + $("div.ttc").addClass("panel panel-primary"); + $("div.ttname").addClass("panel-heading"); + $("div.ttname a").css("color", 'white'); + $("div.ttdef,div.ttdoc,div.ttdeci").addClass("panel-body"); + + $('div.fragment.well div.line:first').css('margin-top', '2px'); + $('div.fragment.well div.line:last').css('margin-bottom', '2px'); + + $('table.doxtable').removeClass('doxtable').addClass('table table-striped table-bordered').each(function(){ + $(this).prepend(''); + $(this).find('tbody > tr:first').prependTo($(this).find('thead')); + + $(this).find('td > span.success').parent().addClass('success'); + $(this).find('td > span.warning').parent().addClass('warning'); + $(this).find('td > span.danger').parent().addClass('danger'); + }); + + + + if($('div.fragment.well div.ttc').length > 0) + { + $('div.fragment.well div.line:first').parent().removeClass('fragment well'); + } + + $('table.memberdecls').find('.memItemRight').each(function(){ + $(this).contents().appendTo($(this).siblings('.memItemLeft')); + $(this).siblings('.memItemLeft').attr('align', 'left'); + }); + + $('table.memberdecls').find('.memTemplItemRight').each(function(){ + $(this).contents().appendTo($(this).siblings('.memTemplItemLeft')); + $(this).siblings('.memTemplItemLeft').attr('align', 'left'); + }); + + function getOriginalWidthOfImg(img_element) { + var t = new Image(); + t.src = (img_element.getAttribute ? img_element.getAttribute("src") : false) || img_element.src; + return t.width; + } + + $('div.dyncontent').find('img').each(function(){ + if(getOriginalWidthOfImg($(this)[0]) > $('#content>div.container').width()) + $(this).css('width', '100%'); + }); + + var nav_container = $('#main-nav').detach(); + nav_container.addClass('nav navbar-nav navbar-right'); + $('nav > .container').append(nav_container); + $('#main-nav > ul').addClass('nav navbar-nav navbar-right'); + $('#main-nav * li > ul').addClass('dropdown-menu'); + + + + /* responsive search box */ + //$('#MSearchBox').parent().remove(); + + /* + var nav_container = $('
'); + $('#navrow1').parent().prepend(nav_container); + + var left_nav = $('
'); + for (i = 0; i < 6; i++) { + var navrow = $('#navrow' + i + ' > ul.tablist').detach(); + left_nav.append(navrow); + $('#navrow' + i).remove(); + } + var right_nav = $('
').append('\ + '); + $(nav_container).append(left_nav); + $(nav_container).append(right_nav); + + + $('#MSearchSelectWindow .SelectionMark').remove(); + var search_selectors = $('#MSearchSelectWindow .SelectItem'); + for (var i = 0; i < search_selectors.length; i += 1) { + var element_a = $('').text($(search_selectors[i]).text()); + + element_a.click(function(){ + $('#search-box .dropdown-menu li').removeClass('active'); + $(this).parent().addClass('active'); + searchBox.OnSelectItem($('#search-box li a').index(this)); + searchBox.Search(); + return false; + }); + + var element = $('
  • ').append(element_a); + $('#search-box .dropdown-menu').append(element); + } + $('#MSearchSelectWindow').remove(); + + $('#search-box .close').click(function (){ + searchBox.CloseResultsWindow(); + }); + + $('body').append('
    '); + $('body').append('
    '); + $('body').append('
    '); + + searchBox.searchLabel = ''; + searchBox.DOMSearchField = function() { + return document.getElementById("search-field"); + } + searchBox.DOMSearchClose = function(){ + return document.getElementById("search-close"); + } + */ + /* search results */ + + var results_iframe = $('#MSearchResults').detach(); + $('#MSearchResultsWindow') + .attr('id', 'search-results-window') + .addClass('panel panel-default') + .append( + '
    \ +

    Search Results

    \ +
    \ +
    ' + ); + $('#search-results-window .panel-body').append(results_iframe); + + searchBox.DOMPopupSearchResultsWindow = function() { + return document.getElementById("search-results-window"); + } + + function update_search_results_window() { + $('#search-results-window').removeClass('panel-default panel-success panel-warning panel-danger') + var status = $('#MSearchResults').contents().find('.SRStatus:visible'); + if (status.length > 0) { + switch(status.attr('id')) { + case 'Loading': + case 'Searching': + $('#search-results-window').addClass('panel-warning'); + break; + case 'NoMatches': + $('#search-results-window').addClass('panel-danger'); + break; + default: + $('#search-results-window').addClass('panel-default'); + } + } else { + $('#search-results-window').addClass('panel-success'); + } + } + $('#MSearchResults').load(function() { + $('#MSearchResults').contents().find('link[href="search.css"]').attr('href','../doxygen.css'); + $('#MSearchResults').contents().find('head').append( + ''); + + update_search_results_window(); + + // detect status changes (only for search with external search backend) + var observer = new MutationObserver(function(mutations) { + update_search_results_window(); + }); + var config = { attributes: true}; + + var targets = $('#MSearchResults').contents().find('.SRStatus'); + for (i = 0; i < targets.length; i++) { + observer.observe(targets[i], config); + } + }); + + /* enumerations */ + $('table.fieldtable').removeClass('fieldtable').addClass('table table-striped table-bordered').each(function(){ + $(this).prepend(''); + $(this).find('tbody > tr:first').prependTo($(this).find('thead')); + + $(this).find('td > span.success').parent().addClass('success'); + $(this).find('td > span.warning').parent().addClass('warning'); + $(this).find('td > span.danger').parent().addClass('danger'); + }); + + /* todo list */ + var todoelements = $('.contents > .textblock > dl.reflist > dt, .contents > .textblock > dl.reflist > dd'); + for (var i = 0; i < todoelements.length; i += 2) { + $('.contents > .textblock').append( + '
    ' + + "
    " + $(todoelements[i]).html() + "
    " + + "
    " + $(todoelements[i+1]).html() + "
    " + + '
    '); + } + $('.contents > .textblock > dl').remove(); + + + $(".memitem").removeClass('memitem'); + $(".memproto").removeClass('memproto'); + $(".memdoc").removeClass('memdoc'); + $("span.mlabel").removeClass('mlabel'); + $("table.memberdecls").removeClass('memberdecls'); + $("[class^=memitem]").removeClass('memitem'); + $("span.mlabels").removeClass('mlabels'); + $("table.mlabels").removeClass('mlabels'); + $("td.mlabels-right").removeClass('mlabels-right'); + $(".navpath").removeClass('navpath'); + $("li.navelem").removeClass('navelem'); + $("a.el").removeClass('el'); + $("div.ah").removeClass('ah'); + $("div.header").removeClass("header"); + + $('.mdescLeft').each(function(){ + if($(this).html()==" ") { + $(this).siblings('.mdescRight').attr('colspan', 2); + $(this).remove(); + } + }); + $('td.memItemLeft').each(function(){ + if($(this).siblings('.memItemRight').html()=="") { + $(this).attr('colspan', 2); + $(this).siblings('.memItemRight').remove(); + } + }); + $('td.memTemplItemLeft').each(function(){ + if($(this).siblings('.memTemplItemRight').html()=="") { + $(this).attr('colspan', 2); + $(this).siblings('.memTemplItemRight').remove(); + } + }); + //searchBox.CloseResultsWindow(); +}); diff --git a/dox-master/doxygen.css b/dox-master/doxygen.css new file mode 100644 index 000000000..ffbff0224 --- /dev/null +++ b/dox-master/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/dox-master/doxygen.svg b/dox-master/doxygen.svg new file mode 100644 index 000000000..d42dad52d --- /dev/null +++ b/dox-master/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dox-master/dynsections.js b/dox-master/dynsections.js new file mode 100644 index 000000000..88f2c27e6 --- /dev/null +++ b/dox-master/dynsections.js @@ -0,0 +1,128 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + + + + + ttg: ttg/ttg/edge.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    edge.h File Reference
    +
    +
    +
    #include <iostream>
    +#include <memory>
    +#include <vector>
    +#include "ttg/base/terminal.h"
    +#include "ttg/terminal.h"
    +#include "ttg/util/diagnose.h"
    +#include "ttg/util/print.h"
    +#include "ttg/util/trace.h"
    +
    + + + + + + + + + + +

    +Classes

    class  ttg::Edge< keyT, valueT >
     Edge is used to connect In and Out terminals. More...
     
    struct  ttg::terminals_to_edges< std::tuple< termsT... > >
     
    struct  ttg::edges_to_output_terminals< std::tuple< edgesT... > >
     
    struct  ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + +

    +Typedefs

    template<typename keyT , typename valuesT >
    using ttg::detail::edges_tuple_t = typename edges_tuple< keyT, valuesT >::type
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/edge_8h_source.html b/dox-master/edge_8h_source.html new file mode 100644 index 000000000..77371edac --- /dev/null +++ b/dox-master/edge_8h_source.html @@ -0,0 +1,345 @@ + + + + + + + + + + + ttg: ttg/ttg/edge.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    edge.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_EDGE_H
    +
    2 #define TTG_EDGE_H
    +
    3 
    +
    4 #include <iostream>
    +
    5 #include <memory>
    +
    6 #include <vector>
    +
    7 
    +
    8 #include "ttg/base/terminal.h"
    +
    9 #include "ttg/terminal.h"
    +
    10 #include "ttg/util/diagnose.h"
    +
    11 #include "ttg/util/print.h"
    +
    12 #include "ttg/util/trace.h"
    +
    13 
    +
    14 namespace ttg {
    +
    15 
    +
    24  template <typename keyT, typename valueT>
    +
    25  class Edge {
    +
    26  private:
    +
    27  // An EdgeImpl represents a single edge that most usually will
    +
    28  // connect a single output terminal with a single
    +
    29  // input terminal. However, we had to relax this constraint in
    +
    30  // order to easily accommodate connecting an input/output edge to
    +
    31  // an operation that to the outside looked like a single op but
    +
    32  // internally was implemented as multiple operations. Thus, the
    +
    33  // input/output edge has to connect to multiple terminals.
    +
    34  // Permitting multiple end points makes this much easier to
    +
    35  // compose, easier to implement, and likely more efficient at
    +
    36  // runtime. This is why outs/ins are vectors rather than pointers
    +
    37  // to a single terminal.
    +
    38  struct EdgeImpl {
    +
    39  std::string name;
    +
    40  bool is_pull_edge = false;
    +
    41  std::vector<TerminalBase *> outs; // In<keyT, valueT> or In<keyT, const valueT>
    +
    42  std::vector<Out<keyT, valueT> *> ins;
    +
    43 
    + +
    45 
    +
    46  EdgeImpl() : name(""), outs(), ins() {}
    +
    47 
    +
    48  EdgeImpl(const std::string &name) : name(name), outs(), ins() {}
    +
    49 
    +
    50  EdgeImpl(const std::string &name, bool is_pull, ttg::detail::ContainerWrapper<keyT, valueT> &c)
    +
    51  : name(name), is_pull_edge(is_pull), container(c), outs(), ins() {
    +
    52  static_assert(!meta::is_void_v<keyT>, "Void keys are not supported with pull terminals.");
    +
    53  }
    +
    54 
    +
    55  void set_in(Out<keyT, valueT> *in) {
    +
    56  if (ins.size()) {
    +
    57  trace("Edge: ", name, " : has multiple inputs");
    +
    58  }
    + +
    60  ins.push_back(in);
    +
    61  try_to_connect_new_in(in);
    +
    62  }
    +
    63 
    +
    64  void set_out(TerminalBase *out) {
    +
    65  if (outs.size()) {
    +
    66  trace("Edge: ", name, " : has multiple outputs");
    +
    67  }
    + +
    69  static_cast<In<keyT, valueT> *>(out)->container = container;
    +
    70  outs.push_back(out);
    +
    71  try_to_connect_new_out(out);
    +
    72  }
    +
    73 
    +
    74  void try_to_connect_new_in(Out<keyT, valueT> *in) const {
    +
    75  for (auto out : outs)
    +
    76  if (in && out) in->connect(out);
    +
    77  }
    +
    78 
    +
    79  void try_to_connect_new_out(TerminalBase *out) const {
    +
    80  assert(out->get_type() != TerminalBase::Type::Write); // out must be an In<>
    +
    81  if (out->is_pull_terminal) {
    +
    82  out->connect_pull_nopred(out);
    +
    83  } else {
    +
    84  for (auto in : ins)
    +
    85  if (in && out) in->connect(out);
    +
    86  }
    +
    87  }
    +
    88 
    +
    89  ~EdgeImpl() {
    +
    90  if (diagnose() && ((ins.size() == 0 && outs.size() != 0) || (ins.size() != 0 && outs.size() == 0)) &&
    +
    91  !is_pull_edge) {
    +
    92  print_error("Edge: destroying edge pimpl ('", name,
    +
    93  "') with either in or out not assigned --- graph may be incomplete");
    +
    94  }
    +
    95  }
    +
    96  };
    +
    97 
    +
    98  // We have a vector here to accommodate fusing multiple edges together
    +
    99  // when connecting them all to a single terminal.
    +
    100  mutable std::vector<std::shared_ptr<EdgeImpl>> p; // Need shallow copy semantics
    +
    101 
    +
    102  public:
    + +
    104  typedef keyT key_type;
    +
    105  typedef valueT value_type;
    +
    106  static_assert(std::is_same_v<keyT, std::decay_t<keyT>>, "Edge<keyT,valueT> assumes keyT is a non-decayable type");
    +
    107  static_assert(std::is_same_v<valueT, std::decay_t<valueT>>,
    +
    108  "Edge<keyT,valueT> assumes valueT is a non-decayable type");
    +
    109 
    +
    110  Edge(const std::string name = "anonymous edge") : p(1) { p[0] = std::make_shared<EdgeImpl>(name); }
    +
    111 
    +
    112  Edge(const std::string name, bool is_pull, ttg::detail::ContainerWrapper<keyT, valueT> c) : p(1) {
    +
    113  p[0] = std::make_shared<EdgeImpl>(name, is_pull, c);
    +
    114  }
    +
    115 
    +
    117  template <typename... valuesT, typename = std::enable_if_t<(std::is_same_v<valuesT, valueT> && ...)>>
    +
    118  Edge(const Edge<keyT, valuesT> &...edges) : p(0) {
    +
    119  std::vector<Edge<keyT, valueT>> v = {edges...};
    +
    120  // Do not allow fusing of push and pull terminals
    +
    121  if (!std::all_of(v.begin(), v.end(), [](Edge<keyT, valueT> e) { return !e.is_pull_edge(); }))
    +
    122  throw std::runtime_error("Edge: fusing push and pull terminals is not supported.");
    +
    123 
    +
    124  for (auto &edge : v) {
    +
    125  p.insert(p.end(), edge.p.begin(), edge.p.end());
    +
    126  }
    +
    127  }
    +
    128 
    +
    131  Edge<keyT, valueT> edge() const { return *this; }
    +
    132 
    +
    134  bool live() const {
    +
    135  bool result = false;
    +
    136  for (const auto &edge : p) {
    +
    137  if (!edge->ins.empty()) return true;
    +
    138  }
    +
    139  return result;
    +
    140  }
    +
    141 
    +
    142  bool is_pull_edge() const { return p.at(0)->is_pull_edge; }
    +
    143 
    +
    145  void set_in(Out<keyT, valueT> *in) const {
    +
    146  for (auto &edge : p) edge->set_in(in);
    +
    147  }
    +
    148 
    +
    150  void set_out(TerminalBase *out) const {
    +
    151  for (auto &edge : p) edge->set_out(out);
    +
    152  }
    +
    153 
    +
    156  template <typename Key = keyT, typename Value = valueT>
    +
    157  std::enable_if_t<ttg::meta::is_all_void_v<Key, Value>> fire() const {
    +
    158  for (auto &&e : p)
    +
    159  for (auto &&out : e->outs) {
    +
    160  out->get_tt()->invoke();
    +
    161  }
    +
    162  }
    +
    163  };
    +
    164 
    +
    165  // Make type of tuple of edges from type of tuple of terminals
    +
    166  template <typename termsT>
    + +
    168  template <typename... termsT>
    +
    169  struct terminals_to_edges<std::tuple<termsT...>> {
    +
    170  typedef std::tuple<typename termsT::edge_type...> type;
    +
    171  };
    +
    172 
    +
    173  // Make type of tuple of output terminals from type of tuple of edges
    +
    174  template <typename edgesT>
    + +
    176  template <typename... edgesT>
    +
    177  struct edges_to_output_terminals<std::tuple<edgesT...>> {
    +
    178  typedef std::tuple<typename edgesT::output_terminal_type...> type;
    +
    179  };
    +
    180 
    +
    181  namespace detail {
    +
    182  template <typename keyT, typename valuesT>
    +
    183  struct edges_tuple;
    +
    184 
    +
    185  template <typename keyT, typename... valuesT>
    +
    186  struct edges_tuple<keyT, std::tuple<valuesT...>> {
    +
    187  using type = std::tuple<ttg::Edge<keyT, valuesT>...>;
    +
    188  };
    +
    189 
    +
    190  template <typename keyT, typename valuesT>
    + +
    192  } // namespace detail
    +
    193 
    +
    194 } // namespace ttg
    +
    195 
    +
    196 #endif // TTG_EDGE_H
    + +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    +
    void set_in(Out< keyT, valueT > *in) const
    Sets the output terminal that goes into this Edge.
    Definition: edge.h:145
    +
    std::enable_if_t< ttg::meta::is_all_void_v< Key, Value > > fire() const
    Definition: edge.h:157
    +
    valueT value_type
    Definition: edge.h:105
    +
    Edge(const std::string name="anonymous edge")
    Definition: edge.h:110
    +
    Edge< keyT, valueT > edge() const
    Definition: edge.h:131
    +
    bool live() const
    probes if this is already has at least one input received on the input terminal
    Definition: edge.h:134
    +
    Edge(const std::string name, bool is_pull, ttg::detail::ContainerWrapper< keyT, valueT > c)
    Definition: edge.h:112
    +
    keyT key_type
    Definition: edge.h:104
    +
    Edge(const Edge< keyT, valuesT > &...edges)
    Edge carrying a tuple of values.
    Definition: edge.h:118
    +
    bool is_pull_edge() const
    Definition: edge.h:142
    +
    Out< keyT, valueT > output_terminal_type
    Definition: edge.h:103
    +
    void set_out(TerminalBase *out) const
    Sets the input terminal that this Edge goes into.
    Definition: edge.h:150
    + + +
    void connect(TerminalBase *in) override
    Definition: terminal.h:441
    + +
    bool is_pull_terminal
    Definition: terminal.h:15
    +
    Type get_type() const
    Returns the terminal type.
    Definition: terminal.h:104
    +
    void connect_pull_nopred(TerminalBase *p)
    Definition: terminal.h:113
    +
    @ Write
    can only be written to
    + +
    typename edges_tuple< keyT, valuesT >::type edges_tuple_t
    Definition: edge.h:191
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    bool diagnose()
    Definition: diagnose.h:12
    +
    void print_error(const T &t, const Ts &... ts)
    atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:138
    +
    void trace(const T &t, const Ts &... ts)
    Definition: trace.h:43
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    + + +
    std::tuple< ttg::Edge< keyT, valuesT >... > type
    Definition: edge.h:187
    + +
    std::tuple< typename edgesT::output_terminal_type... > type
    Definition: edge.h:178
    + +
    std::tuple< typename termsT::edge_type... > type
    Definition: edge.h:170
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/env_8cpp.html b/dox-master/env_8cpp.html new file mode 100644 index 000000000..35387fcc1 --- /dev/null +++ b/dox-master/env_8cpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/util/env.cpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    env.cpp File Reference
    +
    +
    +
    #include "ttg/util/env.h"
    +#include <thread>
    +#include <stdexcept>
    +#include <cstdlib>
    +
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + +

    +Functions

    int ttg::detail::num_threads ()
     Determine the number of compute threads to use by TTG when not given to ttg::initialize More...
     
    bool ttg::detail::force_device_comm ()
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/env_8cpp_source.html b/dox-master/env_8cpp_source.html new file mode 100644 index 000000000..68c3db63c --- /dev/null +++ b/dox-master/env_8cpp_source.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ttg: ttg/ttg/util/env.cpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    env.cpp
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 11/6/21.
    +
    3 //
    +
    4 
    +
    5 #include "ttg/util/env.h"
    +
    6 
    +
    7 #include <thread>
    +
    8 #include <stdexcept>
    +
    9 
    +
    10 #include <cstdlib>
    +
    11 
    +
    12 namespace ttg {
    +
    13  namespace detail {
    +
    14 
    +
    15  int num_threads() {
    +
    16  std::size_t result = 0;
    +
    17  const char* ttg_num_threads_cstr = std::getenv("TTG_NUM_THREADS");
    +
    18  if (ttg_num_threads_cstr) {
    +
    19  const auto result_long = std::atol(ttg_num_threads_cstr);
    +
    20  if (result_long >= 1)
    +
    21  result = static_cast<std::size_t>(result_long);
    +
    22  else
    +
    23  throw std::runtime_error("ttg: invalid value of environment variable TTG_NUM_THREADS");
    +
    24  } else {
    +
    25  result = std::thread::hardware_concurrency();
    +
    26  }
    +
    27  if (result > std::numeric_limits<int>::max())
    +
    28  throw std::runtime_error("ttg: number of threads exceeds the maximum limit");
    +
    29 
    +
    30  return static_cast<int>(result);
    +
    31  }
    +
    32 
    + +
    34  bool result = false;
    +
    35  const char* ttg_force_device_comm_cstr = std::getenv("TTG_FORCE_DEVICE_COMM");
    +
    36  if (ttg_force_device_comm_cstr) {
    +
    37  const auto result_int = std::atoi(ttg_force_device_comm_cstr);
    +
    38  if (result_int) {
    +
    39  result = true;
    +
    40  }
    +
    41  }
    +
    42  return result;
    +
    43  }
    +
    44  } // namespace detail
    +
    45 } // namespace ttg
    + +
    bool force_device_comm()
    Definition: env.cpp:33
    +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/env_8h.html b/dox-master/env_8h.html new file mode 100644 index 000000000..e289c3185 --- /dev/null +++ b/dox-master/env_8h.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: ttg/ttg/util/env.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    env.h File Reference
    +
    +
    + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + +

    +Functions

    int ttg::detail::num_threads ()
     Determine the number of compute threads to use by TTG when not given to ttg::initialize More...
     
    bool ttg::detail::force_device_comm ()
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/env_8h_source.html b/dox-master/env_8h_source.html new file mode 100644 index 000000000..311f940b6 --- /dev/null +++ b/dox-master/env_8h_source.html @@ -0,0 +1,148 @@ + + + + + + + + + + + ttg: ttg/ttg/util/env.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    env.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 11/5/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_UTIL_ENV_H
    +
    6 #define TTG_UTIL_ENV_H
    +
    7 
    +
    8 namespace ttg {
    +
    9  namespace detail {
    +
    10 
    +
    12 
    +
    17  int num_threads();
    +
    18 
    +
    25  bool force_device_comm();
    +
    26 
    +
    27  } // namespace detail
    +
    28 } // namespace ttg
    +
    29 
    +
    30 #endif // TTG_UTIL_ENV_H
    +
    bool force_device_comm()
    Definition: env.cpp:33
    +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/examples.html b/dox-master/examples.html new file mode 100644 index 000000000..963290f41 --- /dev/null +++ b/dox-master/examples.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: Examples + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Examples
    +
    +
    +
    Here is a list of all examples:
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/execution_8h.html b/dox-master/execution_8h.html new file mode 100644 index 000000000..5f8b445c9 --- /dev/null +++ b/dox-master/execution_8h.html @@ -0,0 +1,163 @@ + + + + + + + + + + + ttg: ttg/ttg/execution.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    execution.h File Reference
    +
    +
    + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + + +

    +Enumerations

    enum class  ttg::Execution { ttg::Inline +, ttg::Async + }
     denotes task execution policy More...
     
    enum class  ttg::ExecutionSpace {
    +  ttg::Host +, ttg::CUDA +, ttg::HIP +, ttg::L0 +,
    +  ttg::Invalid +
    + }
     denotes task execution space More...
     
    + + + +

    +Functions

    const char * ttg::detail::execution_space_name (ExecutionSpace space) noexcept
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/execution_8h_source.html b/dox-master/execution_8h_source.html new file mode 100644 index 000000000..856bc481d --- /dev/null +++ b/dox-master/execution_8h_source.html @@ -0,0 +1,174 @@ + + + + + + + + + + + ttg: ttg/ttg/execution.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    execution.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 8/28/18.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_EXECUTION_H
    +
    6 #define TTG_EXECUTION_H
    +
    7 
    +
    8 namespace ttg {
    +
    9 
    +
    11 enum class Execution {
    +
    12  Inline, // calls on the caller's thread
    +
    13  Async // calls asynchronously, e.g. by firing off a task
    +
    14 };
    +
    15 
    +
    17 enum class ExecutionSpace {
    +
    18  Host, // a CPU
    +
    19  CUDA, // an NVIDIA CUDA device
    +
    20  HIP, // an AMD HIP device
    +
    21  L0, // an Intel L0 device
    +
    22  Invalid
    +
    23 };
    +
    24 
    +
    25 namespace detail {
    +
    26  inline const char *execution_space_name(ExecutionSpace space) noexcept {
    +
    27  switch (space) {
    +
    28  case ExecutionSpace::Host: return "Host";
    +
    29  case ExecutionSpace::CUDA: return "CUDA";
    +
    30  case ExecutionSpace::HIP: return "HIP";
    +
    31  case ExecutionSpace::Invalid: return "INVALID";
    +
    32  default: return "UNKNOWN";
    +
    33  }
    +
    34  }
    +
    35 } // namespace detail
    +
    36 
    +
    37 };
    +
    38 
    +
    39 #endif //TTG_EXECUTION_H
    +
    const char * execution_space_name(ExecutionSpace space) noexcept
    Definition: execution.h:26
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    ExecutionSpace
    denotes task execution space
    Definition: execution.h:17
    + + + + + +
    Execution
    denotes task execution policy
    Definition: execution.h:11
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/files.html b/dox-master/files.html new file mode 100644 index 000000000..85714aa7c --- /dev/null +++ b/dox-master/files.html @@ -0,0 +1,316 @@ + + + + + + + + + + + ttg: File List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    File List
    +
    +
    +
    Here is a list of all files with brief descriptions:
    +
    [detail level 12345678]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      doc
      dox
     contrib
      dev
      devsamp
      user
      examples
      ttg
      ttg
      base
     keymap.h
     terminal.h
     tt.h
     world.h
      device
     device.h
     task.h
      external
      boost
      madness
     buffer.h
     device.h
     fwd.h
     import.h
     ttg.h
     ttvalue.h
     watch.h
      parsec
     buffer.h
     device.h
     devicefunc.h
     devicescratch.h
     fwd.h
     import.h
     parsec-ext.h
     ptr.h
     task.h
     thread_local.h
     ttg.h
     ttg_data_copy.h
     ttvalue.h
      serialization
      backends
      std
     backends.h
     buffer_archive.cpp
     buffer_archive.h
     data_descriptor.h
     splitmd_data_descriptor.h
     stream.h
     traits.h
      util
      hash
      meta
     backtrace.cpp
     backtrace.h
     bug.cpp
     bug.h
     demangle.h
     diagnose.h
     dot.h
     env.cpp
     env.h
     future.h
     hash.h
     iovec.h
     macro.h
     meta.h
     multiindex.h
     print.h
     span.h
     trace.h
     tree.h
     typelist.h
     version.cc
     void.h
     broadcast.h
     buffer.h
     config.in.h
     coroutine.h
     devicescope.h
     devicescratch.h
     edge.h
     execution.h
     func.h
     fwd.h
     impl_selector.h
     make_tt.h
     ptr.h
     reduce.h
     run.h
     runtimes.h
     serialization.h
     terminal.h
     traverse.h
     tt.h
     ttvalue.h
     world.h
     ttg.h
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/folderclosed.png b/dox-master/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/dox-master/forward__declarations_8hpp.html b/dox-master/forward__declarations_8hpp.html new file mode 100644 index 000000000..30a4ee175 --- /dev/null +++ b/dox-master/forward__declarations_8hpp.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/forward_declarations.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    forward_declarations.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::has_normal_call_operator< T >
     
    struct  boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value >
     
    struct  boost::callable_traits::detail::callable_dummy
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::detail::default_to_function_object = typename std::conditional< has_normal_call_operator< T >::value, T, callable_dummy >::type
     
    template<typename F , typename T = typename std::remove_reference<F>::type>
    using boost::callable_traits::detail::function_object_base = typename std::conditional< has_normal_call_operator< T >::value, pmf< decltype(&default_to_function_object< T >::operator())>, default_callable_traits< T > >::type
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/forward__declarations_8hpp_source.html b/dox-master/forward__declarations_8hpp_source.html new file mode 100644 index 000000000..4ff504f37 --- /dev/null +++ b/dox-master/forward__declarations_8hpp_source.html @@ -0,0 +1,197 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/forward_declarations.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    forward_declarations.hpp
    +
    +
    +Go to the documentation of this file.
    1 #ifndef BOOST_CLBL_TRTS_DETAIL_FORWARD_DECLARATIONS
    +
    2 #define BOOST_CLBL_TRTS_DETAIL_FORWARD_DECLARATIONS
    + + +
    5 
    +
    6 namespace boost { namespace callable_traits { namespace detail {
    +
    7 
    +
    8 template<typename T>
    +
    9 struct function;
    +
    10 
    +
    11 template<typename T>
    + +
    13 {
    +
    14  template<typename N, N Value>
    +
    15  struct check { check(std::nullptr_t) {} };
    +
    16 
    +
    17  template<typename U>
    +
    18  static std::int8_t test(
    +
    19  check<decltype(&U::operator()), &U::operator()>);
    +
    20 
    +
    21  template<typename>
    +
    22  static std::int16_t test(...);
    +
    23 
    +
    24  static constexpr bool value =
    +
    25  sizeof(test<T>(nullptr)) == sizeof(std::int8_t);
    +
    26 };
    +
    27 
    + +
    29  void operator()() {}
    +
    30 };
    +
    31 
    +
    32 template<typename T>
    +
    33 using default_to_function_object = typename std::conditional<
    + +
    35  T, callable_dummy>::type;
    +
    36 
    +
    37 template<typename T>
    +
    38 struct pmf;
    +
    39 
    +
    40 template<typename T>
    +
    41 struct pmd;
    +
    42 
    +
    43 template<typename F, typename T = typename std::remove_reference<F>::type>
    +
    44 using function_object_base = typename std::conditional<
    + + + +
    48 
    +
    49 template<typename T, typename Base = function_object_base<T>>
    +
    50 struct function_object;
    +
    51 
    +
    52 }}} // namespace boost::callable_traits::detail
    +
    53 
    +
    54 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_FORWARD_DECLARATIONS
    + + +
    typename std::conditional< has_normal_call_operator< T >::value, T, callable_dummy >::type default_to_function_object
    +
    typename std::conditional< has_normal_call_operator< T >::value, pmf< decltype(&default_to_function_object< T >::operator())>, default_callable_traits< T > >::type function_object_base
    + + + + + + + + +
    static std::int8_t test(check< decltype(&U::operator()), &U::operator()>)
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/func_8h.html b/dox-master/func_8h.html new file mode 100644 index 000000000..2ce0e0ff9 --- /dev/null +++ b/dox-master/func_8h.html @@ -0,0 +1,346 @@ + + + + + + + + + + + ttg: ttg/ttg/func.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    func.h File Reference
    +
    +
    +
    #include "ttg/fwd.h"
    +#include "ttg/edge.h"
    +#include "ttg/impl_selector.h"
    +#include "ttg/terminal.h"
    +#include "ttg/traverse.h"
    +#include "ttg/tt.h"
    +
    + + + +

    +Classes

    struct  ttg::detail::value_copy_handler< Runtime >
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename keyT , typename valueT >
    auto ttg::detail::get_out_terminal (size_t i, const char *func)
     
    template<typename keyT >
    auto ttg::detail::get_out_base_terminal (size_t i, const char *func)
     
    template<typename... TTBasePtrs>
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool ttg::make_graph_executable (TTBasePtrs &&...tts)
     
    template<typename keyT , typename valueT >
    void ttg::connect (ttg::Out< keyT, valueT > *out, ttg::In< keyT, valueT > *in)
     Connect output terminal to successor input terminal. More...
     
    void ttg::connect (ttg::TerminalBase *out, ttg::TerminalBase *in)
     Connect output terminal to successor input terminal. More...
     
    template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr >
    void ttg::connect (producer_tt_ptr &p, successor_tt_ptr &c)
     Connect producer output terminal outindex to consumer input terminal inindex (via unique or otherwise wrapped pointers to TTs) More...
     
    template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr >
    void ttg::connect (producer_tt_ptr *p, successor_tt_ptr *c)
     Connect producer output terminal outindex to consumer input terminal inindex (via bare pointers to TTs) More...
     
    void ttg::connect (size_t outindex, size_t inindex, TTBase *producer, TTBase *consumer)
     Connect producer output terminal outindex to consumer input terminal inindex (via TTBase pointers) More...
     
    template<typename keyT , typename... valuesT>
    auto ttg::fuse (const Edge< keyT, valuesT > &...args)
     Fuse edges into one This allows receiving one data from either of the combined edges. More...
     
    template<typename... inedgesT>
    auto ttg::edges (inedgesT &&...args)
     Make a tuple of Edges to pass to. More...
     
    template<typename keyT , typename valueT , typename output_terminalT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::send (const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
     Sends a task id and a value to the given output terminal. More...
     
    template<typename keyT >
    void ttg::sendk (const keyT &key, ttg::Out< keyT, void > &t)
     Sends a task id (without an accompanying value) to the given output terminal. More...
     
    template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::sendv (valueT &&value, ttg::Out< void, valueT > &t)
     Sends a value (without an accompanying task id) to the given output terminal. More...
     
    void ttg::send (ttg::Out< void, void > &t)
     Sends a control message (message without an accompanying task id or a value) to the given output terminal. More...
     
    template<size_t i, typename keyT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > ttg::send (const keyT &key, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a task id and a value to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    template<typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > ttg::send (size_t i, const keyT &key, valueT &&value)
     Sends a task id and a value to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > ttg::send (const keyT &key, valueT &&value)
     Sends a task id and a value to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::sendk (const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a task id (without an accompanying value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    template<typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::sendk (std::size_t i, const keyT &key)
     Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::sendk (const keyT &key)
     Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > ttg::sendv (valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a value (without an accompanying task id) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > ttg::sendv (std::size_t i, valueT &&value)
     Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > ttg::sendv (valueT &&value)
     Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename... out_keysT, typename... out_valuesT>
    void ttg::send (std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    void ttg::send (std::size_t i)
     Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i>
    void ttg::send ()
     Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT , typename... out_keysT, typename... out_valuesT>
    void ttg::detail::broadcast (const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT >
    void ttg::detail::broadcast (const std::tuple< RangesT... > &keylists, valueT &&value)
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT>
    void ttg::detail::broadcast (const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT>
    void ttg::detail::broadcast (const std::tuple< RangesT... > &keylists)
     
    template<size_t i, typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcast (const rangeT &keylist, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcast (std::size_t i, const rangeT &keylist, valueT &&value)
     
    template<size_t i, typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcast (const rangeT &keylist, valueT &&value)
     
    template<size_t i, size_t... I, typename... RangesT, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcast (const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t i, size_t... I, typename... RangesT, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcast (const std::tuple< RangesT... > &keylists, valueT &&value)
     
    template<size_t i, typename rangeT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcastk (const rangeT &keylist, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcastk (std::size_t i, const rangeT &keylist)
     
    template<size_t i, typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcastk (const rangeT &keylist)
     
    template<size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcastk (const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t i, size_t... I, typename... RangesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void ttg::broadcastk (const std::tuple< RangesT... > &keylists)
     
    template<typename keyT , typename out_valueT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::set_size (const keyT &key, const std::size_t size, ttg::Out< keyT, out_valueT > &t)
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::set_size (const keyT &key, const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Set the size of all streaming input terminals connected to the output terminal for a task identified by key. More...
     
    template<typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::set_size (std::size_t i, const keyT &key, const std::size_t size)
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::set_size (const keyT &key, const std::size_t size)
     
    template<typename out_keyT , typename out_valueT >
    void ttg::set_size (const std::size_t size, ttg::Out< out_keyT, out_valueT > &t)
     Set the size of all streaming input terminals connected to an output terminal with void key. More...
     
    template<size_t i, typename... out_keysT, typename... out_valuesT>
    void ttg::set_size (const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Set the size of all streaming input terminals connected to an output terminal for a task, with void key. More...
     
    void ttg::set_size (std::size_t i, const std::size_t size)
     
    template<std::size_t i>
    void ttg::set_size (const std::size_t size)
     
    template<typename keyT , typename out_keyT , typename out_valueT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::finalize (const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
     Finalize streaming input terminals connecting to the given output terminal for tasks identified by key. More...
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::finalize (const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with non-void key. More...
     
    template<typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::finalize (std::size_t i, const keyT &key)
     
    template<std::size_t i, typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > ttg::finalize (const keyT &key)
     
    template<typename out_keyT , typename out_valueT >
    void ttg::finalize (ttg::Out< out_keyT, out_valueT > &t)
     Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with void key. More...
     
    template<size_t i, typename... out_keysT, typename... out_valuesT>
    void ttg::finalize (std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Finalize streaming input terminals connected to the ith output terminal in the tuple; use this to finalize terminals with void key. More...
     
    void ttg::finalize (std::size_t i)
     
    template<std::size_t i>
    void ttg::finalize ()
     Finalizes the TTG runtime. More...
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/func_8h_source.html b/dox-master/func_8h_source.html new file mode 100644 index 000000000..eea99d9bd --- /dev/null +++ b/dox-master/func_8h_source.html @@ -0,0 +1,635 @@ + + + + + + + + + + + ttg: ttg/ttg/func.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    func.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_FUNC_H
    +
    2 #define TTG_FUNC_H
    +
    3 
    +
    4 #include "ttg/fwd.h"
    +
    5 
    +
    6 #include "ttg/edge.h"
    +
    7 #include "ttg/impl_selector.h"
    +
    8 #include "ttg/terminal.h"
    +
    9 #include "ttg/traverse.h"
    +
    10 #include "ttg/tt.h"
    +
    11 
    +
    12 namespace ttg {
    +
    13 
    +
    14  namespace detail {
    +
    20  template <ttg::Runtime Runtime>
    + +
    22  template <typename Value>
    +
    23  inline constexpr decltype(auto) operator()(Value &&value) const {
    +
    24  return std::forward<Value>(value);
    +
    25  }
    +
    26  };
    +
    27 
    +
    28  template <typename keyT, typename valueT>
    +
    29  inline auto get_out_terminal(size_t i, const char *func) {
    +
    30 #ifndef NDEBUG
    +
    31  auto *base_terminal_ptr = TTBase::get_outputs_tls_ptr()->at(i);
    +
    32  auto *terminal_ptr = dynamic_cast<Out<std::decay_t<keyT>, std::decay_t<valueT>> *>(base_terminal_ptr);
    +
    33  if (terminal_ptr == nullptr) {
    +
    34  std::stringstream ss;
    +
    35  ss << func
    +
    36  << ": invalid type of ith output terminal, most likely due to mismatch between its type "
    +
    37  "and the type of key/value; make sure that the arguments to "
    +
    38  << func
    +
    39  << "() match the types encoded in the output "
    +
    40  "terminals, or pass the output terminal tuple to the task function explicitly";
    +
    41  throw std::runtime_error(ss.str());
    +
    42  }
    +
    43 #else
    +
    44  auto *base_terminal_ptr = TTBase::get_outputs_tls_ptr()->operator[](i);
    +
    45  auto *terminal_ptr = static_cast<Out<std::decay_t<keyT>, std::decay_t<valueT>> *>(base_terminal_ptr);
    +
    46 #endif
    +
    47  return terminal_ptr;
    +
    48  }
    +
    49 
    +
    50  template <typename keyT>
    +
    51  inline auto get_out_base_terminal(size_t i, const char *func) {
    +
    52 #ifndef NDEBUG
    +
    53  auto *base_terminal_ptr = TTBase::get_outputs_tls_ptr()->at(i);
    +
    54  auto *terminal_ptr = dynamic_cast<OutTerminalBase<std::decay_t<keyT>> *>(base_terminal_ptr);
    +
    55  if (terminal_ptr == nullptr) {
    +
    56  std::stringstream ss;
    +
    57  ss << func
    +
    58  << ": invalid type of ith output terminal, most likely due to mismatch between its type "
    +
    59  "and the type of key; make sure that the arguments to "
    +
    60  << func
    +
    61  << "() match the types encoded in the output "
    +
    62  "terminals, or pass the output terminal tuple to the task function explicitly";
    +
    63  throw std::runtime_error(ss.str());
    +
    64  }
    +
    65 #else
    +
    66  auto *base_terminal_ptr = TTBase::get_outputs_tls_ptr()->operator[](i);
    +
    67  auto *terminal_ptr = static_cast<OutTerminalBase<std::decay_t<keyT>> *>(base_terminal_ptr);
    +
    68 #endif
    +
    69  return terminal_ptr;
    +
    70  }
    +
    71 
    +
    72  } // namespace detail
    +
    73 
    +
    78  template <typename... TTBasePtrs>
    +
    79  inline std::enable_if_t<(std::is_convertible_v<decltype(*(std::declval<TTBasePtrs>())), TTBase &> && ...), bool>
    +
    80  make_graph_executable(TTBasePtrs &&...tts) {
    +
    81  auto traverse = ttg::make_traverse([](auto &&x) { std::forward<decltype(x)>(x)->make_executable(); });
    +
    82  auto ret = traverse(std::forward<TTBasePtrs>(tts)...);
    +
    83  // make sure everyone has traversed the TT
    +
    84  auto world = [&](auto&& tt0, auto&&... tts) { return tt0->get_world(); }(std::forward<TTBasePtrs>(tts)...);
    + +
    86  return ret;
    +
    87  }
    +
    88 
    +
    92  template <typename keyT, typename valueT>
    + +
    94  out->connect(in);
    +
    95  }
    +
    96 
    +
    98  inline void connect(ttg::TerminalBase *out, ttg::TerminalBase *in) { out->connect(in); }
    +
    99 
    +
    106  template <std::size_t outindex, std::size_t inindex, typename producer_tt_ptr, typename successor_tt_ptr>
    +
    107  inline void connect(producer_tt_ptr &p, successor_tt_ptr &c) {
    +
    108  connect(p->template out<outindex>(), c->template in<inindex>());
    +
    109  }
    +
    110 
    +
    116  template <std::size_t outindex, std::size_t inindex, typename producer_tt_ptr, typename successor_tt_ptr>
    +
    117  inline void connect(producer_tt_ptr *p, successor_tt_ptr *c) {
    +
    118  connect(p->template out<outindex>(), c->template in<inindex>());
    +
    119  }
    +
    120 
    +
    126  inline void connect(size_t outindex, size_t inindex, TTBase *producer, TTBase *consumer) {
    +
    127  connect(producer->out(outindex), consumer->in(inindex));
    +
    128  }
    +
    129 
    +
    136  template <typename keyT, typename... valuesT>
    +
    137  inline auto fuse(const Edge<keyT, valuesT> &...args) {
    +
    138  using valueT = std::tuple_element_t<0, std::tuple<valuesT...>>; // grab first type
    +
    139  return Edge<keyT, valueT>(args...); // This will force all valuesT to be the same
    +
    140  }
    +
    141 
    +
    146  template <typename... inedgesT>
    +
    147  inline auto edges(inedgesT &&...args) {
    +
    148  return std::make_tuple(std::forward<inedgesT>(args)...);
    +
    149  }
    +
    150 
    +
    151  // clang-format off
    +
    156  // clang-format on
    +
    157  template <typename keyT, typename valueT, typename output_terminalT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    158  inline void send(const keyT &key, valueT &&value, ttg::Out<keyT, valueT> &t) {
    + +
    160  t.send(key, copy_handler(std::forward<valueT>(value)));
    +
    161  }
    +
    162 
    +
    163  // clang-format off
    +
    167  // clang-format on
    +
    168  template <typename keyT>
    +
    169  inline void sendk(const keyT &key, ttg::Out<keyT, void> &t) {
    +
    170  t.sendk(key);
    +
    171  }
    +
    172 
    +
    173  // clang-format off
    +
    177  // clang-format on
    +
    178  template <typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    179  inline void sendv(valueT &&value, ttg::Out<void, valueT> &t) {
    + +
    181  t.sendv(copy_handler(std::forward<valueT>(value)));
    +
    182  }
    +
    183 
    +
    184  // clang-format off
    +
    187  // clang-format on
    +
    188  inline void send(ttg::Out<void, void> &t) { t.send(); }
    +
    189 
    +
    190  // clang-format off
    +
    196  // clang-format on
    +
    197  template <size_t i, typename keyT, typename valueT, typename... out_keysT, typename... out_valuesT,
    + +
    199  inline std::enable_if_t<meta::is_none_void_v<keyT, std::decay_t<valueT>>, void> send(
    +
    200  const keyT &key, valueT &&value, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    + +
    202  std::get<i>(t).send(key, copy_handler(std::forward<valueT>(value)));
    +
    203  }
    +
    204 
    +
    205  // clang-format off
    +
    210  // clang-format on
    +
    211  template <typename keyT, typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    212  inline std::enable_if_t<meta::is_none_void_v<keyT, std::decay_t<valueT>>, void> send(size_t i, const keyT &key,
    +
    213  valueT &&value) {
    + +
    215  auto *terminal_ptr = detail::get_out_terminal<keyT, valueT>(i, "ttg::send(i, key, value)");
    +
    216  terminal_ptr->send(key, copy_handler(std::forward<valueT>(value)));
    +
    217  }
    +
    218 
    +
    219  // clang-format off
    +
    225  // clang-format on
    +
    226  template <size_t i, typename keyT, typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    227  inline std::enable_if_t<meta::is_none_void_v<keyT, std::decay_t<valueT>>, void> send(const keyT &key,
    +
    228  valueT &&value) {
    +
    229  send(i, key, std::forward<valueT>(value));
    +
    230  }
    +
    231 
    +
    232  // clang-format off
    +
    237  // clang-format on
    +
    238  template <size_t i, typename keyT, typename... out_keysT, typename... out_valuesT>
    +
    239  inline std::enable_if_t<!meta::is_void_v<keyT>, void> sendk(const keyT &key,
    +
    240  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    241  std::get<i>(t).sendk(key);
    +
    242  }
    +
    243 
    +
    244  // clang-format off
    +
    248  // clang-format on
    +
    249  template <typename keyT>
    +
    250  inline std::enable_if_t<!meta::is_void_v<keyT>, void> sendk(std::size_t i, const keyT &key) {
    +
    251  auto *terminal_ptr = detail::get_out_terminal<keyT, void>(i, "ttg::sendk(i, key)");
    +
    252  terminal_ptr->sendk(key);
    +
    253  }
    +
    254 
    +
    255  // clang-format off
    +
    260  // clang-format on
    +
    261  template <size_t i, typename keyT>
    +
    262  inline std::enable_if_t<!meta::is_void_v<keyT>, void> sendk(const keyT &key) {
    +
    263  sendk(i, key);
    +
    264  }
    +
    265 
    +
    266  // clang-format off
    +
    271  // clang-format on
    +
    272  template <size_t i, typename valueT, typename... out_keysT, typename... out_valuesT,
    + +
    274  inline std::enable_if_t<!meta::is_void_v<std::decay_t<valueT>>, void> sendv(
    +
    275  valueT &&value, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    + +
    277  std::get<i>(t).sendv(copy_handler(std::forward<valueT>(value)));
    +
    278  }
    +
    279 
    +
    280  // clang-format off
    +
    284  // clang-format on
    +
    285  template <typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    286  inline std::enable_if_t<!meta::is_void_v<std::decay_t<valueT>>, void> sendv(std::size_t i, valueT &&value) {
    + +
    288  auto *terminal_ptr = detail::get_out_terminal<void, valueT>(i, "ttg::sendv(i, value)");
    +
    289  terminal_ptr->sendv(copy_handler(std::forward<valueT>(value)));
    +
    290  }
    +
    291 
    +
    292  // clang-format off
    +
    297  // clang-format on
    +
    298  template <size_t i, typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    299  inline std::enable_if_t<!meta::is_void_v<std::decay_t<valueT>>, void> sendv(valueT &&value) {
    +
    300  sendv(i, std::forward<valueT>(value));
    +
    301  }
    +
    302 
    +
    303  // clang-format off
    +
    307  // clang-format on
    +
    308  template <size_t i, typename... out_keysT, typename... out_valuesT>
    +
    309  inline void send(std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    310  std::get<i>(t).send();
    +
    311  }
    +
    312 
    +
    313  // clang-format off
    +
    316  // clang-format on
    +
    317  inline void send(std::size_t i) {
    +
    318  auto *terminal_ptr = detail::get_out_terminal<void, void>(i, "ttg::send(i)");
    +
    319  terminal_ptr->send();
    +
    320  }
    +
    321 
    +
    322  // clang-format off
    +
    326  // clang-format on
    +
    327  template <size_t i>
    +
    328  inline void send() {
    +
    329  send(i);
    +
    330  }
    +
    331 
    +
    332  namespace detail {
    +
    333  template <size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT, typename... out_keysT,
    +
    334  typename... out_valuesT>
    +
    335  inline void broadcast(const std::tuple<RangesT...> &keylists, valueT &&value,
    +
    336  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    337  if constexpr (ttg::meta::is_iterable_v<std::tuple_element_t<KeyId, std::tuple<RangesT...>>>) {
    +
    338  if (std::distance(std::begin(std::get<KeyId>(keylists)), std::end(std::get<KeyId>(keylists))) > 0) {
    +
    339  std::get<i>(t).broadcast(std::get<KeyId>(keylists), value);
    +
    340  }
    +
    341  } else {
    +
    342  std::get<i>(t).broadcast(std::get<KeyId>(keylists), value);
    +
    343  }
    +
    344  if constexpr (sizeof...(I) > 0) {
    +
    345  detail::broadcast<KeyId + 1, I...>(keylists, value, t);
    +
    346  }
    +
    347  }
    +
    348 
    +
    349  template <size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT>
    +
    350  inline void broadcast(const std::tuple<RangesT...> &keylists, valueT &&value) {
    +
    351  if constexpr (ttg::meta::is_iterable_v<std::tuple_element_t<KeyId, std::tuple<RangesT...>>>) {
    +
    352  if (std::distance(std::begin(std::get<KeyId>(keylists)), std::end(std::get<KeyId>(keylists))) > 0) {
    +
    353  using key_t = decltype(*std::begin(std::get<KeyId>(keylists)));
    +
    354  auto *terminal_ptr = detail::get_out_terminal<key_t, valueT>(i, "ttg::broadcast(keylists, value)");
    +
    355  terminal_ptr->broadcast(std::get<KeyId>(keylists), value);
    +
    356  }
    +
    357  } else {
    +
    358  using key_t = decltype(std::get<KeyId>(keylists));
    +
    359  auto *terminal_ptr = detail::get_out_terminal<key_t, valueT>(i, "ttg::broadcast(keylists, value)");
    +
    360  terminal_ptr->broadcast(std::get<KeyId>(keylists), value);
    +
    361  }
    +
    362  if constexpr (sizeof...(I) > 0) {
    +
    363  detail::broadcast<KeyId + 1, I...>(keylists, value);
    +
    364  }
    +
    365  }
    +
    366 
    +
    367  template <size_t KeyId, size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT>
    +
    368  inline void broadcast(const std::tuple<RangesT...> &keylists, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    369  if constexpr (ttg::meta::is_iterable_v<std::tuple_element_t<KeyId, std::tuple<RangesT...>>>) {
    +
    370  if (std::distance(std::begin(std::get<KeyId>(keylists)), std::end(std::get<KeyId>(keylists))) > 0) {
    +
    371  std::get<i>(t).broadcast(std::get<KeyId>(keylists));
    +
    372  }
    +
    373  } else {
    +
    374  std::get<i>(t).broadcast(std::get<KeyId>(keylists));
    +
    375  }
    +
    376  if constexpr (sizeof...(I) > 0) {
    +
    377  detail::broadcast<KeyId + 1, I...>(keylists, t);
    +
    378  }
    +
    379  }
    +
    380 
    +
    381  template <size_t KeyId, size_t i, size_t... I, typename... RangesT>
    +
    382  inline void broadcast(const std::tuple<RangesT...> &keylists) {
    +
    383  if constexpr (ttg::meta::is_iterable_v<std::tuple_element_t<KeyId, std::tuple<RangesT...>>>) {
    +
    384  if (std::distance(std::begin(std::get<KeyId>(keylists)), std::end(std::get<KeyId>(keylists))) > 0) {
    +
    385  using key_t = decltype(*std::begin(std::get<KeyId>(keylists)));
    +
    386  auto *terminal_ptr = detail::get_out_terminal<key_t, void>(i, "ttg::broadcast(keylists)");
    +
    387  terminal_ptr->broadcast(std::get<KeyId>(keylists));
    +
    388  }
    +
    389  } else {
    +
    390  using key_t = decltype(std::get<KeyId>(keylists));
    +
    391  auto *terminal_ptr = detail::get_out_terminal<key_t, void>(i, "ttg::broadcast(keylists)");
    +
    392  terminal_ptr->broadcast(std::get<KeyId>(keylists));
    +
    393  }
    +
    394  if constexpr (sizeof...(I) > 0) {
    +
    395  detail::broadcast<KeyId + 1, I...>(keylists);
    +
    396  }
    +
    397  }
    +
    398  } // namespace detail
    +
    399 
    +
    400  template <size_t i, typename rangeT, typename valueT, typename... out_keysT, typename... out_valuesT,
    + +
    402  inline void broadcast(const rangeT &keylist, valueT &&value, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    + +
    404  std::get<i>(t).broadcast(keylist, copy_handler(std::forward<valueT>(value)));
    +
    405  }
    +
    406 
    +
    407  template <typename rangeT, typename valueT, typename... out_keysT, typename... out_valuesT,
    + +
    409  inline void broadcast(std::size_t i, const rangeT &keylist, valueT &&value) {
    + +
    411  using key_t = decltype(*std::begin(keylist));
    +
    412  auto *terminal_ptr = detail::get_out_terminal<key_t, valueT>(i, "ttg::broadcast(keylist, value)");
    +
    413  terminal_ptr->broadcast(keylist, copy_handler(std::forward<valueT>(value)));
    +
    414  }
    +
    415 
    +
    416  template <size_t i, typename rangeT, typename valueT, typename... out_keysT, typename... out_valuesT,
    + +
    418  inline void broadcast(const rangeT &keylist, valueT &&value) {
    +
    419  broadcast(i, keylist, std::forward<valueT>(value));
    +
    420  }
    +
    421 
    +
    422  template <size_t i, size_t... I, typename... RangesT, typename valueT, typename... out_keysT, typename... out_valuesT,
    + +
    424  inline void broadcast(const std::tuple<RangesT...> &keylists, valueT &&value,
    +
    425  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    426  static_assert(sizeof...(I) + 1 == sizeof...(RangesT),
    +
    427  "Number of selected output terminals must match the number of keylists!");
    + +
    429  detail::broadcast<0, i, I...>(keylists, copy_handler(std::forward<valueT>(value)), t);
    +
    430  }
    +
    431 
    +
    432  template <size_t i, size_t... I, typename... RangesT, typename valueT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    433  inline void broadcast(const std::tuple<RangesT...> &keylists, valueT &&value) {
    +
    434  static_assert(sizeof...(I) + 1 == sizeof...(RangesT),
    +
    435  "Number of selected output terminals must match the number of keylists!");
    + +
    437  detail::broadcast<0, i, I...>(keylists, copy_handler(std::forward<valueT>(value)));
    +
    438  }
    +
    439 
    +
    440  template <size_t i, typename rangeT, typename... out_keysT, typename... out_valuesT,
    + +
    442  inline void broadcastk(const rangeT &keylist, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    443  std::get<i>(t).broadcast(keylist);
    +
    444  }
    +
    445 
    +
    446  template <typename rangeT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    447  inline void broadcastk(std::size_t i, const rangeT &keylist) {
    +
    448  using key_t = decltype(*std::begin(keylist));
    +
    449  auto *terminal_ptr = detail::get_out_terminal<key_t, void>(i, "ttg::broadcastk(keylist)");
    +
    450  terminal_ptr->broadcast(keylist);
    +
    451  }
    +
    452 
    +
    453  template <size_t i, typename rangeT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    454  inline void broadcastk(const rangeT &keylist) {
    +
    455  broadcastk(i, keylist);
    +
    456  }
    +
    457 
    +
    458  template <size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT,
    + +
    460  inline void broadcastk(const std::tuple<RangesT...> &keylists, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    461  static_assert(sizeof...(I) + 1 == sizeof...(RangesT),
    +
    462  "Number of selected output terminals must match the number of keylists!");
    +
    463  detail::broadcast<0, i, I...>(keylists, t);
    +
    464  }
    +
    465 
    +
    466  template <size_t i, size_t... I, typename... RangesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    +
    467  inline void broadcastk(const std::tuple<RangesT...> &keylists) {
    +
    468  static_assert(sizeof...(I) + 1 == sizeof...(RangesT),
    +
    469  "Number of selected output terminals must match the number of keylists!");
    +
    470  detail::broadcast<0, i, I...>(keylists);
    +
    471  }
    +
    472 
    +
    473  template <typename keyT, typename out_valueT>
    +
    474  inline std::enable_if_t<!meta::is_void_v<keyT>, void> set_size(const keyT &key, const std::size_t size,
    + +
    476  t.set_size(key, size);
    +
    477  }
    +
    478 
    +
    483  template <size_t i, typename keyT, typename... out_keysT, typename... out_valuesT>
    +
    484  inline std::enable_if_t<!meta::is_void_v<keyT>, void> set_size(const keyT &key, const std::size_t size,
    +
    485  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    486  std::get<i>(t).set_size(key, size);
    +
    487  }
    +
    488 
    +
    489  template <typename keyT>
    +
    490  inline std::enable_if_t<!meta::is_void_v<keyT>, void> set_size(std::size_t i, const keyT &key,
    +
    491  const std::size_t size) {
    +
    492  auto *terminal_ptr = detail::get_out_base_terminal<keyT>(i, "ttg::set_size(i, key, size)");
    +
    493  terminal_ptr->set_size(size);
    +
    494  }
    +
    495 
    +
    496  template <size_t i, typename keyT, typename... out_keysT, typename... out_valuesT>
    +
    497  inline std::enable_if_t<!meta::is_void_v<keyT>, void> set_size(const keyT &key, const std::size_t size) {
    +
    498  set_size(i, key, size);
    +
    499  }
    +
    500 
    +
    504  template <typename out_keyT, typename out_valueT>
    +
    505  inline void set_size(const std::size_t size, ttg::Out<out_keyT, out_valueT> &t) {
    +
    506  t.set_size(size);
    +
    507  }
    +
    508 
    +
    513  template <size_t i, typename... out_keysT, typename... out_valuesT>
    +
    514  inline void set_size(const std::size_t size, std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    515  std::get<i>(t).set_size(size);
    +
    516  }
    +
    517 
    +
    518  inline void set_size(std::size_t i, const std::size_t size) {
    +
    519  auto *terminal_ptr = detail::get_out_base_terminal<void>(i, "ttg::set_size(i, size)");
    +
    520  terminal_ptr->set_size(size);
    +
    521  }
    +
    522 
    +
    523  template <std::size_t i>
    +
    524  inline void set_size(const std::size_t size) {
    +
    525  set_size(i, size);
    +
    526  }
    +
    527 
    +
    532  template <typename keyT, typename out_keyT, typename out_valueT>
    +
    533  inline std::enable_if_t<!meta::is_void_v<keyT>, void> finalize(const keyT &key, ttg::Out<out_keyT, out_valueT> &t) {
    +
    534  t.finalize(key);
    +
    535  }
    +
    536 
    +
    541  template <size_t i, typename keyT, typename... out_keysT, typename... out_valuesT>
    +
    542  inline std::enable_if_t<!meta::is_void_v<keyT>, void> finalize(const keyT &key,
    +
    543  std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    544  std::get<i>(t).finalize(key);
    +
    545  }
    +
    546 
    +
    547  template <typename keyT>
    +
    548  inline std::enable_if_t<!meta::is_void_v<keyT>, void> finalize(std::size_t i, const keyT &key) {
    +
    549  auto *terminal_ptr = detail::get_out_base_terminal<keyT>(i, "ttg::finalize(i, key)");
    +
    550  terminal_ptr->finalize(key);
    +
    551  }
    +
    552 
    +
    553  template <std::size_t i, typename keyT>
    +
    554  inline std::enable_if_t<!meta::is_void_v<keyT>, void> finalize(const keyT &key) {
    +
    555  finalize(i, key);
    +
    556  }
    +
    557 
    +
    560  template <typename out_keyT, typename out_valueT>
    + +
    562  t.finalize();
    +
    563  }
    +
    564 
    +
    568  template <size_t i, typename... out_keysT, typename... out_valuesT>
    +
    569  inline void finalize(std::tuple<ttg::Out<out_keysT, out_valuesT>...> &t) {
    +
    570  std::get<i>(t).finalize();
    +
    571  }
    +
    572 
    +
    573  inline void finalize(std::size_t i) {
    +
    574  auto *terminal_ptr = detail::get_out_base_terminal<void>(i, "ttg::finalize(i)");
    +
    575  terminal_ptr->finalize();
    +
    576  }
    +
    577 
    +
    578  template <std::size_t i>
    +
    579  inline void finalize() {
    +
    580  finalize(i);
    +
    581  }
    +
    582 
    +
    583 } // namespace ttg
    +
    584 
    +
    585 #endif // TTG_FUNC_H
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + + +
    void connect(TerminalBase *in) override
    Definition: terminal.h:441
    +
    std::enable_if_t< meta::is_void_v< Key > &&!meta::is_void_v< Value >, void > sendv(const Value &value)
    Definition: terminal.h:491
    +
    std::enable_if_t< meta::is_none_void_v< Key, Value >, void > send(const Key &key, const Value &value)
    Definition: terminal.h:467
    +
    std::enable_if_t<!meta::is_void_v< Key > &&meta::is_void_v< Value >, void > sendk(const Key &key)
    Definition: terminal.h:479
    + +
    std::enable_if_t<!meta::is_void_v< Key >, void > finalize(const Key &key)
    Definition: terminal.h:401
    +
    std::enable_if_t<!meta::is_void_v< Key >, void > set_size(const Key &key, std::size_t size)
    Definition: terminal.h:385
    +
    A base class for all template tasks.
    Definition: tt.h:30
    +
    ttg::TerminalBase * in(size_t i)
    Returns a pointer to the i'th input terminal.
    Definition: tt.h:235
    +
    static const std::vector< TerminalBase * > * get_outputs_tls_ptr()
    Returns this thread's pointer to the vector of output terminals.
    Definition: tt.h:229
    +
    ttg::TerminalBase * out(size_t i)
    Returns a pointer to the i'th output terminal.
    Definition: tt.h:241
    + +
    virtual void connect(TerminalBase *in)=0
    + + + +
    auto get_out_terminal(size_t i, const char *func)
    Definition: func.h:29
    +
    auto get_out_base_terminal(size_t i, const char *func)
    Definition: func.h:51
    +
    void broadcast(const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
    Definition: func.h:335
    +
    void make_executable_hook(ttg::World &)
    Definition: ttg.h:121
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    auto fuse(const Edge< keyT, valuesT > &...args)
    Fuse edges into one This allows receiving one data from either of the combined edges.
    Definition: func.h:137
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    constexpr const ttg::Runtime ttg_runtime
    Definition: import.h:20
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    Runtime
    Definition: runtimes.h:15
    +
    void sendk(const keyT &key, ttg::Out< keyT, void > &t)
    Sends a task id (without an accompanying value) to the given output terminal.
    Definition: func.h:169
    +
    void sendv(valueT &&value, ttg::Out< void, valueT > &t)
    Sends a value (without an accompanying task id) to the given output terminal.
    Definition: func.h:179
    +
    void connect(ttg::Out< keyT, valueT > *out, ttg::In< keyT, valueT > *in)
    Connect output terminal to successor input terminal.
    Definition: func.h:93
    +
    auto make_traverse(TTVisitor &&tt_v=trivial_1param_lambda, InVisitor &&in_v=trivial_1param_lambda, OutVisitor &&out_v=trivial_1param_lambda)
    Definition: traverse.h:205
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > set_size(const keyT &key, const std::size_t size, ttg::Out< keyT, out_valueT > &t)
    Definition: func.h:474
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    void broadcast(const rangeT &keylist, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
    Definition: func.h:402
    +
    void broadcastk(const rangeT &keylist, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
    Definition: func.h:442
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function_8hpp.html b/dox-master/function_8hpp.html new file mode 100644 index 000000000..f2ae5c398 --- /dev/null +++ b/dox-master/function_8hpp.html @@ -0,0 +1,447 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/function.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function.hpp File Reference
    +
    +
    + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::function< T >
     
    struct  boost::callable_traits::detail::function< T & >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &&
     
    #define BOOST_CLBL_TRTS_CC_TAG   dummy
     
    #define BOOST_CLBL_TRTS_VARARGS_CC   BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
     
    #define BOOST_CLBL_TRTS_CC
     
    #define BOOST_CLBL_TRTS_ST
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_CC

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_CC
    +
    + +

    Definition at line 83 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_CC_TAG

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_CC_TAG   dummy
    +
    + +

    Definition at line 81 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [1/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [2/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [3/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [4/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [5/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [6/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &&
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [7/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [8/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &&
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [9/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [10/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &&
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [11/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [12/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &&
    +
    + +

    Definition at line 72 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_ST

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_ST
    +
    + +

    Definition at line 84 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_VARARGS_CC

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_VARARGS_CC   BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    + +

    Definition at line 82 of file function.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function_8hpp_source.html b/dox-master/function_8hpp_source.html new file mode 100644 index 000000000..3e281c765 --- /dev/null +++ b/dox-master/function_8hpp_source.html @@ -0,0 +1,345 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/function.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_DETAIL_FUNCTION_HPP
    +
    10 #define BOOST_CLBL_TRTS_DETAIL_FUNCTION_HPP
    +
    11 
    + + + + + +
    17 
    +
    18 namespace boost { namespace callable_traits { namespace detail {
    +
    19 
    +
    20 template<typename T>
    + +
    22 
    +
    23 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    24 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    + +
    26 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    27 
    +
    28 #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    29 
    +
    30 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const
    + +
    32 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    33 
    +
    34 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile
    + +
    36 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    37 
    +
    38 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile
    + +
    40 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    41 
    +
    42 #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    43 
    +
    44 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS &
    + +
    46 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    47 
    +
    48 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS &&
    + +
    50 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    51 
    +
    52 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const &
    + +
    54 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    55 
    +
    56 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const &&
    + +
    58 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    59 
    +
    60 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile &
    + +
    62 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    63 
    +
    64 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile &&
    + +
    66 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    67 
    +
    68 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile &
    + +
    70 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    71 
    +
    72 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile &&
    + +
    74 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    75 
    +
    76 #endif // #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    77 #endif // #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    78 
    +
    79 // function pointers
    +
    80 
    +
    81 #define BOOST_CLBL_TRTS_CC_TAG dummy
    +
    82 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    83 #define BOOST_CLBL_TRTS_CC
    +
    84 #define BOOST_CLBL_TRTS_ST
    + + +
    87 #undef BOOST_CLBL_TRTS_ST
    +
    88 #undef BOOST_CLBL_TRTS_CC
    +
    89 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    90 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    91 
    +
    92 /* ?
    +
    93 #ifdef BOOST_CLBL_TRTS_ENABLE_CDECL
    +
    94 #define BOOST_CLBL_TRTS_CC_TAG cdecl_tag
    +
    95 #define BOOST_CLBL_TRTS_VARARGS_CC __cdecl
    +
    96 #define BOOST_CLBL_TRTS_CC __cdecl
    +
    97 #define BOOST_CLBL_TRTS_ST
    +
    98 #include <boost/callable_traits/detail/unguarded/function_ptr.hpp>
    +
    99 #undef BOOST_CLBL_TRTS_ST
    +
    100 #undef BOOST_CLBL_TRTS_CC
    +
    101 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    102 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    103 #endif*/
    +
    104 
    +
    105 #ifdef BOOST_CLBL_TRTS_ENABLE_STDCALL
    +
    106 #define BOOST_CLBL_TRTS_CC_TAG stdcall_tag
    +
    107 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    108 #define BOOST_CLBL_TRTS_CC __stdcall
    +
    109 #define BOOST_CLBL_TRTS_ST
    + +
    111 #undef BOOST_CLBL_TRTS_ST
    +
    112 #undef BOOST_CLBL_TRTS_CC
    +
    113 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    114 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    115 #endif
    +
    116 
    +
    117 #ifdef BOOST_CLBL_TRTS_ENABLE_FASTCALL
    +
    118 #define BOOST_CLBL_TRTS_CC_TAG fastcall_tag
    +
    119 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    120 #define BOOST_CLBL_TRTS_CC __fastcall
    +
    121 #define BOOST_CLBL_TRTS_ST
    + +
    123 #undef BOOST_CLBL_TRTS_CC
    +
    124 #undef BOOST_CLBL_TRTS_ST
    +
    125 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    126 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    127 #endif
    +
    128 
    +
    129 #ifdef BOOST_CLBL_TRTS_ENABLE_PASCAL
    +
    130 #define BOOST_CLBL_TRTS_CC_TAG pascal_tag
    +
    131 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    132 #define BOOST_CLBL_TRTS_CC
    +
    133 #define BOOST_CLBL_TRTS_ST pascal
    + +
    135 #undef BOOST_CLBL_TRTS_CC
    +
    136 #undef BOOST_CLBL_TRTS_ST
    +
    137 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    138 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    139 #endif
    +
    140 
    +
    141 template<typename T>
    +
    142 struct function<T&> : std::conditional<function<T>::value,
    + +
    144 
    +
    145  static constexpr const bool value = !std::is_pointer<T>::value;
    +
    146 
    +
    147  using traits = function;
    +
    148  using base = function<T>;
    +
    149  using type = T&;
    + +
    151  using add_varargs = typename base::add_varargs&;
    +
    152 
    + + + + + + + + + +
    162 
    +
    163  template<typename NewReturn>
    +
    164  using apply_return = typename base::template apply_return<NewReturn>&;
    +
    165 
    +
    166  using clear_args = typename base::clear_args&;
    +
    167 
    +
    168  template<typename... NewArgs>
    +
    169  using push_front = typename base::template push_front<NewArgs...>&;
    +
    170 
    +
    171  template<typename... NewArgs>
    +
    172  using push_back = typename base::template push_back<NewArgs...>&;
    +
    173 
    +
    174  template<std::size_t Count>
    +
    175  using pop_back = typename base::template pop_back<Count>&;
    +
    176 
    +
    177  template<std::size_t Count>
    +
    178  using pop_front = typename base::template pop_front<Count>&;
    +
    179 
    +
    180  template<std::size_t Index, typename... NewArgs>
    +
    181  using insert_args = typename base::template insert_args<Index, NewArgs...>&;
    +
    182 
    +
    183  template<std::size_t Index, std::size_t Count>
    +
    184  using remove_args = typename base::template remove_args<Index, Count>&;
    +
    185 
    +
    186  template<std::size_t Index, typename... NewArgs>
    +
    187  using replace_args = typename base::template replace_args<Index, NewArgs...>&;
    +
    188 };
    +
    189 
    +
    190 }}} // namespace boost::callable_traits::detail
    +
    191 
    +
    192 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_FUNCTION_HPP
    + + + + + + + + + + + + +
    typename base::add_varargs & add_varargs
    Definition: function.hpp:151
    +
    typename base::template push_front< NewArgs... > & push_front
    Definition: function.hpp:169
    +
    typename base::template replace_args< Index, NewArgs... > & replace_args
    Definition: function.hpp:187
    +
    typename base::template push_back< NewArgs... > & push_back
    Definition: function.hpp:172
    +
    typename base::template pop_front< Count > & pop_front
    Definition: function.hpp:178
    +
    typename base::template apply_return< NewReturn > & apply_return
    Definition: function.hpp:164
    +
    typename base::remove_varargs & remove_varargs
    Definition: function.hpp:150
    +
    typename base::template pop_back< Count > & pop_back
    Definition: function.hpp:175
    +
    typename base::clear_args & clear_args
    Definition: function.hpp:166
    +
    typename base::template remove_args< Index, Count > & remove_args
    Definition: function.hpp:184
    +
    typename base::template insert_args< Index, NewArgs... > & insert_args
    Definition: function.hpp:181
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__2_8hpp.html b/dox-master/function__2_8hpp.html new file mode 100644 index 000000000..27d12979e --- /dev/null +++ b/dox-master/function__2_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_2.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_2.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_IS_NOEXCEPT

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
    +
    + +

    Definition at line 12 of file function_2.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_NOEXCEPT_SPEC

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 11 of file function_2.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__2_8hpp_source.html b/dox-master/function__2_8hpp_source.html new file mode 100644 index 000000000..e446de104 --- /dev/null +++ b/dox-master/function__2_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_2.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_2.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    12 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::false_type
    + +
    14 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    15 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    16 
    +
    17 #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    +
    18 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC noexcept
    +
    19 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::true_type
    + +
    21 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    22 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    23 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__3_8hpp.html b/dox-master/function__3_8hpp.html new file mode 100644 index 000000000..0ebfc3ca9 --- /dev/null +++ b/dox-master/function__3_8hpp.html @@ -0,0 +1,136 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_3.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_3.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__3_8hpp_source.html b/dox-master/function__3_8hpp_source.html new file mode 100644 index 000000000..4626be25e --- /dev/null +++ b/dox-master/function__3_8hpp_source.html @@ -0,0 +1,457 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_3.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_3.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 macros used:
    +
    11 
    +
    12 BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS - the function-level qualifiers for the
    +
    13  current inclusion (combinations of `const` `volatile` `&` `&&`, or nothing)
    +
    14 
    +
    15 BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE - the transaction_safe specifier for
    +
    16  the current include (`transaction_safe` or nothing)
    +
    17 
    +
    18 BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE - `std::true_type` or `std::false_type`,
    +
    19  tied on whether BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE is `transaction_safe`
    +
    20 
    +
    21 BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER - `transaction_safe` when
    +
    22  BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE is enabled, otherwise nothing
    +
    23 
    +
    24 BOOST_CLBL_TRTS_NOEXCEPT_SPEC - the noexcept specifier for
    +
    25  the current include (`noexcept` or nothing)
    +
    26 
    +
    27 BOOST_CLBL_TRTS_IS_NOEXCEPT - `std::true_type` or `std::false_type`,
    +
    28  tied on whether BOOST_CLBL_TRTS_NOEXCEPT_SPEC is `noexcept`
    +
    29 
    +
    30 BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER - `noexcept` if
    +
    31  BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES is defined, otherwise nothing
    +
    32 
    +
    33 */
    +
    34 
    +
    35 template<typename Return, typename... Args>
    +
    36 struct function<Return(Args...)
    + + + +
    40  : default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS> {
    +
    41 
    +
    42  static constexpr bool value = true;
    +
    43 
    +
    44  using traits = function;
    +
    45 
    +
    46  using return_type = Return;
    +
    47 
    +
    48  using arg_types = std::tuple<Args...>;
    + +
    50 
    +
    51  using type = Return(Args...)
    + + + +
    55 
    +
    56  using function_type = Return(Args...);
    +
    57 
    +
    58  using qualified_function_type = Return(Args...)
    + + + +
    62 
    + +
    64 
    +
    65  using add_varargs = Return (Args..., ...)
    + + + +
    69 
    + +
    71 
    +
    72  using remove_noexcept = Return(Args...)
    + + +
    75 
    +
    76  using add_noexcept = Return(Args...)
    + + + +
    80 
    + +
    82 
    +
    83  using remove_transaction_safe = Return(Args...)
    + + +
    86 
    +
    87  using add_transaction_safe = Return(Args...)
    + + + +
    91 
    +
    92  using qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>;
    +
    93 
    +
    94  template<qualifier_flags Flags>
    + +
    96  is_noexcept::value, Return, Args...>;
    +
    97 
    +
    98  #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    99 
    +
    100  using add_member_lvalue_reference = abominable_functions_not_supported_on_this_compiler;
    +
    101  using add_member_rvalue_reference = abominable_functions_not_supported_on_this_compiler;
    +
    102  using add_member_const = abominable_functions_not_supported_on_this_compiler;
    +
    103  using add_member_volatile = abominable_functions_not_supported_on_this_compiler;
    +
    104  using add_member_cv = abominable_functions_not_supported_on_this_compiler;
    +
    105 
    +
    106  #else
    +
    107 
    + +
    109  collapse_flags<qualifiers::q_flags, lref_>::value>;
    +
    110 
    + +
    112  collapse_flags<qualifiers::q_flags, rref_>::value>;
    +
    113 
    + +
    115 
    + +
    117 
    + +
    119 
    +
    120  #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    121 
    + +
    123 
    + +
    125  qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>;
    +
    126 
    + +
    128  qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>;
    +
    129 
    + +
    131 
    +
    132  template<typename U>
    +
    133  using apply_member_pointer = add_member_pointer<type, U>;
    +
    134 
    +
    135  template<typename NewReturn>
    +
    136  using apply_return = NewReturn(Args...)
    + + + +
    140 
    +
    141  template<template<class...> class Container>
    +
    142  using expand_args = Container<Args...>;
    +
    143 
    +
    144  using is_member_pointer = std::false_type;
    +
    145 };
    +
    146 
    +
    147 
    +
    148 template<typename Return, typename... Args>
    +
    149 struct function<Return (Args..., ...)
    + + + +
    153  : default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS> {
    +
    154 
    +
    155  static constexpr bool value = true;
    +
    156 
    +
    157  using has_varargs = std::true_type;
    +
    158  using traits = function;
    +
    159  using return_type = Return;
    +
    160  using arg_types = std::tuple<Args...>;
    +
    161 
    +
    162  using type = Return (Args..., ...)
    + + + +
    166 
    +
    167  using function_type = Return(Args..., ...);
    +
    168 
    +
    169  using qualified_function_type = Return(Args..., ...)
    + + + +
    173 
    +
    174  using remove_varargs = Return (Args...)
    + + + +
    178 
    +
    179  using add_varargs = type;
    +
    180 
    + +
    182 
    +
    183  using remove_noexcept = Return(Args..., ...)
    + + +
    186 
    +
    187  using add_noexcept = Return(Args..., ...)
    + + + +
    191 
    + +
    193 
    +
    194  using remove_transaction_safe = Return(Args..., ...)
    + + +
    197 
    +
    198  using add_transaction_safe = Return(Args..., ...)
    + + + +
    202 
    +
    203  using qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>;
    +
    204 
    +
    205  template<qualifier_flags Flags>
    + +
    207  is_noexcept::value, Return, Args...>;
    +
    208 
    +
    209  #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    210 
    +
    211  using add_member_lvalue_reference = abominable_functions_not_supported_on_this_compiler;
    +
    212  using add_member_rvalue_reference = abominable_functions_not_supported_on_this_compiler;
    +
    213  using add_member_const = abominable_functions_not_supported_on_this_compiler;
    +
    214  using add_member_volatile = abominable_functions_not_supported_on_this_compiler;
    +
    215  using add_member_cv = abominable_functions_not_supported_on_this_compiler;
    +
    216 
    +
    217  #else
    +
    218 
    + +
    220  collapse_flags<qualifiers::q_flags, lref_>::value>;
    +
    221 
    + +
    223  collapse_flags<qualifiers::q_flags, rref_>::value>;
    +
    224 
    + +
    226 
    + +
    228 
    + +
    230 
    +
    231  #endif // #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    232 
    + +
    234 
    + +
    236  qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>;
    +
    237 
    + +
    239  qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>;
    +
    240 
    + +
    242 
    +
    243  template<typename U>
    + +
    245  Return( BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC U::*)(Args..., ...)
    + + + +
    249 
    +
    250  template<typename NewReturn>
    +
    251  using apply_return = NewReturn(Args..., ...)
    + + + +
    255 
    +
    256  template<template<class...> class Container>
    +
    257  using expand_args = Container<Args...>;
    +
    258 
    +
    259  using is_member_pointer = std::false_type;
    +
    260 };
    +
    #define BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    Definition: config.hpp:87
    +
    #define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    Definition: config.hpp:37
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    Definition: config.hpp:106
    +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    Definition: function.hpp:72
    +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT
    Definition: function_2.hpp:12
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    Definition: function_2.hpp:11
    +
    typename set_varargs_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_varargs_function_qualifiers
    + +
    typename set_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_function_qualifiers
    + + +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE remove_noexcept
    Definition: function_3.hpp:185
    + +
    set_varargs_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, Return, Args... > set_qualifiers
    Definition: function_3.hpp:207
    + + + + +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_transaction_safe
    Definition: function_3.hpp:201
    + + + + +
    Return(BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC U::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_member_pointer
    Definition: function_3.hpp:248
    +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC remove_transaction_safe
    Definition: function_3.hpp:196
    + +
    set_qualifiers< qualifiers::ref_flags|remove_volatile_flag< qualifiers::cv_flags >::value > remove_member_volatile
    Definition: function_3.hpp:239
    + +
    Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC remove_varargs
    Definition: function_3.hpp:177
    + + +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER add_noexcept
    Definition: function_3.hpp:190
    +
    set_qualifiers< qualifiers::ref_flags|remove_const_flag< qualifiers::cv_flags >::value > remove_member_const
    Definition: function_3.hpp:236
    +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC qualified_function_type
    Definition: function_3.hpp:172
    + + +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC type
    Definition: function_3.hpp:165
    + +
    NewReturn(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_return
    Definition: function_3.hpp:254
    + + + + + +
    Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER add_noexcept
    Definition: function_3.hpp:79
    + +
    Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC qualified_function_type
    Definition: function_3.hpp:61
    + +
    Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE remove_noexcept
    Definition: function_3.hpp:74
    +
    Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_transaction_safe
    Definition: function_3.hpp:90
    + + + + +
    NewReturn(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_return
    Definition: function_3.hpp:139
    + + + + + + +
    set_qualifiers< qualifiers::ref_flags|remove_volatile_flag< qualifiers::cv_flags >::value > remove_member_volatile
    Definition: function_3.hpp:128
    +
    set_qualifiers< qualifiers::ref_flags|remove_const_flag< qualifiers::cv_flags >::value > remove_member_const
    Definition: function_3.hpp:125
    +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_varargs
    Definition: function_3.hpp:68
    +
    set_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, Return, Args... > set_qualifiers
    Definition: function_3.hpp:96
    +
    Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC type
    Definition: function_3.hpp:54
    + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    Definition: function.hpp:11
    +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    Definition: function.hpp:12
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__object_8hpp.html b/dox-master/function__object_8hpp.html new file mode 100644 index 000000000..4c6adc8db --- /dev/null +++ b/dox-master/function__object_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/function_object.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_object.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__object_8hpp_source.html b/dox-master/function__object_8hpp_source.html new file mode 100644 index 000000000..51dd0b018 --- /dev/null +++ b/dox-master/function__object_8hpp_source.html @@ -0,0 +1,282 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/function_object.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_object.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_DETAIL_FUNCTION_OBJECT_HPP
    +
    10 #define BOOST_CLBL_TRTS_DETAIL_FUNCTION_OBJECT_HPP
    +
    11 
    + + + + +
    16 
    +
    17 namespace boost { namespace callable_traits { namespace detail {
    +
    18 
    +
    19 template<typename T, typename Base>
    +
    20 struct function_object : Base {
    +
    21 
    +
    22  using type = T;
    + +
    24  using function_type = typename Base::function_object_signature;
    +
    25  using arg_types = typename Base::non_invoke_arg_types;
    + +
    27 
    +
    28  static constexpr const bool value = std::is_class<
    +
    29  typename std::remove_reference<T>::type>::value;
    +
    30 
    + + + + + +
    36  using is_noexcept = typename Base::is_noexcept;
    + + +
    39  using is_transaction_safe = typename Base::is_transaction_safe;
    + + + +
    43 
    +
    44  template<template<class...> class Container>
    + + +
    47 
    +
    48  template<template<class...> class Container, typename... RightArgs>
    + +
    50  expand_args_left<Container, RightArgs...>;
    +
    51 
    +
    52  template<template<class...> class Container, typename... LeftArgs>
    + +
    54  expand_args_right<Container, LeftArgs...>;
    +
    55 
    +
    56  template<typename C, typename U = T>
    + +
    58  typename std::remove_reference<U>::type C::*;
    +
    59 
    +
    60  template<typename>
    + +
    62 
    +
    63  template<typename...>
    + +
    65 
    +
    66  template<typename...>
    +
    67  using push_back = error_t;
    +
    68 
    +
    69  template<std::size_t ElementCount>
    + +
    71 
    +
    72  template<std::size_t ElementCount>
    + +
    74 
    +
    75  template<std::size_t Index, typename... NewArgs>
    + +
    77 
    +
    78  template<std::size_t Index, std::size_t Count>
    + +
    80 
    +
    81  template<std::size_t Index, typename... NewArgs>
    + +
    83 
    +
    84  template<std::size_t Count>
    +
    85  using pop_front = error_t;
    +
    86 
    +
    87  template<std::size_t Count>
    +
    88  using pop_back = error_t;
    +
    89 
    + + + + + + + + + +
    99 };
    +
    100 
    +
    101 template<typename T, typename U, typename Base>
    +
    102 struct function_object <T U::*, Base>
    + +
    104 
    +
    105 }}} // namespace boost::callable_traits::detail
    +
    106 
    +
    107 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_FUNCTION_OBJECT_HPP
    + + +
    typename std::conditional< std::is_reference< T >::value, reference_error, invalid_type >::type error_type
    Definition: utility.hpp:28
    + + + + + + + + +
    typename function< function_type >::template expand_args< Container > expand_args
    + + +
    typename Base::function_object_signature function_type
    +
    typename Base::non_invoke_arg_types arg_types
    + + + + + + + + + + + + + + + + + +
    typename function< function_type >::template expand_args_left< Container, RightArgs... > expand_args_left
    + + + + +
    typename Base::is_transaction_safe is_transaction_safe
    + + +
    typename function< function_type >::template expand_args_right< Container, LeftArgs... > expand_args_right
    +
    typename std::remove_reference< U >::type C::* apply_member_pointer
    + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr_8hpp.html b/dox-master/function__ptr_8hpp.html new file mode 100644 index 000000000..e4674ec6f --- /dev/null +++ b/dox-master/function__ptr_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_ptr.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    + +

    Definition at line 11 of file function_ptr.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE   std::false_type
    +
    + +

    Definition at line 12 of file function_ptr.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr_8hpp_source.html b/dox-master/function__ptr_8hpp_source.html new file mode 100644 index 000000000..1a95c6c3a --- /dev/null +++ b/dox-master/function__ptr_8hpp_source.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_ptr.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Modified Work Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    12 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::false_type
    + +
    14 
    +
    15 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    16 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    17 
    +
    18 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
    +
    19 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::true_type
    +
    20 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE transaction_safe
    + +
    22 #endif
    +
    23 
    +
    24 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    25 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__2_8hpp.html b/dox-master/function__ptr__2_8hpp.html new file mode 100644 index 000000000..2d46aaf2d --- /dev/null +++ b/dox-master/function__ptr__2_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_2.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_ptr_2.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_IS_NOEXCEPT

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
    +
    + +

    Definition at line 12 of file function_ptr_2.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_NOEXCEPT_SPEC

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 11 of file function_ptr_2.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__2_8hpp_source.html b/dox-master/function__ptr__2_8hpp_source.html new file mode 100644 index 000000000..a85d58255 --- /dev/null +++ b/dox-master/function__ptr__2_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_2.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_ptr_2.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    12 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::false_type
    + +
    14 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    15 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    16 
    +
    17 #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    +
    18 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC noexcept
    +
    19 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::true_type
    + +
    21 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    22 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    23 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__3_8hpp.html b/dox-master/function__ptr__3_8hpp.html new file mode 100644 index 000000000..50b9b270c --- /dev/null +++ b/dox-master/function__ptr__3_8hpp.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_3.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_ptr_3.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__3_8hpp_source.html b/dox-master/function__ptr__3_8hpp_source.html new file mode 100644 index 000000000..41b7c7ff2 --- /dev/null +++ b/dox-master/function__ptr__3_8hpp_source.html @@ -0,0 +1,248 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_3.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_ptr_3.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Modified Work Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 macros used:
    +
    11 
    +
    12 BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE - the transaction_safe specifier for
    +
    13  the current include (`transaction_safe` or nothing)
    +
    14 
    +
    15 BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE - `std::true_type` or `std::false_type`,
    +
    16  tied on whether BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE is `transaction_safe`
    +
    17 
    +
    18 BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER - `transaction_safe` when
    +
    19  BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE is enabled, otherwise nothing
    +
    20 
    +
    21 BOOST_CLBL_TRTS_NOEXCEPT_SPEC - the noexcept specifier for
    +
    22  the current include (`noexcept` or nothing)
    +
    23 
    +
    24 BOOST_CLBL_TRTS_IS_NOEXCEPT - `std::true_type` or `std::false_type`,
    +
    25  tied on whether BOOST_CLBL_TRTS_NOEXCEPT_SPEC is `noexcept`
    +
    26 
    +
    27 BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER - `noexcept` if
    +
    28  BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES is defined, otherwise nothing
    +
    29 */
    +
    30 
    +
    31 template<typename Return, typename... Args>
    +
    32 struct function<
    +
    33  BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...)
    + + +
    36  : default_callable_traits<> {
    +
    37 
    +
    38  static constexpr bool value = true;
    +
    39 
    +
    40  using traits = function;
    +
    41 
    +
    42  using return_type = Return;
    +
    43 
    +
    44  using arg_types = std::tuple<Args...>;
    + +
    46 
    +
    47  using type = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...)
    + +
    49 
    +
    50  using function_type = Return(Args...);
    + + +
    53 
    +
    54  using add_varargs =
    +
    55  BOOST_CLBL_TRTS_ST Return (BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
    + + +
    58 
    + +
    60 
    +
    61  using remove_noexcept = Return(BOOST_CLBL_TRTS_CC *)(Args...)
    + +
    63 
    +
    64  using add_noexcept = Return(BOOST_CLBL_TRTS_CC *)(Args...)
    + + +
    67 
    + +
    69 
    +
    70  using remove_transaction_safe = Return(BOOST_CLBL_TRTS_CC *)(Args...)
    + +
    72 
    +
    73  using add_transaction_safe = Return(BOOST_CLBL_TRTS_CC *)(Args...)
    + + +
    76 
    +
    77  template<typename U>
    + +
    79  BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC U::*)(Args...)
    + + +
    82 
    +
    83  template<typename NewReturn>
    +
    84  using apply_return =
    +
    85  BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_CC *)(Args...)
    + + +
    88 
    +
    89  template<template<class...> class Container>
    +
    90  using expand_args = Container<Args...>;
    +
    91 
    +
    92  using is_member_pointer = std::false_type;
    +
    93 };
    +
    94 
    +
    #define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    Definition: config.hpp:37
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    Definition: config.hpp:106
    +
    #define BOOST_CLBL_TRTS_ST
    Definition: function.hpp:84
    +
    #define BOOST_CLBL_TRTS_CC
    Definition: function.hpp:83
    +
    #define BOOST_CLBL_TRTS_VARARGS_CC
    Definition: function.hpp:82
    +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT
    Definition: function_2.hpp:12
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    Definition: function_2.hpp:11
    + + +
    Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_transaction_safe
    +
    BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_return
    + + + +
    Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER add_noexcept
    + + + + + + +
    BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC U::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_member_pointer
    + + +
    BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE type
    +
    BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_varargs
    +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    Definition: function.hpp:11
    +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    Definition: function.hpp:12
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__varargs_8hpp.html b/dox-master/function__ptr__varargs_8hpp.html new file mode 100644 index 000000000..114089df2 --- /dev/null +++ b/dox-master/function__ptr__varargs_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_varargs.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_ptr_varargs.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    + +

    Definition at line 11 of file function_ptr_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE   std::false_type
    +
    + +

    Definition at line 12 of file function_ptr_varargs.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__varargs_8hpp_source.html b/dox-master/function__ptr__varargs_8hpp_source.html new file mode 100644 index 000000000..47463247b --- /dev/null +++ b/dox-master/function__ptr__varargs_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_varargs.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_ptr_varargs.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Modified Work Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    12 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::false_type
    + +
    14 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    15 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    16 
    +
    17 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
    +
    18 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::true_type
    +
    19 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE transaction_safe
    + +
    21 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    22 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    23 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__varargs__2_8hpp.html b/dox-master/function__ptr__varargs__2_8hpp.html new file mode 100644 index 000000000..5237dc3ec --- /dev/null +++ b/dox-master/function__ptr__varargs__2_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_varargs_2.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_ptr_varargs_2.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_IS_NOEXCEPT

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
    +
    + +

    Definition at line 12 of file function_ptr_varargs_2.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_NOEXCEPT_SPEC

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 11 of file function_ptr_varargs_2.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__varargs__2_8hpp_source.html b/dox-master/function__ptr__varargs__2_8hpp_source.html new file mode 100644 index 000000000..d2ecc1134 --- /dev/null +++ b/dox-master/function__ptr__varargs__2_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_varargs_2.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_ptr_varargs_2.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    12 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::false_type
    + +
    14 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    15 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    16 
    +
    17 #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    +
    18 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC noexcept
    +
    19 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::true_type
    + +
    21 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    22 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    23 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__varargs__3_8hpp.html b/dox-master/function__ptr__varargs__3_8hpp.html new file mode 100644 index 000000000..bfa693f42 --- /dev/null +++ b/dox-master/function__ptr__varargs__3_8hpp.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_varargs_3.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_ptr_varargs_3.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__ptr__varargs__3_8hpp_source.html b/dox-master/function__ptr__varargs__3_8hpp_source.html new file mode 100644 index 000000000..0bcace5d4 --- /dev/null +++ b/dox-master/function__ptr__varargs__3_8hpp_source.html @@ -0,0 +1,253 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function_ptr_varargs_3.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_ptr_varargs_3.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Modified Work Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 macros used:
    +
    11 
    +
    12 BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE - the transaction_safe specifier for
    +
    13  the current include (`transaction_safe` or nothing)
    +
    14 
    +
    15 BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE - `std::true_type` or `std::false_type`,
    +
    16  tied on whether BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE is `transaction_safe`
    +
    17 
    +
    18 BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER - `transaction_safe` when
    +
    19  BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE is enabled, otherwise nothing
    +
    20 
    +
    21 BOOST_CLBL_TRTS_NOEXCEPT_SPEC - the noexcept specifier for
    +
    22  the current include (`noexcept` or nothing)
    +
    23 
    +
    24 BOOST_CLBL_TRTS_IS_NOEXCEPT - `std::true_type` or `std::false_type`,
    +
    25  tied on whether BOOST_CLBL_TRTS_NOEXCEPT_SPEC is `noexcept`
    +
    26 
    +
    27 BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER - `noexcept` if
    +
    28  BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES is defined, otherwise nothing
    +
    29 */
    +
    30 
    +
    31 template<typename Return, typename... Args>
    +
    32 struct function<BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
    + + +
    35  : default_callable_traits<> {
    +
    36 
    +
    37  static constexpr bool value = true;
    +
    38 
    +
    39  using has_varargs = std::true_type;
    +
    40 
    +
    41  using traits = function;
    +
    42 
    +
    43  using return_type = Return;
    +
    44 
    +
    45  using arg_types = std::tuple<Args...>;
    + +
    47 
    +
    48  using type =
    +
    49  BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
    + + +
    52 
    +
    53  using function_type = Return(Args..., ...);
    +
    54 
    + +
    56 
    + +
    58  BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...)
    + +
    60 
    +
    61  using add_varargs = type;
    +
    62 
    + +
    64 
    +
    65  using remove_noexcept = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args..., ...)
    + +
    67 
    +
    68  using add_noexcept = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args..., ...)
    + + +
    71 
    + +
    73 
    +
    74  using remove_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
    + +
    76 
    +
    77  using add_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
    + + +
    80 
    +
    81  template<typename U>
    + +
    83  BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args..., ...)
    + + +
    86 
    +
    87  template<typename NewReturn>
    +
    88  using apply_return =
    +
    89  BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...)
    + + +
    92 
    +
    93  template<template<class...> class Container>
    +
    94  using expand_args = Container<Args...>;
    +
    95 
    +
    96  using is_member_pointer = std::false_type;
    +
    97 };
    +
    98 
    +
    #define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    Definition: config.hpp:37
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    Definition: config.hpp:106
    +
    #define BOOST_CLBL_TRTS_ST
    Definition: function.hpp:84
    +
    #define BOOST_CLBL_TRTS_CC
    Definition: function.hpp:83
    +
    #define BOOST_CLBL_TRTS_VARARGS_CC
    Definition: function.hpp:82
    +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT
    Definition: function_2.hpp:12
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    Definition: function_2.hpp:11
    + + + + + + + +
    Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_transaction_safe
    +
    BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC type
    + + + +
    BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER add_noexcept
    + + +
    BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_member_pointer
    + +
    BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_return
    + + +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    Definition: function.hpp:11
    +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    Definition: function.hpp:12
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__type_8hpp.html b/dox-master/function__type_8hpp.html new file mode 100644 index 000000000..57800a1ad --- /dev/null +++ b/dox-master/function__type_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/function_type.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function_type.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::function_type_impl< T, typename >
     
    struct  boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::function_type< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::function_type_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::function_type, cannot_determine_parameters_for_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/function__type_8hpp_source.html b/dox-master/function__type_8hpp_source.html new file mode 100644 index 000000000..010287a93 --- /dev/null +++ b/dox-master/function__type_8hpp_source.html @@ -0,0 +1,232 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/function_type.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function_type.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_FUNCTION_TYPE_HPP
    +
    10 #define BOOST_CLBL_TRTS_FUNCTION_TYPE_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ function_type_hpp
    +
    17 /*`[section:ref_function_type function_type]
    +
    18 [heading Header]
    +
    19 ``#include <boost/callable_traits/function_type.hpp>``
    +
    20 [heading Definition]
    +
    21 */
    +
    22 
    +
    23 template<typename T>
    +
    24 using function_type_t = //see below
    +
    25 //<-
    + + +
    28  cannot_determine_parameters_for_this_type>;
    +
    29 
    +
    30 namespace detail {
    +
    31 
    +
    32  template<typename T, typename = std::false_type>
    +
    33  struct function_type_impl {};
    +
    34 
    +
    35  template<typename T>
    +
    36  struct function_type_impl <T, typename std::is_same<
    +
    37  function_type_t<T>, detail::dummy>::type>
    +
    38  {
    + +
    40  };
    +
    41 }
    +
    42 
    +
    43 //->
    +
    44 
    +
    45 template<typename T>
    + +
    47 
    +
    48 //<-
    +
    49 }} // namespace boost::callable_traits
    +
    50 //->
    +
    51 
    +
    52 /*`
    +
    53 [heading Constraints]
    +
    54 * `T` must be one of the following:
    +
    55  * function
    +
    56  * function pointer
    +
    57  * function reference
    +
    58  * member function pointer
    +
    59  * member data pointer
    +
    60  * user-defined type with a non-overloaded `operator()`
    +
    61  * type of a non-generic lambda
    +
    62 
    +
    63 [heading Behavior]
    +
    64 * When the constraints are violated, a substitution failure occurs.
    +
    65 * When `T` is a function, the aliased type is identical to `T`, except that the aliased function type will not have member qualifiers or the `transaction_safe` specifier.
    +
    66 * When `T` is a function pointer, the aliased type is equivalent to `std::remove_pointer_t<T>`.
    +
    67 * When `T` is a function reference, the aliased type is equivalent to `std::remove_reference_t<T>`.
    +
    68 * When `T` is a function object, the aliased type is a function type with the same return type and parameter list as `T`'s `operator()`.
    +
    69 * When `T` is a member function pointer, the aliased type is a function type with the same return type as `T`, and the first parameter is a reference to the parent class of `T`, qualified according to the member qualifiers on `T`. The subsequent parameters, if any, are the parameter types of `T`.
    +
    70 * When `T` is a member data pointer, the aliased type is a function type returning the underlying member type of `T`, taking a single parameter, which is a `const` reference to the parent type of `T`.
    +
    71 * In all cases, the aliased function type will not have member qualifiers, and will not have the `transaction_safe` specifier.
    +
    72 
    +
    73 [heading Input/Output Examples]
    +
    74 [table
    +
    75  [[`T`] [`function_type_t<T>`]]
    +
    76  [[`void(int)`] [`void(int)`]]
    +
    77  [[`void(int) const`] [`void(int)`]]
    +
    78  [[`void(int) transaction_safe`] [`void(int)`]]
    +
    79  [[`void(*const &)(int)`] [`void(int)`]]
    +
    80  [[`void(&)(int)`] [`void(int)`]]
    +
    81  [[`void(* volatile)()`] [`void()`]]
    +
    82  [[`int(foo::*)(int)`] [`int(foo&, int)`]]
    +
    83  [[`int(foo::*)(int) const`] [`int(const foo&, int)`]]
    +
    84  [[`void(foo::*)() volatile &&`] [`void(volatile foo&&)`]]
    +
    85  [[`int foo::*`] [`int(const foo&)`]]
    +
    86  [[`const int foo::*`] [`int(const foo&)`]]
    +
    87  [[`int`] [(substitution failure)]]
    +
    88 ]
    +
    89 
    +
    90 [heading Example Program]
    +
    91 [import ../example/function_type.cpp]
    +
    92 [function_type]
    +
    93 [endsect]
    +
    94 */
    +
    95 //]
    +
    96 
    +
    97 #endif
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::function_type, cannot_determine_parameters_for_this_type > function_type_t
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions.html b/dox-master/functions.html new file mode 100644 index 000000000..579f20d25 --- /dev/null +++ b/dox-master/functions.html @@ -0,0 +1,173 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - _ -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_a.html b/dox-master/functions_a.html new file mode 100644 index 000000000..3e185a6b5 --- /dev/null +++ b/dox-master/functions_a.html @@ -0,0 +1,313 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - a -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_b.html b/dox-master/functions_b.html new file mode 100644 index 000000000..0ac3ce617 --- /dev/null +++ b/dox-master/functions_b.html @@ -0,0 +1,249 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - b -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_c.html b/dox-master/functions_c.html new file mode 100644 index 000000000..2498eb999 --- /dev/null +++ b/dox-master/functions_c.html @@ -0,0 +1,291 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - c -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_d.html b/dox-master/functions_d.html new file mode 100644 index 000000000..589cee18b --- /dev/null +++ b/dox-master/functions_d.html @@ -0,0 +1,335 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - d -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_e.html b/dox-master/functions_e.html new file mode 100644 index 000000000..9dd0ec18d --- /dev/null +++ b/dox-master/functions_e.html @@ -0,0 +1,246 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - e -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_enum.html b/dox-master/functions_enum.html new file mode 100644 index 000000000..0bd93abb9 --- /dev/null +++ b/dox-master/functions_enum.html @@ -0,0 +1,157 @@ + + + + + + + + + + + ttg: Class Members - Enumerations + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_eval.html b/dox-master/functions_eval.html new file mode 100644 index 000000000..b68578aec --- /dev/null +++ b/dox-master/functions_eval.html @@ -0,0 +1,202 @@ + + + + + + + + + + + ttg: Class Members - Enumerator + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_f.html b/dox-master/functions_f.html new file mode 100644 index 000000000..4cd140ea4 --- /dev/null +++ b/dox-master/functions_f.html @@ -0,0 +1,260 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - f -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func.html b/dox-master/functions_func.html new file mode 100644 index 000000000..7c05d0358 --- /dev/null +++ b/dox-master/functions_func.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - _ -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_a.html b/dox-master/functions_func_a.html new file mode 100644 index 000000000..b86089ea2 --- /dev/null +++ b/dox-master/functions_func_a.html @@ -0,0 +1,193 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_b.html b/dox-master/functions_func_b.html new file mode 100644 index 000000000..ae10e763a --- /dev/null +++ b/dox-master/functions_func_b.html @@ -0,0 +1,215 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_c.html b/dox-master/functions_func_c.html new file mode 100644 index 000000000..81e148791 --- /dev/null +++ b/dox-master/functions_func_c.html @@ -0,0 +1,244 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - c -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_d.html b/dox-master/functions_func_d.html new file mode 100644 index 000000000..c4b54e452 --- /dev/null +++ b/dox-master/functions_func_d.html @@ -0,0 +1,287 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - d -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_e.html b/dox-master/functions_func_e.html new file mode 100644 index 000000000..c0288f523 --- /dev/null +++ b/dox-master/functions_func_e.html @@ -0,0 +1,195 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_f.html b/dox-master/functions_func_f.html new file mode 100644 index 000000000..2975fea2a --- /dev/null +++ b/dox-master/functions_func_f.html @@ -0,0 +1,226 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_g.html b/dox-master/functions_func_g.html new file mode 100644 index 000000000..c2f6e2daa --- /dev/null +++ b/dox-master/functions_func_g.html @@ -0,0 +1,275 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - g -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_h.html b/dox-master/functions_func_h.html new file mode 100644 index 000000000..98cb2c79e --- /dev/null +++ b/dox-master/functions_func_h.html @@ -0,0 +1,188 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_i.html b/dox-master/functions_func_i.html new file mode 100644 index 000000000..313dee240 --- /dev/null +++ b/dox-master/functions_func_i.html @@ -0,0 +1,316 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - i -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_l.html b/dox-master/functions_func_l.html new file mode 100644 index 000000000..5fb87b5b9 --- /dev/null +++ b/dox-master/functions_func_l.html @@ -0,0 +1,189 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_m.html b/dox-master/functions_func_m.html new file mode 100644 index 000000000..3a139d99d --- /dev/null +++ b/dox-master/functions_func_m.html @@ -0,0 +1,199 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_n.html b/dox-master/functions_func_n.html new file mode 100644 index 000000000..ee11e03c2 --- /dev/null +++ b/dox-master/functions_func_n.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - n -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_o.html b/dox-master/functions_func_o.html new file mode 100644 index 000000000..9a4e00c0f --- /dev/null +++ b/dox-master/functions_func_o.html @@ -0,0 +1,272 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - o -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_p.html b/dox-master/functions_func_p.html new file mode 100644 index 000000000..fd4c2165c --- /dev/null +++ b/dox-master/functions_func_p.html @@ -0,0 +1,249 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - p -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_r.html b/dox-master/functions_func_r.html new file mode 100644 index 000000000..142ba3042 --- /dev/null +++ b/dox-master/functions_func_r.html @@ -0,0 +1,270 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - r -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_s.html b/dox-master/functions_func_s.html new file mode 100644 index 000000000..4d233ee67 --- /dev/null +++ b/dox-master/functions_func_s.html @@ -0,0 +1,389 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - s -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_t.html b/dox-master/functions_func_t.html new file mode 100644 index 000000000..ffcad90fd --- /dev/null +++ b/dox-master/functions_func_t.html @@ -0,0 +1,240 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_u.html b/dox-master/functions_func_u.html new file mode 100644 index 000000000..a1c20f4fd --- /dev/null +++ b/dox-master/functions_func_u.html @@ -0,0 +1,192 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_v.html b/dox-master/functions_func_v.html new file mode 100644 index 000000000..4f08d09ca --- /dev/null +++ b/dox-master/functions_func_v.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - v -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_w.html b/dox-master/functions_func_w.html new file mode 100644 index 000000000..76270571e --- /dev/null +++ b/dox-master/functions_func_w.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - w -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_x.html b/dox-master/functions_func_x.html new file mode 100644 index 000000000..c0f9d5c49 --- /dev/null +++ b/dox-master/functions_func_x.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_func_~.html b/dox-master/functions_func_~.html new file mode 100644 index 000000000..4125e9185 --- /dev/null +++ b/dox-master/functions_func_~.html @@ -0,0 +1,234 @@ + + + + + + + + + + + ttg: Class Members - Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_g.html b/dox-master/functions_g.html new file mode 100644 index 000000000..72e9a9d53 --- /dev/null +++ b/dox-master/functions_g.html @@ -0,0 +1,289 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - g -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_h.html b/dox-master/functions_h.html new file mode 100644 index 000000000..7d5248983 --- /dev/null +++ b/dox-master/functions_h.html @@ -0,0 +1,218 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - h -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_i.html b/dox-master/functions_i.html new file mode 100644 index 000000000..360dcc5ef --- /dev/null +++ b/dox-master/functions_i.html @@ -0,0 +1,441 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - i -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_k.html b/dox-master/functions_k.html new file mode 100644 index 000000000..e6b882a23 --- /dev/null +++ b/dox-master/functions_k.html @@ -0,0 +1,237 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_l.html b/dox-master/functions_l.html new file mode 100644 index 000000000..2c58f24b2 --- /dev/null +++ b/dox-master/functions_l.html @@ -0,0 +1,194 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_m.html b/dox-master/functions_m.html new file mode 100644 index 000000000..849edd129 --- /dev/null +++ b/dox-master/functions_m.html @@ -0,0 +1,279 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - m -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_n.html b/dox-master/functions_n.html new file mode 100644 index 000000000..417dde0ba --- /dev/null +++ b/dox-master/functions_n.html @@ -0,0 +1,239 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - n -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_o.html b/dox-master/functions_o.html new file mode 100644 index 000000000..15065073f --- /dev/null +++ b/dox-master/functions_o.html @@ -0,0 +1,301 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - o -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_p.html b/dox-master/functions_p.html new file mode 100644 index 000000000..e71a32eca --- /dev/null +++ b/dox-master/functions_p.html @@ -0,0 +1,316 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - p -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_q.html b/dox-master/functions_q.html new file mode 100644 index 000000000..678f35b80 --- /dev/null +++ b/dox-master/functions_q.html @@ -0,0 +1,189 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - q -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_r.html b/dox-master/functions_r.html new file mode 100644 index 000000000..5baf2da96 --- /dev/null +++ b/dox-master/functions_r.html @@ -0,0 +1,399 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - r -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_rela.html b/dox-master/functions_rela.html new file mode 100644 index 000000000..1c31b552a --- /dev/null +++ b/dox-master/functions_rela.html @@ -0,0 +1,186 @@ + + + + + + + + + + + ttg: Class Members - Related Functions + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_s.html b/dox-master/functions_s.html new file mode 100644 index 000000000..af06deba9 --- /dev/null +++ b/dox-master/functions_s.html @@ -0,0 +1,455 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - s -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_t.html b/dox-master/functions_t.html new file mode 100644 index 000000000..96f2becde --- /dev/null +++ b/dox-master/functions_t.html @@ -0,0 +1,406 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - t -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type.html b/dox-master/functions_type.html new file mode 100644 index 000000000..671ebb66e --- /dev/null +++ b/dox-master/functions_type.html @@ -0,0 +1,283 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_b.html b/dox-master/functions_type_b.html new file mode 100644 index 000000000..b37fc72a6 --- /dev/null +++ b/dox-master/functions_type_b.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_c.html b/dox-master/functions_type_c.html new file mode 100644 index 000000000..2330fe25d --- /dev/null +++ b/dox-master/functions_type_c.html @@ -0,0 +1,190 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_d.html b/dox-master/functions_type_d.html new file mode 100644 index 000000000..139b081fd --- /dev/null +++ b/dox-master/functions_type_d.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - d -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_e.html b/dox-master/functions_type_e.html new file mode 100644 index 000000000..7661a49d2 --- /dev/null +++ b/dox-master/functions_type_e.html @@ -0,0 +1,198 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - e -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_f.html b/dox-master/functions_type_f.html new file mode 100644 index 000000000..0ff33619f --- /dev/null +++ b/dox-master/functions_type_f.html @@ -0,0 +1,188 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - f -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_h.html b/dox-master/functions_type_h.html new file mode 100644 index 000000000..7759caee1 --- /dev/null +++ b/dox-master/functions_type_h.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dox-master/functions_type_i.html b/dox-master/functions_type_i.html new file mode 100644 index 000000000..136314b25 --- /dev/null +++ b/dox-master/functions_type_i.html @@ -0,0 +1,260 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - i -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_k.html b/dox-master/functions_type_k.html new file mode 100644 index 000000000..433db1b04 --- /dev/null +++ b/dox-master/functions_type_k.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_l.html b/dox-master/functions_type_l.html new file mode 100644 index 000000000..bd98bfdc8 --- /dev/null +++ b/dox-master/functions_type_l.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - l -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_m.html b/dox-master/functions_type_m.html new file mode 100644 index 000000000..ddca80032 --- /dev/null +++ b/dox-master/functions_type_m.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - m -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_n.html b/dox-master/functions_type_n.html new file mode 100644 index 000000000..a125ef0a4 --- /dev/null +++ b/dox-master/functions_type_n.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_o.html b/dox-master/functions_type_o.html new file mode 100644 index 000000000..388506341 --- /dev/null +++ b/dox-master/functions_type_o.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_p.html b/dox-master/functions_type_p.html new file mode 100644 index 000000000..4d17b445f --- /dev/null +++ b/dox-master/functions_type_p.html @@ -0,0 +1,207 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_q.html b/dox-master/functions_type_q.html new file mode 100644 index 000000000..5f9f25e8f --- /dev/null +++ b/dox-master/functions_type_q.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - q -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_r.html b/dox-master/functions_type_r.html new file mode 100644 index 000000000..d7394229c --- /dev/null +++ b/dox-master/functions_type_r.html @@ -0,0 +1,273 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - r -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_s.html b/dox-master/functions_type_s.html new file mode 100644 index 000000000..d27c34cb4 --- /dev/null +++ b/dox-master/functions_type_s.html @@ -0,0 +1,184 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_t.html b/dox-master/functions_type_t.html new file mode 100644 index 000000000..879f830d3 --- /dev/null +++ b/dox-master/functions_type_t.html @@ -0,0 +1,294 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - t -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_v.html b/dox-master/functions_type_v.html new file mode 100644 index 000000000..734e4427a --- /dev/null +++ b/dox-master/functions_type_v.html @@ -0,0 +1,174 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_type_w.html b/dox-master/functions_type_w.html new file mode 100644 index 000000000..e204a2d82 --- /dev/null +++ b/dox-master/functions_type_w.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Class Members - Typedefs + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_u.html b/dox-master/functions_u.html new file mode 100644 index 000000000..cb79a2b89 --- /dev/null +++ b/dox-master/functions_u.html @@ -0,0 +1,195 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_v.html b/dox-master/functions_v.html new file mode 100644 index 000000000..8c50c6f38 --- /dev/null +++ b/dox-master/functions_v.html @@ -0,0 +1,223 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - v -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_vars.html b/dox-master/functions_vars.html new file mode 100644 index 000000000..7fea2716e --- /dev/null +++ b/dox-master/functions_vars.html @@ -0,0 +1,647 @@ + + + + + + + + + + + ttg: Class Members - Variables + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

    + + +

    - h -

    + + +

    - i -

    + + +

    - k -

    + + +

    - m -

    + + +

    - n -

    + + +

    - o -

    + + +

    - p -

    + + +

    - q -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - u -

    + + +

    - v -

    + + +

    - w -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_w.html b/dox-master/functions_w.html new file mode 100644 index 000000000..db0843e69 --- /dev/null +++ b/dox-master/functions_w.html @@ -0,0 +1,186 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - w -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_x.html b/dox-master/functions_x.html new file mode 100644 index 000000000..d8df19fcc --- /dev/null +++ b/dox-master/functions_x.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - x -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/functions_~.html b/dox-master/functions_~.html new file mode 100644 index 000000000..b007cc57c --- /dev/null +++ b/dox-master/functions_~.html @@ -0,0 +1,236 @@ + + + + + + + + + + + ttg: Class Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all class members with links to the classes they belong to:
    + +

    - ~ -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/future_8h.html b/dox-master/future_8h.html new file mode 100644 index 000000000..d976fa286 --- /dev/null +++ b/dox-master/future_8h.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: ttg/ttg/util/future.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    future.h File Reference
    +
    +
    +
    #include <future>
    +
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + + + + +

    +Functions

    template<typename T >
    bool ttg::has_value (std::future< T > const &f)
     
    template<typename T >
    bool ttg::has_value (std::shared_future< T > const &f)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/future_8h_source.html b/dox-master/future_8h_source.html new file mode 100644 index 000000000..c413b676c --- /dev/null +++ b/dox-master/future_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/util/future.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    future.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 7/10/18.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_FUTURE_H
    +
    6 #define TTG_FUTURE_H
    +
    7 
    +
    8 #include <future>
    +
    9 
    +
    10 namespace ttg {
    +
    11 
    +
    12 template<typename T>
    +
    13 bool has_value(std::future<T> const& f)
    +
    14 { return f.wait_for(std::chrono::seconds(0)) == std::future_status::ready; }
    +
    15 
    +
    16 template<typename T>
    +
    17 bool has_value(std::shared_future<T> const& f)
    +
    18 { return f.wait_for(std::chrono::seconds(0)) == std::future_status::ready; }
    +
    19 
    +
    20 }
    +
    21 
    +
    22 #endif //TTG_FUTURE_H
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    bool has_value(std::future< T > const &f)
    Definition: future.h:13
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/fwd_8h.html b/dox-master/fwd_8h.html new file mode 100644 index 000000000..56e6662a4 --- /dev/null +++ b/dox-master/fwd_8h.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: ttg/ttg/fwd.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    fwd.h File Reference
    +
    +
    +
    #include "ttg/impl_selector.h"
    +
    + + + + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg_madness
     this contains MADNESS-based TTG functionality
     
     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
    + + + + + + + + + + + +

    +Typedefs

    using ttg::OpBase = TTBase
     
    using ttg::TemplateTaskBase = TTBase
     
    template<typename input_terminalsT , typename output_terminalsT >
    using ttg::TemplateTaskGraph = TTG< input_terminalsT, output_terminalsT >
     
    template<typename input_terminalsT , typename output_terminalsT >
    using ttg::CompositeOp = TTG< input_terminalsT, output_terminalsT >
     
    + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename... RestOfArgs>
    void ttg::initialize (int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
     
    template<std::size_t i>
    void ttg::finalize ()
     Finalizes the TTG runtime. More...
     
    void ttg::abort ()
     Aborts the TTG program using the default backend's ttg_abort method. More...
     
    World ttg::default_execution_context ()
     Accesses the default backend's default execution context. More...
     
    void ttg::execute (World world=default_execution_context())
     Starts the execution in the given execution context. More...
     
    void ttg::fence (World world=default_execution_context())
     Returns when all tasks associated with the given execution context have finished on all ranks. More...
     
    +

    Documentation

    +

    Includes forward declarations for the entire TTG codebase

    + +

    Definition in file fwd.h.

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/fwd_8h_source.html b/dox-master/fwd_8h_source.html new file mode 100644 index 000000000..a84ed60a5 --- /dev/null +++ b/dox-master/fwd_8h_source.html @@ -0,0 +1,197 @@ + + + + + + + + + + + ttg: ttg/ttg/fwd.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    fwd.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_FWD_H
    +
    2 #define TTG_FWD_H
    +
    3 
    +
    9 // namespaces first ////////////////////////////////////////////////////////////////////////////////////////////////////
    +
    10 
    +
    12 namespace ttg {}
    +
    13 // predeclare runtime-specific namespaces
    +
    14 // note that these are top-level (but differ from the namespaces reserved by the runtime itself to avoid ambiguities)
    +
    16 namespace ttg_madness {}
    +
    18 namespace ttg_parsec {}
    +
    19 
    +
    20 // classes + functions /////////////////////////////////////////////////////////////////////////////////////////////////
    +
    21 
    +
    22 namespace ttg {
    +
    23 
    +
    24  class TTBase;
    +
    25 
    +
    27  using OpBase [[deprecated("use TTBase instead")]] = TTBase;
    + +
    30 
    +
    31  template <typename keyT = void, typename valueT = void>
    +
    32  class Edge;
    +
    33 
    +
    34  template <typename input_terminalsT, typename output_terminalsT>
    +
    35  class TTG;
    +
    36 
    +
    38  template <typename input_terminalsT, typename output_terminalsT>
    + +
    40 
    +
    42  template <typename input_terminalsT, typename output_terminalsT>
    +
    43  using CompositeOp [[deprecated("use TTG instead")]] = TTG<input_terminalsT, output_terminalsT>;
    +
    44 
    +
    45  class World;
    +
    46 
    +
    47  template <typename... RestOfArgs>
    +
    48  void initialize(int argc, char **argv, int num_threads = -1, RestOfArgs &&...);
    +
    49  void finalize();
    +
    50  [[noreturn]]
    +
    51  void abort();
    + +
    53  void execute(ttg::World world);
    +
    54  void fence(ttg::World world);
    +
    55 
    +
    56 } // namespace ttg
    +
    57 
    +
    58 #include "ttg/impl_selector.h"
    +
    59 #if TTG_USE_PARSEC
    +
    60 #include "ttg/parsec/fwd.h"
    +
    61 #endif
    +
    62 #if TTG_USE_MADNESS
    +
    63 #include "ttg/madness/fwd.h"
    +
    64 #endif
    +
    65 
    +
    66 #endif // TTG_FWD_H
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    +
    A base class for all template tasks.
    Definition: tt.h:30
    +
    a template task graph implementation
    Definition: tt.h:31
    + + + +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    void abort()
    Aborts the TTG program using the default backend's ttg_abort method.
    Definition: run.h:62
    +
    World default_execution_context()
    Accesses the default backend's default execution context.
    Definition: run.h:68
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/globals.html b/dox-master/globals.html new file mode 100644 index 000000000..fd76f6c19 --- /dev/null +++ b/dox-master/globals.html @@ -0,0 +1,447 @@ + + + + + + + + + + + ttg: File Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all file members with links to the files they belong to:
    + +

    - b -

    + + +

    - h -

    + + +

    - k -

    + + +

    - m -

    + + +

    - n -

    + + +

    - p -

      +
    • parsec_add_fetch_runtime_task() +: ttg.h +
    • +
    • parsec_taskpool_termination_detected() +: ttg.h +
    • +
    + + +

    - s -

    + + +

    - t -

    + + +

    - w -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/globals_defs.html b/dox-master/globals_defs.html new file mode 100644 index 000000000..a368e03d3 --- /dev/null +++ b/dox-master/globals_defs.html @@ -0,0 +1,385 @@ + + + + + + + + + + + ttg: File Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - b -

    + + +

    - h -

    + + +

    - n -

    + + +

    - s -

    + + +

    - t -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/globals_func.html b/dox-master/globals_func.html new file mode 100644 index 000000000..fb8b7bea4 --- /dev/null +++ b/dox-master/globals_func.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: File Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/globals_type.html b/dox-master/globals_type.html new file mode 100644 index 000000000..afb9707c5 --- /dev/null +++ b/dox-master/globals_type.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: File Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/globals_vars.html b/dox-master/globals_vars.html new file mode 100644 index 000000000..050f9d56f --- /dev/null +++ b/dox-master/globals_vars.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: File Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/group__resumable__task.html b/dox-master/group__resumable__task.html new file mode 100644 index 000000000..d8857087d --- /dev/null +++ b/dox-master/group__resumable__task.html @@ -0,0 +1,242 @@ + + + + + + + + + + + ttg: resumable_task coroutine + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    resumable_task coroutine
    +
    +
    +

    Documentation

    + + + + +

    +Classes

    struct  ttg::resumable_task_events< N >
     
    + + + + + + + + + + +

    +Functions

    template<typename... Events>
     ttg::resumable_task_events (Events &&...) -> resumable_task_events< sizeof...(Events)>
     
    bool ttg::resumable_task::ready () const
     
    bool ttg::resumable_task::completed () const
     
    ttg::span< event * > ttg::resumable_task::events ()
     
    +

    Function Documentation

    + +

    ◆ completed()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg::resumable_task::completed () const
    +
    +inline
    +
    +
    Returns
    true if task completed and can be destroyed
    + +

    Definition at line 160 of file coroutine.h.

    + +
    +
    + +

    ◆ events()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::span< event * > ttg::resumable_task::events ()
    +
    +inline
    +
    +
    Returns
    ttg::span of events that this task depends on
    + +

    Definition at line 161 of file coroutine.h.

    + +
    +
    + +

    ◆ ready()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg::resumable_task::ready () const
    +
    +inline
    +
    +
    Returns
    true if ready to resume
    + +

    Definition at line 159 of file coroutine.h.

    + +
    +
    + +

    ◆ resumable_task_events()

    + +
    +
    +
    +template<typename... Events>
    + + + + + + + + +
    ttg::resumable_task_events (Events && ...) -> resumable_task_events< sizeof...(Events)>
    +
    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/has__member__qualifiers_8hpp.html b/dox-master/has__member__qualifiers_8hpp.html new file mode 100644 index 000000000..0d7c63d27 --- /dev/null +++ b/dox-master/has__member__qualifiers_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/has_member_qualifiers.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    has_member_qualifiers.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::has_member_qualifiers< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_member_qualifiers_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/has__member__qualifiers_8hpp_source.html b/dox-master/has__member__qualifiers_8hpp_source.html new file mode 100644 index 000000000..bd555a4bb --- /dev/null +++ b/dox-master/has__member__qualifiers_8hpp_source.html @@ -0,0 +1,233 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/has_member_qualifiers.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    has_member_qualifiers.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_HAS_MEMBER_QUALIFIERS_HPP
    +
    10 #define BOOST_CLBL_TRTS_HAS_MEMBER_QUALIFIERS_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ has_member_qualifiers_hpp
    +
    17 /*`[section:ref_has_member_qualifiers has_member_qualifiers]
    +
    18 [heading Header]
    +
    19 ``#include <boost/callable_traits/has_member_qualifiers.hpp>``
    +
    20 [heading Definition]
    +
    21 */
    +
    22 
    +
    23 // inherits from either std::true_type or std::false_type
    +
    24 template<typename T>
    +
    25 struct has_member_qualifiers;
    +
    26 
    +
    27 //<-
    +
    28 template<typename T>
    + +
    30  detail::shallow_decay<T>>::has_member_qualifiers {
    +
    31 
    +
    32  using type = typename detail::traits<
    + +
    34 };
    +
    35 
    +
    36 // older compilers don't support variable templates
    +
    37 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    38 
    +
    39 template<typename T>
    + +
    41  static_assert(std::is_same<T, detail::dummy>::value,
    +
    42  "Variable templates not supported on this compiler.");
    +
    43 };
    +
    44 
    +
    45 #else
    +
    46 //->
    +
    47 // only available when variable templates are supported
    +
    48 template<typename T>
    +
    49 //<-
    + +
    51 //->
    +
    52 constexpr bool has_member_qualifiers_v = //see below
    +
    53 //<-
    +
    54  detail::traits<detail::shallow_decay<T>>::has_member_qualifiers::value;
    +
    55 
    +
    56 #endif
    +
    57 
    +
    58 }} // namespace boost::callable_traits
    +
    59 //->
    +
    60 
    +
    61 /*`
    +
    62 [heading Constraints]
    +
    63 * none
    +
    64 
    +
    65 [heading Behavior]
    +
    66 * `std::false_type` is inherited by `has_member_qualifiers<T>` and is aliased by `typename has_member_qualifiers<T>::type`, except when one of the following criteria is met, in which case `std::true_type` would be similarly inherited and aliased:
    +
    67  * `T` is a function with member qualifiers
    +
    68  * `T` is a member function pointer with member qualifiers
    +
    69  * `T` is a function object with a member-qualified `operator()`
    +
    70 * On compilers that support variable templates, `has_member_qualifiers_v<T>` is equivalent to `has_member_qualifiers<T>::value`.
    +
    71 
    +
    72 [heading Input/Output Examples]
    +
    73 [table
    +
    74  [[`T`] [`has_member_qualifiers_v<T>`]]
    +
    75  [[`void() const`] [`true`]]
    +
    76  [[`void() const transaction_safe`] [`true`]]
    +
    77  [[`void() volatile &&`] [`true`]]
    +
    78  [[`int(foo::*)() &`] [`true`]]
    +
    79  [[`void(foo::*)() const`] [`true`]]
    +
    80  [[`void(foo::*&)() const`] [`true`]]
    +
    81  [[`void(foo::* const)() const`] [`true`]]
    +
    82  [[`void()`] [`false`]]
    +
    83  [[`void() transaction_safe`] [`false`]]
    +
    84  [[`void(*)()`] [`false`]]
    +
    85  [[`void(*&)()`] [`false`]]
    +
    86  [[`int`] [`false`]]
    +
    87  [[`const int`] [`false`]]
    +
    88  [[`int foo::*`] [`false`]]
    +
    89  [[`const int foo::*`] [`false`]]
    +
    90 ]
    +
    91 
    +
    92 [heading Example Program]
    +
    93 [import ../example/has_member_qualifiers.cpp]
    +
    94 [has_member_qualifiers]
    +
    95 [endsect]
    +
    96 */
    +
    97 //]
    +
    98 
    +
    99 #endif //BOOST_CLBL_TRTS_HAS_MEMBER_QUALIFIERS_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_member_qualifiers_v
    + + +
    typename detail::traits< detail::shallow_decay< T > >::has_member_qualifiers type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/has__varargs_8hpp.html b/dox-master/has__varargs_8hpp.html new file mode 100644 index 000000000..ad40f9dc6 --- /dev/null +++ b/dox-master/has__varargs_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/has_varargs.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    has_varargs.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::has_varargs< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_varargs_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/has__varargs_8hpp_source.html b/dox-master/has__varargs_8hpp_source.html new file mode 100644 index 000000000..c757c246a --- /dev/null +++ b/dox-master/has__varargs_8hpp_source.html @@ -0,0 +1,228 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/has_varargs.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    has_varargs.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_HAS_VARARGS_HPP
    +
    10 #define BOOST_CLBL_TRTS_HAS_VARARGS_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ has_varargs_hpp
    +
    17 /*`[section:ref_has_varargs has_varargs]
    +
    18 [heading Header]
    +
    19 ``#include <boost/callable_traits/has_varargs.hpp>``
    +
    20 [heading Definition]
    +
    21 */
    +
    22 
    +
    23 
    +
    24 // inherits from either std::true_type or std::false_type
    +
    25 template<typename T>
    +
    26 struct has_varargs;
    +
    27 
    +
    28 //<-
    +
    29 template<typename T>
    + +
    31  detail::shallow_decay<T>>::has_varargs {
    +
    32 
    +
    33  using type = typename detail::traits<
    + +
    35 };
    +
    36 
    +
    37 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    38 
    +
    39 template<typename T>
    +
    40 struct has_varargs_v {
    +
    41  static_assert(std::is_same<T, detail::dummy>::value,
    +
    42  "Variable templates not supported on this compiler.");
    +
    43 };
    +
    44 
    +
    45 #else
    +
    46 //->
    +
    47 // only available when variable templates are supported
    +
    48 template<typename T>
    +
    49 //<-
    + +
    51 //->
    +
    52 constexpr bool has_varargs_v = //see below
    +
    53 //<-
    +
    54  detail::traits<detail::shallow_decay<T>>::has_varargs::value;
    +
    55 
    +
    56 #endif
    +
    57 
    +
    58 }} // namespace boost::callable_traits
    +
    59 //->
    +
    60 
    +
    61 /*`
    +
    62 [heading Constraints]
    +
    63 * none
    +
    64 
    +
    65 [heading Behavior]
    +
    66 * `std::false_type` is inherited by `has_varargs<T>` and is aliased by `typename has_varargs<T>::type`, except when one of the following criteria is met, in which case `std::true_type` would be similarly inherited and aliased:
    +
    67  * `T` is a function, function pointer, or function reference where the function's parameter list includes C-style variadics.
    +
    68  * `T` is a pointer to a member function with C-style variadics in the parameter list.
    +
    69  * `T` is a function object with a non-overloaded `operator()`, which has C-style variadics in the parameter list of its `operator()`.
    +
    70 * On compilers that support variable templates, `has_varargs_v<T>` is equivalent to `has_varargs<T>::value`.
    +
    71 
    +
    72 [heading Input/Output Examples]
    +
    73 [table
    +
    74  [[`T`] [`has_varargs_v<T>`]]
    +
    75  [[`void(...)`] [`true`]]
    +
    76  [[`void(int, ...) const`] [`true`]]
    +
    77  [[`void(* volatile)(...)`] [`true`]]
    +
    78  [[`void(&)(...)`] [`true`]]
    +
    79  [[`void(foo::*)(...) const`] [`true`]]
    +
    80  [[`void(*)()`] [`false`]]
    +
    81  [[`void(*&)()`] [`false`]]
    +
    82  [[`int`] [`false`]]
    +
    83  [[`const int`] [`false`]]
    +
    84  [[`int foo::*`] [`false`]]
    +
    85 ]
    +
    86 
    +
    87 [heading Example Program]
    +
    88 [import ../example/has_varargs.cpp]
    +
    89 [has_varargs]
    +
    90 [endsect]
    +
    91 */
    +
    92 //]
    +
    93 
    +
    94 #endif
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_varargs_v
    Definition: has_varargs.hpp:52
    + + +
    typename detail::traits< detail::shallow_decay< T > >::has_varargs type
    Definition: has_varargs.hpp:34
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/has__void__return_8hpp.html b/dox-master/has__void__return_8hpp.html new file mode 100644 index 000000000..98c245645 --- /dev/null +++ b/dox-master/has__void__return_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/has_void_return.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    has_void_return.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::has_void_return< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_void_return_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/has__void__return_8hpp_source.html b/dox-master/has__void__return_8hpp_source.html new file mode 100644 index 000000000..1ceb85a8e --- /dev/null +++ b/dox-master/has__void__return_8hpp_source.html @@ -0,0 +1,227 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/has_void_return.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    has_void_return.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_HAS_VOID_RETURN_HPP
    +
    10 #define BOOST_CLBL_TRTS_HAS_VOID_RETURN_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ has_void_return_hpp
    +
    17 /*`[section:ref_has_void_return has_void_return]
    +
    18 [heading Header]
    +
    19 ``#include <boost/callable_traits/has_void_return.hpp>``
    +
    20 [heading Definition]
    +
    21 */
    +
    22 
    +
    23 // inherits from either std::true_type or std::false_type
    +
    24 template<typename T>
    +
    25 struct has_void_return;
    +
    26 
    +
    27 //<-
    +
    28 template<typename T>
    + +
    30  : std::is_same<typename detail::traits<
    +
    31  detail::shallow_decay<T>>::return_type, void> {};
    +
    32 
    +
    33 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    34 
    +
    35 template<typename T>
    +
    36 struct has_void_return_v {
    +
    37  static_assert(std::is_same<T, detail::dummy>::value,
    +
    38  "Variable templates not supported on this compiler.");
    +
    39 };
    +
    40 
    +
    41 #else
    +
    42 //->
    +
    43 
    +
    44 // only available when variable templates are supported
    +
    45 template<typename T>
    +
    46 //<-
    + +
    48 //->
    +
    49 constexpr bool has_void_return_v = //see below
    +
    50 //<-
    +
    51  std::is_same<typename detail::traits<
    + +
    53 
    +
    54 #endif
    +
    55 
    +
    56 }} // namespace boost::callable_traits
    +
    57 //->
    +
    58 
    +
    59 
    +
    60 /*`
    +
    61 [heading Constraints]
    +
    62 * none
    +
    63 
    +
    64 [heading Behavior]
    +
    65 * `std::false_type` is inherited by `has_void_return<T>` and is aliased by `typename has_void_return<T>::type`, except when one of the following criteria is met, in which case `std::true_type` would be similarly inherited and aliased:
    +
    66  * `T` is a function, function pointer, or function reference where the function's return type is `void`.
    +
    67  * `T` is a pointer to a member function whose return type is `void`.
    +
    68  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` function returns `void`.
    +
    69 * On compilers that support variable templates, `has_void_return_v<T>` is equivalent to `has_void_return<T>::value`.
    +
    70 
    +
    71 [heading Input/Output Examples]
    +
    72 [table
    +
    73  [[`T`] [`has_void_return_v<T>`]]
    +
    74  [[`void()`] [`true`]]
    +
    75  [[`void(int) const`] [`true`]]
    +
    76  [[`void(* const &)()`] [`true`]]
    +
    77  [[`void(&)()`] [`true`]]
    +
    78  [[`void(foo::*)() const`] [`true`]]
    +
    79  [[`int(*)()`] [`false`]]
    +
    80  [[`int(*&)()`] [`false`]]
    +
    81  [[`int`] [`false`]]
    +
    82  [[`int foo::*`] [`false`]]
    +
    83  [[`void* foo::*`] [`false`]]
    +
    84 ]
    +
    85 
    +
    86 [heading Example Program]
    +
    87 [import ../example/has_void_return.cpp]
    +
    88 [has_void_return]
    +
    89 [endsect]
    +
    90 */
    +
    91 //]
    +
    92 
    +
    93 #endif
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_void_return_v
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/hash_8h.html b/dox-master/hash_8h.html new file mode 100644 index 000000000..b5e0090b9 --- /dev/null +++ b/dox-master/hash_8h.html @@ -0,0 +1,190 @@ + + + + + + + + + + + ttg: ttg/ttg/util/hash.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    hash.h File Reference
    +
    +
    +
    #include <cstddef>
    +#include <cstdint>
    +#include "ttg/util/void.h"
    +#include "ttg/util/hash/std/pair.h"
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    class  ttg::detail::FNVhasher
     byte-wise hasher More...
     
    struct  ttg::detail::hash_combine_impl
     combines 2 hash values; implementation based on boost::hash_combine_impl<64> from Boost v1.79.0 More...
     
    struct  ttg::meta::has_member_function_hash< T, Enabler >
     
    struct  ttg::meta::has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> >
     
    struct  ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >
     instantiation of hash for types which have member function hash() that returns More...
     
    struct  ttg::overload::hash< void, void >
     instantiation of hash for void More...
     
    struct  ttg::overload::hash< Void, void >
     instantiation of hash for Void More...
     
    struct  ttg::meta::has_ttg_hash_specialization< T, Enabler >
     
    struct  ttg::meta::has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> >
     
    + + + + + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
     ttg::meta
     
     ttg::overload
     place for overloading/instantiating hash and other functionality
     
    + + + + +

    +Functions

    template<class T >
    void ttg::hash_combine (std::size_t &seed, T const &v)
     
    + + + + + + + +

    +Variables

    template<typename T >
    constexpr bool ttg::meta::has_member_function_hash_v = has_member_function_hash<T>::value
     
    template<typename T >
    constexpr bool ttg::meta::has_ttg_hash_specialization_v = has_ttg_hash_specialization<T>::value
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/hash_8h_source.html b/dox-master/hash_8h_source.html new file mode 100644 index 000000000..e37229937 --- /dev/null +++ b/dox-master/hash_8h_source.html @@ -0,0 +1,285 @@ + + + + + + + + + + + ttg: ttg/ttg/util/hash.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    hash.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_UTIL_HASH_H
    +
    2 #define TTG_UTIL_HASH_H
    +
    3 
    +
    4 #include <cstddef>
    +
    5 #include <cstdint>
    +
    6 
    +
    7 #include "ttg/util/void.h"
    +
    8 
    +
    9 namespace ttg {
    +
    10  namespace detail {
    +
    12  class FNVhasher {
    +
    13  // https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function
    +
    14  using result_type = std::size_t;
    +
    15  static const result_type offset_basis = 14695981039346656037ul;
    +
    16  static const result_type prime = 1099511628211ul;
    +
    17  result_type value_ = offset_basis;
    +
    18 
    +
    19  public:
    +
    22  void update(std::byte byte) noexcept { value_ = (value_ ^ static_cast<uint_fast8_t>(byte)) * prime; }
    +
    23 
    +
    25  void update(size_t n, const std::byte* bytes) noexcept {
    +
    26  for (size_t i = 0; i < n; i++) update(bytes[i]);
    +
    27  }
    +
    28 
    +
    30  auto value() const noexcept { return value_; }
    +
    31 
    +
    33  static result_type initial_value() { return offset_basis; }
    +
    34  };
    +
    35 
    + +
    38  static_assert(sizeof(std::size_t) == sizeof(std::uint64_t));
    +
    39 
    +
    40  inline static std::size_t fn(std::size_t h, std::size_t k) {
    +
    41  const std::size_t m = (std::size_t(0xc6a4a793) << 32) + 0x5bd1e995;
    +
    42  const int r = 47;
    +
    43 
    +
    44  k *= m;
    +
    45  k ^= k >> r;
    +
    46  k *= m;
    +
    47 
    +
    48  h ^= k;
    +
    49  h *= m;
    +
    50 
    +
    51  // Completely arbitrary number, to prevent 0's
    +
    52  // from hashing to 0.
    +
    53  h += 0xe6546b64;
    +
    54 
    +
    55  return h;
    +
    56  }
    +
    57  };
    +
    58 
    +
    59  } // namespace detail
    +
    60 
    +
    61  namespace meta {
    +
    63  // has_member_function_hash_v<T> evaluates to true if T::hash() is defined
    +
    65  template <typename T, typename Enabler = void>
    +
    66  struct has_member_function_hash : std::false_type {};
    +
    67  template <typename T>
    +
    68  struct has_member_function_hash<T, std::void_t<decltype(std::declval<const T&>().hash())>> : std::true_type {};
    +
    69  template <typename T>
    + +
    71  } // namespace meta
    +
    72 
    +
    74  namespace overload {
    +
    75 
    +
    77 
    +
    80  template <typename T, typename Enabler = void>
    +
    81  struct hash;
    +
    82 
    +
    84  template <typename T>
    +
    85  struct hash<T, std::enable_if_t<meta::has_member_function_hash_v<T>>> {
    +
    86  auto operator()(const T& t) const { return t.hash(); }
    +
    87  };
    +
    88 
    +
    90  template <>
    +
    91  struct hash<void, void> {
    +
    92  auto operator()() const { return detail::FNVhasher::initial_value(); }
    +
    93  // convenient to be able to hash Void using hash<void>
    +
    94  auto operator()(const ttg::Void&) const { return operator()(); }
    +
    95  };
    +
    96 
    +
    98  template <>
    +
    99  struct hash<Void, void> {
    +
    100  auto operator()(const ttg::Void&) const { return hash<void>{}(); }
    +
    101  };
    +
    102 
    +
    104  template <typename T>
    +
    105  struct hash<T, std::enable_if_t<std::is_integral_v<std::decay_t<T>> && sizeof(T) <= sizeof(std::size_t), void>> {
    +
    106  auto operator()(T t) const { return static_cast<std::size_t>(t); }
    +
    107  };
    +
    108 
    +
    111  template <typename T>
    +
    112  struct hash<
    +
    113  T, std::enable_if_t<!(std::is_integral_v<std::decay_t<T>> && sizeof(T) <= sizeof(std::size_t)) &&
    +
    114  !(meta::has_member_function_hash_v<T>)&&std::has_unique_object_representations_v<T>,
    +
    115  void>> {
    +
    116  auto operator()(const T& t) const {
    +
    117  detail::FNVhasher hasher;
    +
    118  hasher.update(sizeof(T), reinterpret_cast<const std::byte*>(&t));
    +
    119  return hasher.value();
    +
    120  }
    +
    121  };
    +
    122 
    +
    124  template <typename T, typename Enabler>
    +
    125  struct hash {
    +
    126  constexpr static bool NEED_TO_PROVIDE_SPECIALIZATION_OF_TTG_OVERLOAD_HASH_FOR_THIS_TYPE = !std::is_same_v<T, T>;
    +
    127  static_assert(NEED_TO_PROVIDE_SPECIALIZATION_OF_TTG_OVERLOAD_HASH_FOR_THIS_TYPE);
    +
    128  };
    +
    129  } // namespace overload
    +
    130 
    +
    131  using namespace ttg::overload;
    +
    132 
    +
    133  namespace meta {
    +
    135  // has_ttg_hash_specialization_v<T> evaluates to true if ttg::hash<T> is defined
    +
    137  template <typename T, typename Enabler = void>
    +
    138  struct has_ttg_hash_specialization : std::false_type {};
    +
    139  template <typename T>
    + +
    141  T, ttg::meta::void_t<decltype(std::declval<ttg::hash<T>>()(std::declval<const T&>()))>> : std::true_type {};
    +
    142  template <typename T>
    + +
    144  } // namespace meta
    +
    145 
    +
    146  template <class T>
    +
    147  inline void hash_combine(std::size_t& seed, T const& v) {
    +
    148  ttg::hash<T> hasher;
    +
    149  seed = detail::hash_combine_impl::fn(seed, hasher(v));
    +
    150  }
    +
    151 
    +
    152 } // namespace ttg
    +
    153 
    +
    154 
    +
    155 #include "ttg/util/hash/std/pair.h"
    +
    156 
    +
    157 #endif // TTG_UTIL_HASH_H
    +
    A complete version of void.
    Definition: void.h:11
    +
    byte-wise hasher
    Definition: hash.h:12
    +
    void update(size_t n, const std::byte *bytes) noexcept
    Updates the hash with an additional n bytes.
    Definition: hash.h:25
    +
    static result_type initial_value()
    Definition: hash.h:33
    +
    auto value() const noexcept
    Definition: hash.h:30
    +
    void update(std::byte byte) noexcept
    Definition: hash.h:22
    +
    unsigned char byte
    Definition: span.h:137
    +
    constexpr bool has_member_function_hash_v
    Definition: hash.h:70
    +
    void void_t
    Definition: meta.h:23
    +
    constexpr bool has_ttg_hash_specialization_v
    Definition: hash.h:143
    +
    place for overloading/instantiating hash and other functionality
    Definition: pair.h:8
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    void hash_combine(std::size_t &seed, T const &v)
    Definition: hash.h:147
    +
    combines 2 hash values; implementation based on boost::hash_combine_impl<64> from Boost v1....
    Definition: hash.h:37
    +
    static std::size_t fn(std::size_t h, std::size_t k)
    Definition: hash.h:40
    + + + +
    auto operator()(const ttg::Void &) const
    Definition: hash.h:100
    +
    auto operator()(const ttg::Void &) const
    Definition: hash.h:94
    + +
    Computes hash values for objects of type T.
    Definition: hash.h:81
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/hierarchy.html b/dox-master/hierarchy.html new file mode 100644 index 000000000..83516357e --- /dev/null +++ b/dox-master/hierarchy.html @@ -0,0 +1,596 @@ + + + + + + + + + + + ttg: Class Hierarchy + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Class Hierarchy
    +
    +
    +
    This inheritance list is sorted roughly, but not completely, alphabetically:
    +
    [detail level 123]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     CAllocator
     Cboost::callable_traits::detail::args_impl< T, std::tuple >
     CBase
     Cboost::archive::binary_iarchive_impl
     Cboost::archive::binary_oarchive_impl
     Cboost::callable_traits::add_noexcept< T >
     Cboost::callable_traits::add_noexcept_t< T >
     Cboost::callable_traits::add_transaction_safe< T >
     Cboost::callable_traits::add_transaction_safe_t< T >
     Cboost::callable_traits::detail::add_member_const_impl< T, typename >
     Cboost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::add_member_cv_impl< T, typename >
     Cboost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename >
     Cboost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename >
     Cboost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::add_member_volatile_impl< T, typename >
     Cboost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::add_varargs_impl< T, typename >
     Cboost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::apply_member_pointer_impl< T, C, typename >
     Cboost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >
     Cboost::callable_traits::detail::apply_return_helper< T, R >
     Cboost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R >
     Cboost::callable_traits::detail::apply_return_impl< T, R, typename >
     Cboost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >
     Cboost::callable_traits::detail::args_impl< T, Container, typename >
     Cboost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >
     Cboost::callable_traits::detail::callable_dummy
     Cboost::callable_traits::detail::can_dereference_t< T >
     Cboost::callable_traits::detail::can_dereference_t< T >::check< typename >
     Cboost::callable_traits::detail::cdecl_tag
     Cboost::callable_traits::detail::class_of_impl< T, typename >
     Cboost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::concat< typename, typename >
     Cboost::callable_traits::detail::default_callable_traits< T >
     Cboost::callable_traits::detail::dummy
     Cboost::callable_traits::detail::fail< FailMsg, ForceTwoPhaseLookup >
     Cboost::callable_traits::detail::fastcall_tag
     Cboost::callable_traits::detail::flag_map< T >
     Cboost::callable_traits::detail::flag_map< T & >
     Cboost::callable_traits::detail::flag_map< T && >
     Cboost::callable_traits::detail::flag_map< T const & >
     Cboost::callable_traits::detail::flag_map< T const && >
     Cboost::callable_traits::detail::flag_map< T const >
     Cboost::callable_traits::detail::flag_map< T const volatile & >
     Cboost::callable_traits::detail::flag_map< T const volatile && >
     Cboost::callable_traits::detail::flag_map< T const volatile >
     Cboost::callable_traits::detail::flag_map< T volatile & >
     Cboost::callable_traits::detail::flag_map< T volatile && >
     Cboost::callable_traits::detail::flag_map< T volatile >
     Cboost::callable_traits::detail::force_sfinae< T, Alias, U >
     Cboost::callable_traits::detail::function_type_impl< T, typename >
     Cboost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::generalize_t< T, typename >
     Cboost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > >
     Cboost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >
     Cboost::callable_traits::detail::has_normal_call_operator< T >
     Cboost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value >
     Cboost::callable_traits::detail::index_sequence<... >
     Cboost::callable_traits::detail::invalid_type
     Cboost::callable_traits::detail::is_invocable_impl< T, Args >
     Cboost::callable_traits::detail::is_invocable_impl< void, Args... >
     Cboost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args >
     Cboost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... >
     Cboost::callable_traits::detail::is_reference_wrapper_t< T >
     Cboost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > >
     Cboost::callable_traits::detail::make_member_pointer< T, C, bool >
     Cboost::callable_traits::detail::make_member_pointer< T, C, false >
     Cboost::callable_traits::detail::make_member_pointer< T, C, true >
     Cboost::callable_traits::detail::make_member_pointer< void, C, true >
     Cboost::callable_traits::detail::pascal_tag
     Cboost::callable_traits::detail::qualified_class_of_impl< T, typename >
     Cboost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::reference_error
     Cboost::callable_traits::detail::remove_member_const_impl< T, typename >
     Cboost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::remove_member_cv_impl< T, typename >
     Cboost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::remove_member_reference_impl< T, typename >
     Cboost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::remove_member_volatile_impl< T, typename >
     Cboost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::remove_noexcept_impl< T, typename >
     Cboost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::remove_transaction_safe_impl< T, typename >
     Cboost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::remove_varargs_impl< T, typename >
     Cboost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::return_type_impl< T, typename >
     Cboost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >
     Cboost::callable_traits::detail::set_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >
     Cboost::callable_traits::detail::set_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoExcept, CallingConvention, T, Return, Args >
     Cboost::callable_traits::detail::set_varargs_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >
     Cboost::callable_traits::detail::set_varargs_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, CallingConvention, T, Return, Args >
     Cboost::callable_traits::detail::sfinae_error
     Cboost::callable_traits::detail::stdcall_tag
     Cboost::callable_traits::detail::success< T >
     Cboost::callable_traits::detail::success< T >::_
     Cboost::callable_traits::detail::test_invoke< Traits, bool >
     Cboost::callable_traits::detail::test_invoke< function< F >, true >
     Cboost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >
     Cboost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >
     Cboost::callable_traits::detail::unwrap_reference_t< T, typename >
     Cboost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > >
     Cboost::serialization::unsigned_int
     CCallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_values_typelistT >
     CCallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >
     CCallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
     CCallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_values_tupleT >
     CCallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >
     CCallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
     Cconcat::type
     Cdefault_callable_traits
     Cboost::callable_traits::detail::default_callable_traits< T >
     Cdetail::is_invocable_impl::type
     Cdetail::is_invocable_r_impl::type
     Cdetail::traits::has_member_qualifiers
     Cdetail::traits::has_varargs
     Cdetail::traits::is_const_member
     Cdetail::traits::is_lvalue_reference_member
     Cdetail::traits::is_noexcept
     Cdetail::traits::is_reference_member
     Cdetail::traits::is_rvalue_reference_member
     Cdetail::traits::is_transaction_safe
     Cdetail::traits::is_volatile_member
     Cttg_parsec::detail::device_state_t< TT::derived_has_device_op()>
     Cboost::callable_traits::detail::index_sequence< 0 >
     Cboost::callable_traits::detail::index_sequence< I1...,(sizeof...(I1)+I2)... >
     Cboost::callable_traits::detail::index_sequence<>
     Cintegral_constant
     Cmadness::WorldObject
     Cttg::detail::Traverse::null_visitor< TerminalBase >
     Cttg::detail::Traverse::null_visitor< TTBase >
     Cttg::meta::probe_first< Predicate, Default, Ts... >
     Cttg::meta::probe_last< is_void, false, Ts... >
     Cttg::meta::probe_last< Predicate, Default, Ts... >
     Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     Cset_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     Cset_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     CTCB_SPAN_NAMESPACE_NAME::detail::span_storage< ElementType, Extent >
     Cstd::bool_constant
     Cstd::conditional::type
     Cstd::conditional::type
     Cstd::false_type
     Cstd::hash< ttg::Void >
     Cstd::is_convertible
     Cstd::is_same
     Cstd::streambuf
     Cstd::true_type
     Cstd::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >
     Cstd::tuple_element< I, ttg::meta::typelist< Ts... > >
     Cstd::tuple_size< ttg::meta::typelist< Ts... > >
     CStreamOrStreambuf
     CT
     CTCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U >
     CTCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >
     CTCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >
     CTCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
     CTT
     Cttg::base::World< WorldImplT >
     Cttg::base::WorldImplBaseBase class for implementation-specific Worlds
     Cttg::BinarySpanningTreeBinary spanning tree of integers in the [0,size) interval
     Cttg::coroutine_handle
     Cttg::Debugger
     Cttg::default_data_descriptor< T, Enabler >Provides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor
     Cttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >Default_data_descriptor for trivially-copyable types
     Cttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >Default_data_descriptor for types that support 2-stage serialization (metadata first, then the rest) for implementing zero-copy transfers
     Cttg::detail::Backtrace
     Cttg::detail::ContainerWrapper< keyT, valueT >
     Cttg::detail::ContainerWrapper< keyT, void >
     Cttg::detail::ContainerWrapper< ttg::Void, valueT >
     Cttg::detail::ContainerWrapper< void, valueT >
     Cttg::detail::ContainerWrapper< void, void >
     Cttg::detail::default_keymap_impl< keyT, Enabler >
     Cttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >
     Cttg::detail::default_priomap_impl< keyT >Default priority map implementation
     Cttg::detail::edges_tuple< keyT, valuesT >
     Cttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >
     Cttg::detail::FNVhasherByte-wise hasher
     Cttg::detail::hash_combine_implCombines 2 hash values; implementation based on boost::hash_combine_impl<64> from Boost v1.79.0
     Cttg::detail::input_terminals_tuple< keyT, valuesT >
     Cttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > >
     Cttg::detail::is_boost_array_serializable< Archive, T, Enabler >
     Cttg::detail::MemoryWatchpoint_x86_64MemoryWatchpoint represents a hardware watchpoint for a memory location Implements a memory watchpoint on x86 ... only implemented for macOS so far this is a slightly tweaked version of https://m.habrahabr.ru/post/103073/ see also http://www.sandpile.org/x86/drx.htm for the x86 debugging register map
     Cttg::detail::MemoryWatchpoint_x86_64::PoolSingleton pool of MemoryWatchpoint objects
     Cttg::detail::printer_helper< T, Enabler >
     Cttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >
     Cttg::detail::TraverseTraverses a graph of TTs in depth-first manner following out edges
     Cttg::detail::Traverse::null_visitor< Visitable >
     Cttg::detail::value_copy_handler< Runtime >
     Cttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >
     Cttg::device::DeviceRepresents a device in a specific execution space
     Cttg::Edge< keyT, valueT >Edge is used to connect In and Out terminals
     Cttg::edges_to_output_terminals< edgesT >
     Cttg::edges_to_output_terminals< std::tuple< edgesT... > >
     Cttg::eventGeneric one-time event
     Cttg::iovec
     Cttg::meta::candidate_argument_bindings< T, typename >
     Cttg::meta::candidate_argument_bindings< const void, void >
     Cttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >
     Cttg::meta::candidate_argument_bindings< void, void >
     Cttg::meta::detail::keep_or_drop< bool >
     Cttg::meta::detail::keep_or_drop< false >
     Cttg::meta::drop_first_n< Typelist, N, Enabler >Drops N elements from the front
     Cttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >
     Cttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>
     Cttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >
     Cttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>
     Cttg::meta::drop_last_n< Typelist, N, Enabler >Drops N trailing elements from a typelist
     Cttg::meta::filtered_tuple< Tuple, Predicate >
     Cttg::meta::filtered_tuple< std::tuple< Es... >, Pred >
     Cttg::meta::nonref_tuple< T, Enabler >
     Cttg::meta::nonref_tuple< std::tuple< Ts... > >
     Cttg::meta::probe_first< Predicate, Default, Ts >
     Cttg::meta::probe_last< Predicate, Default, Ts >
     Cttg::meta::take_first_n< Typelist, N >Take first N elements of a type list
     Cttg::meta::take_first_n< std::tuple< Ts... >, N >
     Cttg::meta::take_first_n< typelist< Ts... >, N >
     Cttg::meta::take_first_n_helper< ResultTuple, InputTuple, N, Enabler >
     Cttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >
     Cttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>
     Cttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >
     Cttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>
     Cttg::meta::tuple_concat< TupleTs >
     Cttg::meta::tuple_concat< std::tuple< Ts... > >
     Cttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >
     Cttg::meta::type_identity< T >
     Cttg::meta::typelist< Ts >A container for types
     Cttg::meta::typelist_size< T >
     Cttg::meta::typelist_size< typelist< Ts... > >
     Cttg::meta::typelist_to_tuple< T >
     Cttg::meta::typelist_to_tuple< typelist< T... > >
     Cttg::meta::void_to_Void< T >
     Cttg::meta::void_to_Void< void >
     Cttg::MultiIndex< Rank, Int >
     Cttg::overload::hash< T, Enabler >Computes hash values for objects of type T
     Cttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >
     Cttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >Instantiation of hash for types which have member function hash() that returns
     Cttg::overload::hash< void, void >Instantiation of hash for void
     Cttg::overload::hash< Void, void >Instantiation of hash for Void
     Cttg::resumable_task_events< N >
     Cttg::resumable_task_state
     Cttg::runtime_traits< R >
     Cttg::runtime_traits< Runtime::MADWorld >
     Cttg::runtime_traits< Runtime::PaRSEC >
     Cttg::SplitMetadataDescriptor< T >
     Cttg::TerminalBase
     Cttg::terminals_to_edges< termsT >
     Cttg::terminals_to_edges< std::tuple< termsT... > >
     Cttg::TTBaseA base class for all template tasks
     Cttg::VoidA complete version of void
     Cttg_parsec::detail::ttg_data_copy_container_setter< ttg_data_copy_t >
     Cttg_parsec::detail::ttg_data_copy_container_setter< ttg_parsec::detail::ttg_data_copy_t >
     Cttg_data_descriptor
     Cttg_madness::devicescratch< T >
     Cttg_madness::Ptr< T >
     Cttg_madness::TTValue< DerivedT >
     Cttg_parsec::detail::device_ptr_t
     Cttg_parsec::detail::device_state_t< SupportDevice >
     Cttg_parsec::detail::device_state_t< true >
     Cttg_parsec::detail::msg_t
     Cttg_parsec::detail::parsec_ttg_task_base_t
     Cttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t
     Cttg_parsec::detail::ParsecTTBase
     Cttg_parsec::detail::persistent_value_ref< ValueT >
     Cttg_parsec::detail::ptr_impl
     Cttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >
     Cttg_parsec::detail::ttg_data_copy_container_setter< T >
     Cttg_parsec::detail::ttg_data_copy_self_t
     Cttg_parsec::detail::ttg_parsec_data_wrapper_t
     Cttg_parsec::devicescratch< T >
     Cttg_parsec::msg_header_t
     Cttg_parsec::Ptr< T >
     Cttg_parsec::ptr< T >
     Cttg::base::World< TTG_IMPL_NS::WorldImpl >
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/impl__selector_8h.html b/dox-master/impl__selector_8h.html new file mode 100644 index 000000000..09fc47ca6 --- /dev/null +++ b/dox-master/impl__selector_8h.html @@ -0,0 +1,126 @@ + + + + + + + + + + + ttg: ttg/ttg/impl_selector.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    impl_selector.h File Reference
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/impl__selector_8h_source.html b/dox-master/impl__selector_8h_source.html new file mode 100644 index 000000000..b71e671b9 --- /dev/null +++ b/dox-master/impl__selector_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: ttg/ttg/impl_selector.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    impl_selector.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_IMPL_SELECTOR_H
    +
    2 #define TTG_IMPL_SELECTOR_H
    +
    3 
    +
    9 /* Error if >1 or 0 backends were selected */
    +
    10 #if (defined(TTG_USE_MADNESS) && defined(TTG_USE_PARSEC)) || !(defined(TTG_USE_MADNESS) || defined(TTG_USE_PARSEC))
    +
    11 #error \
    +
    12  "One default implementation must be selected! "\
    +
    13  "Please select either the PaRSEC backend (TTG_USE_PARSEC) or the MADNESS backend (TTG_USE_MADNESS)"
    +
    14 #endif
    +
    15 
    +
    16 #if defined(TTG_USE_PARSEC)
    +
    17 #include "parsec/import.h"
    +
    18 #elif defined(TTG_USE_MADNESS)
    +
    19 #include "madness/import.h"
    +
    20 #endif // TTG_USE_PARSEC|MADNESS
    +
    21 
    +
    22 #endif // TTG_IMPL_SELECTOR_H
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/index.html b/dox-master/index.html new file mode 100644 index 000000000..ff839c4d5 --- /dev/null +++ b/dox-master/index.html @@ -0,0 +1,331 @@ + + + + + + + + + + + ttg: Main Page + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ttg Documentation
    +
    +
    +

    Build Status

    +

    TTG

    +

    This is the C++ API for the Template Task Graph (TTG) programming model for flowgraph-based composition of high-performance algorithms executable on distributed heterogeneous computer platforms. The TTG API abstracts out the details of the underlying task and data flow runtime; the current realization is implemented using MADNESS and PaRSEC runtimes as backends.

    +

    Why TTG?

    +
      +
    • TTG marries the idea of flowgraph programming models with the key innovations in the PARSEC runtime for compact specification of DAGs (PTG).
    • +
    • TTG can be used to efficiently compose and execute irregular computation patterns which are poorly served by the current programming and execution models.
    • +
    • TTG has strong support for distributed hybrid architectures for running modern scientific algorithms efficiently on current and near-future supercomputers.
    • +
    +

    Installation

    +
      +
    • To try out TTG in a Docker container, install Docker, then execute bin/docker-build.sh and follow instructions in bin/docker.md;
    • +
    • See INSTALL.md to learn how to build and install TTG.
    • +
    +

    A Short Intro to TTG

    +

    TL;DR: A "Hello, World" TTG Program

    +

    helloworld.cpp

    #include <ttg.h>
    +
    +
    int main(int argc, char *argv[]) {
    +
    ttg::initialize(argc, argv);
    +
    +
    auto tt = ttg::make_tt([]() { std::cout << "Hello, World!"; });
    +
    + + +
    if (ttg::get_default_world().rank() == 0) tt->invoke();
    + +
    + +
    return 0;
    +
    }
    +
    int main(int argc, char **argv)
    Definition: distributed.cc:31
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    int rank(World world=default_execution_context())
    Definition: run.h:85
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +

    CMakeLists.txt

    cmake_minimum_required(VERSION 3.19)
    +
    project(TTG-HW CXX)
    +
    +
    find_package(ttg QUIET) # check if TTG is already available
    +
    if (NOT TARGET ttg-parsec) # else build from source
    +
    include(FetchContent)
    +
    FetchContent_Declare(ttg GIT_REPOSITORY https://github.com/TESSEorg/ttg.git)
    +
    FetchContent_MakeAvailable( ttg )
    +
    endif()
    +
    +
    add_executable(hw-parsec helloworld.cpp)
    +
    target_link_libraries(hw-parsec PRIVATE ttg-parsec)
    +
    target_compile_definitions(hw-parsec PRIVATE TTG_USE_PARSEC=1)
    +

    Configure + build:

    > cmake -S . -B build && cmake --build build --target hw-parsec
    +

    "Hello, World!" Walkthrough

    +

    Although it does not involve any useful flow of computation and/or data, the above "Hello, World!" TTG program introduces several key TTG concepts and illustrates what you need to do to write a complete TTG program. So let's walk through it.

    +

    Programming Model

    +

    The basic model of computation is built around a Template Task Graph (TTG). A TTG consists of one or more connected Template Task (TT) objects. Each message that travels between TTs consist of a (potentially void) task ID and (optional) datum. A TT creates a task for a given task ID when its every input terminal receives a message with that task ID. The task body can send data to zero or more of the output terminals defined for the corresponding TT.

    +

    Thus, task creation is a byproduct of messages traveling through one or more TTGs. What makes the model powerful is the ability to encode large DAGs of tasks compactly.

    +

    Before proceeding further, let's refine the few concepts used to define the programming model above:

      +
    • TaskId (aka Key): A unique identifier for each task. It must be perfectly hashable.
    • +
    • Terminal: A port for receiving (input) and sending (output) messages. Each message consists of a (potentially void) TaskId and an (optional) datum. Terminals are strongly-typed. An {in,out}put terminal can be connected to one or more {out,in}put terminal (as long as the TaskId and datum types match). Input terminals are programmable (e.g., incoming messages can be optionally reduced).
    • +
    • TemplateTask (aka TT): This is a template for creating tasks. Task template creates a task associated with a given TaskId when every input terminal received messages for the given TaskId.
    • +
    • Edge: A connection between an input terminal and an output terminal. N.B. Concept Edge denotes a 1-to-1 connection and exists to be able to think of TTGs as graphs ("data flows between TTs' terminals via Edges"); do not confuse with the TTG C++ class Edge which behaves like a hyperedge by composing 1-to-many and many-to-1 connections between terminals.
    • +
    +

    Due to its simplicity only template tasks appear in the "Hello, World!" program.

    +

    Structure of a Minimal TTG Program

    +

    Every TTG program must:

      +
    • select the TTG backend,
    • +
    • initialize the TTG runtime,
    • +
    • construct a TTG by declaring its constituent nodes,
    • +
    • make TTG executable and kickstart the execution by sending a control or data message to the TTG,
    • +
    • shut down the runtime
    • +
    +

    Let's go over each of these steps using the "Hello, World!" example.

    +

    Select the TTG Backend

    +

    TTG C++ implementation is currently supported by 2 backends providing task scheduling, data transfer, and resource management. While it is possible to use specific TTG backend explicitly, by using the appropriate namespaces, it is recommended to write backend-neutral programs that can be specialized to a particular backend as follows.

      +
    1. By defining one (and only one) of the following macros, via the command-line argument to the compiler (recommended) or as an explicit #define statement in the source code:

        +
      • TTG_USE_PARSEC: selects the PaRSEC backend as the default;
      • +
      • TTG_USE_MADNESS: selects the MADNESS backend as the default (expert-use only).
      • +
      +

      Following the definition of this macro it is safe to include the top-level TTG header file:

      #include <ttg.h>
      +
    2. +
    3. By including the corresponding backend-specific header directly:

      +

      This approach does not require inclusion of the top-level TTG header or definition of a backend selection macro.

      +
    4. +
    +

    Initialize

    +

    To initialize TTG runtime invoke ttg::initialize(argc, argv); there are several overloads of this function that also accept other optional parameters, such as the number of threads in the main thread pool, the MPI communicator for execution, etc.

    +

    Specify a TTG

    +

    To make a TTG create and connect one or more TTs. The simplest TTG consists of a single TT.

    +

    The "Hello, World!" example contains a single TT that executes a single task (hence, task ID can be omitted, i.e., void) that does not take and produce any data. The easiest way to make such a TT is by wrapping a callable (e.g., a lambda) with ttg::make_tt:

    auto tt = ttg::make_tt([]() { std::cout << "Hello, World!"; });
    +

    Execute TTG

    +

    To execute a TTG we must make it executable (this will declare the TTG complete). To execute the TTG its root TT must receive at least one message; since in this case the task does not receive either task ID or data the message is empty (i.e., void):

    + + +
    tt->invoke();
    +

    Note that we must ensure that only one such message must be generated. Since TTG execution uses the Single Program Multiple Data (SPMD) model, when launching the TTG program as multiple processes only the first process (rank) gets to send the message.

    +

    Finalize TTG

    +

    Since TTG program is executed asynchronously, we must ensure that all tasks are finished:

    Before exiting main() the TTG runtime should be finalized:

    Beyond "Hello, World!"

    +

    Since "Hello, World!" consists of a single task it does not demonstrate either how to control scheduling of multiple tasks or enable data flow between tasks. Let's use computation of Nth Fibonacci number as a simple example of a recursive task-based computation that is often used (OpenMP, TBB, Legion, Cilk) to illustrate basic features of task-based programming models. Although the example lacks opportunity for parallelism, the point here is not performance but its simplicity.

    +

    Example: Nth Fibonacci Number

    +

    This example illustrates how to compute a particular element of the Fibonacci sequence defined by recurrence .

    +

    nth-fibonacci.cpp

    #include <ttg.h>
    +
    +
    int main(int argc, char *argv[]) {
    +
    ttg::initialize(argc, argv);
    +
    +
    const int64_t N = 20;
    +
    ttg::Edge<int64_t, int64_t> f2f_nm1, f2f_nm2;
    + +
    auto fib = ttg::make_tt(
    +
    [=](int64_t n, int64_t F_nm1, int64_t F_nm2) {
    +
    auto F_n = F_nm1 + F_nm2;
    +
    if (n < N) {
    +
    ttg::send<0>(n + 1, F_n);
    +
    ttg::send<1>(n + 1, F_nm1);
    +
    } else
    +
    ttg::sendv<2>(F_n);
    +
    },
    +
    ttg::edges(f2f_nm1, f2f_nm2), ttg::edges(f2f_nm1, f2f_nm2, f2p),
    +
    "fib");
    +
    auto print = ttg::make_tt([](int64_t F_N) { std::cout << N << "th Fibonacci number is " << F_N << std::endl; },
    +
    ttg::edges(f2p),
    + +
    "print");
    +
    + + +
    if (ttg::rank() == 0) fib->invoke(2, std::make_tuple(1, 0));
    + +
    + +
    return 0;
    +
    }
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    +

    The TTG consists of 2 TTs, one (fib) that implements the Fibonacci recurrence and another (print) that prints the result to std::cout:

      +
    • fib computes from and and either sends and to the next (n+1) instance of fib, or, if n==N, sends to print. Thus fib needs 2 input terminals and 3 output terminals (for better efficiency instead of sending individual Fibonacci numbers, each over an individual edge, it is better to send a pair of Fibonacci numbers over a single edge).
    • +
    • print receives a single unannotated datum and produces no data, so it needs a single input terminal and no output terminals.
    • +
    +

    Execution of the program starts by explicitly instantiating fib for n=2. In total 20 tasks will be executed: 19 instances of fib with n=2..20 and the single instance of print.

    +

    Note that unlike typical task-based implementations in the literature which construct tasks recursively, i.e., the task for computing is created before the task computing , the TTG implementation constructs the tasks in the order of increasing n. This is because parametric dataflow of TTG naturally expresses inductive (push) computation patterns rather than recursive (pull) computation patterns. However, it is easy to implement proper recursion by separating the downward flow of control (task creation, ) from the upward flow of data (task evaluation, ).

    +

    Debugging TTG Programs

    +

    TTG Visualization

    +

    TTGs can be exported in the DOT format as follows:

    +
    std::cout << ttg::Dot()(tt.get()) << std::endl;
    +
    Prints the graph to a std::string in the format understood by GraphViz's dot program.
    Definition: dot.h:13
    +

    Use GraphViz to visualize the resulting graph.

    +

    Task Graph Visualization

    +

    Exporting the DAG of tasks resulting from execution of a TTG will be possible as soon as PR 227 has been merged.

    +

    Launching a Debugger

    +

    To simplify debugging of multirank TTG programs it is possible to automate the process as follows:

      +
    • If an X11 server is running (check if environment variable DISPLAY is set), then set environment variable TTG_DEBUGGER to {gdb_xterm,lldb_xterm} to launch {gdb,lldb} upon receiving a signal like SIGSEGV or SIGABRT (one xterm window per rank will be created);
    • +
    • If an X11 server is not running the set TTG_DEBUGGER to empty value; upon receiving a signal the program will print instructions for how to attach a debugger to a running process from another terminal.
    • +
    • run the ttg program and if it receives any signal the xterm windows should pop up to display debugging results
    • +
    +

    TTG Performance

    +

    Competitive performance of TTG for several paradigmatic scientific applications on shared- and distributed-memory machines (CPU only) will be discussed in manuscript `‘Generalized Flow-Graph Programming Using Template Task-Graphs: Initial Implementation and Assessment’' to be presented at IPDPS'22. Stay tuned!

    +

    TTG Performance Tracing

    +

    There are several ways to trace execution of a TTG program. The easiest way is to use the PaRSEC-based TTG backend to produce binary traces in PaRSEC Binary Trace (PBT) format and then convert them to a Chrome Trace Format (CTF) JSON file that can be visuzalized using built-in browser in Chrome browser or using web-based Perfetto trace viewer. To generate the trace results of any TTG program follow the process discussed below:

    +
      +
    • For simplicity we assume here that TTG will build PaRSEC from source. Make sure PaRSEC Python tools prerequisites have been installed, namely Python3 (version 3.8 is recommended) and the following Python packages (e.g., using pip):
        +
      • cython
      • +
      • 2to3
      • +
      • numpy
      • +
      • pandas
      • +
      • tables
      • +
      +
    • +
    • Configure and build TTG:
        +
      • Configure TTG with -DPARSEC_PROF_TRACE=ON (this turns on PaRSEC task tracing) and -DBUILD_SHARED_LIBS=ON (to support PaRSEC Python tools). Also make sure that CMake discovers the Python3 interpreter and the cython package.
      • +
      • Build and install TTG
      • +
      +
    • +
    • Build the TTG program to be traced.
    • +
    • Run the TTG program with tracing turned on:
        +
      • Create file ${HOME}/.parsec/mca-params.conf and add line mca_pins = task_profiler to it
      • +
      • Set the environment variable PARSEC_MCA_profile_filename to the PBT file name prefix, e.g. /tmp/ttg.
      • +
      • Run the program and make sure the trace files (in PBT format) have been generated; e.g., if you set PARSEC_MCA_profile_filename to /tmp/ttg you should find file /tmp/ttg-0.prof-... containing the trace from MPI rank 0, /tmp/ttg-1.prof-... from rank 1, and so on.
      • +
      +
    • +
    • Convert the traces from PaRSEC Binary Trace (PBT) format to the Chrome Trace Format (CTF):
        +
      • Add {TTG build directory}/_deps/parsec-build/tools/profiling/python/build/{lib folder for your version of Python} (currently it is not possible to use PaRSEC Python module from the install tree, only from its build tree) to the PYTHONPATH environment variable so that the Python interpreter can find the modules for reading the PaRSEC trace files.
      • +
      • Convert the PBT files to a CTF file by running the conversion script:
        {TTG install prefix}/bin/pbt_to_ctf.py {PBT file name prefix} {CTF filename}
        +
      • +
      +
    • +
    • Open the chrome://tracing URL in the Chrome browser and load the resulting trace; alternatively you can use the Perfetto trace viewer from any browser.
    • +
    +

    For example, executing the Fibonacci program described above using 2 MPI processes and with 2 threads each will produce a trace that looks like this:

    +

    +

    TTG reference documentation

    +

    TTG API documentation is available for the following versions:0

    +

    Cite

    +

    When referring to TTG in an academic setting please cite the following publication:

      +
    • G. Bosilca, R. J. Harrison, T. Herault, M. M. Javanmard, P. Nookala and E. F. Valeev, "The Template Task Graph (TTG) - an emerging practical dataflow programming paradigm for scientific simulation at extreme scale," 2020 IEEE/ACM Fifth International Workshop on Extreme Scale Programming Models and Middleware (ESPM2), 2020, pp. 1-7, doi: 10.1109/ESPM251964.2020.00011.
    • +
    +

    Acknowledgment

    +

    The development of TTG was made possible by:

      +
    • The EPEXA project, currently supported by the National Science Foundation under grants 1931387 at Stony Brook University, 1931347 at Virginia Tech, and 1931384 at the University of Tennesse, Knoxville.
    • +
    • The TESSE project, supported by the National Science Foundation under grants 1450344 at Stony Brook University, 1450262 at Virginia Tech, and 1450300 at the University of Tennesse, Knoxville.
    • +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/iovec_8h.html b/dox-master/iovec_8h.html new file mode 100644 index 000000000..3221ccc5d --- /dev/null +++ b/dox-master/iovec_8h.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: ttg/ttg/util/iovec.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    iovec.h File Reference
    +
    +
    +
    #include <cstdint>
    +
    + + + +

    +Classes

    struct  ttg::iovec
     
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/iovec_8h_source.html b/dox-master/iovec_8h_source.html new file mode 100644 index 000000000..ec0ac0575 --- /dev/null +++ b/dox-master/iovec_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: ttg/ttg/util/iovec.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    iovec.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_UTIL_IOVEC_H_
    +
    2 #define TTG_UTIL_IOVEC_H_
    +
    3 
    +
    4 #include <cstdint>
    +
    5 
    +
    6 namespace ttg {
    +
    7 
    +
    11  struct iovec {
    +
    13  std::size_t num_bytes;
    +
    15  void* data;
    +
    16  };
    +
    17 
    +
    18 } // ttg
    +
    19 
    +
    20 #endif // TTG_UTIL_IOVEC_H_
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    + +
    std::size_t num_bytes
    The number of bytes to read from / write to the memory location given by data.
    Definition: iovec.h:13
    +
    void * data
    Pointer to the data to be read from / written to.
    Definition: iovec.h:15
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__const__member_8hpp.html b/dox-master/is__const__member_8hpp.html new file mode 100644 index 000000000..b7d505d70 --- /dev/null +++ b/dox-master/is__const__member_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_const_member.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_const_member.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::is_const_member< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_const_member_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__const__member_8hpp_source.html b/dox-master/is__const__member_8hpp_source.html new file mode 100644 index 000000000..ae5fe375d --- /dev/null +++ b/dox-master/is__const__member_8hpp_source.html @@ -0,0 +1,231 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_const_member.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_const_member.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_IS_CONST_MEMBER_HPP
    +
    10 #define BOOST_CLBL_TRTS_IS_CONST_MEMBER_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ is_const_member_hpp
    +
    17 /*`[section:ref_is_const_member is_const_member]
    +
    18 [heading Header]
    +
    19 ``#include <boost/callable_traits/is_const_member.hpp>``
    +
    20 [heading Definition]
    +
    21 */
    +
    22 
    +
    23 // inherits from either std::true_type or std::false_type
    +
    24 template<typename T>
    +
    25 struct is_const_member;
    +
    26 
    +
    27 //<-
    +
    28 template<typename T>
    + +
    30  : detail::traits<detail::shallow_decay<T>>::is_const_member {
    +
    31  using type = typename detail::traits<
    + +
    33 };
    +
    34 
    +
    35 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    36 
    +
    37 template<typename T>
    +
    38 struct is_const_member_v {
    +
    39  static_assert(std::is_same<T, detail::dummy>::value,
    +
    40  "Variable templates not supported on this compiler.");
    +
    41 };
    +
    42 
    +
    43 #else
    +
    44 //->
    +
    45 // only available when variable templates are supported
    +
    46 template<typename T>
    +
    47 //<-
    + +
    49 //->
    +
    50 constexpr bool is_const_member_v = //see below
    +
    51 //<-
    +
    52  detail::traits<detail::shallow_decay<T>>::is_const_member::value;
    +
    53 
    +
    54 #endif
    +
    55 
    +
    56 }} // namespace boost::callable_traits
    +
    57 //->
    +
    58 
    +
    59 /*`
    +
    60 [heading Constraints]
    +
    61 * none
    +
    62 
    +
    63 [heading Behavior]
    +
    64 * `is_const_member<T>::value` is `true` when either:
    +
    65  * `T` is a function type with a `const` member qualifier
    +
    66  * `T` is a pointer to a member function with a `const` member qualifier
    +
    67  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` has a `const` member qualifier
    +
    68 * On compilers that support variable templates, `is_const_member_v<T>` is equivalent to `is_const_member<T>::value`.
    +
    69 
    +
    70 [heading Input/Output Examples]
    +
    71 [table
    +
    72  [[`T`] [`is_const_member_v<T>`]]
    +
    73  [[`int() const`] [`true`]]
    +
    74  [[`int() const volatile`] [`true`]]
    +
    75  [[`int() const & transaction_safe`] [`true`]]
    +
    76  [[`int() const &&`] [`true`]]
    +
    77  [[`int(foo::*&)() const`] [`true`]]
    +
    78  [[`int(foo::*)() const volatile`] [`true`]]
    +
    79  [[`int(foo::*)() const volatile &&`][`true`]]
    +
    80  [[`int(foo::* const)() const`] [`true`]]
    +
    81  [[`int()`] [`false`]]
    +
    82  [[`int() volatile`] [`false`]]
    +
    83  [[`int() &&`] [`false`]]
    +
    84  [[`int(*)()`] [`false`]]
    +
    85  [[`int`] [`false`]]
    +
    86  [[`int foo::*`] [`false`]]
    +
    87  [[`const int foo::*`] [`false`]]
    +
    88 ]
    +
    89 
    +
    90 [heading Example Program]
    +
    91 [import ../example/is_const_member.cpp]
    +
    92 [is_const_member]
    +
    93 [endsect]
    +
    94 */
    +
    95 //]
    +
    96 
    +
    97 #endif // #ifndef BOOST_CLBL_TRTS_IS_CONST_MEMBER_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_const_member_v
    + + +
    typename detail::traits< detail::shallow_decay< T > >::is_const_member type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__invocable_8hpp.html b/dox-master/is__invocable_8hpp.html new file mode 100644 index 000000000..8319fc787 --- /dev/null +++ b/dox-master/is__invocable_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_invocable.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_invocable.hpp File Reference
    +
    +
    + + + + + + +

    +Classes

    struct  boost::callable_traits::is_invocable< T, Args >
     
    struct  boost::callable_traits::is_invocable_r< Ret, T, Args >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + + + + +

    +Variables

    template<typename T , typename... Args>
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_invocable_v
     
    template<typename Ret , typename T , typename... Args>
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_invocable_r_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__invocable_8hpp_source.html b/dox-master/is__invocable_8hpp_source.html new file mode 100644 index 000000000..a446f6755 --- /dev/null +++ b/dox-master/is__invocable_8hpp_source.html @@ -0,0 +1,241 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_invocable.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_invocable.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_IS_INVOCABLE_HPP
    +
    10 #define BOOST_CLBL_TRTS_IS_INVOCABLE_HPP
    +
    11 
    + + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ is_invocable_hpp
    +
    18 /*`[section:ref_is_invocable is_invocable]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/is_invocable.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 // inherits from either std::true_type or std::false_type
    +
    25 template<typename T, typename... Args>
    +
    26 struct is_invocable;
    +
    27 
    +
    28 // inherits from either std::true_type or std::false_type
    +
    29 template<typename Ret, typename T, typename... Args>
    +
    30 struct is_invocable_r;
    +
    31 
    +
    32 //<-
    +
    33 template<typename T, typename... Args>
    + +
    35  using type = typename detail::is_invocable_impl<T, Args...>::type;
    +
    36 };
    +
    37 
    +
    38 template<typename Ret, typename T, typename... Args>
    + + +
    41  typename detail::is_invocable_impl<T, Args...>::type, Ret, T, Args...>::type
    +
    42 {
    + +
    44  typename detail::is_invocable_impl<T, Args...>::type, Ret, T, Args...>::type;
    +
    45 };
    +
    46 
    +
    47 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    48 
    +
    49 template<typename T, typename... Args>
    +
    50 struct is_invocable_v {
    +
    51  static_assert(std::is_same<T, detail::dummy>::value,
    +
    52  "Variable templates not supported on this compiler.");
    +
    53 };
    +
    54 
    +
    55 template<typename Ret, typename T, typename... Args>
    +
    56 struct is_invocable_r_v {
    +
    57  static_assert(std::is_same<T, detail::dummy>::value,
    +
    58  "Variable templates not supported on this compiler.");
    +
    59 };
    +
    60 
    +
    61 #else
    +
    62 //->
    +
    63 // only available when variable templates are supported
    +
    64 template<typename T, typename... Args>
    +
    65 //<-
    + +
    67 //->
    +
    68 constexpr bool is_invocable_v = //see below
    +
    69 //<-
    +
    70  detail::is_invocable_impl<T, Args...>::type::value;
    +
    71 //->
    +
    72 
    +
    73 // only available when variable templates are supported
    +
    74 template<typename Ret, typename T, typename... Args>
    +
    75 //<-
    + +
    77 //->
    +
    78 constexpr bool is_invocable_r_v = //see below
    +
    79 //<-
    + +
    81  typename detail::is_invocable_impl<T, Args...>::type,
    +
    82  Ret, T, Args...>::type::value;
    +
    83 #endif
    +
    84 
    +
    85 }} // namespace boost::callable_traits
    +
    86 //->
    +
    87 
    +
    88 /*`
    +
    89 [heading Constraints]
    +
    90 * none
    +
    91 
    +
    92 [heading Behavior]
    +
    93 * standalone c++11 implementation of c++17 `std::is_invocable`, `std::is_invocable_r`
    +
    94 [note ref-qualified overloads of `operator()` with different signatures are not handled correctly yet.]
    +
    95 
    +
    96 [heading Example Program]
    +
    97 [import ../example/is_invocable.cpp]
    +
    98 [is_invocable]
    +
    99 [endsect]
    +
    100 */
    +
    101 //]
    +
    102 
    +
    103 #endif // #ifndef BOOST_CLBL_TRTS_IS_INVOCABLE_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_r_v
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_v
    + + + + +
    typename detail::is_invocable_r_impl< typename detail::is_invocable_impl< T, Args... >::type, Ret, T, Args... >::type type
    + +
    typename detail::is_invocable_impl< T, Args... >::type type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__invocable__impl_8hpp.html b/dox-master/is__invocable__impl_8hpp.html new file mode 100644 index 000000000..2fc3c98f7 --- /dev/null +++ b/dox-master/is__invocable__impl_8hpp.html @@ -0,0 +1,190 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/is_invocable_impl.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_invocable_impl.hpp File Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::can_dereference_t< T >
     
    struct  boost::callable_traits::detail::can_dereference_t< T >::check< typename >
     
    struct  boost::callable_traits::detail::generalize_t< T, typename >
     
    struct  boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >
     
    struct  boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > >
     
    struct  boost::callable_traits::detail::test_invoke< Traits, bool >
     
    struct  boost::callable_traits::detail::test_invoke< function< F >, true >
     
    struct  boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >
     
    struct  boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >
     
    struct  boost::callable_traits::detail::is_invocable_impl< T, Args >
     
    struct  boost::callable_traits::detail::is_invocable_impl< void, Args... >
     
    struct  boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args >
     
    struct  boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + + + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::detail::can_dereference = std::integral_constant< bool, can_dereference_t< T >::value >
     
    template<typename T >
    using boost::callable_traits::detail::generalize = typename generalize_t< T >::type
     
    template<typename Base , typename T , typename IsBaseOf = std::is_base_of<Base, shallow_decay<T>>, typename IsSame = std::is_same<Base, shallow_decay<T>>>
    using boost::callable_traits::detail::generalize_if_dissimilar = typename std::conditional< IsBaseOf::value||IsSame::value, T, generalize< T > >::type
     
    +

    Documentation

    +

    @Copyright Barrett Adair 2015-2017 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)

    + +

    Definition in file is_invocable_impl.hpp.

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__invocable__impl_8hpp_source.html b/dox-master/is__invocable__impl_8hpp_source.html new file mode 100644 index 000000000..3ecd4e6f5 --- /dev/null +++ b/dox-master/is__invocable__impl_8hpp_source.html @@ -0,0 +1,313 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/is_invocable_impl.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_invocable_impl.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    10 #ifndef BOOST_CLBL_TRTS_IS_INVOCABLE_IMPL_HPP
    +
    11 #define BOOST_CLBL_TRTS_IS_INVOCABLE_IMPL_HPP
    +
    12 
    + + + +
    16 #include <type_traits>
    +
    17 #include <utility>
    +
    18 
    +
    19 namespace boost { namespace callable_traits { namespace detail {
    +
    20 
    +
    21  template<typename T>
    + +
    23  {
    +
    24  template<typename>
    +
    25  struct check {};
    +
    26 
    +
    27  template<typename U>
    +
    28  static std::int8_t test(
    +
    29  check<typename std::remove_reference<decltype(*std::declval<U>())>::type>*
    +
    30  );
    +
    31 
    +
    32  template<typename>
    +
    33  static std::int16_t test(...);
    +
    34 
    +
    35  static constexpr const bool value =
    +
    36  sizeof(test<T>(nullptr)) == sizeof(std::int8_t);
    +
    37  };
    +
    38 
    +
    39  //returns std::true_type for pointers and smart pointers
    +
    40  template<typename T>
    +
    41  using can_dereference = std::integral_constant<bool,
    + +
    43 
    +
    44 
    +
    45  template<typename T, typename = std::true_type>
    +
    46  struct generalize_t {
    +
    47  using type = T;
    +
    48  };
    +
    49 
    +
    50  template<typename T>
    +
    51  struct generalize_t<T, std::integral_constant<bool,
    +
    52  can_dereference<T>::value && !is_reference_wrapper<T>::value
    +
    53  >>{
    +
    54  using type = decltype(*std::declval<T>());
    +
    55  };
    +
    56 
    +
    57  template<typename T>
    + +
    59  using type = decltype(std::declval<T>().get());
    +
    60  };
    +
    61 
    +
    62  // When T is a pointer, generalize<T> is the resulting type of the
    +
    63  // pointer dereferenced. When T is an std::reference_wrapper, generalize<T>
    +
    64  // is the underlying reference type. Otherwise, generalize<T> is T.
    +
    65  template<typename T>
    + +
    67 
    +
    68  // handles the member pointer rules of INVOKE
    +
    69  template<typename Base, typename T,
    +
    70  typename IsBaseOf = std::is_base_of<Base, shallow_decay<T>>,
    +
    71  typename IsSame = std::is_same<Base, shallow_decay<T>>>
    +
    72  using generalize_if_dissimilar = typename std::conditional<
    +
    73  IsBaseOf::value || IsSame::value, T, generalize<T>>::type;
    +
    74 
    +
    75  template<typename Traits, bool = Traits::is_const_member::value
    +
    76  || Traits::is_volatile_member::value
    +
    77  || Traits::is_lvalue_reference_member::value
    +
    78  || Traits::is_rvalue_reference_member::value>
    +
    79  struct test_invoke {
    +
    80 
    +
    81  template<typename... Rgs,
    +
    82  typename U = typename Traits::type>
    +
    83  auto operator()(int, Rgs&&... rgs) const ->
    +
    84  success<decltype(std::declval<U>()(static_cast<Rgs&&>(rgs)...))>;
    +
    85 
    +
    86  auto operator()(long, ...) const -> substitution_failure;
    +
    87  };
    +
    88 
    +
    89  template<typename F>
    +
    90  struct test_invoke<function<F>, true /*abominable*/> {
    +
    91  auto operator()(...) const -> substitution_failure;
    +
    92  };
    +
    93 
    +
    94  template<typename Pmf, bool Ignored>
    +
    95  struct test_invoke<pmf<Pmf>, Ignored> {
    +
    96 
    +
    97  using class_t = typename pmf<Pmf>::class_type;
    +
    98 
    +
    99  template<typename U, typename... Rgs,
    + +
    101  auto operator()(int, U&& u, Rgs&&... rgs) const ->
    +
    102  success<decltype((std::declval<Obj>().*std::declval<Pmf>())(static_cast<Rgs&&>(rgs)...))>;
    +
    103 
    +
    104  auto operator()(long, ...) const -> substitution_failure;
    +
    105  };
    +
    106 
    +
    107  template<typename Pmd, bool Ignored>
    +
    108  struct test_invoke<pmd<Pmd>, Ignored> {
    +
    109 
    +
    110  using class_t = typename pmd<Pmd>::class_type;
    +
    111 
    +
    112  template<typename U,
    + +
    114  auto operator()(int, U&& u) const ->
    +
    115  success<decltype(std::declval<Obj>().*std::declval<Pmd>())>;
    +
    116 
    +
    117  auto operator()(long, ...) const -> substitution_failure;
    +
    118  };
    +
    119 
    +
    120  template<typename T, typename... Args>
    + + + +
    124  using result = decltype(test{}(0, ::std::declval<Args>()...));
    +
    125  using type = std::integral_constant<bool, result::value>;
    +
    126  };
    +
    127 
    +
    128  template<typename... Args>
    +
    129  struct is_invocable_impl<void, Args...> {
    +
    130  using type = std::false_type;
    +
    131  };
    +
    132 
    +
    133  template<typename IsInvocable, typename Ret, typename T, typename... Args>
    + + + +
    137  using result = decltype(test{}(0, ::std::declval<Args>()...));
    +
    138  using type = std::integral_constant<bool,
    +
    139  std::is_convertible<typename result::_::type, Ret>::value
    +
    140  || std::is_same<Ret, void>::value>;
    +
    141  };
    +
    142 
    +
    143  template<typename Ret, typename T, typename... Args>
    +
    144  struct is_invocable_r_impl<std::false_type, Ret, T, Args...> {
    +
    145  using type = std::false_type;
    +
    146  };
    +
    147 
    +
    148 }}} // namespace boost::callable_traits::detail
    +
    149 
    +
    150 #endif // #ifndef BOOST_CLBL_TRTS_IS_INVOCABLE_IMPL_HPP
    + + +
    constexpr auto get(span< E, S > s) -> decltype(s[N])
    Definition: span.h:492
    +
    std::integral_constant< bool, can_dereference_t< T >::value > can_dereference
    +
    typename std::conditional< IsBaseOf::value||IsSame::value, T, generalize< T > >::type generalize_if_dissimilar
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    typename is_reference_wrapper_t< shallow_decay< T > >::type is_reference_wrapper
    Definition: utility.hpp:93
    +
    typename generalize_t< T >::type generalize
    + + + +
    static std::int8_t test(check< typename std::remove_reference< decltype(*std::declval< U >())>::type > *)
    + + + + + + + + + + +
    decltype(test{}(0, ::std::declval< Args >()...)) result
    + +
    std::integral_constant< bool, result::value > type
    + + + +
    decltype(test{}(0, ::std::declval< Args >()...)) result
    +
    std::integral_constant< bool, std::is_convertible< typename result::_::type, Ret >::value||std::is_same< Ret, void >::value > type
    + + + + + + +
    auto operator()(long,...) const -> substitution_failure
    +
    auto operator()(int, U &&u) const -> success< decltype(std::declval< Obj >().*std::declval< Pmd >())>
    + +
    auto operator()(long,...) const -> substitution_failure
    +
    auto operator()(int, U &&u, Rgs &&... rgs) const -> success< decltype((std::declval< Obj >().*std::declval< Pmf >())(static_cast< Rgs && >(rgs)...))>
    + +
    auto operator()(int, Rgs &&... rgs) const -> success< decltype(std::declval< U >()(static_cast< Rgs && >(rgs)...))>
    +
    auto operator()(long,...) const -> substitution_failure
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__lvalue__reference__member_8hpp.html b/dox-master/is__lvalue__reference__member_8hpp.html new file mode 100644 index 000000000..6ef27f41e --- /dev/null +++ b/dox-master/is__lvalue__reference__member_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_lvalue_reference_member.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_lvalue_reference_member.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::is_lvalue_reference_member< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_lvalue_reference_member_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__lvalue__reference__member_8hpp_source.html b/dox-master/is__lvalue__reference__member_8hpp_source.html new file mode 100644 index 000000000..de1e96c45 --- /dev/null +++ b/dox-master/is__lvalue__reference__member_8hpp_source.html @@ -0,0 +1,229 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_lvalue_reference_member.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_lvalue_reference_member.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_IS_LVALUE_REFERENCE_MEMBER_HPP
    +
    10 #define BOOST_CLBL_TRTS_IS_LVALUE_REFERENCE_MEMBER_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ is_lvalue_reference_member_hpp
    +
    17 /*`[section:ref_is_lvalue_reference_member is_lvalue_reference_member]
    +
    18 [heading Header]
    +
    19 ``#include <boost/callable_traits/is_lvalue_reference_member.hpp>``
    +
    20 [heading Definition]
    +
    21 */
    +
    22 
    +
    23 
    +
    24 // inherits from either std::true_type or std::false_type
    +
    25 template<typename T>
    +
    26 struct is_lvalue_reference_member;
    +
    27 
    +
    28 //<-
    +
    29 template<typename T>
    + +
    31  : detail::traits<detail::shallow_decay<T>>::is_lvalue_reference_member {
    +
    32  using type = typename detail::traits<
    + +
    34 };
    +
    35 
    +
    36 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    37 
    +
    38 template<typename T>
    + +
    40  static_assert(std::is_same<T, detail::dummy>::value,
    +
    41  "Variable templates not supported on this compiler.");
    +
    42 };
    +
    43 
    +
    44 #else
    +
    45 //->
    +
    46 // only available when variable templates are supported
    +
    47 template<typename T>
    +
    48 //<-
    + +
    50 //->
    +
    51 constexpr bool is_lvalue_reference_member_v = //see below
    +
    52 //<-
    +
    53  detail::traits<detail::shallow_decay<T>>::is_lvalue_reference_member::value;
    +
    54 
    +
    55 #endif
    +
    56 
    +
    57 }} // namespace boost::callable_traits
    +
    58 //->
    +
    59 
    +
    60 /*`
    +
    61 [heading Constraints]
    +
    62 * none
    +
    63 
    +
    64 [heading Behavior]
    +
    65 * `is_lvalue_reference_member<T>::value` is `true` when either:
    +
    66  * `T` is a function type with a '&' member qualifier
    +
    67  * `T` is a pointer to a member function with a '&' member qualifiers
    +
    68  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` has a '&' member qualifier
    +
    69 * On compilers that support variable templates, `is_lvalue_reference_member_v<T>` is equivalent to `is_lvalue_reference_member<T>::value`.
    +
    70 
    +
    71 [heading Input/Output Examples]
    +
    72 [table
    +
    73  [[`T`] [`is_lvalue_reference_member_v<T>`]]
    +
    74  [[`int() &`] [`true`]]
    +
    75  [[`int(foo::* const)() const &`] [`true`]]
    +
    76  [[`int() const`] [`false`]]
    +
    77  [[`int() volatile`] [`false`]]
    +
    78  [[`int(foo::*)() const`] [`false`]]
    +
    79  [[`int() const`] [`false`]]
    +
    80  [[`int() volatile`] [`false`]]
    +
    81  [[`int() &&`] [`false`]]
    +
    82  [[`int(*)()`] [`false`]]
    +
    83  [[`int`] [`false`]]
    +
    84  [[`int foo::*`] [`false`]]
    +
    85  [[`const int foo::*`] [`false`]]
    +
    86 ]
    +
    87 
    +
    88 [heading Example Program]
    +
    89 [import ../example/is_lvalue_reference_member.cpp]
    +
    90 [is_lvalue_reference_member]
    +
    91 [endsect]
    +
    92 */
    +
    93 //]
    +
    94 
    +
    95 #endif // #ifndef BOOST_CLBL_TRTS_IS_LVALUE_REFERENCE_MEMBER_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_lvalue_reference_member_v
    + + +
    typename detail::traits< detail::shallow_decay< T > >::is_lvalue_reference_member type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__noexcept_8hpp.html b/dox-master/is__noexcept_8hpp.html new file mode 100644 index 000000000..d677485e3 --- /dev/null +++ b/dox-master/is__noexcept_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_noexcept.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_noexcept.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::is_noexcept< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_noexcept_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__noexcept_8hpp_source.html b/dox-master/is__noexcept_8hpp_source.html new file mode 100644 index 000000000..b9b665b2a --- /dev/null +++ b/dox-master/is__noexcept_8hpp_source.html @@ -0,0 +1,229 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_noexcept.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_noexcept.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 @file is_noexcept
    +
    3 
    +
    4 @Copyright Barrett Adair 2015-2017
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_IS_NOEXCEPT_HPP
    +
    11 #define BOOST_CLBL_TRTS_IS_NOEXCEPT_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ is_noexcept_hpp
    +
    18 /*`[section:ref_is_noexcept is_noexcept]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/is_noexcept.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 // inherits from either std::true_type or std::false_type
    +
    25 template<typename T>
    +
    26 struct is_noexcept;
    +
    27 
    +
    28 //<-
    +
    29 template<typename T>
    +
    30 struct is_noexcept : detail::traits<detail::shallow_decay<T>>::is_noexcept {
    +
    31  using type = typename detail::traits<
    + +
    33 };
    +
    34 
    +
    35 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    36 
    +
    37 template<typename T>
    +
    38 struct is_noexcept_v {
    +
    39  static_assert(std::is_same<T, detail::dummy>::value,
    +
    40  "Variable templates not supported on this compiler.");
    +
    41 };
    +
    42 
    +
    43 #else
    +
    44 //->
    +
    45 // only available when variable templates are supported
    +
    46 template<typename T>
    +
    47 //<-
    + +
    49 //->
    +
    50 constexpr bool is_noexcept_v = //see below
    +
    51 //<-
    +
    52  detail::traits<detail::shallow_decay<T>>::is_noexcept::value;
    +
    53 
    +
    54 #endif
    +
    55 
    +
    56 }} // namespace boost::callable_traits
    +
    57 //->
    +
    58 
    +
    59 /*`
    +
    60 [heading Constraints]
    +
    61 * none
    +
    62 *
    +
    63 [heading Behavior]
    +
    64 * `is_noexcept<T>::value` is `true` when either:
    +
    65  * `T` is a function type, function pointer type, function reference type, or member function pointer type where the function has a `noexcept` specifier
    +
    66  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` has a `noexcept` specifier
    +
    67 * On compilers that support variable templates, `is_noexcept_v<T>` is equivalent to `is_noexcept<T>::value`.
    +
    68 
    +
    69 [heading Input/Output Examples]
    +
    70 [table
    +
    71  [[`T`] [`is_noexcept_v<T>`]]
    +
    72  [[`int() const noexcept`] [`true`]]
    +
    73  [[`int(* const &)() noexcept`] [`true`]]
    +
    74  [[`int(&)() noexcept`] [`true`]]
    +
    75  [[`int(foo::*)() noexcept`] [`true`]]
    +
    76  [[`int() const`] [`false`]]
    +
    77  [[`int() volatile`] [`false`]]
    +
    78  [[`int(foo::*)() const`] [`false`]]
    +
    79  [[`int() const`] [`false`]]
    +
    80  [[`int() volatile`] [`false`]]
    +
    81  [[`int() &`] [`false`]]
    +
    82  [[`int(*)()`] [`false`]]
    +
    83  [[`int`] [`false`]]
    +
    84  [[`int foo::*`] [`false`]]
    +
    85  [[`const int foo::*`] [`false`]]
    +
    86 ]
    +
    87 
    +
    88 [heading Example Program]
    +
    89 [import ../example/is_noexcept.cpp]
    +
    90 [is_noexcept]
    +
    91 [endsect]
    +
    92 */
    +
    93 //]
    +
    94 
    +
    95 #endif // #ifndef BOOST_CLBL_TRTS_IS_NOEXCEPT_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_noexcept_v
    Definition: is_noexcept.hpp:50
    + + +
    typename detail::traits< detail::shallow_decay< T > >::is_noexcept type
    Definition: is_noexcept.hpp:32
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__reference__member_8hpp.html b/dox-master/is__reference__member_8hpp.html new file mode 100644 index 000000000..411fd163f --- /dev/null +++ b/dox-master/is__reference__member_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_reference_member.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_reference_member.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::is_reference_member< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_reference_member_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__reference__member_8hpp_source.html b/dox-master/is__reference__member_8hpp_source.html new file mode 100644 index 000000000..212fc3c7b --- /dev/null +++ b/dox-master/is__reference__member_8hpp_source.html @@ -0,0 +1,232 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_reference_member.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_reference_member.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_IS_REFERENCE_MEMBER_HPP
    +
    11 #define BOOST_CLBL_TRTS_IS_REFERENCE_MEMBER_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ is_reference_member_hpp
    +
    18 /*`[section:ref_is_reference_member is_reference_member]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/is_reference_member.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 
    +
    25 // inherits from either std::true_type or std::false_type
    +
    26 template<typename T>
    +
    27 struct is_reference_member;
    +
    28 
    +
    29 //<-
    +
    30 template<typename T>
    + +
    32  detail::shallow_decay<T>>::is_reference_member {
    +
    33 
    +
    34  using type = typename detail::traits<
    + +
    36 };
    +
    37 
    +
    38 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    39 
    +
    40 template<typename T>
    +
    41 struct is_reference_member_v {
    +
    42  static_assert(std::is_same<T, detail::dummy>::value,
    +
    43  "Variable templates not supported on this compiler.");
    +
    44 };
    +
    45 
    +
    46 #else
    +
    47 //->
    +
    48 // only available when variable templates are supported
    +
    49 template<typename T>
    +
    50 //<-
    + +
    52 //->
    +
    53 constexpr bool is_reference_member_v = //see below
    +
    54 //<-
    +
    55  detail::traits<detail::shallow_decay<T>>::is_reference_member::value;
    +
    56 
    +
    57 #endif
    +
    58 
    +
    59 }} // namespace boost::callable_traits
    +
    60 //->
    +
    61 
    +
    62 /*`
    +
    63 [heading Constraints]
    +
    64 * none
    +
    65 
    +
    66 [heading Behavior]
    +
    67 * `is_reference_member<T>::value` is `true` when either:
    +
    68  * `T` is a function type with a '&' or '&&' member qualifier
    +
    69  * `T` is a pointer to a member function with a '&' or '&&' member qualifiers
    +
    70  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` has a '&' or '&&' member qualifier
    +
    71 * On compilers that support variable templates, `is_reference_member_v<T>` is equivalent to `is_reference_member<T>::value`.
    +
    72 
    +
    73 [heading Input/Output Examples]
    +
    74 [table
    +
    75  [[`T`] [`is_reference_member_v<T>`]]
    +
    76  [[`int() &`] [`true`]]
    +
    77  [[`int() const &&`] [`true`]]
    +
    78  [[`int(foo::* const)() &&`] [`true`]]
    +
    79  [[`int(foo::*)(...) volatile &`] [`true`]]
    +
    80  [[`int() const`] [`false`]]
    +
    81  [[`int() volatile`] [`false`]]
    +
    82  [[`int(foo::*)() const`] [`false`]]
    +
    83  [[`int() const`] [`false`]]
    +
    84  [[`int() volatile`] [`false`]]
    +
    85  [[`int(*)()`] [`false`]]
    +
    86  [[`int`] [`false`]]
    +
    87  [[`int foo::*`] [`false`]]
    +
    88  [[`const int foo::*`] [`false`]]
    +
    89 ]
    +
    90 
    +
    91 [heading Example Program]
    +
    92 [import ../example/is_reference_member.cpp]
    +
    93 [is_reference_member]
    +
    94 [endsect]
    +
    95 */
    +
    96 //]
    +
    97 
    +
    98 #endif // #ifndef BOOST_CLBL_TRTS_IS_REFERENCE_MEMBER_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_reference_member_v
    + + +
    typename detail::traits< detail::shallow_decay< T > >::is_reference_member type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__rvalue__reference__member_8hpp.html b/dox-master/is__rvalue__reference__member_8hpp.html new file mode 100644 index 000000000..93be6d67c --- /dev/null +++ b/dox-master/is__rvalue__reference__member_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_rvalue_reference_member.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_rvalue_reference_member.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::is_rvalue_reference_member< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_rvalue_reference_member_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__rvalue__reference__member_8hpp_source.html b/dox-master/is__rvalue__reference__member_8hpp_source.html new file mode 100644 index 000000000..24ae42a09 --- /dev/null +++ b/dox-master/is__rvalue__reference__member_8hpp_source.html @@ -0,0 +1,231 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_rvalue_reference_member.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_rvalue_reference_member.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_IS_RVALUE_REFERENCE_MEMBER_HPP
    +
    11 #define BOOST_CLBL_TRTS_IS_RVALUE_REFERENCE_MEMBER_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ is_rvalue_reference_member_hpp
    +
    18 /*`[section:ref_is_rvalue_reference_member is_rvalue_reference_member]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/is_rvalue_reference_member.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 
    +
    25 // inherits from either std::true_type or std::false_type
    +
    26 template<typename T>
    +
    27 struct is_rvalue_reference_member;
    +
    28 
    +
    29 //<-
    +
    30 template<typename T>
    + +
    32  detail::shallow_decay<T>>::is_rvalue_reference_member {
    +
    33 
    +
    34  using type = typename detail::traits<
    + +
    36 };
    +
    37 
    +
    38 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    39 
    +
    40 template<typename T>
    + +
    42  static_assert(std::is_same<T, detail::dummy>::value,
    +
    43  "Variable templates not supported on this compiler.");
    +
    44 };
    +
    45 
    +
    46 #else
    +
    47 //->
    +
    48 // only available when variable templates are supported
    +
    49 template<typename T>
    +
    50 //<-
    + +
    52 //->
    +
    53 constexpr bool is_rvalue_reference_member_v = //see below
    +
    54 //<-
    +
    55  detail::traits<detail::shallow_decay<T>>::is_rvalue_reference_member::value;
    +
    56 
    +
    57 #endif
    +
    58 
    +
    59 }} // namespace boost::callable_traits
    +
    60 //->
    +
    61 
    +
    62 /*`
    +
    63 [heading Constraints]
    +
    64 * none
    +
    65 
    +
    66 [heading Behavior]
    +
    67 * `is_rvalue_reference_member<T>::value` is `true` when either:
    +
    68  * `T` is a function type with a '&&' member qualifier
    +
    69  * `T` is a pointer to a member function with a '&&' member qualifiers
    +
    70  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` has a '&&' member qualifier
    +
    71 * On compilers that support variable templates, `is_rvalue_reference_member_v<T>` is equivalent to `is_rvalue_reference_member<T>::value`.
    +
    72 
    +
    73 [heading Input/Output Examples]
    +
    74 [table
    +
    75  [[`T`] [`is_rvalue_reference_member_v<T>`]]
    +
    76  [[`int() const &&`] [`true`]]
    +
    77  [[`int(foo::*)() &&`] [`true`]]
    +
    78  [[`int() const`] [`false`]]
    +
    79  [[`int() volatile`] [`false`]]
    +
    80  [[`int(foo::* volatile)() const`] [`false`]]
    +
    81  [[`int() const`] [`false`]]
    +
    82  [[`int() volatile`] [`false`]]
    +
    83  [[`int() &`] [`false`]]
    +
    84  [[`int(*)()`] [`false`]]
    +
    85  [[`int`] [`false`]]
    +
    86  [[`int foo::*`] [`false`]]
    +
    87  [[`const int foo::*`] [`false`]]
    +
    88 ]
    +
    89 
    +
    90 [heading Example Program]
    +
    91 [import ../example/is_rvalue_reference_member.cpp]
    +
    92 [is_rvalue_reference_member]
    +
    93 [endsect]
    +
    94 */
    +
    95 //]
    +
    96 
    +
    97 #endif // #ifndef BOOST_CLBL_TRTS_IS_RVALUE_REFERENCE_MEMBER_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_rvalue_reference_member_v
    + + +
    typename detail::traits< detail::shallow_decay< T > >::is_rvalue_reference_member type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__transaction__safe_8hpp.html b/dox-master/is__transaction__safe_8hpp.html new file mode 100644 index 000000000..cccc36414 --- /dev/null +++ b/dox-master/is__transaction__safe_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_transaction_safe.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_transaction_safe.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::is_transaction_safe< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_transaction_safe_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__transaction__safe_8hpp_source.html b/dox-master/is__transaction__safe_8hpp_source.html new file mode 100644 index 000000000..c1854fbea --- /dev/null +++ b/dox-master/is__transaction__safe_8hpp_source.html @@ -0,0 +1,232 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_transaction_safe.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_transaction_safe.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 @file is_transaction_safe
    +
    3 
    +
    4 @Copyright Barrett Adair 2015-2017
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE_HPP
    +
    11 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ is_transaction_safe_hpp
    +
    18 /*`[section:ref_is_transaction_safe is_transaction_safe]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/is_transaction_safe.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 
    +
    25 // inherits from either std::true_type or std::false_type
    +
    26 template<typename T>
    +
    27 struct is_transaction_safe;
    +
    28 
    +
    29 //<-
    +
    30 template<typename T>
    + +
    32  detail::shallow_decay<T>>::is_transaction_safe {
    +
    33 
    +
    34  using type = typename detail::traits<
    + +
    36 };
    +
    37 
    +
    38 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    39 
    +
    40 template<typename T>
    +
    41 struct is_transaction_safe_v {
    +
    42  static_assert(std::is_same<T, detail::dummy>::value,
    +
    43  "Variable templates not supported on this compiler.");
    +
    44 };
    +
    45 
    +
    46 #else
    +
    47 //->
    +
    48 // only available when variable templates are supported
    +
    49 template<typename T>
    +
    50 //<-
    + +
    52 //->
    +
    53 constexpr bool is_transaction_safe_v = //see below
    +
    54 //<-
    +
    55  detail::traits<detail::shallow_decay<T>>::is_transaction_safe::value;
    +
    56 
    +
    57 #endif
    +
    58 
    +
    59 }} // namespace boost::callable_traits
    +
    60 //->
    +
    61 
    +
    62 /*`
    +
    63 [heading Constraints]
    +
    64 * none
    +
    65 *
    +
    66 [heading Behavior]
    +
    67 * `is_transaction_safe<T>::value` is `true` when either:
    +
    68  * `T` is a function type, function pointer type, function reference type, or member function pointer type where the function has a `transaction_safe` specifier
    +
    69  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` has a `transaction_safe` specifier
    +
    70 * On compilers that support variable templates, `is_transaction_safe_v<T>` is equivalent to `is_transaction_safe<T>::value`.
    +
    71 
    +
    72 [heading Input/Output Examples]
    +
    73 [table
    +
    74  [[`T`] [`is_transaction_safe_v<T>`]]
    +
    75  [[`int() const transaction_safe`] [`true`]]
    +
    76  [[`int(*)() transaction_safe`] [`true`]]
    +
    77  [[`int(&)() transaction_safe`] [`true`]]
    +
    78  [[`int(foo::* const)() transaction_safe`] [`true`]]
    +
    79  [[`int() const`] [`false`]]
    +
    80  [[`int() volatile`] [`false`]]
    +
    81  [[`int(foo::*)() const`] [`false`]]
    +
    82  [[`int() const`] [`false`]]
    +
    83  [[`int() volatile`] [`false`]]
    +
    84  [[`int() &`] [`false`]]
    +
    85  [[`int(*)()`] [`false`]]
    +
    86  [[`int`] [`false`]]
    +
    87  [[`int foo::*`] [`false`]]
    +
    88  [[`const int foo::*`] [`false`]]
    +
    89 ]
    +
    90 
    +
    91 [heading Example Program]
    +
    92 [import ../example/is_transaction_safe.cpp]
    +
    93 [is_transaction_safe]
    +
    94 [endsect]
    +
    95 */
    +
    96 //]
    +
    97 
    +
    98 #endif // #ifndef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_transaction_safe_v
    + + +
    typename detail::traits< detail::shallow_decay< T > >::is_transaction_safe type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__volatile__member_8hpp.html b/dox-master/is__volatile__member_8hpp.html new file mode 100644 index 000000000..d1cc129b7 --- /dev/null +++ b/dox-master/is__volatile__member_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_volatile_member.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    is_volatile_member.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::is_volatile_member< T >
     
    + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
    + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_volatile_member_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/is__volatile__member_8hpp_source.html b/dox-master/is__volatile__member_8hpp_source.html new file mode 100644 index 000000000..4a32543ee --- /dev/null +++ b/dox-master/is__volatile__member_8hpp_source.html @@ -0,0 +1,234 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/is_volatile_member.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    is_volatile_member.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2  *
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_IS_VOLATILE_MEMBER_HPP
    +
    11 #define BOOST_CLBL_TRTS_IS_VOLATILE_MEMBER_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ is_volatile_member_hpp
    +
    18 /*`[section:ref_is_volatile_member is_volatile_member]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/is_volatile_member.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 
    +
    25 // inherits from either std::true_type or std::false_type
    +
    26 template<typename T>
    +
    27 struct is_volatile_member;
    +
    28 
    +
    29 //<-
    +
    30 template<typename T>
    + +
    32  detail::shallow_decay<T>>::is_volatile_member {
    +
    33 
    +
    34  using type = typename detail::traits<
    + +
    36 };
    +
    37 
    +
    38 #ifdef BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES
    +
    39 
    +
    40 template<typename T>
    +
    41 struct is_volatile_member_v {
    +
    42  static_assert(std::is_same<T, detail::dummy>::value,
    +
    43  "Variable templates not supported on this compiler.");
    +
    44 };
    +
    45 
    +
    46 #else
    +
    47 //->
    +
    48 // only available when variable templates are supported
    +
    49 template<typename T>
    +
    50 //<-
    + +
    52 //->
    +
    53 constexpr bool is_volatile_member_v = //see below
    +
    54 //<-
    +
    55  detail::traits<detail::shallow_decay<T>>::is_volatile_member::value;
    +
    56 
    +
    57 #endif
    +
    58 
    +
    59 }} // namespace boost::callable_traits
    +
    60 //->
    +
    61 
    +
    62 
    +
    63 /*`
    +
    64 [heading Constraints]
    +
    65 * none
    +
    66 
    +
    67 [heading Behavior]
    +
    68 * `is_volatile_member<T>::value` is `true` when either:
    +
    69  * `T` is a function type with a `volatile` member qualifier
    +
    70  * `T` is a pointer to a member function with a `volatile` member qualifier
    +
    71  * `T` is a function object with a non-overloaded `operator()`, where the `operator()` has a `volatile` member qualifier
    +
    72 * On compilers that support variable templates, `is_volatile_member_v<T>` is equivalent to `is_volatile_member<T>::value`.
    +
    73 
    +
    74 [heading Input/Output Examples]
    +
    75 [table
    +
    76  [[`T`] [`is_volatile_member_v<T>`]]
    +
    77  [[`int() volatile`] [`true`]]
    +
    78  [[`int() const volatile`] [`true`]]
    +
    79  [[`int() volatile &&`] [`true`]]
    +
    80  [[`int(foo::*)() volatile`] [`true`]]
    +
    81  [[`int(foo::* const)() volatile`] [`true`]]
    +
    82  [[`int(foo::*)() const volatile`] [`true`]]
    +
    83  [[`int(foo::*)() const volatile &&`][`true`]]
    +
    84  [[`int()`] [`false`]]
    +
    85  [[`int() const`] [`false`]]
    +
    86  [[`int() &&`] [`false`]]
    +
    87  [[`int(*)()`] [`false`]]
    +
    88  [[`int`] [`false`]]
    +
    89  [[`int foo::*`] [`false`]]
    +
    90  [[`volatile int foo::*`] [`false`]]
    +
    91 ]
    +
    92 
    +
    93 [heading Example Program]
    +
    94 [import ../example/is_volatile_member.cpp]
    +
    95 [is_volatile_member]
    +
    96 [endsect]
    +
    97 */
    +
    98 //]
    +
    99 
    +
    100 #endif // #ifndef BOOST_CLBL_TRTS_IS_VOLATILE_MEMBER_HPP
    +
    #define BOOST_CLBL_TRAITS_INLINE_VAR
    Definition: config.hpp:27
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_volatile_member_v
    + + +
    typename detail::traits< detail::shallow_decay< T > >::is_volatile_member type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/iterative_8cc-example.html b/dox-master/iterative_8cc-example.html new file mode 100644 index 000000000..c1ea379b5 --- /dev/null +++ b/dox-master/iterative_8cc-example.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: iterative.cc + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    iterative.cc
    +
    +
    +

    This is the iterative diamond DAG using Template Task Graph: iteratively, a simple diamond is run, until the amount of data gathered at the bottom of the diamond exceeds a given threshold.

    +
    #include <ttg.h>
    + + +
    +
    const double threshold = 100.0;
    +
    using Key2 = std::pair<int, int>;
    +
    +
    namespace std {
    +
    std::ostream &operator<<(std::ostream &os, const Key2 &key) {
    +
    os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
    +
    return os;
    +
    }
    +
    } // namespace std
    +
    +
    static void a(const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
    +
    ttg::print("Called task A(", k, ")"); ttg::send <0>(Key2{k, 0}, 1.0 + input, out); ttg::send <0>(Key2{k, 1}, 2.0 + input, out);
    +
    }
    +
    +
    static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>, ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task B(", key, ") with input data ", input);
    +
    if (std::get<1>(key) == 0) ttg::send <0>(std::get<0>(key), input + 1.0, out);
    +
    else ttg::send <1>(std::get<0>(key), input + 1.0, out);
    +
    }
    +
    +
    static void c(const int &k, const double &b0, const double &b1, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task C(", k, ") with inputs ", b0, " from B(", k, " 0) and ", b1, " from B(", k, " 1)");
    +
    if (b0 + b1 < threshold) {
    +
    ttg::print(" ", b0, "+", b1, "<", threshold, " so continuing to iterate"); ttg::send <0>(k + 1, b0 + b1, out);
    +
    } else {
    +
    ttg::print(" ", b0, "+", b1, ">=", threshold, " so stopping the iterations");
    +
    }
    +
    }
    +
    +
    int main(int argc, char **argv) {
    +
    ttg::initialize(argc, argv, -1);
    +
    +
    ttg::Edge<Key2, double> A_B("A(k)->B(k)");
    +
    ttg::Edge<int, double> B_C0("B(k)->C0(k)");
    +
    ttg::Edge<int, double> B_C1("B(k)->C1(k)");
    +
    ttg::Edge<int, double> C_A("C(k)->A(k)");
    +
    +
    auto wa(ttg::make_tt(a, ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
    +
    auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C0, B_C1), "B", {"from A"},
    +
    {"to 1st input of C", "to 2nd input of C"}));
    +
    auto wc(ttg::make_tt(c, ttg::edges(B_C0, B_C1), ttg::edges(C_A), "C", {"From B", "From B"}, {"to A"}));
    +
    + +
    +
    if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
    +
    + + +
    + +
    return EXIT_SUCCESS;
    +
    }
    +
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    std::ostream & operator<<(std::ostream &os, ttg::device::Device device)
    Definition: device.h:68
    +
    std::pair< int, int > Key2
    Definition: distributed.cc:6
    +
    const double threshold
    Definition: iterative.cc:5
    +
    int main(int argc, char **argv)
    Definition: iterative.cc:39
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/iterative_8cc.html b/dox-master/iterative_8cc.html new file mode 100644 index 000000000..8923341a0 --- /dev/null +++ b/dox-master/iterative_8cc.html @@ -0,0 +1,252 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/iterative.cc File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    iterative.cc File Reference
    +
    +
    +
    #include <ttg.h>
    +#include <ttg/serialization/std/pair.h>
    +#include <ttg/util/hash/std/pair.h>
    +
    + + + +

    +Typedefs

    using Key2 = std::pair< int, int >
     
    + + + + + +

    +Functions

    std::ostream & std::operator<< (std::ostream &os, const Key2 &key)
     
    int main (int argc, char **argv)
     
    + + + +

    +Variables

    const double threshold = 100.0
     
    +

    Typedef Documentation

    + +

    ◆ Key2

    + +
    +
    + + + + +
    using Key2 = std::pair<int, int>
    +
    + +

    Definition at line 6 of file iterative.cc.

    + +
    +
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int argc,
    char ** argv 
    )
    +
    +
    Examples
    iterative.cc.
    +
    + +

    Definition at line 39 of file iterative.cc.

    + +
    +
    + +

    ◆ operator<<()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    std::ostream & std::operator<< (std::ostream & os,
    const Key2key 
    )
    +
    +
    Examples
    distributed.cc.
    +
    + +

    Definition at line 9 of file distributed.cc.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ threshold

    + +
    +
    + + + + +
    const double threshold = 100.0
    +
    +
    Examples
    iterative.cc.
    +
    + +

    Definition at line 5 of file iterative.cc.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/iterative_8cc_source.html b/dox-master/iterative_8cc_source.html new file mode 100644 index 000000000..00d283a5d --- /dev/null +++ b/dox-master/iterative_8cc_source.html @@ -0,0 +1,201 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/iterative.cc Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    iterative.cc
    +
    +
    +Go to the documentation of this file.
    1 #include <ttg.h>
    + + +
    4 
    +
    5 const double threshold = 100.0;
    +
    6 using Key2 = std::pair<int, int>;
    +
    7 
    +
    8 namespace std {
    +
    9  std::ostream &operator<<(std::ostream &os, const Key2 &key) {
    +
    10  os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
    +
    11  return os;
    +
    12  }
    +
    13 } // namespace std
    +
    14 
    +
    15 static void a(const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
    +
    16  ttg::print("Called task A(", k, ")"); ttg::send <0>(Key2{k, 0}, 1.0 + input, out); ttg::send <0>(Key2{k, 1}, 2.0 + input, out);
    +
    19 }
    +
    20 
    +
    21 static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>, ttg::Out<int, double>> &out) {
    +
    22  ttg::print("Called task B(", key, ") with input data ", input);
    +
    23  if (std::get<1>(key) == 0) ttg::send <0>(std::get<0>(key), input + 1.0, out);
    +
    25  else ttg::send <1>(std::get<0>(key), input + 1.0, out);
    +
    27 }
    +
    28 
    +
    29 static void c(const int &k, const double &b0, const double &b1, std::tuple<ttg::Out<int, double>> &out) {
    +
    30  ttg::print("Called task C(", k, ") with inputs ", b0, " from B(", k, " 0) and ", b1, " from B(", k, " 1)");
    +
    31  if (b0 + b1 < threshold) {
    +
    32  ttg::print(" ", b0, "+", b1, "<", threshold, " so continuing to iterate"); ttg::send <0>(k + 1, b0 + b1, out);
    +
    34  } else {
    +
    35  ttg::print(" ", b0, "+", b1, ">=", threshold, " so stopping the iterations");
    +
    36  }
    +
    37 }
    +
    38 
    +
    39 int main(int argc, char **argv) {
    +
    40  ttg::initialize(argc, argv, -1);
    +
    41 
    +
    42  ttg::Edge<Key2, double> A_B("A(k)->B(k)");
    +
    43  ttg::Edge<int, double> B_C0("B(k)->C0(k)");
    +
    44  ttg::Edge<int, double> B_C1("B(k)->C1(k)");
    +
    45  ttg::Edge<int, double> C_A("C(k)->A(k)");
    +
    46 
    +
    47  auto wa(ttg::make_tt(a, ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
    +
    48  auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C0, B_C1), "B", {"from A"},
    +
    49  {"to 1st input of C", "to 2nd input of C"}));
    +
    50  auto wc(ttg::make_tt(c, ttg::edges(B_C0, B_C1), ttg::edges(C_A), "C", {"From B", "From B"}, {"to A"}));
    +
    51 
    + +
    53 
    +
    54  if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
    +
    55 
    +
    56  ttg::execute();
    + +
    58 
    +
    59  ttg::finalize();
    +
    60  return EXIT_SUCCESS;
    +
    61 }
    +
    62 
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    std::pair< int, int > Key2
    Definition: distributed.cc:6
    +
    const double threshold
    Definition: iterative.cc:5
    +
    int main(int argc, char **argv)
    Definition: iterative.cc:39
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/jquery.js b/dox-master/jquery.js new file mode 100644 index 000000000..103c32d79 --- /dev/null +++ b/dox-master/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
    "),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
    ").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
    "),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
    ').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/dox-master/jquery.smartmenus.bootstrap.css b/dox-master/jquery.smartmenus.bootstrap.css new file mode 100644 index 000000000..e8eb974c1 --- /dev/null +++ b/dox-master/jquery.smartmenus.bootstrap.css @@ -0,0 +1,122 @@ +/* + You probably do not need to edit this at all. + + Add some SmartMenus required styles not covered in Bootstrap 3's default CSS. + These are theme independent and should work with any Bootstrap 3 theme mod. +*/ +/* sub menus arrows on desktop */ +.navbar-nav:not(.sm-collapsible) ul .caret { + position: absolute; + right: 0; + margin-top: 6px; + margin-right: 15px; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px dashed; +} +.navbar-nav:not(.sm-collapsible) ul a.has-submenu { + padding-right: 30px; +} +/* make sub menu arrows look like +/- buttons in collapsible mode */ +.navbar-nav.sm-collapsible .caret, .navbar-nav.sm-collapsible ul .caret { + position: absolute; + right: 0; + margin: -3px 15px 0 0; + padding: 0; + width: 32px; + height: 26px; + line-height: 24px; + text-align: center; + border-width: 1px; + border-style: solid; +} +.navbar-nav.sm-collapsible .caret:before { + content: '+'; + font-family: monospace; + font-weight: bold; +} +.navbar-nav.sm-collapsible .open > a > .caret:before { + content: '-'; +} +.navbar-nav.sm-collapsible a.has-submenu { + padding-right: 50px; +} +/* revert to Bootstrap's default carets in collapsible mode when the "data-sm-skip-collapsible-behavior" attribute is set to the ul.navbar-nav */ +.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] .caret, .navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] ul .caret { + position: static; + margin: 0 0 0 2px; + padding: 0; + width: 0; + height: 0; + border-top: 4px dashed; + border-right: 4px solid transparent; + border-bottom: 0; + border-left: 4px solid transparent; +} +.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] .caret:before { + content: '' !important; +} +.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] a.has-submenu { + padding-right: 15px; +} +/* scrolling arrows for tall menus */ +.navbar-nav span.scroll-up, .navbar-nav span.scroll-down { + position: absolute; + display: none; + visibility: hidden; + height: 20px; + overflow: hidden; + text-align: center; +} +.navbar-nav span.scroll-up-arrow, .navbar-nav span.scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-top: 7px dashed transparent; + border-right: 7px dashed transparent; + border-bottom: 7px solid; + border-left: 7px dashed transparent; +} +.navbar-nav span.scroll-down-arrow { + top: 6px; + border-top: 7px solid; + border-right: 7px dashed transparent; + border-bottom: 7px dashed transparent; + border-left: 7px dashed transparent; +} +/* add more indentation for 2+ level sub in collapsible mode - Bootstrap normally supports just 1 level sub menus */ +.navbar-nav.sm-collapsible ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul .dropdown-menu .dropdown-header { + padding-left: 35px; +} +.navbar-nav.sm-collapsible ul ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul ul .dropdown-menu .dropdown-header { + padding-left: 45px; +} +.navbar-nav.sm-collapsible ul ul ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul ul ul .dropdown-menu .dropdown-header { + padding-left: 55px; +} +.navbar-nav.sm-collapsible ul ul ul ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul ul ul ul .dropdown-menu .dropdown-header { + padding-left: 65px; +} +/* fix SmartMenus sub menus auto width (subMenusMinWidth and subMenusMaxWidth options) */ +.navbar-nav .dropdown-menu > li > a { + white-space: normal; +} +.navbar-nav ul.sm-nowrap > li > a { + white-space: nowrap; +} +.navbar-nav.sm-collapsible ul.sm-nowrap > li > a { + white-space: normal; +} +/* fix .navbar-right subs alignment */ +.navbar-right ul.dropdown-menu { + left: 0; + right: auto; +} diff --git a/dox-master/jquery.smartmenus.bootstrap.js b/dox-master/jquery.smartmenus.bootstrap.js new file mode 100644 index 000000000..f06183e8c --- /dev/null +++ b/dox-master/jquery.smartmenus.bootstrap.js @@ -0,0 +1,174 @@ +/*! + * SmartMenus jQuery Plugin Bootstrap Addon - v0.3.1 - November 1, 2016 + * http://www.smartmenus.org/ + * + * Copyright Vasil Dinkov, Vadikom Web Ltd. + * http://vadikom.com + * + * Licensed MIT + */ + +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery', 'jquery.smartmenus'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global jQuery + factory(jQuery); + } +} (function($) { + + $.extend($.SmartMenus.Bootstrap = {}, { + keydownFix: false, + init: function() { + // init all navbars that don't have the "data-sm-skip" attribute set + var $navbars = $('ul.navbar-nav:not([data-sm-skip])'); + $navbars.each(function() { + var $this = $(this), + obj = $this.data('smartmenus'); + // if this navbar is not initialized + if (!obj) { + $this.smartmenus({ + + // these are some good default options that should work for all + // you can, of course, tweak these as you like + subMenusSubOffsetX: 2, + subMenusSubOffsetY: -6, + subIndicators: false, + collapsibleShowFunction: null, + collapsibleHideFunction: null, + rightToLeftSubMenus: $this.hasClass('navbar-right'), + bottomToTopSubMenus: $this.closest('.navbar').hasClass('navbar-fixed-bottom') + }) + .bind({ + // set/unset proper Bootstrap classes for some menu elements + 'show.smapi': function(e, menu) { + var $menu = $(menu), + $scrollArrows = $menu.dataSM('scroll-arrows'); + if ($scrollArrows) { + // they inherit border-color from body, so we can use its background-color too + $scrollArrows.css('background-color', $(document.body).css('background-color')); + } + $menu.parent().addClass('open'); + }, + 'hide.smapi': function(e, menu) { + $(menu).parent().removeClass('open'); + } + }); + + function onInit() { + // set Bootstrap's "active" class to SmartMenus "current" items (should someone decide to enable markCurrentItem: true) + $this.find('a.current').parent().addClass('active'); + // remove any Bootstrap required attributes that might cause conflicting issues with the SmartMenus script + $this.find('a.has-submenu').each(function() { + var $this = $(this); + if ($this.is('[data-toggle="dropdown"]')) { + $this.dataSM('bs-data-toggle-dropdown', true).removeAttr('data-toggle'); + } + if ($this.is('[role="button"]')) { + $this.dataSM('bs-role-button', true).removeAttr('role'); + } + }); + } + + onInit(); + + function onBeforeDestroy() { + $this.find('a.current').parent().removeClass('active'); + $this.find('a.has-submenu').each(function() { + var $this = $(this); + if ($this.dataSM('bs-data-toggle-dropdown')) { + $this.attr('data-toggle', 'dropdown').removeDataSM('bs-data-toggle-dropdown'); + } + if ($this.dataSM('bs-role-button')) { + $this.attr('role', 'button').removeDataSM('bs-role-button'); + } + }); + } + + obj = $this.data('smartmenus'); + + // custom "isCollapsible" method for Bootstrap + obj.isCollapsible = function() { + return !/^(left|right)$/.test(this.$firstLink.parent().css('float')); + }; + + // custom "refresh" method for Bootstrap + obj.refresh = function() { + $.SmartMenus.prototype.refresh.call(this); + onInit(); + // update collapsible detection + detectCollapsible(true); + }; + + // custom "destroy" method for Bootstrap + obj.destroy = function(refresh) { + onBeforeDestroy(); + $.SmartMenus.prototype.destroy.call(this, refresh); + }; + + // keep Bootstrap's default behavior for parent items when the "data-sm-skip-collapsible-behavior" attribute is set to the ul.navbar-nav + // i.e. use the whole item area just as a sub menu toggle and don't customize the carets + if ($this.is('[data-sm-skip-collapsible-behavior]')) { + $this.bind({ + // click the parent item to toggle the sub menus (and reset deeper levels and other branches on click) + 'click.smapi': function(e, item) { + if (obj.isCollapsible()) { + var $item = $(item), + $sub = $item.parent().dataSM('sub'); + if ($sub && $sub.dataSM('shown-before') && $sub.is(':visible')) { + obj.itemActivate($item); + obj.menuHide($sub); + return false; + } + } + } + }); + } + + // onresize detect when the navbar becomes collapsible and add it the "sm-collapsible" class + var winW; + function detectCollapsible(force) { + var newW = obj.getViewportWidth(); + if (newW != winW || force) { + var $carets = $this.find('.caret'); + if (obj.isCollapsible()) { + $this.addClass('sm-collapsible'); + // set "navbar-toggle" class to carets (so they look like a button) if the "data-sm-skip-collapsible-behavior" attribute is not set to the ul.navbar-nav + if (!$this.is('[data-sm-skip-collapsible-behavior]')) { + $carets.addClass('navbar-toggle sub-arrow'); + } + } else { + $this.removeClass('sm-collapsible'); + if (!$this.is('[data-sm-skip-collapsible-behavior]')) { + $carets.removeClass('navbar-toggle sub-arrow'); + } + } + winW = newW; + } + } + detectCollapsible(); + $(window).bind('resize.smartmenus' + obj.rootId, detectCollapsible); + } + }); + // keydown fix for Bootstrap 3.3.5+ conflict + if ($navbars.length && !$.SmartMenus.Bootstrap.keydownFix) { + // unhook BS keydown handler for all dropdowns + $(document).off('keydown.bs.dropdown.data-api', '.dropdown-menu'); + // restore BS keydown handler for dropdowns that are not inside SmartMenus navbars + if ($.fn.dropdown && $.fn.dropdown.Constructor) { + $(document).on('keydown.bs.dropdown.data-api', '.dropdown-menu:not([id^="sm-"])', $.fn.dropdown.Constructor.prototype.keydown); + } + $.SmartMenus.Bootstrap.keydownFix = true; + } + } + }); + + // init ondomready + $($.SmartMenus.Bootstrap.init); + + return $; +})); diff --git a/dox-master/jquery.smartmenus.js b/dox-master/jquery.smartmenus.js new file mode 100644 index 000000000..07e63a0c9 --- /dev/null +++ b/dox-master/jquery.smartmenus.js @@ -0,0 +1,1223 @@ +/*! + * SmartMenus jQuery Plugin - v1.0.1 - November 1, 2016 + * http://www.smartmenus.org/ + * + * Copyright Vasil Dinkov, Vadikom Web Ltd. + * http://vadikom.com + * + * Licensed MIT + */ + +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global jQuery + factory(jQuery); + } +} (function($) { + + var menuTrees = [], + IE = !!window.createPopup, // detect it for the iframe shim + mouse = false, // optimize for touch by default - we will detect for mouse input + touchEvents = 'ontouchstart' in window, // we use this just to choose between toucn and pointer events, not for touch screen detection + mouseDetectionEnabled = false, + requestAnimationFrame = window.requestAnimationFrame || function(callback) { return setTimeout(callback, 1000 / 60); }, + cancelAnimationFrame = window.cancelAnimationFrame || function(id) { clearTimeout(id); }; + + // Handle detection for mouse input (i.e. desktop browsers, tablets with a mouse, etc.) + function initMouseDetection(disable) { + var eNS = '.smartmenus_mouse'; + if (!mouseDetectionEnabled && !disable) { + // if we get two consecutive mousemoves within 2 pixels from each other and within 300ms, we assume a real mouse/cursor is present + // in practice, this seems like impossible to trick unintentianally with a real mouse and a pretty safe detection on touch devices (even with older browsers that do not support touch events) + var firstTime = true, + lastMove = null; + $(document).bind(getEventsNS([ + ['mousemove', function(e) { + var thisMove = { x: e.pageX, y: e.pageY, timeStamp: new Date().getTime() }; + if (lastMove) { + var deltaX = Math.abs(lastMove.x - thisMove.x), + deltaY = Math.abs(lastMove.y - thisMove.y); + if ((deltaX > 0 || deltaY > 0) && deltaX <= 2 && deltaY <= 2 && thisMove.timeStamp - lastMove.timeStamp <= 300) { + mouse = true; + // if this is the first check after page load, check if we are not over some item by chance and call the mouseenter handler if yes + if (firstTime) { + var $a = $(e.target).closest('a'); + if ($a.is('a')) { + $.each(menuTrees, function() { + if ($.contains(this.$root[0], $a[0])) { + this.itemEnter({ currentTarget: $a[0] }); + return false; + } + }); + } + firstTime = false; + } + } + } + lastMove = thisMove; + }], + [touchEvents ? 'touchstart' : 'pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut', function(e) { + if (isTouchEvent(e.originalEvent)) { + mouse = false; + } + }] + ], eNS)); + mouseDetectionEnabled = true; + } else if (mouseDetectionEnabled && disable) { + $(document).unbind(eNS); + mouseDetectionEnabled = false; + } + } + + function isTouchEvent(e) { + return !/^(4|mouse)$/.test(e.pointerType); + } + + // returns a jQuery bind() ready object + function getEventsNS(defArr, eNS) { + if (!eNS) { + eNS = ''; + } + var obj = {}; + $.each(defArr, function(index, value) { + obj[value[0].split(' ').join(eNS + ' ') + eNS] = value[1]; + }); + return obj; + } + + $.SmartMenus = function(elm, options) { + this.$root = $(elm); + this.opts = options; + this.rootId = ''; // internal + this.accessIdPrefix = ''; + this.$subArrow = null; + this.activatedItems = []; // stores last activated A's for each level + this.visibleSubMenus = []; // stores visible sub menus UL's (might be in no particular order) + this.showTimeout = 0; + this.hideTimeout = 0; + this.scrollTimeout = 0; + this.clickActivated = false; + this.focusActivated = false; + this.zIndexInc = 0; + this.idInc = 0; + this.$firstLink = null; // we'll use these for some tests + this.$firstSub = null; // at runtime so we'll cache them + this.disabled = false; + this.$disableOverlay = null; + this.$touchScrollingSub = null; + this.cssTransforms3d = 'perspective' in elm.style || 'webkitPerspective' in elm.style; + this.wasCollapsible = false; + this.init(); + }; + + $.extend($.SmartMenus, { + hideAll: function() { + $.each(menuTrees, function() { + this.menuHideAll(); + }); + }, + destroy: function() { + while (menuTrees.length) { + menuTrees[0].destroy(); + } + initMouseDetection(true); + }, + prototype: { + init: function(refresh) { + var self = this; + + if (!refresh) { + menuTrees.push(this); + + this.rootId = (new Date().getTime() + Math.random() + '').replace(/\D/g, ''); + this.accessIdPrefix = 'sm-' + this.rootId + '-'; + + if (this.$root.hasClass('sm-rtl')) { + this.opts.rightToLeftSubMenus = true; + } + + // init root (main menu) + var eNS = '.smartmenus'; + this.$root + .data('smartmenus', this) + .attr('data-smartmenus-id', this.rootId) + .dataSM('level', 1) + .bind(getEventsNS([ + ['mouseover focusin', $.proxy(this.rootOver, this)], + ['mouseout focusout', $.proxy(this.rootOut, this)], + ['keydown', $.proxy(this.rootKeyDown, this)] + ], eNS)) + .delegate('a', getEventsNS([ + ['mouseenter', $.proxy(this.itemEnter, this)], + ['mouseleave', $.proxy(this.itemLeave, this)], + ['mousedown', $.proxy(this.itemDown, this)], + ['focus', $.proxy(this.itemFocus, this)], + ['blur', $.proxy(this.itemBlur, this)], + ['click', $.proxy(this.itemClick, this)] + ], eNS)); + + // hide menus on tap or click outside the root UL + eNS += this.rootId; + if (this.opts.hideOnClick) { + $(document).bind(getEventsNS([ + ['touchstart', $.proxy(this.docTouchStart, this)], + ['touchmove', $.proxy(this.docTouchMove, this)], + ['touchend', $.proxy(this.docTouchEnd, this)], + // for Opera Mobile < 11.5, webOS browser, etc. we'll check click too + ['click', $.proxy(this.docClick, this)] + ], eNS)); + } + // hide sub menus on resize + $(window).bind(getEventsNS([['resize orientationchange', $.proxy(this.winResize, this)]], eNS)); + + if (this.opts.subIndicators) { + this.$subArrow = $('').addClass('sub-arrow'); + if (this.opts.subIndicatorsText) { + this.$subArrow.html(this.opts.subIndicatorsText); + } + } + + // make sure mouse detection is enabled + initMouseDetection(); + } + + // init sub menus + this.$firstSub = this.$root.find('ul').each(function() { self.menuInit($(this)); }).eq(0); + + this.$firstLink = this.$root.find('a').eq(0); + + // find current item + if (this.opts.markCurrentItem) { + var reDefaultDoc = /(index|default)\.[^#\?\/]*/i, + reHash = /#.*/, + locHref = window.location.href.replace(reDefaultDoc, ''), + locHrefNoHash = locHref.replace(reHash, ''); + this.$root.find('a').each(function() { + var href = this.href.replace(reDefaultDoc, ''), + $this = $(this); + if (href == locHref || href == locHrefNoHash) { + $this.addClass('current'); + if (self.opts.markCurrentTree) { + $this.parentsUntil('[data-smartmenus-id]', 'ul').each(function() { + $(this).dataSM('parent-a').addClass('current'); + }); + } + } + }); + } + + // save initial state + this.wasCollapsible = this.isCollapsible(); + }, + destroy: function(refresh) { + if (!refresh) { + var eNS = '.smartmenus'; + this.$root + .removeData('smartmenus') + .removeAttr('data-smartmenus-id') + .removeDataSM('level') + .unbind(eNS) + .undelegate(eNS); + eNS += this.rootId; + $(document).unbind(eNS); + $(window).unbind(eNS); + if (this.opts.subIndicators) { + this.$subArrow = null; + } + } + this.menuHideAll(); + var self = this; + this.$root.find('ul').each(function() { + var $this = $(this); + if ($this.dataSM('scroll-arrows')) { + $this.dataSM('scroll-arrows').remove(); + } + if ($this.dataSM('shown-before')) { + if (self.opts.subMenusMinWidth || self.opts.subMenusMaxWidth) { + $this.css({ width: '', minWidth: '', maxWidth: '' }).removeClass('sm-nowrap'); + } + if ($this.dataSM('scroll-arrows')) { + $this.dataSM('scroll-arrows').remove(); + } + $this.css({ zIndex: '', top: '', left: '', marginLeft: '', marginTop: '', display: '' }); + } + if (($this.attr('id') || '').indexOf(self.accessIdPrefix) == 0) { + $this.removeAttr('id'); + } + }) + .removeDataSM('in-mega') + .removeDataSM('shown-before') + .removeDataSM('ie-shim') + .removeDataSM('scroll-arrows') + .removeDataSM('parent-a') + .removeDataSM('level') + .removeDataSM('beforefirstshowfired') + .removeAttr('role') + .removeAttr('aria-hidden') + .removeAttr('aria-labelledby') + .removeAttr('aria-expanded'); + this.$root.find('a.has-submenu').each(function() { + var $this = $(this); + if ($this.attr('id').indexOf(self.accessIdPrefix) == 0) { + $this.removeAttr('id'); + } + }) + .removeClass('has-submenu') + .removeDataSM('sub') + .removeAttr('aria-haspopup') + .removeAttr('aria-controls') + .removeAttr('aria-expanded') + .closest('li').removeDataSM('sub'); + if (this.opts.subIndicators) { + this.$root.find('span.sub-arrow').remove(); + } + if (this.opts.markCurrentItem) { + this.$root.find('a.current').removeClass('current'); + } + if (!refresh) { + this.$root = null; + this.$firstLink = null; + this.$firstSub = null; + if (this.$disableOverlay) { + this.$disableOverlay.remove(); + this.$disableOverlay = null; + } + menuTrees.splice($.inArray(this, menuTrees), 1); + } + }, + disable: function(noOverlay) { + if (!this.disabled) { + this.menuHideAll(); + // display overlay over the menu to prevent interaction + if (!noOverlay && !this.opts.isPopup && this.$root.is(':visible')) { + var pos = this.$root.offset(); + this.$disableOverlay = $('
    ').css({ + position: 'absolute', + top: pos.top, + left: pos.left, + width: this.$root.outerWidth(), + height: this.$root.outerHeight(), + zIndex: this.getStartZIndex(true), + opacity: 0 + }).appendTo(document.body); + } + this.disabled = true; + } + }, + docClick: function(e) { + if (this.$touchScrollingSub) { + this.$touchScrollingSub = null; + return; + } + // hide on any click outside the menu or on a menu link + if (this.visibleSubMenus.length && !$.contains(this.$root[0], e.target) || $(e.target).is('a')) { + this.menuHideAll(); + } + }, + docTouchEnd: function(e) { + if (!this.lastTouch) { + return; + } + if (this.visibleSubMenus.length && (this.lastTouch.x2 === undefined || this.lastTouch.x1 == this.lastTouch.x2) && (this.lastTouch.y2 === undefined || this.lastTouch.y1 == this.lastTouch.y2) && (!this.lastTouch.target || !$.contains(this.$root[0], this.lastTouch.target))) { + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout = 0; + } + // hide with a delay to prevent triggering accidental unwanted click on some page element + var self = this; + this.hideTimeout = setTimeout(function() { self.menuHideAll(); }, 350); + } + this.lastTouch = null; + }, + docTouchMove: function(e) { + if (!this.lastTouch) { + return; + } + var touchPoint = e.originalEvent.touches[0]; + this.lastTouch.x2 = touchPoint.pageX; + this.lastTouch.y2 = touchPoint.pageY; + }, + docTouchStart: function(e) { + var touchPoint = e.originalEvent.touches[0]; + this.lastTouch = { x1: touchPoint.pageX, y1: touchPoint.pageY, target: touchPoint.target }; + }, + enable: function() { + if (this.disabled) { + if (this.$disableOverlay) { + this.$disableOverlay.remove(); + this.$disableOverlay = null; + } + this.disabled = false; + } + }, + getClosestMenu: function(elm) { + var $closestMenu = $(elm).closest('ul'); + while ($closestMenu.dataSM('in-mega')) { + $closestMenu = $closestMenu.parent().closest('ul'); + } + return $closestMenu[0] || null; + }, + getHeight: function($elm) { + return this.getOffset($elm, true); + }, + // returns precise width/height float values + getOffset: function($elm, height) { + var old; + if ($elm.css('display') == 'none') { + old = { position: $elm[0].style.position, visibility: $elm[0].style.visibility }; + $elm.css({ position: 'absolute', visibility: 'hidden' }).show(); + } + var box = $elm[0].getBoundingClientRect && $elm[0].getBoundingClientRect(), + val = box && (height ? box.height || box.bottom - box.top : box.width || box.right - box.left); + if (!val && val !== 0) { + val = height ? $elm[0].offsetHeight : $elm[0].offsetWidth; + } + if (old) { + $elm.hide().css(old); + } + return val; + }, + getStartZIndex: function(root) { + var zIndex = parseInt(this[root ? '$root' : '$firstSub'].css('z-index')); + if (!root && isNaN(zIndex)) { + zIndex = parseInt(this.$root.css('z-index')); + } + return !isNaN(zIndex) ? zIndex : 1; + }, + getTouchPoint: function(e) { + return e.touches && e.touches[0] || e.changedTouches && e.changedTouches[0] || e; + }, + getViewport: function(height) { + var name = height ? 'Height' : 'Width', + val = document.documentElement['client' + name], + val2 = window['inner' + name]; + if (val2) { + val = Math.min(val, val2); + } + return val; + }, + getViewportHeight: function() { + return this.getViewport(true); + }, + getViewportWidth: function() { + return this.getViewport(); + }, + getWidth: function($elm) { + return this.getOffset($elm); + }, + handleEvents: function() { + return !this.disabled && this.isCSSOn(); + }, + handleItemEvents: function($a) { + return this.handleEvents() && !this.isLinkInMegaMenu($a); + }, + isCollapsible: function() { + return this.$firstSub.css('position') == 'static'; + }, + isCSSOn: function() { + return this.$firstLink.css('display') == 'block'; + }, + isFixed: function() { + var isFixed = this.$root.css('position') == 'fixed'; + if (!isFixed) { + this.$root.parentsUntil('body').each(function() { + if ($(this).css('position') == 'fixed') { + isFixed = true; + return false; + } + }); + } + return isFixed; + }, + isLinkInMegaMenu: function($a) { + return $(this.getClosestMenu($a[0])).hasClass('mega-menu'); + }, + isTouchMode: function() { + return !mouse || this.opts.noMouseOver || this.isCollapsible(); + }, + itemActivate: function($a, focus) { + var $ul = $a.closest('ul'), + level = $ul.dataSM('level'); + // if for some reason the parent item is not activated (e.g. this is an API call to activate the item), activate all parent items first + if (level > 1 && (!this.activatedItems[level - 2] || this.activatedItems[level - 2][0] != $ul.dataSM('parent-a')[0])) { + var self = this; + $($ul.parentsUntil('[data-smartmenus-id]', 'ul').get().reverse()).add($ul).each(function() { + self.itemActivate($(this).dataSM('parent-a')); + }); + } + // hide any visible deeper level sub menus + if (!this.isCollapsible() || focus) { + this.menuHideSubMenus(!this.activatedItems[level - 1] || this.activatedItems[level - 1][0] != $a[0] ? level - 1 : level); + } + // save new active item for this level + this.activatedItems[level - 1] = $a; + if (this.$root.triggerHandler('activate.smapi', $a[0]) === false) { + return; + } + // show the sub menu if this item has one + var $sub = $a.dataSM('sub'); + if ($sub && (this.isTouchMode() || (!this.opts.showOnClick || this.clickActivated))) { + this.menuShow($sub); + } + }, + itemBlur: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + this.$root.triggerHandler('blur.smapi', $a[0]); + }, + itemClick: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + if (this.$touchScrollingSub && this.$touchScrollingSub[0] == $a.closest('ul')[0]) { + this.$touchScrollingSub = null; + e.stopPropagation(); + return false; + } + if (this.$root.triggerHandler('click.smapi', $a[0]) === false) { + return false; + } + var subArrowClicked = $(e.target).is('span.sub-arrow'), + $sub = $a.dataSM('sub'), + firstLevelSub = $sub ? $sub.dataSM('level') == 2 : false; + // if the sub is not visible + if ($sub && !$sub.is(':visible')) { + if (this.opts.showOnClick && firstLevelSub) { + this.clickActivated = true; + } + // try to activate the item and show the sub + this.itemActivate($a); + // if "itemActivate" showed the sub, prevent the click so that the link is not loaded + // if it couldn't show it, then the sub menus are disabled with an !important declaration (e.g. via mobile styles) so let the link get loaded + if ($sub.is(':visible')) { + this.focusActivated = true; + return false; + } + } else if (this.isCollapsible() && subArrowClicked) { + this.itemActivate($a); + this.menuHide($sub); + return false; + } + if (this.opts.showOnClick && firstLevelSub || $a.hasClass('disabled') || this.$root.triggerHandler('select.smapi', $a[0]) === false) { + return false; + } + }, + itemDown: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + $a.dataSM('mousedown', true); + }, + itemEnter: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + if (!this.isTouchMode()) { + if (this.showTimeout) { + clearTimeout(this.showTimeout); + this.showTimeout = 0; + } + var self = this; + this.showTimeout = setTimeout(function() { self.itemActivate($a); }, this.opts.showOnClick && $a.closest('ul').dataSM('level') == 1 ? 1 : this.opts.showTimeout); + } + this.$root.triggerHandler('mouseenter.smapi', $a[0]); + }, + itemFocus: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + // fix (the mousedown check): in some browsers a tap/click produces consecutive focus + click events so we don't need to activate the item on focus + if (this.focusActivated && (!this.isTouchMode() || !$a.dataSM('mousedown')) && (!this.activatedItems.length || this.activatedItems[this.activatedItems.length - 1][0] != $a[0])) { + this.itemActivate($a, true); + } + this.$root.triggerHandler('focus.smapi', $a[0]); + }, + itemLeave: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + if (!this.isTouchMode()) { + $a[0].blur(); + if (this.showTimeout) { + clearTimeout(this.showTimeout); + this.showTimeout = 0; + } + } + $a.removeDataSM('mousedown'); + this.$root.triggerHandler('mouseleave.smapi', $a[0]); + }, + menuHide: function($sub) { + if (this.$root.triggerHandler('beforehide.smapi', $sub[0]) === false) { + return; + } + $sub.stop(true, true); + if ($sub.css('display') != 'none') { + var complete = function() { + // unset z-index + $sub.css('z-index', ''); + }; + // if sub is collapsible (mobile view) + if (this.isCollapsible()) { + if (this.opts.collapsibleHideFunction) { + this.opts.collapsibleHideFunction.call(this, $sub, complete); + } else { + $sub.hide(this.opts.collapsibleHideDuration, complete); + } + } else { + if (this.opts.hideFunction) { + this.opts.hideFunction.call(this, $sub, complete); + } else { + $sub.hide(this.opts.hideDuration, complete); + } + } + // remove IE iframe shim + if ($sub.dataSM('ie-shim')) { + $sub.dataSM('ie-shim').remove().css({ '-webkit-transform': '', transform: '' }); + } + // deactivate scrolling if it is activated for this sub + if ($sub.dataSM('scroll')) { + this.menuScrollStop($sub); + $sub.css({ 'touch-action': '', '-ms-touch-action': '', '-webkit-transform': '', transform: '' }) + .unbind('.smartmenus_scroll').removeDataSM('scroll').dataSM('scroll-arrows').hide(); + } + // unhighlight parent item + accessibility + $sub.dataSM('parent-a').removeClass('highlighted').attr('aria-expanded', 'false'); + $sub.attr({ + 'aria-expanded': 'false', + 'aria-hidden': 'true' + }); + var level = $sub.dataSM('level'); + this.activatedItems.splice(level - 1, 1); + this.visibleSubMenus.splice($.inArray($sub, this.visibleSubMenus), 1); + this.$root.triggerHandler('hide.smapi', $sub[0]); + } + }, + menuHideAll: function() { + if (this.showTimeout) { + clearTimeout(this.showTimeout); + this.showTimeout = 0; + } + // hide all subs + // if it's a popup, this.visibleSubMenus[0] is the root UL + var level = this.opts.isPopup ? 1 : 0; + for (var i = this.visibleSubMenus.length - 1; i >= level; i--) { + this.menuHide(this.visibleSubMenus[i]); + } + // hide root if it's popup + if (this.opts.isPopup) { + this.$root.stop(true, true); + if (this.$root.is(':visible')) { + if (this.opts.hideFunction) { + this.opts.hideFunction.call(this, this.$root); + } else { + this.$root.hide(this.opts.hideDuration); + } + // remove IE iframe shim + if (this.$root.dataSM('ie-shim')) { + this.$root.dataSM('ie-shim').remove(); + } + } + } + this.activatedItems = []; + this.visibleSubMenus = []; + this.clickActivated = false; + this.focusActivated = false; + // reset z-index increment + this.zIndexInc = 0; + this.$root.triggerHandler('hideAll.smapi'); + }, + menuHideSubMenus: function(level) { + for (var i = this.activatedItems.length - 1; i >= level; i--) { + var $sub = this.activatedItems[i].dataSM('sub'); + if ($sub) { + this.menuHide($sub); + } + } + }, + menuIframeShim: function($ul) { + // create iframe shim for the menu + if (IE && this.opts.overlapControlsInIE && !$ul.dataSM('ie-shim')) { + $ul.dataSM('ie-shim', $(' +
    + + +
    +
    + +
    +
    keymap.h File Reference
    +
    +
    +
    #include <type_traits>
    +#include "ttg/util/meta.h"
    +#include "ttg/util/hash.h"
    +
    + + + + + + +

    +Classes

    struct  ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >
     
    struct  ttg::detail::default_priomap_impl< keyT >
     the default priority map implementation More...
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    +
    + + + +
    +
    + + + + + + + diff --git a/dox-master/keymap_8h_source.html b/dox-master/keymap_8h_source.html new file mode 100644 index 000000000..5e499ae94 --- /dev/null +++ b/dox-master/keymap_8h_source.html @@ -0,0 +1,192 @@ + + + + + + + + + + + ttg: ttg/ttg/base/keymap.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    keymap.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_BASE_KEYMAP_H
    +
    2 #define TTG_BASE_KEYMAP_H
    +
    3 
    +
    4 #include <type_traits>
    +
    5 #include "ttg/util/meta.h"
    +
    6 #include "ttg/util/hash.h"
    +
    7 
    +
    8 namespace ttg {
    +
    9  namespace detail {
    +
    10 
    +
    14  template <typename keyT, typename Enabler = void>
    + +
    16  template <typename keyT>
    + +
    18  keyT, std::enable_if_t<meta::has_ttg_hash_specialization_v<keyT> || meta::is_void_v<keyT>>> {
    +
    19  default_keymap_impl() = default;
    +
    20  default_keymap_impl(int world_size) : world_size(world_size) {}
    +
    21 
    +
    22  template <typename Key = keyT>
    +
    23  std::enable_if_t<!meta::is_void_v<Key>,int>
    +
    24  operator()(const Key &key) const {
    +
    25  if (world_size == 1) {
    +
    26  return 0;
    +
    27  } else {
    +
    28  return ttg::hash<keyT>{}(key) % world_size;
    +
    29  }
    +
    30  }
    +
    31  template <typename Key = keyT>
    +
    32  std::enable_if_t<meta::is_void_v<Key>,int>
    +
    33  operator()() const { return 0; }
    +
    34 
    +
    35  private:
    +
    36  int world_size;
    +
    37  };
    +
    38 
    +
    39 
    +
    41  template <typename keyT>
    + +
    43  default_priomap_impl() = default;
    +
    44 
    +
    45  template <typename Key = keyT>
    +
    46  std::enable_if_t<!meta::is_void_v<Key>,int>
    +
    47  operator()(const Key &key) const { return 0; }
    +
    48  template <typename Key = keyT>
    +
    49  std::enable_if_t<meta::is_void_v<Key>,int>
    +
    50  operator()() const { return 0; }
    +
    51  };
    +
    52 
    +
    53  } // namespace detail
    +
    54 
    +
    55 } // namespace ttg
    +
    56 
    +
    57 #endif // TTG_BASE_KEYMAP_H
    + + +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    + + + + + +
    the default priority map implementation
    Definition: keymap.h:42
    +
    std::enable_if_t<!meta::is_void_v< Key >, int > operator()(const Key &key) const
    Definition: keymap.h:47
    + +
    std::enable_if_t< meta::is_void_v< Key >, int > operator()() const
    Definition: keymap.h:50
    +
    Computes hash values for objects of type T.
    Definition: hash.h:81
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/list_8h.html b/dox-master/list_8h.html new file mode 100644 index 000000000..45d6a441f --- /dev/null +++ b/dox-master/list_8h.html @@ -0,0 +1,128 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/list.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    list.h File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/list_8h_source.html b/dox-master/list_8h_source.html new file mode 100644 index 000000000..bae9a860b --- /dev/null +++ b/dox-master/list_8h_source.html @@ -0,0 +1,158 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/list.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    list.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 5/11/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_STD_LIST_H
    +
    6 #define TTG_SERIALIZATION_STD_LIST_H
    +
    7 
    + + +
    10 
    +
    11 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    12 // MADNESS supports std::list serialization by default
    +
    13 #endif
    +
    14 
    +
    15 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    16 #include <boost/serialization/list.hpp>
    +
    17 
    +
    18 namespace ttg::detail {
    +
    19  template <typename Archive, typename T, typename A>
    +
    20  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, std::list<T, A>> =
    +
    21  is_boost_serializable_v<Archive, T>&& is_boost_serializable_v<Archive, A>;
    +
    22  template <typename Archive, typename T, std::size_t N>
    +
    23  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, const std::list<T, A>> =
    +
    24  is_boost_serializable_v<Archive, const T>&& is_boost_serializable_v<Archive, const A>;
    +
    25 } // namespace ttg::detail
    +
    26 
    +
    27 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    28 
    +
    29 #endif // TTG_SERIALIZATION_STD_LIST_H
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/macro_8h.html b/dox-master/macro_8h.html new file mode 100644 index 000000000..275968f5e --- /dev/null +++ b/dox-master/macro_8h.html @@ -0,0 +1,192 @@ + + + + + + + + + + + ttg: ttg/ttg/util/macro.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    macro.h File Reference
    +
    +
    + + + + + + +

    +Macros

    #define TTGUNUSED(x)   ((void)(x))
     
    #define TTG_UTIL_ALIAS_TEMPLATE_FUNCTION(aliasname, funcname)
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_UTIL_ALIAS_TEMPLATE_FUNCTION

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define TTG_UTIL_ALIAS_TEMPLATE_FUNCTION( aliasname,
     funcname 
    )
    +
    +Value:
    template<typename... Args> \
    +
    inline auto aliasname(Args&&... args) \
    +
    { \
    +
    return funcname(std::forward<Args>(args)...); \
    +
    }
    +
    +

    Definition at line 10 of file macro.h.

    + +
    +
    + +

    ◆ TTGUNUSED

    + +
    +
    + + + + + + + + +
    #define TTGUNUSED( x)   ((void)(x))
    +
    + +

    Definition at line 6 of file macro.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/macro_8h_source.html b/dox-master/macro_8h_source.html new file mode 100644 index 000000000..4def75fb3 --- /dev/null +++ b/dox-master/macro_8h_source.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg/ttg/util/macro.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    macro.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_UTIL_MACRO_H
    +
    2 #define TTG_UTIL_MACRO_H
    +
    3 
    +
    4 
    +
    5 /* Used to suppres compiler warnings on unused variables */
    +
    6 #define TTGUNUSED(x) ((void)(x))
    +
    7 
    +
    8 
    +
    9 // pattern from https://www.fluentcpp.com/2017/10/27/function-aliases-cpp/
    +
    10 #define TTG_UTIL_ALIAS_TEMPLATE_FUNCTION(aliasname,funcname)\
    +
    11 template<typename... Args> \
    +
    12 inline auto aliasname(Args&&... args) \
    +
    13 { \
    +
    14  return funcname(std::forward<Args>(args)...); \
    +
    15 }
    +
    16 
    +
    17 #endif // TTG_UTIL_MACRO_H
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2buffer_8h.html b/dox-master/madness_2buffer_8h.html new file mode 100644 index 000000000..d3194986e --- /dev/null +++ b/dox-master/madness_2buffer_8h.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/buffer.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    buffer.h File Reference
    +
    +
    + + + + + +

    +Classes

    struct  ttg_madness::Buffer< T, Allocator >
     A runtime-managed buffer mirrored between host and device memory. More...
     
    + + + + +

    +Namespaces

     ttg_madness
     this contains MADNESS-based TTG functionality
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2buffer_8h_source.html b/dox-master/madness_2buffer_8h_source.html new file mode 100644 index 000000000..34c71224c --- /dev/null +++ b/dox-master/madness_2buffer_8h_source.html @@ -0,0 +1,463 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/buffer.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    buffer.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_MADNESS_BUFFER_H
    +
    2 #define TTG_MADNESS_BUFFER_H
    +
    3 
    + +
    5 
    +
    6 namespace ttg_madness {
    +
    7 
    +
    9 template<typename T, typename Allocator>
    +
    10 struct Buffer : private Allocator {
    +
    11 
    +
    12  using element_type = std::decay_t<T>;
    +
    13 
    +
    14  using allocator_traits = std::allocator_traits<Allocator>;
    +
    15  using allocator_type = typename allocator_traits::allocator_type;
    +
    16 
    +
    17  static_assert(std::is_trivially_copyable_v<element_type>,
    +
    18  "Only trivially copyable types are supported for devices.");
    +
    19  static_assert(std::is_default_constructible_v<element_type>,
    +
    20  "Only default constructible types are supported for devices.");
    +
    21 
    +
    22 private:
    +
    23  using delete_fn_t = std::function<void(element_type*)>;
    +
    24 
    +
    25  using host_data_ptr = std::add_pointer_t<element_type>;
    +
    26  host_data_ptr m_host_data = nullptr;
    +
    27  std::size_t m_count = 0;
    +
    28  bool m_owned= false;
    +
    29 
    +
    30  static void delete_non_owned(element_type *ptr) {
    +
    31  // nothing to be done, we don't own the memory
    +
    32  }
    +
    33 
    +
    34  allocator_type& get_allocator_reference() { return static_cast<allocator_type&>(*this); }
    +
    35 
    +
    36  element_type* allocate(std::size_t n) {
    +
    37  return allocator_traits::allocate(get_allocator_reference(), n);
    +
    38  }
    +
    39 
    +
    40  void deallocate() {
    +
    41  allocator_traits::deallocate(get_allocator_reference(), m_host_data, m_count);
    +
    42  }
    +
    43 
    +
    44 public:
    +
    45 
    +
    46  Buffer() : Buffer(nullptr, 0)
    +
    47  { }
    +
    48 
    +
    49  Buffer(std::size_t n)
    +
    50  : allocator_type()
    +
    51  , m_host_data(allocate(n))
    +
    52  , m_count(n)
    +
    53  , m_owned(true)
    +
    54  { }
    +
    55 
    +
    56  /* Constructing a buffer using application-managed memory.
    +
    57  * The memory pointed to by ptr must be accessible during
    +
    58  * the life-time of the buffer. */
    +
    59  Buffer(element_type* ptr, std::size_t n = 1)
    +
    60  : allocator_type()
    +
    61  , m_host_data(ptr)
    +
    62  , m_count(n)
    +
    63  , m_owned(false)
    +
    64  { }
    +
    65 
    +
    66  virtual ~Buffer() {
    +
    67  if (m_owned) {
    +
    68  deallocate();
    +
    69  m_owned = false;
    +
    70  }
    +
    71  unpin(); // make sure the copies are not pinned
    +
    72  }
    +
    73 
    +
    74  /* allow moving device buffers */
    +
    75  Buffer(Buffer&& db)
    +
    76  : allocator_type(std::move(db))
    +
    77  , m_host_data(db.m_host_data)
    +
    78  , m_count(db.m_count)
    +
    79  , m_owned(db.m_owned)
    +
    80  {
    +
    81  db.m_host_data = nullptr;
    +
    82  db.m_count = 0;
    +
    83  db.m_owned = false;
    +
    84  }
    +
    85 
    +
    86  /* explicitly disable copying of buffers
    +
    87  * TODO: should we allow this? What data to use?
    +
    88  */
    +
    89  Buffer(const Buffer& db) = delete;
    +
    90 
    +
    91  /* allow moving device buffers */
    + +
    93  allocator_type::operator=(std::move(db));
    +
    94  std::swap(m_host_data, db.m_host_data);
    +
    95  std::swap(m_count, db.m_count);
    +
    96  std::swap(m_owned, db.m_owned);
    +
    97  return *this;
    +
    98  }
    +
    99 
    +
    100  /* explicitly disable copying of buffers
    +
    101  * TODO: should we allow this? What data to use?
    +
    102  */
    +
    103  Buffer& operator=(const Buffer& db) = delete;
    +
    104 
    +
    105  /* set the current device, useful when a device
    +
    106  * buffer was modified outside of a TTG */
    + +
    108  assert(is_valid());
    +
    109  if (!device.is_host()) throw std::runtime_error("MADNESS backend does not support non-host memory!");
    +
    110  /* no-op */
    +
    111  }
    +
    112 
    +
    113  /* Get the owner device ID, i.e., the last updated
    +
    114  * device buffer. */
    + +
    116  assert(is_valid());
    +
    117  return {}; // host only
    +
    118  }
    +
    119 
    +
    120  /* Get the pointer on the currently active device. */
    + +
    122  assert(is_valid());
    +
    123  return m_host_data;
    +
    124  }
    +
    125 
    +
    126  /* Get the pointer on the currently active device. */
    + +
    128  assert(is_valid());
    +
    129  return m_host_data;
    +
    130  }
    +
    131 
    +
    132  /* Get the pointer on the owning device.
    +
    133  * @note: This may not be the device assigned to the currently executing task.
    +
    134  * See \ref ttg::device::current_device for that. */
    + +
    136  assert(is_valid());
    +
    137  return m_host_data;
    +
    138  }
    +
    139 
    +
    140  /* get the current device pointer */
    + +
    142  assert(is_valid());
    +
    143  return m_host_data;
    +
    144  }
    +
    145 
    +
    146  /* get the device pointer at the given device
    +
    147  */
    + +
    149  assert(is_valid());
    +
    150  if (device.is_device()) throw std::runtime_error("MADNESS missing support for non-host memory!");
    +
    151  return m_host_data;
    +
    152  }
    +
    153 
    +
    154  /* get the device pointer at the given device
    +
    155  */
    +
    156  const element_type* device_ptr_on(const ttg::device::Device& device) const {
    +
    157  assert(is_valid());
    +
    158  if (device.is_device()) throw std::runtime_error("MADNESS missing support for non-host memory!");
    +
    159  return m_host_data;
    +
    160  }
    +
    161 
    + +
    163  return m_host_data;
    +
    164  }
    +
    165 
    +
    166  const element_type* host_ptr() const {
    +
    167  return m_host_data;
    +
    168  }
    +
    169 
    +
    170  bool is_valid_on(const ttg::device::Device& device) const {
    +
    171  assert(is_valid());
    +
    172  if (device.is_device()) throw std::runtime_error("MADNESS missing support for non-host memory!");
    +
    173  return true;
    +
    174  }
    +
    175 
    +
    176  void allocate_on(const ttg::device::Device& device_id) {
    +
    177  /* TODO: need exposed PaRSEC memory allocator */
    +
    178  throw std::runtime_error("not implemented yet");
    +
    179  }
    +
    180 
    +
    181  /* TODO: can we do this automatically?
    +
    182  * Pin the memory on all devices we currently track.
    +
    183  * Pinned memory won't be released by PaRSEC and can be used
    +
    184  * at any time.
    +
    185  */
    +
    186  void pin() {
    +
    187  // nothing to do
    +
    188  }
    +
    189 
    +
    190  /* Unpin the memory on all devices we currently track. */
    +
    191  void unpin() {
    +
    192  // nothing to do
    +
    193  }
    +
    194 
    +
    195  /* Pin the memory on a given device */
    +
    196  void pin_on(int device_id) {
    +
    197  /* TODO: how can we pin memory on a device? */
    +
    198  }
    +
    199 
    +
    200  /* Pin the memory on a given device */
    +
    201  void unpin_on(int device_id) {
    +
    202  /* TODO: how can we unpin memory on a device? */
    +
    203  }
    +
    204 
    +
    205  bool is_valid() const {
    +
    206  return true;
    +
    207  }
    +
    208 
    +
    209  operator bool() const {
    +
    210  return true;
    +
    211  }
    +
    212 
    +
    213  std::size_t size() const {
    +
    214  return m_count;
    +
    215  }
    +
    216 
    +
    217  /* Reallocate the buffer with count elements */
    +
    218  void reset(std::size_t n) {
    +
    219 
    +
    220  if (m_owned) {
    +
    221  deallocate();
    +
    222  m_owned = false;
    +
    223  }
    +
    224 
    +
    225  if (n == 0) {
    +
    226  m_host_data = nullptr;
    +
    227  m_owned = false;
    +
    228  } else {
    +
    229  m_host_data = allocate(n);
    +
    230  m_owned = true;
    +
    231  }
    +
    232  m_count = n;
    +
    233  }
    +
    234 
    +
    235  /* Reset the buffer to use the ptr to count elements */
    +
    236  void reset(T* ptr, std::size_t n = 1) {
    +
    237  /* TODO: can we resize if count is smaller than m_count? */
    +
    238  if (n == m_count) {
    +
    239  return;
    +
    240  }
    +
    241 
    +
    242  if (m_owned) {
    +
    243  deallocate();
    +
    244  }
    +
    245 
    +
    246  if (nullptr == ptr) {
    +
    247  m_host_data = nullptr;
    +
    248  m_count = 0;
    +
    249  m_owned = false;
    +
    250  } else {
    +
    251  m_host_data = ptr;
    +
    252  m_count = n;
    +
    253  m_owned = false;
    +
    254  }
    +
    255  }
    +
    256 
    +
    257  /* serialization support */
    +
    258 
    +
    259 #if defined(TTG_SERIALIZATION_SUPPORTS_BOOST) && 0
    +
    260  template <typename Archive>
    +
    261  void serialize(Archive& ar, const unsigned int version) {
    +
    262  if constexpr (ttg::detail::is_output_archive_v<Archive>) {
    +
    263  std::size_t s = size();
    +
    264  ar& s;
    +
    265  /* TODO: how to serialize the array? */
    +
    266  } else {
    +
    267  std::size_t s;
    +
    268  ar & s;
    +
    269  /* initialize internal pointers and then reset */
    +
    270  reset(s);
    +
    271  /* TODO: how to deserialize the array? */
    +
    272  }
    +
    273  }
    +
    274 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    275 
    +
    276 #if defined(TTG_SERIALIZATION_SUPPORTS_MADNESS)
    +
    277  template <typename Archive>
    +
    278  std::enable_if_t<std::is_base_of_v<madness::archive::BufferInputArchive, Archive> ||
    +
    279  std::is_base_of_v<madness::archive::BufferOutputArchive, Archive>>
    +
    280  serialize(Archive& ar) {
    +
    281  if constexpr (ttg::detail::is_output_archive_v<Archive>) {
    +
    282  std::size_t s = size();
    +
    283  ar& s;
    +
    284  ar << wrap(host_ptr(), s);
    +
    285  } else {
    +
    286  std::size_t s;
    +
    287  ar & s;
    +
    288  reset(s);
    +
    289  ar >> wrap(host_ptr(), s); // MatrixTile<T>(bm.rows(), bm.cols());
    +
    290  }
    +
    291  }
    +
    292 #endif // TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    293 
    +
    294 
    +
    295 };
    +
    296 
    +
    297 } // namespace ttg_madness
    +
    298 
    +
    299 #endif // TTG_MADNESS_BUFFER_H
    +
    Represents a device in a specific execution space.
    Definition: device.h:23
    +
    bool is_host() const
    Definition: device.h:56
    +
    bool is_device() const
    Definition: device.h:52
    +
    auto wrap(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges, const std::tuple< output_edgesT... > &outedges, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Definition: make_tt.h:659
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    +
    std::array< int, 3 > version()
    Definition: version.cc:4
    +
    A runtime-managed buffer mirrored between host and device memory.
    Definition: buffer.h:10
    +
    ttg::device::Device get_owner_device() const
    Definition: buffer.h:115
    +
    Buffer & operator=(const Buffer &db)=delete
    +
    const element_type * device_ptr_on(const ttg::device::Device &device) const
    Definition: buffer.h:156
    +
    Buffer & operator=(Buffer &&db)
    Definition: buffer.h:92
    +
    const element_type * current_device_ptr() const
    Definition: buffer.h:127
    +
    const element_type * host_ptr() const
    Definition: buffer.h:166
    +
    virtual ~Buffer()
    Definition: buffer.h:66
    +
    void unpin_on(int device_id)
    Definition: buffer.h:201
    +
    Buffer(Buffer &&db)
    Definition: buffer.h:75
    +
    void reset(std::size_t n)
    Definition: buffer.h:218
    + +
    std::decay_t< T > element_type
    Definition: buffer.h:12
    +
    element_type * device_ptr_on(const ttg::device::Device &device)
    Definition: buffer.h:148
    +
    const element_type * owner_device_ptr() const
    Definition: buffer.h:141
    +
    element_type * host_ptr()
    Definition: buffer.h:162
    +
    Buffer(const Buffer &db)=delete
    +
    Buffer(element_type *ptr, std::size_t n=1)
    Definition: buffer.h:59
    +
    bool is_valid() const
    Definition: buffer.h:205
    +
    element_type * owner_device_ptr()
    Definition: buffer.h:135
    + +
    element_type * current_device_ptr()
    Definition: buffer.h:121
    +
    void reset(T *ptr, std::size_t n=1)
    Definition: buffer.h:236
    +
    Buffer(std::size_t n)
    Definition: buffer.h:49
    +
    std::size_t size() const
    Definition: buffer.h:213
    +
    bool is_valid_on(const ttg::device::Device &device) const
    Definition: buffer.h:170
    +
    void allocate_on(const ttg::device::Device &device_id)
    Definition: buffer.h:176
    +
    typename allocator_traits::allocator_type allocator_type
    Definition: buffer.h:15
    +
    void pin_on(int device_id)
    Definition: buffer.h:196
    +
    std::allocator_traits< Allocator > allocator_traits
    Definition: buffer.h:14
    + +
    void set_current_device(const ttg::device::Device &device)
    Definition: buffer.h:107
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2device_8h.html b/dox-master/madness_2device_8h.html new file mode 100644 index 000000000..ad3aebf7d --- /dev/null +++ b/dox-master/madness_2device_8h.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/device.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    device.h File Reference
    +
    +
    + + + + + +

    +Namespaces

     ttg_madness
     this contains MADNESS-based TTG functionality
     
    + + + +

    +Functions

    int ttg_madness::num_devices ()
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2device_8h_source.html b/dox-master/madness_2device_8h_source.html new file mode 100644 index 000000000..2e64789d0 --- /dev/null +++ b/dox-master/madness_2device_8h_source.html @@ -0,0 +1,137 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/device.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    device.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_MADNESS_DEVICE_H
    +
    2 #define TTG_MADNESS_DEVICE_H
    +
    3 
    +
    4 namespace ttg_madness {
    +
    5  /* no device support in MADNESS */
    +
    6  inline int num_devices() { return 0; }
    +
    7 }
    +
    8 
    +
    9 #endif // TTG_MADNESS_DEVICE_H
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    +
    int num_devices()
    Definition: device.h:6
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2fwd_8h.html b/dox-master/madness_2fwd_8h.html new file mode 100644 index 000000000..e37c4b407 --- /dev/null +++ b/dox-master/madness_2fwd_8h.html @@ -0,0 +1,196 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/fwd.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    fwd.h File Reference
    +
    +
    +
    #include "ttg/fwd.h"
    +#include "ttg/util/typelist.h"
    +#include <future>
    +
    + + + + +

    +Namespaces

     ttg_madness
     this contains MADNESS-based TTG functionality
     
    + + + + + + + +

    +Typedefs

    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using ttg_madness::Op = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using ttg_madness::TemplateTask = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void ttg_madness::make_executable_hook (ttg::World &)
     
    void ttg_madness::ttg_initialize (int argc, char **argv, int num_threads=-1)
     
    void ttg_madness::ttg_finalize ()
     
    void ttg_madness::ttg_abort ()
     
    ttg::World ttg_madness::ttg_default_execution_context ()
     
    void ttg_madness::ttg_execute (ttg::World world)
     
    void ttg_madness::ttg_fence (ttg::World world)
     
    template<typename T >
    void ttg_madness::ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr)
     
    void ttg_madness::ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
     
    ttg::Edgettg_madness::ttg_ctl_edge (ttg::World world)
     
    template<typename T >
    void ttg_madness::ttg_sum (ttg::World world, T &value)
     
    template<typename T >
    void ttg_madness::ttg_broadcast (ttg::World world, T &data, int source_rank)
     
    template<typename T , typename... Args>
    Ptr< T > ttg_madness::make_ptr (Args &&... args)
     
    template<typename T >
    auto ttg_madness::get_ptr (T &&obj)
     
    template<typename... Views>
    bool ttg_madness::register_device_memory (std::tuple< Views &... > &views)
     
    template<typename... Buffer>
    void ttg_madness::post_device_out (std::tuple< Buffer &... > &b)
     
    template<typename... Buffer>
    void ttg_madness::mark_device_out (std::tuple< Buffer &... > &b)
     
    int ttg_madness::num_devices ()
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2fwd_8h_source.html b/dox-master/madness_2fwd_8h_source.html new file mode 100644 index 000000000..9f8328543 --- /dev/null +++ b/dox-master/madness_2fwd_8h_source.html @@ -0,0 +1,240 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/fwd.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    fwd.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_MADNESS_FWD_H
    +
    2 #define TTG_MADNESS_FWD_H
    +
    3 
    +
    4 #include "ttg/fwd.h"
    +
    5 #include "ttg/util/typelist.h"
    +
    6 
    +
    7 #include <future>
    +
    8 
    +
    9 namespace ttg_madness {
    +
    10 
    +
    11  template <typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs = ttg::typelist<>>
    +
    12  class TT;
    +
    13 
    +
    15  template <typename keyT, typename output_terminalsT, typename derivedT, typename... input_valueTs>
    +
    16  using Op [[deprecated("use TT instead")]] = TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...>>;
    +
    18  template <typename keyT, typename output_terminalsT, typename derivedT, typename... input_valueTs>
    +
    19  using TemplateTask = TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...>>;
    +
    20 
    +
    21  class WorldImpl;
    +
    22 
    +
    23  inline void make_executable_hook(ttg::World&);
    +
    24 
    +
    25  inline void ttg_initialize(int argc, char **argv, int num_threads = -1);
    +
    26 
    +
    27  inline void ttg_finalize();
    +
    28 
    +
    29  [[noreturn]]
    +
    30  inline void ttg_abort();
    +
    31 
    + +
    33 
    +
    34  inline void ttg_execute(ttg::World world);
    +
    35 
    +
    36  inline void ttg_fence(ttg::World world);
    +
    37 
    +
    38  template <typename T>
    +
    39  inline void ttg_register_ptr(ttg::World world, const std::shared_ptr<T> &ptr);
    +
    40 
    +
    41  inline void ttg_register_status(ttg::World world, const std::shared_ptr<std::promise<void>> &status_ptr);
    +
    42 
    +
    43  inline ttg::Edge<> &ttg_ctl_edge(ttg::World world);
    +
    44 
    +
    45  template <typename T>
    +
    46  inline void ttg_sum(ttg::World world, T &value);
    +
    47 
    +
    48  template <typename T>
    +
    49  inline void ttg_broadcast(ttg::World world, T &data, int source_rank);
    +
    50 
    +
    51 
    +
    52  /* device definitions, not currently provided by this impl */
    +
    53  template<typename T, typename Allocator = std::allocator<T>>
    +
    54  struct Buffer;
    +
    55 
    +
    56  template<typename T>
    +
    57  struct Ptr;
    +
    58 
    +
    59  template<typename T>
    +
    60  struct devicescratch;
    +
    61 
    +
    62  template<typename T>
    +
    63  struct TTValue;
    +
    64 
    +
    65  template<typename T, typename... Args>
    +
    66  Ptr<T> make_ptr(Args&&... args);
    +
    67 
    +
    68  template<typename T>
    +
    69  auto get_ptr(T&& obj);
    +
    70 
    +
    71  template<typename... Views>
    +
    72  inline bool register_device_memory(std::tuple<Views&...> &views);
    +
    73 
    +
    74  template<typename... Buffer>
    +
    75  inline void post_device_out(std::tuple<Buffer&...> &b);
    +
    76 
    +
    77  template<typename... Buffer>
    +
    78  inline void mark_device_out(std::tuple<Buffer&...> &b);
    +
    79 
    +
    80  inline int num_devices();
    +
    81 
    +
    82 } // namespace ttg_madness
    +
    83 
    +
    84 #endif // TTG_MADNESS_FWD_H
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + + + + +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    +
    void ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)
    Definition: ttg.h:147
    +
    Ptr< T > make_ptr(Args &&... args)
    +
    void ttg_initialize(int argc, char **argv, int num_threads=-1)
    Definition: ttg.h:123
    +
    int num_devices()
    Definition: device.h:6
    +
    void ttg_execute(ttg::World world)
    Definition: ttg.h:141
    +
    ttg::Edge & ttg_ctl_edge(ttg::World world)
    Definition: ttg.h:165
    +
    auto get_ptr(T &&obj)
    +
    void ttg_sum(ttg::World world, T &value)
    Definition: ttg.h:168
    +
    void ttg_fence(ttg::World world)
    Definition: ttg.h:144
    +
    void ttg_finalize()
    Definition: ttg.h:131
    +
    void make_executable_hook(ttg::World &)
    Definition: ttg.h:121
    +
    void mark_device_out(std::tuple< Buffer &... > &b)
    +
    void ttg_broadcast(ttg::World world, T &data, int source_rank)
    Definition: ttg.h:174
    +
    bool register_device_memory(std::tuple< Views &... > &views)
    +
    void ttg_abort()
    Definition: ttg.h:137
    +
    void post_device_out(std::tuple< Buffer &... > &b)
    +
    void ttg_register_status(ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
    Definition: ttg.h:156
    +
    ttg::World ttg_default_execution_context()
    Definition: ttg.h:136
    +
    A container for types.
    Definition: typelist.h:24
    +
    A runtime-managed buffer mirrored between host and device memory.
    Definition: buffer.h:10
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2import_8h.html b/dox-master/madness_2import_8h.html new file mode 100644 index 000000000..750abe580 --- /dev/null +++ b/dox-master/madness_2import_8h.html @@ -0,0 +1,204 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/import.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    import.h File Reference
    +
    +
    +
    #include "ttg/runtimes.h"
    +
    + + + + + + + +

    +Namespaces

     ttg_madness
     this contains MADNESS-based TTG functionality
     
     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + + + + +

    +Macros

    #define TTG_SELECTED_DEFAULT_IMPL   madness
     
    #define TTG_MADNESS_IMPORTED   1
     
    #define TTG_IMPL_NS   ttg_madness
     
    + + + +

    +Variables

    constexpr const ttg::Runtime ttg::ttg_runtime = ttg::Runtime::MADWorld
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_IMPL_NS

    + +
    +
    + + + + +
    #define TTG_IMPL_NS   ttg_madness
    +
    + +

    Definition at line 12 of file import.h.

    + +
    +
    + +

    ◆ TTG_MADNESS_IMPORTED

    + +
    +
    + + + + +
    #define TTG_MADNESS_IMPORTED   1
    +
    + +

    Definition at line 11 of file import.h.

    + +
    +
    + +

    ◆ TTG_SELECTED_DEFAULT_IMPL

    + +
    +
    + + + + +
    #define TTG_SELECTED_DEFAULT_IMPL   madness
    +
    + +

    Definition at line 10 of file import.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2import_8h_source.html b/dox-master/madness_2import_8h_source.html new file mode 100644 index 000000000..2ab47c5c3 --- /dev/null +++ b/dox-master/madness_2import_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/import.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    import.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_MADNESS_IMPORT_H
    +
    2 #define TTG_MADNESS_IMPORT_H
    +
    3 
    +
    4 #include "ttg/runtimes.h"
    +
    5 
    +
    6 #if defined(TTG_SELECTED_DEFAULT_IMPL)
    +
    7 #error "A default TTG implementation has already been selected"
    +
    8 #endif // defined(TTG_SELECTED_DEFAULT_IMPL)
    +
    9 
    +
    10 #define TTG_SELECTED_DEFAULT_IMPL madness
    +
    11 #define TTG_MADNESS_IMPORTED 1
    +
    12 #define TTG_IMPL_NS ttg_madness
    +
    13 
    +
    14 namespace ttg_madness {}
    +
    15 
    +
    16 namespace ttg {
    +
    17 
    +
    18  using namespace ::ttg_madness;
    +
    19 
    + +
    21 
    +
    22 } // namespace ttg
    +
    23 
    +
    24 #endif // TTG_MADNESS_IMPORT_H
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    constexpr const ttg::Runtime ttg_runtime
    Definition: import.h:20
    +
    Runtime
    Definition: runtimes.h:15
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2ttvalue_8h.html b/dox-master/madness_2ttvalue_8h.html new file mode 100644 index 000000000..e5f981efb --- /dev/null +++ b/dox-master/madness_2ttvalue_8h.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/ttvalue.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttvalue.h File Reference
    +
    +
    + + + + +

    +Classes

    struct  ttg_madness::TTValue< DerivedT >
     
    + + + + +

    +Namespaces

     ttg_madness
     this contains MADNESS-based TTG functionality
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_2ttvalue_8h_source.html b/dox-master/madness_2ttvalue_8h_source.html new file mode 100644 index 000000000..9d6ad5935 --- /dev/null +++ b/dox-master/madness_2ttvalue_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/ttvalue.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttvalue.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_MADNESS_TTVALUE_H
    +
    2 #define TTG_MADNESS_TTVALUE_H
    +
    3 
    +
    4 namespace ttg_madness {
    +
    5 
    +
    6  template<typename DerivedT>
    +
    7  struct TTValue
    +
    8  {
    +
    9  /* empty */
    +
    10  };
    +
    11 
    +
    12 } // namespace ttg_madness
    +
    13 
    +
    14  #endif // TTG_MADNESS_TTVALUE_H
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_8h.html b/dox-master/madness_8h.html new file mode 100644 index 000000000..a7bec86e5 --- /dev/null +++ b/dox-master/madness_8h.html @@ -0,0 +1,172 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends/madness.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    madness.h File Reference
    +
    +
    +
    #include <type_traits>
    +#include "ttg/serialization/traits.h"
    +
    + + + + + + + + + +

    +Classes

    struct  ttg::detail::is_madness_output_serializable< Archive, T, class >
     
    struct  ttg::detail::is_madness_input_serializable< Archive, T, class >
     
    struct  ttg::detail::is_madness_buffer_serializable< T, class >
     
    struct  ttg::detail::is_madness_user_buffer_serializable< T, class >
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + + + + + + + + + + + + + +

    +Variables

    template<typename T >
    constexpr bool ttg::detail::is_madness_archive_v = false
     
    template<typename T >
    constexpr bool ttg::detail::is_madness_input_archive_v = false
     
    template<typename T >
    constexpr bool ttg::detail::is_madness_output_archive_v = false
     
    template<typename T >
    constexpr bool ttg::detail::is_madness_buffer_serializable_v = is_madness_buffer_serializable<T>::value
     evaluates to true if can serialize T to/from buffer using MADNESS serialization More...
     
    template<typename T >
    constexpr bool ttg::detail::is_madness_user_buffer_serializable_v = is_madness_user_buffer_serializable<T>::value
     evaluates to true if can serialize T to/from buffer using user-provided MADNESS serialization More...
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/madness_8h_source.html b/dox-master/madness_8h_source.html new file mode 100644 index 000000000..87468cf28 --- /dev/null +++ b/dox-master/madness_8h_source.html @@ -0,0 +1,247 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/backends/madness.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    madness.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 5/3/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_MADNESS_H
    +
    6 #define TTG_SERIALIZATION_MADNESS_H
    +
    7 
    +
    8 #include <type_traits>
    +
    9 
    +
    10 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    11 #include <madness/world/archive.h>
    +
    12 #include <madness/world/buffer_archive.h>
    +
    13 #include <madness/world/type_traits.h>
    +
    14 #endif
    +
    15 
    + +
    17 
    +
    18 namespace ttg::detail {
    +
    19 
    +
    20  /*----- if_madness_{input,output,}_archive_v -----*/
    +
    21 
    +
    22 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    23  template <typename T>
    +
    24  inline constexpr bool is_madness_archive_v = madness::is_archive_v<T>;
    +
    25  template <typename T>
    +
    26  inline constexpr bool is_madness_input_archive_v = madness::is_input_archive_v<T>;
    +
    27 
    +
    28  template <typename T>
    +
    29  inline constexpr bool is_madness_output_archive_v = madness::is_output_archive_v<T>;
    +
    30 
    +
    31  /*----- is_archive_v for madness archives -----*/
    +
    32  template <typename T>
    +
    33  inline constexpr bool is_archive_v<T, std::enable_if_t<is_madness_archive_v<T>>> = true;
    +
    34  template <typename T>
    +
    35  inline constexpr bool is_input_archive_v<T, std::enable_if_t<is_madness_input_archive_v<T>>> = true;
    +
    36  template <typename T>
    +
    37  inline constexpr bool is_output_archive_v<T, std::enable_if_t<is_madness_output_archive_v<T>>> = true;
    +
    38 
    +
    39 #else // TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    40  template <typename T>
    +
    41  inline constexpr bool is_madness_archive_v = false;
    +
    42  template <typename T>
    +
    43  inline constexpr bool is_madness_input_archive_v = false;
    +
    44  template <typename T>
    +
    45  inline constexpr bool is_madness_output_archive_v = false;
    +
    46 #endif // TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    47 
    +
    48  /*----- is_madness_{input,output}_serializable_v -----*/
    +
    49 
    +
    50  template <typename Archive, typename T, class = void>
    +
    51  struct is_madness_output_serializable : std::false_type {};
    +
    52 
    +
    53 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    54  template <typename Archive, typename T>
    + +
    56  Archive, T, std::enable_if_t<madness::is_output_archive_v<Archive> && madness::is_serializable_v<Archive, T>>>
    +
    57  : std::true_type {};
    +
    58 #endif // TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    59 
    +
    60  template <typename Archive, typename T>
    +
    61  inline static constexpr bool is_madness_output_serializable_v = is_madness_output_serializable<Archive, T>::value;
    +
    62 
    +
    63  template <typename Archive, typename T, class = void>
    +
    64  struct is_madness_input_serializable : std::false_type {};
    +
    65 
    +
    66 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    67  template <typename Archive, typename T>
    + +
    69  Archive, T, std::enable_if_t<madness::is_input_archive_v<Archive> && madness::is_serializable_v<Archive, T>>>
    +
    70  : std::true_type {};
    +
    71 #endif // TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    72 
    +
    73  template <typename Archive, typename T>
    +
    74  inline static constexpr bool is_madness_input_serializable_v = is_madness_input_serializable<Archive, T>::value;
    +
    75 
    +
    76  template <typename Archive, typename T>
    +
    77  inline static constexpr bool is_madness_serializable_v =
    +
    78  is_madness_input_serializable_v<Archive, T> || is_madness_output_serializable_v<Archive, T>;
    +
    79 
    +
    80  template <typename T, class = void>
    +
    81  struct is_madness_buffer_serializable : std::false_type {};
    +
    82 
    +
    83 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    84  template <typename T>
    + +
    86  T, std::enable_if_t<is_madness_input_serializable_v<madness::archive::BufferInputArchive, T> &&
    +
    87  is_madness_output_serializable_v<madness::archive::BufferOutputArchive, T>>>
    +
    88  : std::true_type {};
    +
    89 #endif
    +
    90 
    +
    92  template <typename T>
    + +
    94 
    +
    95  template <typename T, class = void>
    +
    96  struct is_madness_user_buffer_serializable : std::false_type {};
    +
    97 
    +
    98 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    99  template <typename T>
    + +
    101  T, std::enable_if_t<madness::is_user_serializable_v<madness::archive::BufferInputArchive, T> &&
    +
    102  madness::is_user_serializable_v<madness::archive::BufferOutputArchive, T>>> : std::true_type {
    +
    103  };
    +
    104 #endif
    +
    105 
    +
    107  template <typename T>
    + +
    109 
    +
    110 } // namespace ttg::detail
    +
    111 
    +
    112 #endif // TTG_SERIALIZATION_MADNESS_H
    + +
    constexpr bool is_madness_output_archive_v
    Definition: madness.h:45
    +
    constexpr bool is_madness_archive_v
    Definition: madness.h:41
    +
    constexpr bool is_madness_input_archive_v
    Definition: madness.h:43
    +
    constexpr bool is_madness_user_buffer_serializable_v
    evaluates to true if can serialize T to/from buffer using user-provided MADNESS serialization
    Definition: madness.h:108
    +
    constexpr bool is_madness_buffer_serializable_v
    evaluates to true if can serialize T to/from buffer using MADNESS serialization
    Definition: madness.h:93
    + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/make__index__sequence_8hpp.html b/dox-master/make__index__sequence_8hpp.html new file mode 100644 index 000000000..845ad23ff --- /dev/null +++ b/dox-master/make__index__sequence_8hpp.html @@ -0,0 +1,208 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/polyfills/make_index_sequence.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    make_index_sequence.hpp File Reference
    +
    +
    + + + + + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::index_sequence<... >
     
    struct  boost::callable_traits::detail::concat< index_sequence< I1... >, index_sequence< I2... > >
     
    struct  boost::callable_traits::detail::make_index_sequence_t< N >
     
    struct  boost::callable_traits::detail::make_index_sequence_t< 0 >
     
    struct  boost::callable_traits::detail::make_index_sequence_t< 1 >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_IX_SEQ(...)    ::boost::callable_traits::detail::index_sequence<__VA_ARGS__>
     
    #define BOOST_CLBL_TRTS_MAKE_IX_SEQ(...)    ::boost::callable_traits::detail::make_index_sequence<__VA_ARGS__>
     
    + + + + +

    +Typedefs

    template<std::size_t... I>
    using boost::callable_traits::detail::make_index_sequence = typename make_index_sequence_t< I... >::type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_IX_SEQ

    + +
    +
    + + + + + + + + +
    #define BOOST_CLBL_TRTS_IX_SEQ( ...)    ::boost::callable_traits::detail::index_sequence<__VA_ARGS__>
    +
    + +

    Definition at line 12 of file make_index_sequence.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_MAKE_IX_SEQ

    + +
    +
    + + + + + + + + +
    #define BOOST_CLBL_TRTS_MAKE_IX_SEQ( ...)    ::boost::callable_traits::detail::make_index_sequence<__VA_ARGS__>
    +
    + +

    Definition at line 16 of file make_index_sequence.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/make__index__sequence_8hpp_source.html b/dox-master/make__index__sequence_8hpp_source.html new file mode 100644 index 000000000..004b5d678 --- /dev/null +++ b/dox-master/make__index__sequence_8hpp_source.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/polyfills/make_index_sequence.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    make_index_sequence.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright Barrett Adair 2016-2017
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 */
    +
    7 
    +
    8 #ifndef BOOST_CLBL_TRTS_DETAIL_POLYFILLS_MAKE_INDEX_SEQUENCE_HPP
    +
    9 #define BOOST_CLBL_TRTS_DETAIL_POLYFILLS_MAKE_INDEX_SEQUENCE_HPP
    +
    10 
    +
    11 #undef BOOST_CLBL_TRTS_IX_SEQ
    +
    12 #define BOOST_CLBL_TRTS_IX_SEQ(...) \
    +
    13  ::boost::callable_traits::detail::index_sequence<__VA_ARGS__>
    +
    14 
    +
    15 #undef BOOST_CLBL_TRTS_MAKE_IX_SEQ
    +
    16 #define BOOST_CLBL_TRTS_MAKE_IX_SEQ(...) \
    +
    17  ::boost::callable_traits::detail::make_index_sequence<__VA_ARGS__>
    +
    18 
    +
    19 namespace boost { namespace callable_traits { namespace detail {
    +
    20 
    +
    21 template<std::size_t...>
    +
    22 struct index_sequence { using type = index_sequence; };
    +
    23 
    +
    24 template<typename, typename>
    +
    25 struct concat;
    +
    26 
    +
    27 template<std::size_t... I1, std::size_t... I2>
    +
    28 struct concat<index_sequence<I1...>, index_sequence<I2...>>
    +
    29  : index_sequence<I1..., (sizeof...(I1)+I2)...> {};
    +
    30 
    +
    31 template<std::size_t N>
    +
    32  struct make_index_sequence_t;
    +
    33 
    +
    34 template<std::size_t N>
    + +
    36  typename make_index_sequence_t<N/2>::type,
    +
    37  typename make_index_sequence_t<N - N/2>::type >::type {};
    +
    38 
    +
    39 template<>
    + +
    41 
    +
    42 template<>
    + +
    44 
    +
    45 template<std::size_t... I>
    +
    46 using make_index_sequence = typename make_index_sequence_t<I...>::type;
    +
    47 
    +
    48 }}} // namespace boost::callable_traits::detail
    +
    49 
    +
    50 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_POLYFILLS_MAKE_INDEX_SEQUENCE_HPP
    +
    typename make_index_sequence_t< I... >::type make_index_sequence
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/make__tt_8h.html b/dox-master/make__tt_8h.html new file mode 100644 index 000000000..e900ea8de --- /dev/null +++ b/dox-master/make__tt_8h.html @@ -0,0 +1,534 @@ + + + + + + + + + + + ttg: ttg/ttg/make_tt.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    make_tt.h File Reference
    +
    +
    + + + + + + + + + + + + + + +

    +Classes

    class  CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >
     
    struct  CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >
     
    struct  CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
     
    class  CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >
     
    struct  CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >
     
    struct  CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >
     
    + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    auto make_tt_tpl (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
     Factory function to assist in wrapping a callable with signature. More...
     
    template<ttg::ExecutionSpace space, typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    auto make_tt (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
     Factory function to assist in wrapping a callable with signature. More...
     
    template<typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    auto make_tt (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
     
    template<typename keyT , typename funcT , typename... input_valuesT, typename... output_edgesT>
    auto wrapt (funcT &&func, const std::tuple< ttg::Edge< keyT, input_valuesT >... > &inedges, const std::tuple< output_edgesT... > &outedges, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
     
    template<typename keyT , typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    auto wrap (funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges, const std::tuple< output_edgesT... > &outedges, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
     
    +

    Function Documentation

    + +

    ◆ make_tt() [1/2]

    + +
    +
    +
    +template<ttg::ExecutionSpace space, typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto make_tt (funcT && func,
    const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & inedges = std::tuple<>{},
    const std::tuple< output_edgesT... > & outedges = std::tuple<>{},
    const std::string & name = "wrapper",
    const std::vector< std::string > & innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"),
    const std::vector< std::string > & outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") 
    )
    +
    + +

    Factory function to assist in wrapping a callable with signature.

    +
    Template Parameters
    + + + + + +
    keyTa task ID type
    funcTa callable type
    input_edge_valuesTa pack of types of input data
    output_edgesTa pack of types of output edges
    +
    +
    +
    Parameters
    + + + + + + + + +
    [in]funca callable object; it can be generic (e.g., a template function, a generic lambda, etc.; see below) or nongeneric (with concrete types for its arguments). In either case its signature must match the following:
      +
    • if ttg::meta::is_void_v<keyT>==true:
        +
      • void(input_valuesT&&..., std::tuple<output_terminalsT...>&): full form, with the explicitly-passed output terminals ensuring compile-time type-checking of the dataflow into the output terminals (see ttg::send);
      • +
      • void(input_valuesT&&...): simplified form, with no type-checking of the dataflow into the output terminals;
      • +
      +
    • +
    • if ttg::meta::is_void_v<keyT>==false:
        +
      • void(const keyT&, input_valuesT&&..., std::tuple<output_terminalsT...>&): full form, with the explicitly-passed output terminals ensuring compile-time type-checking of the dataflow into the output terminals (see ttg::send);
      • +
      • void(const keyT&, input_valuesT&&...): simplified form, with no type-checking of the dataflow into the output terminals.
      • +
      +
    • +
    +
    [in]inedgesa tuple of input edges
    [in]outedgesa tuple of output edges
    [in]namea string label for the resulting TT
    [in]namea string label for the resulting TT
    [in]innamesstring labels for the respective input terminals of the resulting TT
    [in]outnamesstring labels for the respective output terminals of the resulting TT
    +
    +
    +
    Warning
    You MUST NOT use generic callables that use concrete types for some data arguments, i.e. make either ALL data types or NONE of them generic. This warning only applies to the data arguments and does not apply to task ID (key) and optional out-terminal arguments.
    +
    Note
    For generic callables the arguments that are used read-only should be declared as U& (where U is the corresponding template parameter) or auto& (in contexts such as generic lambdas where template arguments are implicit). The arguments that are to be consumed (e.g. mutated, moved, etc.) should be declared as U&& or auto&& (i.e., as universal references). For example, in
    make_tt([](auto& key, auto& datum1, auto&& datum2) { ... }, ...);
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    the task id (key) and the first datum will be passed by const lvalue reference (i.e. no copy will be created by the runtime), whereas the second datum will be passed by an rvalue reference, which may cause copying. The corresponding free function analog of the above lambda is:
    template <typename K, typename D1, typename D2>
    +
    void func (K& key, D1& datum1, D2&& datum2) { ... }
    +
    +
    Warning
    Although generic arguments annotated by const auto& are also permitted, their use is discouraged to avoid confusion; namely, const auto& denotes a consumable argument, NOT read-only, despite the const.
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 560 of file make_tt.h.

    + +
    +
    + +

    ◆ make_tt() [2/2]

    + +
    +
    +
    +template<typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto make_tt (funcT && func,
    const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & inedges = std::tuple<>{},
    const std::tuple< output_edgesT... > & outedges = std::tuple<>{},
    const std::string & name = "wrapper",
    const std::vector< std::string > & innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"),
    const std::vector< std::string > & outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") 
    )
    +
    + +

    Definition at line 642 of file make_tt.h.

    + +
    +
    + +

    ◆ make_tt_tpl()

    + +
    +
    +
    +template<typename keyT = void, typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto make_tt_tpl (funcT && func,
    const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & inedges = std::tuple<>{},
    const std::tuple< output_edgesT... > & outedges = std::tuple<>{},
    const std::string & name = "wrapper",
    const std::vector< std::string > & innames = std::vector<std::string>(sizeof...(input_edge_valuesT),                                                                                    "input"),
    const std::vector< std::string > & outnames = std::vector<std::string>(sizeof...(output_edgesT),                                                                                     "output") 
    )
    +
    + +

    Factory function to assist in wrapping a callable with signature.

    +
    Template Parameters
    + + + + + +
    keyTa task ID type
    funcTa callable type
    input_edge_valuesTa pack of types of input data
    output_edgesTa pack of types of output edges
    +
    +
    +
    Parameters
    + + + + + + + + +
    [in]funca callable object; it can be generic (e.g., a template function, a generic lambda, etc.; see below) or nongeneric (with concrete types for its arguments). In either case its signature must match the following:
      +
    • if ttg::meta::is_void_v<keyT>==true:
        +
      • void(const std::tuple<input_valuesT&...>&, std::tuple<output_terminalsT...>&): full form, with the explicitly-passed output terminals ensuring compile-time type-checking of the dataflow into the output terminals (see ttg::send);
      • +
      • void(const std::tuple<input_valuesT&...>&): simplified form, with no type-checking of the dataflow into the output terminals;
      • +
      +
    • +
    • if ttg::meta::is_void_v<keyT>==false:
        +
      • void(const keyT&, const std::tuple<input_valuesT&...>&, std::tuple<output_terminalsT...>&): full form, with the explicitly-passed output terminals ensuring compile-time type-checking of the dataflow into the output terminals (see ttg::send);
      • +
      • void(const keyT&, const std::tuple<input_valuesT&...>&): simplified form, with no type-checking of the dataflow into the output terminals.
      • +
      +
    • +
    +
    [in]inedgesa tuple of input edges
    [in]outedgesa tuple of output edges
    [in]namea string label for the resulting TT
    [in]namea string label for the resulting TT
    [in]innamesstring labels for the respective input terminals of the resulting TT
    [in]outnamesstring labels for the respective output terminals of the resulting TT
    +
    +
    +
    Note
    Handling of generic func is described in the documentation of make_tt()
    + +

    Definition at line 429 of file make_tt.h.

    + +
    +
    + +

    ◆ wrap()

    + +
    +
    +
    +template<typename keyT , typename funcT , typename... input_edge_valuesT, typename... output_edgesT>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto wrap (funcT && func,
    const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > & inedges,
    const std::tuple< output_edgesT... > & outedges,
    const std::string & name = "wrapper",
    const std::vector< std::string > & innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"),
    const std::vector< std::string > & outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") 
    )
    +
    + +

    Definition at line 659 of file make_tt.h.

    + +
    +
    + +

    ◆ wrapt()

    + +
    +
    +
    +template<typename keyT , typename funcT , typename... input_valuesT, typename... output_edgesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto wrapt (funcT && func,
    const std::tuple< ttg::Edge< keyT, input_valuesT >... > & inedges,
    const std::tuple< output_edgesT... > & outedges,
    const std::string & name = "wrapper",
    const std::vector< std::string > & innames = std::vector<std::string>(sizeof...(input_valuesT), "input"),
    const std::vector< std::string > & outnames = std::vector<std::string>(sizeof...(output_edgesT), "output") 
    )
    +
    +inline
    +
    + +

    Definition at line 650 of file make_tt.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/make__tt_8h_source.html b/dox-master/make__tt_8h_source.html new file mode 100644 index 000000000..efbcb69cc --- /dev/null +++ b/dox-master/make__tt_8h_source.html @@ -0,0 +1,773 @@ + + + + + + + + + + + ttg: ttg/ttg/make_tt.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    make_tt.h
    +
    +
    +Go to the documentation of this file.
    1 // to be #include'd within runtime::ttg namespace
    +
    2 
    +
    3 #ifndef TTG_MAKE_TT_H
    +
    4 #define TTG_MAKE_TT_H
    +
    5 
    +
    6 // Class to wrap a callable with signature
    +
    7 //
    +
    8 // case 1 (keyT != void): void op(auto&& key, std::tuple<input_valuesT...>&&, std::tuple<output_terminalsT...>&)
    +
    9 // case 2 (keyT == void): void op(std::tuple<input_valuesT...>&&, std::tuple<output_terminalsT...>&)
    +
    10 //
    +
    11 template <typename funcT, bool funcT_receives_outterm_tuple,
    +
    12  typename keyT, typename output_terminalsT,
    +
    13  typename... input_valuesT>
    + +
    15  : public TT<keyT, output_terminalsT,
    +
    16  CallableWrapTT<funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT...>,
    +
    17  ttg::typelist<input_valuesT...>> {
    +
    18  using baseT = typename CallableWrapTT::ttT;
    +
    19 
    +
    20  using input_values_tuple_type = typename baseT::input_values_tuple_type;
    +
    21  using input_refs_tuple_type = typename baseT::input_refs_tuple_type;
    +
    22  using input_edges_type = typename baseT::input_edges_type;
    +
    23  using output_edges_type = typename baseT::output_edges_type;
    +
    24 
    +
    25  using noref_funcT = std::remove_reference_t<funcT>;
    +
    26  std::conditional_t<std::is_function_v<noref_funcT>, std::add_pointer_t<noref_funcT>, noref_funcT> func;
    +
    27 
    +
    28  template <typename Key, typename Tuple>
    +
    29  void call_func(Key &&key, Tuple &&args, output_terminalsT &out) {
    +
    30  if constexpr (funcT_receives_outterm_tuple)
    +
    31  func(std::forward<Key>(key), std::forward<Tuple>(args), out);
    +
    32  else {
    +
    33  auto old_output_tls_ptr = this->outputs_tls_ptr_accessor();
    +
    34  this->set_outputs_tls_ptr();
    +
    35  func(std::forward<Key>(key), std::forward<Tuple>(args));
    +
    36  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    37  }
    +
    38  }
    +
    39 
    +
    40  template <typename TupleOrKey>
    +
    41  void call_func(TupleOrKey &&args, output_terminalsT &out) {
    +
    42  if constexpr (funcT_receives_outterm_tuple)
    +
    43  func(std::forward<TupleOrKey>(args), out);
    +
    44  else {
    +
    45  auto old_output_tls_ptr = this->outputs_tls_ptr_accessor();
    +
    46  this->set_outputs_tls_ptr();
    +
    47  func(std::forward<TupleOrKey>(args));
    +
    48  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    49  }
    +
    50  }
    +
    51 
    +
    52  void call_func(output_terminalsT &out) {
    +
    53  if constexpr (funcT_receives_outterm_tuple)
    +
    54  func(std::tuple<>(), out);
    +
    55  else {
    +
    56  auto old_output_tls_ptr = this->outputs_tls_ptr_accessor();
    +
    57  this->set_outputs_tls_ptr();
    +
    58  func(std::tuple<>());
    +
    59  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    60  }
    +
    61  }
    +
    62 
    +
    63  public:
    +
    64  template <typename funcT_>
    +
    65  CallableWrapTT(funcT_ &&f, const input_edges_type &inedges, const output_edges_type &outedges,
    +
    66  const std::string &name, const std::vector<std::string> &innames,
    +
    67  const std::vector<std::string> &outnames)
    +
    68  : baseT(inedges, outedges, name, innames, outnames), func(std::forward<funcT_>(f)) {}
    +
    69 
    +
    70  template <typename funcT_>
    +
    71  CallableWrapTT(funcT_ &&f, const std::string &name, const std::vector<std::string> &innames,
    +
    72  const std::vector<std::string> &outnames)
    +
    73  : baseT(name, innames, outnames), func(std::forward<funcT_>(f)) {}
    +
    74 
    +
    75  template <typename Key, typename ArgsTuple>
    +
    76  std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<ArgsTuple> &&
    +
    77  !ttg::meta::is_void_v<Key>,
    +
    78  void>
    +
    79  op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out) {
    +
    80  call_func(std::forward<Key>(key), std::forward<ArgsTuple>(args_tuple), out);
    +
    81  }
    +
    82 
    +
    83  template <typename ArgsTuple, typename Key = keyT>
    +
    84  std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> && !ttg::meta::is_empty_tuple_v<ArgsTuple> &&
    +
    85  ttg::meta::is_void_v<Key>,
    +
    86  void>
    +
    87  op(ArgsTuple &&args_tuple, output_terminalsT &out) {
    +
    88  call_func(std::forward<ArgsTuple>(args_tuple), out);
    +
    89  }
    +
    90 
    +
    91  template <typename Key, typename ArgsTuple = input_values_tuple_type>
    +
    92  std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && !ttg::meta::is_void_v<Key>, void> op(
    +
    93  Key &&key, output_terminalsT &out) {
    +
    94  call_func(std::forward<Key>(key), out);
    +
    95  }
    +
    96 
    +
    97  template <typename Key = keyT, typename ArgsTuple = input_values_tuple_type>
    +
    98  std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && ttg::meta::is_void_v<Key>, void> op(
    +
    99  output_terminalsT &out) {
    +
    100  call_func(out);
    +
    101  }
    +
    102 };
    +
    103 
    +
    104 template <typename funcT, bool funcT_receives_outterm_tuple,
    +
    105  typename keyT, typename output_terminalsT,
    +
    106  typename input_values_tupleT>
    + +
    108 
    +
    109 template <typename funcT, bool funcT_receives_outterm_tuple,
    +
    110  typename keyT, typename output_terminalsT,
    +
    111  typename... input_valuesT>
    +
    112 struct CallableWrapTTUnwrapTypelist<funcT, funcT_receives_outterm_tuple,
    +
    113  keyT, output_terminalsT,
    +
    114  std::tuple<input_valuesT...>> {
    +
    115  using type = CallableWrapTT<funcT, funcT_receives_outterm_tuple,
    +
    116  keyT, output_terminalsT,
    +
    117  std::remove_reference_t<input_valuesT>...>;
    +
    118 };
    +
    119 
    +
    120 template <typename funcT, bool funcT_receives_outterm_tuple, typename keyT, typename output_terminalsT,
    +
    121  typename... input_valuesT>
    +
    122 struct CallableWrapTTUnwrapTypelist<funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT,
    +
    123  ttg::meta::typelist<input_valuesT...>> {
    +
    124  using type = CallableWrapTT<funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT,
    +
    125  std::remove_reference_t<input_valuesT>...>;
    +
    126 };
    +
    127 
    +
    128 // Class to wrap a callable with signature
    +
    129 //
    +
    130 // case 1 (keyT != void): returnT op(auto&& key, input_valuesT&&..., std::tuple<output_terminalsT...>&)
    +
    131 // case 2 (keyT == void): returnT op(input_valuesT&&..., std::tuple<output_terminalsT...>&)
    +
    132 //
    +
    133 // returnT is void for funcT = synchronous (ordinary) function and the appropriate return type for funcT=coroutine
    +
    134 template <typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space,
    +
    135  typename keyT, typename output_terminalsT, typename... input_valuesT>
    + +
    137  : public TT<
    +
    138  keyT, output_terminalsT,
    +
    139  CallableWrapTTArgs<funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT...>,
    +
    140  ttg::typelist<input_valuesT...>> {
    +
    141  using baseT = typename CallableWrapTTArgs::ttT;
    +
    142 
    +
    143  using input_values_tuple_type = typename baseT::input_values_tuple_type;
    +
    144  using input_refs_tuple_type = typename baseT::input_refs_tuple_type;
    +
    145  using input_edges_type = typename baseT::input_edges_type;
    +
    146  using output_edges_type = typename baseT::output_edges_type;
    +
    147 
    +
    148  using noref_funcT = std::remove_reference_t<funcT>;
    +
    149  std::conditional_t<std::is_function_v<noref_funcT>, std::add_pointer_t<noref_funcT>, noref_funcT> func;
    +
    150 
    +
    151  using op_return_type =
    +
    152 #ifdef TTG_HAVE_COROUTINE
    +
    153  std::conditional_t<std::is_same_v<returnT, ttg::resumable_task>,
    + +
    155 #ifdef TTG_HAVE_DEVICE
    +
    156  std::conditional_t<std::is_same_v<returnT, ttg::device::Task>,
    +
    157  ttg::device::Task::base_type,
    +
    158  void>
    +
    159 #else // TTG_HAVE_DEVICE
    +
    160  void
    +
    161 #endif // TTG_HAVE_DEVICE
    +
    162  >;
    +
    163 #else // TTG_HAVE_COROUTINE
    +
    164  void;
    +
    165 #endif // TTG_HAVE_COROUTINE
    +
    166 
    +
    167 public:
    +
    168  static constexpr bool have_cuda_op = (space == ttg::ExecutionSpace::CUDA);
    +
    169  static constexpr bool have_hip_op = (space == ttg::ExecutionSpace::HIP);
    +
    170  static constexpr bool have_level_zero_op = (space == ttg::ExecutionSpace::L0);
    +
    171 
    +
    172 protected:
    +
    173 
    +
    174  template<typename ReturnT>
    +
    175  auto process_return(ReturnT&& ret, output_terminalsT &out) {
    +
    176  static_assert(std::is_same_v<std::remove_reference_t<decltype(ret)>, returnT>,
    +
    177  "CallableWrapTTArgs<funcT,returnT,...>: returnT does not match the actual return type of funcT");
    +
    178  if constexpr (!std::is_void_v<returnT>) { // protect from compiling for void returnT
    +
    179 #ifdef TTG_HAVE_COROUTINE
    +
    180  if constexpr (std::is_same_v<returnT, ttg::resumable_task>) {
    + +
    182  // if task completed destroy it
    +
    183  if (ret.completed()) {
    +
    184  ret.destroy();
    +
    185  } else { // if task is suspended return the coroutine promise ptr
    +
    186  coro_handle = ret;
    +
    187  }
    +
    188  return coro_handle;
    +
    189  } else
    +
    190 #ifdef TTG_HAVE_DEVICE
    +
    191  if constexpr (std::is_same_v<returnT, ttg::device::Task>) {
    +
    192  ttg::device::Task::base_type coro_handle = ret;
    +
    193  return coro_handle;
    +
    194  }
    +
    195 #else // TTG_HAVE_DEVICE
    +
    196  ttg::abort(); // should not happen
    +
    197 #endif // TTG_HAVE_DEVICE
    +
    198  if constexpr (!(std::is_same_v<returnT, ttg::resumable_task>
    +
    199 #ifdef TTG_HAVE_DEVICE
    +
    200  || std::is_same_v<returnT, ttg::device::Task>
    +
    201 #endif // TTG_HAVE_DEVICE
    +
    202  ))
    +
    203 #endif
    +
    204  {
    +
    205  static_assert(std::tuple_size_v<std::remove_reference_t<decltype(out)>> == 1,
    +
    206  "CallableWrapTTArgs<funcT,returnT,funcT_receives_outterm_tuple=true,...): funcT can return a "
    +
    207  "value only if there is only 1 out terminal");
    +
    208  static_assert(std::tuple_size_v<returnT> <= 2,
    +
    209  "CallableWrapTTArgs<funcT,returnT,funcT_receives_outterm_tuple=true,...): funcT can return a "
    +
    210  "value only if it is a plain value (then sent with null key), a tuple-like containing a single "
    +
    211  "key (hence value is void), or a tuple-like containing a key and a value");
    +
    212  if constexpr (std::tuple_size_v<returnT> == 0)
    +
    213  std::get<0>(out).sendv(std::move(ret));
    +
    214  else if constexpr (std::tuple_size_v<returnT> == 1)
    +
    215  std::get<0>(out).sendk(std::move(std::get<0>(ret)));
    +
    216  else if constexpr (std::tuple_size_v<returnT> == 2)
    +
    217  std::get<0>(out).send(std::move(std::get<0>(ret)), std::move(std::get<1>(ret)));
    +
    218  return;
    +
    219  }
    +
    220  }
    +
    221  }
    +
    222 
    +
    224  template <typename Key, typename Tuple, std::size_t... S>
    +
    225  auto call_func(Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence<S...>) {
    +
    226  using func_args_t = ttg::meta::tuple_concat_t<std::tuple<const Key &>, input_refs_tuple_type, output_edges_type>;
    +
    227 
    +
    228  if constexpr (funcT_receives_outterm_tuple) {
    +
    229  if constexpr (std::is_void_v<returnT>) {
    +
    230  func(std::forward<Key>(key),
    +
    231  baseT::template get<S, std::tuple_element_t<S + 1, func_args_t>>(std::forward<Tuple>(args_tuple))..., out);
    +
    232  return;
    +
    233  } else {
    +
    234  auto ret = func(
    +
    235  std::forward<Key>(key),
    +
    236  baseT::template get<S, std::tuple_element_t<S + 1, func_args_t>>(std::forward<Tuple>(args_tuple))..., out);
    +
    237 
    +
    238  return process_return(std::move(ret), out);
    +
    239  }
    +
    240  } else {
    +
    241  auto old_output_tls_ptr = this->outputs_tls_ptr_accessor();
    +
    242  this->set_outputs_tls_ptr();
    +
    243  if constexpr (std::is_void_v<returnT>) {
    +
    244  func(std::forward<Key>(key),
    +
    245  baseT::template get<S, std::tuple_element_t<S + 1, func_args_t>>(std::forward<Tuple>(args_tuple))...);
    +
    246  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    247  return;
    +
    248  } else {
    +
    249  auto ret =
    +
    250  func(std::forward<Key>(key),
    +
    251  baseT::template get<S, std::tuple_element_t<S + 1, func_args_t>>(std::forward<Tuple>(args_tuple))...);
    +
    252  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    253  return process_return(std::move(ret), out);
    +
    254  }
    +
    255  }
    +
    256  }
    +
    257 
    +
    258  template <typename Tuple, std::size_t... S>
    +
    259  auto call_func(Tuple &&args_tuple, output_terminalsT &out, std::index_sequence<S...>) {
    + +
    261  if constexpr (funcT_receives_outterm_tuple) {
    +
    262  if constexpr (std::is_void_v<returnT>) {
    +
    263  func(baseT::template get<S, std::tuple_element_t<S, func_args_t>>(std::forward<Tuple>(args_tuple))..., out);
    +
    264  } else {
    +
    265  auto ret = func(baseT::template get<S, std::tuple_element_t<S, func_args_t>>(std::forward<Tuple>(args_tuple))..., out);
    +
    266  return process_return(std::move(ret), out);
    +
    267  }
    +
    268  } else {
    +
    269  auto old_output_tls_ptr = this->outputs_tls_ptr_accessor();
    +
    270  this->set_outputs_tls_ptr();
    +
    271  if constexpr (std::is_void_v<returnT>) {
    +
    272  func(baseT::template get<S, std::tuple_element_t<S, func_args_t>>(std::forward<Tuple>(args_tuple))...);
    +
    273  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    274  } else {
    +
    275  auto ret = func(baseT::template get<S, std::tuple_element_t<S, func_args_t>>(std::forward<Tuple>(args_tuple))...);
    +
    276  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    277  return process_return(std::move(ret), out);
    +
    278  }
    +
    279  }
    +
    280  }
    +
    281 
    +
    282  template <typename Key>
    +
    283  auto call_func(Key &&key, output_terminalsT &out) {
    +
    284  if constexpr (funcT_receives_outterm_tuple) {
    +
    285  if constexpr (std::is_void_v<returnT>) {
    +
    286  func(std::forward<Key>(key), out);
    +
    287  } else {
    +
    288  auto ret = func(std::forward<Key>(key), out);
    +
    289  return process_return(std::move(ret), out);
    +
    290  }
    +
    291  } else {
    +
    292  auto old_output_tls_ptr = this->outputs_tls_ptr_accessor();
    +
    293  this->set_outputs_tls_ptr();
    +
    294  if constexpr (std::is_void_v<returnT>) {
    +
    295  func(std::forward<Key>(key));
    +
    296  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    297  } else {
    +
    298  auto ret = func(std::forward<Key>(key));
    +
    299  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    300  return process_return(std::move(ret), out);
    +
    301  }
    +
    302  }
    +
    303  }
    +
    304 
    +
    305  template <typename OutputTerminals>
    +
    306  auto call_func(OutputTerminals &out) {
    +
    307  if constexpr (funcT_receives_outterm_tuple) {
    +
    308  if constexpr (std::is_void_v<returnT>) {
    +
    309  func(out);
    +
    310  } else {
    +
    311  auto ret = func(out);
    +
    312  return process_return(std::move(ret), out);
    +
    313  }
    +
    314  } else {
    +
    315  auto old_output_tls_ptr = this->outputs_tls_ptr_accessor();
    +
    316  this->set_outputs_tls_ptr();
    +
    317  if constexpr (std::is_void_v<returnT>) {
    +
    318  func();
    +
    319  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    320  } else {
    +
    321  auto ret = func(out);
    +
    322  this->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    323  return process_return(std::move(ret), out);
    +
    324  }
    +
    325  }
    +
    326  }
    +
    327 
    +
    328  template <typename Tuple, std::size_t... I>
    +
    329  static auto make_output_terminal_ptrs(const Tuple &output_terminals, std::index_sequence<I...>) {
    +
    330  return std::array<ttg::TerminalBase *, sizeof...(I)>{
    +
    331  {static_cast<ttg::TerminalBase *>(&std::get<I>(output_terminals))...}};
    +
    332  }
    +
    333 
    +
    334  public:
    +
    335  template <typename funcT_>
    +
    336  CallableWrapTTArgs(funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges,
    +
    337  const std::string &name, const std::vector<std::string> &innames,
    +
    338  const std::vector<std::string> &outnames)
    +
    339  : baseT(inedges, outedges, name, innames, outnames), func(std::forward<funcT_>(f)) {}
    +
    340 
    +
    341  template <typename funcT_>
    +
    342  CallableWrapTTArgs(funcT_ &&f, const std::string &name, const std::vector<std::string> &innames,
    +
    343  const std::vector<std::string> &outnames)
    +
    344  : baseT(name, innames, outnames), func(std::forward<funcT_>(f)) {}
    +
    345 
    +
    346  template <typename Key, typename ArgsTuple>
    +
    347  std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> &&
    +
    348  !ttg::meta::is_empty_tuple_v<input_refs_tuple_type> && !ttg::meta::is_void_v<Key>,
    +
    349  op_return_type>
    +
    350  op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out) {
    +
    351  assert(&out == &baseT::get_output_terminals());
    +
    352  return call_func(std::forward<Key>(key), std::forward<ArgsTuple>(args_tuple), out,
    +
    353  std::make_index_sequence<std::tuple_size_v<ArgsTuple>>{});
    +
    354  };
    +
    355 
    +
    356  template <typename ArgsTuple, typename Key = keyT>
    +
    357  std::enable_if_t<std::is_same_v<ArgsTuple, input_refs_tuple_type> &&
    +
    358  !ttg::meta::is_empty_tuple_v<input_refs_tuple_type> && ttg::meta::is_void_v<Key>,
    +
    359  op_return_type>
    +
    360  op(ArgsTuple &&args_tuple, output_terminalsT &out) {
    +
    361  assert(&out == &baseT::get_output_terminals());
    +
    362  return call_func(std::forward<ArgsTuple>(args_tuple), out,
    +
    363  std::make_index_sequence<std::tuple_size_v<ArgsTuple>>{});
    +
    364  };
    +
    365 
    +
    366  template <typename Key, typename ArgsTuple = input_refs_tuple_type>
    +
    367  std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && !ttg::meta::is_void_v<Key>, op_return_type> op(
    +
    368  Key &&key, output_terminalsT &out) {
    +
    369  assert(&out == &baseT::get_output_terminals());
    +
    370  return call_func(std::forward<Key>(key), out);
    +
    371  };
    +
    372 
    +
    373  template <typename Key = keyT, typename ArgsTuple = input_refs_tuple_type>
    +
    374  std::enable_if_t<ttg::meta::is_empty_tuple_v<ArgsTuple> && ttg::meta::is_void_v<Key>, op_return_type> op(
    +
    375  output_terminalsT &out) {
    +
    376  assert(&out == &baseT::get_output_terminals());
    +
    377  return call_func(out);
    +
    378  };
    +
    379 };
    +
    380 
    +
    381 template <typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space,
    +
    382  typename keyT, typename output_terminalsT, typename input_values_typelistT>
    + +
    384 
    +
    385 template <typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space,
    +
    386  typename keyT, typename output_terminalsT, typename... input_valuesT>
    +
    387 struct CallableWrapTTArgsAsTypelist<funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT,
    +
    388  std::tuple<input_valuesT...>> {
    +
    389  using type = CallableWrapTTArgs<funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT,
    +
    390  std::remove_reference_t<input_valuesT>...>;
    +
    391 };
    +
    392 
    +
    393 template <typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space,
    +
    394  typename keyT, typename output_terminalsT, typename... input_valuesT>
    +
    395 struct CallableWrapTTArgsAsTypelist<funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT,
    +
    396  ttg::meta::typelist<input_valuesT...>> {
    +
    397  using type = CallableWrapTTArgs<funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT,
    +
    398  std::remove_reference_t<input_valuesT>...>;
    +
    399 };
    +
    400 
    +
    401 // clang-format off
    +
    427 // clang-format on
    +
    428 template <typename keyT = void, typename funcT, typename... input_edge_valuesT, typename... output_edgesT>
    +
    429 auto make_tt_tpl(funcT &&func, const std::tuple<ttg::Edge<keyT, input_edge_valuesT>...> &inedges = std::tuple<>{},
    +
    430  const std::tuple<output_edgesT...> &outedges = std::tuple<>{}, const std::string &name = "wrapper",
    +
    431  const std::vector<std::string> &innames = std::vector<std::string>(sizeof...(input_edge_valuesT),
    +
    432  "input"),
    +
    433  const std::vector<std::string> &outnames = std::vector<std::string>(sizeof...(output_edgesT),
    +
    434  "output")) {
    +
    435  // ensure input types do not contain Void
    +
    436  static_assert(ttg::meta::is_none_Void_v<input_edge_valuesT...>, "ttg::Void is for internal use only, do not use it");
    +
    437  using output_terminals_type = typename ttg::edges_to_output_terminals<std::tuple<output_edgesT...>>::type;
    +
    438 
    +
    439  constexpr auto void_key = ttg::meta::is_void_v<keyT>;
    +
    440 
    +
    441  // list of base datum types (T or const T)
    + +
    443 
    +
    444  // gross list of candidate argument types
    +
    445  using gross_candidate_func_args_t = ttg::meta::typelist<
    + + +
    448  std::tuple<std::add_lvalue_reference_t<typename ttg::Edge<keyT, input_edge_valuesT>::value_type>...>>,
    + +
    450 
    +
    451  // net list of candidate argument types excludes the empty typelists for void arguments
    +
    452  using candidate_func_args_t = ttg::meta::filter_t<gross_candidate_func_args_t, ttg::meta::typelist_is_not_empty>;
    +
    453 
    +
    454  // compute list of argument types with which func can be invoked
    +
    455  constexpr static auto func_is_generic = ttg::meta::is_generic_callable_v<funcT>;
    +
    456  using gross_func_args_t = decltype(ttg::meta::compute_arg_binding_types_r<void>(func, candidate_func_args_t{}));
    +
    457  constexpr auto DETECTED_HOW_TO_INVOKE_GENERIC_FUNC =
    +
    458  func_is_generic ? !std::is_same_v<gross_func_args_t, ttg::typelist<>> : true;
    +
    459  static_assert(DETECTED_HOW_TO_INVOKE_GENERIC_FUNC,
    +
    460  "ttd::make_tt_tpl(func, inedges, ...): could not detect how to invoke generic callable func, either "
    +
    461  "the signature of func "
    +
    462  "is faulty, or inedges does match the expected list of types, or both");
    +
    463 
    +
    464  // net argument typelist
    +
    465  using func_args_t = ttg::meta::drop_void_t<gross_func_args_t>;
    +
    466  constexpr auto num_args = std::tuple_size_v<func_args_t>;
    +
    467 
    +
    468  // if given task id, make sure it's passed via const lvalue ref
    +
    469  constexpr bool TASK_ID_PASSED_AS_CONST_LVALUE_REF =
    +
    470  !void_key ? ttg::meta::probe_first_v<ttg::meta::is_const_lvalue_reference, true, func_args_t> : true;
    +
    471  constexpr bool TASK_ID_PASSED_AS_NONREF =
    +
    472  !void_key ? !ttg::meta::probe_first_v<std::is_reference, true, func_args_t> : true;
    +
    473  static_assert(
    +
    474  TASK_ID_PASSED_AS_CONST_LVALUE_REF || TASK_ID_PASSED_AS_NONREF,
    +
    475  "ttg::make_tt_tpl(func, ...): if given to func, the task id must be passed by const lvalue ref or by value");
    +
    476 
    +
    477  // if given out-terminal tuple, make sure it's passed via nonconst lvalue ref
    +
    478  constexpr bool have_outterm_tuple =
    +
    479  func_is_generic ? !ttg::meta::is_last_void_v<gross_func_args_t>
    + +
    481  gross_func_args_t>;
    +
    482  constexpr bool OUTTERM_TUPLE_PASSED_AS_NONCONST_LVALUE_REF =
    +
    483  have_outterm_tuple ? ttg::meta::probe_last_v<ttg::meta::is_nonconst_lvalue_reference, true, func_args_t> : true;
    +
    484  static_assert(
    +
    485  OUTTERM_TUPLE_PASSED_AS_NONCONST_LVALUE_REF,
    +
    486  "ttd::make_tt_tpl(func, ...): if given to func, the output terminal tuple must be passed by nonconst lvalue ref");
    +
    487 
    +
    488  static_assert(num_args == 3 - (void_key ? 1 : 0) - (have_outterm_tuple ? 0 : 1),
    +
    489  "ttg::make_tt_tpl(func, ...): func takes wrong number of arguments (2, or 1, if keyT=void + optional "
    +
    490  "tuple of output terminals)");
    +
    491 
    +
    492  // 2. input_args_t = {input_valuesT&&...}
    +
    493  using nondecayed_input_args_t = std::tuple_element_t<void_key ? 0 : 1, func_args_t>;
    +
    494  constexpr auto NO_ARGUMENTS_PASSED_AS_NONCONST_LVALUE_REF =
    +
    495  !ttg::meta::is_any_nonconst_lvalue_reference_v<nondecayed_input_args_t>;
    +
    496  static_assert(
    +
    497  NO_ARGUMENTS_PASSED_AS_NONCONST_LVALUE_REF,
    +
    498  "ttg::make_tt_tpl(func, inedges, outedges): one or more arguments to func can only be passed by nonconst lvalue "
    +
    499  "ref; this is illegal, should only pass arguments as const lvalue ref or (nonconst) rvalue ref");
    +
    500  using input_args_t = std::decay_t<nondecayed_input_args_t>;
    +
    501  using decayed_input_args_t = ttg::meta::decayed_typelist_t<input_args_t>;
    +
    502  using wrapT =
    + +
    504  static_assert(std::is_same_v<decayed_input_args_t, std::tuple<input_edge_valuesT...>>,
    +
    505  "ttg::make_tt_tpl(func, inedges, outedges): inedges value types do not match argument types of func");
    +
    506 
    +
    507  return std::make_unique<wrapT>(std::forward<funcT>(func), inedges, outedges, name, innames, outnames);
    +
    508 }
    +
    509 
    +
    510 // clang-format off
    +
    556 // clang-format on
    +
    557 template <ttg::ExecutionSpace space,
    +
    558  typename keyT = void, typename funcT,
    +
    559  typename... input_edge_valuesT, typename... output_edgesT>
    +
    560 auto make_tt(funcT &&func, const std::tuple<ttg::Edge<keyT, input_edge_valuesT>...> &inedges = std::tuple<>{},
    +
    561  const std::tuple<output_edgesT...> &outedges = std::tuple<>{}, const std::string &name = "wrapper",
    +
    562  const std::vector<std::string> &innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"),
    +
    563  const std::vector<std::string> &outnames = std::vector<std::string>(sizeof...(output_edgesT), "output")) {
    +
    564  // ensure input types do not contain Void
    +
    565  static_assert(ttg::meta::is_none_Void_v<input_edge_valuesT...>, "ttg::Void is for internal use only, do not use it");
    +
    566 
    +
    567  using output_terminals_type = typename ttg::edges_to_output_terminals<std::tuple<output_edgesT...>>::type;
    +
    568 
    +
    569  constexpr auto void_key = ttg::meta::is_void_v<keyT>;
    +
    570 
    +
    571  // list of base datum types (T or const T)
    + +
    573 
    +
    574  // gross list of candidate argument types
    +
    575  using gross_candidate_func_args_t = ttg::meta::typelist<
    + + + +
    579 
    +
    580  // net list of candidate argument types excludes the empty typelists for void arguments
    +
    581  using candidate_func_args_t = ttg::meta::filter_t<gross_candidate_func_args_t, ttg::meta::typelist_is_not_empty>;
    +
    582 
    +
    583  // gross argument typelist for invoking func, can include void for optional args
    +
    584  constexpr static auto func_is_generic = ttg::meta::is_generic_callable_v<funcT>;
    +
    585  using return_type_typelist_and_gross_func_args_t =
    +
    586  decltype(ttg::meta::compute_arg_binding_types(func, candidate_func_args_t{}));
    +
    587  using func_return_t = std::tuple_element_t<0, std::tuple_element_t<0, return_type_typelist_and_gross_func_args_t>>;
    +
    588  using gross_func_args_t = std::tuple_element_t<1, return_type_typelist_and_gross_func_args_t>;
    +
    589  constexpr auto DETECTED_HOW_TO_INVOKE_GENERIC_FUNC =
    +
    590  func_is_generic ? !std::is_same_v<gross_func_args_t, ttg::typelist<>> : true;
    +
    591  static_assert(DETECTED_HOW_TO_INVOKE_GENERIC_FUNC,
    +
    592  "ttd::make_tt(func, inedges, ...): could not detect how to invoke generic callable func, either the "
    +
    593  "signature of func "
    +
    594  "is faulty, or inedges does match the expected list of types, or both");
    +
    595 
    +
    596  // net argument typelist
    +
    597  using func_args_t = ttg::meta::drop_void_t<gross_func_args_t>;
    +
    598  constexpr auto num_args = std::tuple_size_v<func_args_t>;
    +
    599 
    +
    600  // if given task id, make sure it's passed via const lvalue ref
    +
    601  constexpr bool TASK_ID_PASSED_AS_CONST_LVALUE_REF =
    +
    602  !void_key ? ttg::meta::probe_first_v<ttg::meta::is_const_lvalue_reference, true, func_args_t> : true;
    +
    603  constexpr bool TASK_ID_PASSED_AS_NONREF =
    +
    604  !void_key ? !ttg::meta::probe_first_v<std::is_reference, true, func_args_t> : true;
    +
    605  static_assert(
    +
    606  TASK_ID_PASSED_AS_CONST_LVALUE_REF || TASK_ID_PASSED_AS_NONREF,
    +
    607  "ttg::make_tt(func, ...): if given to func, the task id must be passed by const lvalue ref or by value");
    +
    608 
    +
    609  // if given out-terminal tuple, make sure it's passed via nonconst lvalue ref
    +
    610  constexpr bool have_outterm_tuple =
    +
    611  func_is_generic ? !ttg::meta::is_last_void_v<gross_func_args_t>
    +
    612  : ttg::meta::probe_last_v<ttg::meta::decays_to_output_terminal_tuple, false, gross_func_args_t>;
    +
    613  constexpr bool OUTTERM_TUPLE_PASSED_AS_NONCONST_LVALUE_REF =
    +
    614  have_outterm_tuple ? ttg::meta::probe_last_v<ttg::meta::is_nonconst_lvalue_reference, false, func_args_t> : true;
    +
    615  static_assert(
    +
    616  OUTTERM_TUPLE_PASSED_AS_NONCONST_LVALUE_REF,
    +
    617  "ttg::make_tt(func, ...): if given to func, the output terminal tuple must be passed by nonconst lvalue ref");
    +
    618 
    +
    619  // TT needs actual types of arguments to func ... extract them and pass to CallableWrapTTArgs
    +
    620  using input_edge_value_types = ttg::meta::typelist<std::decay_t<input_edge_valuesT>...>;
    +
    621  // input_args_t = {input_valuesT&&...}
    +
    622  using input_args_t = typename ttg::meta::take_first_n<
    +
    623  typename ttg::meta::drop_first_n<func_args_t, std::size_t(void_key ? 0 : 1)>::type,
    +
    624  std::tuple_size_v<func_args_t> - (void_key ? 0 : 1) - (have_outterm_tuple ? 1 : 0)>::type;
    +
    625  constexpr auto NO_ARGUMENTS_PASSED_AS_NONCONST_LVALUE_REF =
    +
    626  !ttg::meta::is_any_nonconst_lvalue_reference_v<input_args_t>;
    +
    627  static_assert(
    +
    628  NO_ARGUMENTS_PASSED_AS_NONCONST_LVALUE_REF,
    +
    629  "ttg::make_tt(func, inedges, outedges): one or more arguments to func can only be passed by nonconst lvalue "
    +
    630  "ref; this is illegal, should only pass arguments as const lvalue ref or (nonconst) rvalue ref");
    +
    631  using decayed_input_args_t = ttg::meta::decayed_typelist_t<input_args_t>;
    +
    632  // 3. full_input_args_t = edge-types with non-void types replaced by input_args_t
    +
    633  using full_input_args_t = ttg::meta::replace_nonvoid_t<input_edge_value_types, input_args_t>;
    +
    634  using wrapT = typename CallableWrapTTArgsAsTypelist<funcT, func_return_t, have_outterm_tuple, space, keyT,
    +
    635  output_terminals_type, full_input_args_t>::type;
    +
    636 
    +
    637  return std::make_unique<wrapT>(std::forward<funcT>(func), inedges, outedges, name, innames, outnames);
    +
    638 }
    +
    639 
    +
    640 template <typename keyT = void, typename funcT,
    +
    641  typename... input_edge_valuesT, typename... output_edgesT>
    +
    642 auto make_tt(funcT &&func, const std::tuple<ttg::Edge<keyT, input_edge_valuesT>...> &inedges = std::tuple<>{},
    +
    643  const std::tuple<output_edgesT...> &outedges = std::tuple<>{}, const std::string &name = "wrapper",
    +
    644  const std::vector<std::string> &innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"),
    +
    645  const std::vector<std::string> &outnames = std::vector<std::string>(sizeof...(output_edgesT), "output")) {
    +
    646  return make_tt<ttg::ExecutionSpace::Host, keyT>(std::forward<funcT>(func), inedges, outedges, name, innames, outnames);
    +
    647 }
    +
    648 
    +
    649 template <typename keyT, typename funcT, typename... input_valuesT, typename... output_edgesT>
    +
    650 [[deprecated("use make_tt_tpl instead")]] inline auto wrapt(
    +
    651  funcT &&func, const std::tuple<ttg::Edge<keyT, input_valuesT>...> &inedges,
    +
    652  const std::tuple<output_edgesT...> &outedges, const std::string &name = "wrapper",
    +
    653  const std::vector<std::string> &innames = std::vector<std::string>(sizeof...(input_valuesT), "input"),
    +
    654  const std::vector<std::string> &outnames = std::vector<std::string>(sizeof...(output_edgesT), "output")) {
    +
    655  return make_tt_tpl<keyT>(std::forward<funcT>(func), inedges, outedges, name, innames, outnames);
    +
    656 }
    +
    657 
    +
    658 template <typename keyT, typename funcT, typename... input_edge_valuesT, typename... output_edgesT>
    +
    659 [[deprecated("use make_tt instead")]] auto wrap(
    +
    660  funcT &&func, const std::tuple<ttg::Edge<keyT, input_edge_valuesT>...> &inedges,
    +
    661  const std::tuple<output_edgesT...> &outedges, const std::string &name = "wrapper",
    +
    662  const std::vector<std::string> &innames = std::vector<std::string>(sizeof...(input_edge_valuesT), "input"),
    +
    663  const std::vector<std::string> &outnames = std::vector<std::string>(sizeof...(output_edgesT), "output")) {
    +
    664  return make_tt<keyT>(std::forward<funcT>(func), inedges, outedges, name, innames, outnames);
    +
    665 }
    +
    666 
    +
    667 #endif // TTG_MAKE_TT_H
    + +
    std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, op_return_type > op(output_terminalsT &out)
    Definition: make_tt.h:374
    +
    static auto make_output_terminal_ptrs(const Tuple &output_terminals, std::index_sequence< I... >)
    Definition: make_tt.h:329
    +
    CallableWrapTTArgs(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
    Definition: make_tt.h:342
    +
    static constexpr bool have_level_zero_op
    Definition: make_tt.h:170
    +
    std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&!ttg::meta::is_void_v< Key >, op_return_type > op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)
    Definition: make_tt.h:350
    +
    auto call_func(OutputTerminals &out)
    Definition: make_tt.h:306
    +
    std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, op_return_type > op(Key &&key, output_terminalsT &out)
    Definition: make_tt.h:367
    +
    auto call_func(Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
    Definition: make_tt.h:259
    +
    static constexpr bool have_hip_op
    Definition: make_tt.h:169
    +
    static constexpr bool have_cuda_op
    Definition: make_tt.h:168
    +
    auto process_return(ReturnT &&ret, output_terminalsT &out)
    Definition: make_tt.h:175
    +
    CallableWrapTTArgs(funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
    Definition: make_tt.h:336
    +
    auto call_func(Key &&key, output_terminalsT &out)
    Definition: make_tt.h:283
    +
    std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< input_refs_tuple_type > &&ttg::meta::is_void_v< Key >, op_return_type > op(ArgsTuple &&args_tuple, output_terminalsT &out)
    Definition: make_tt.h:360
    +
    auto call_func(Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)
    Definition: make_tt.h:225
    + +
    std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, void > op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)
    Definition: make_tt.h:79
    +
    CallableWrapTT(funcT_ &&f, const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
    Definition: make_tt.h:65
    +
    std::enable_if_t< std::is_same_v< ArgsTuple, input_refs_tuple_type > &&!ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, void > op(ArgsTuple &&args_tuple, output_terminalsT &out)
    Definition: make_tt.h:87
    +
    std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&ttg::meta::is_void_v< Key >, void > op(output_terminalsT &out)
    Definition: make_tt.h:98
    +
    std::enable_if_t< ttg::meta::is_empty_tuple_v< ArgsTuple > &&!ttg::meta::is_void_v< Key >, void > op(Key &&key, output_terminalsT &out)
    Definition: make_tt.h:92
    +
    CallableWrapTT(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)
    Definition: make_tt.h:71
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    #define TTG_HAVE_DEVICE
    Definition: config.in.h:33
    +
    auto wrap(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges, const std::tuple< output_edgesT... > &outedges, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Definition: make_tt.h:659
    +
    auto make_tt_tpl(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:429
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    auto wrapt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_valuesT >... > &inedges, const std::tuple< output_edgesT... > &outedges, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Definition: make_tt.h:650
    +
    constexpr auto get(span< E, S > s) -> decltype(s[N])
    Definition: span.h:492
    +
    typename make_index_sequence_t< I... >::type make_index_sequence
    +
    constexpr bool probe_last_v
    Definition: meta.h:120
    +
    auto compute_arg_binding_types(Func &func, typelist< Typelists... > argument_type_lists)
    Definition: callable.h:154
    +
    typename tuple_concat< TupleTs... >::type tuple_concat_t
    Definition: meta.h:60
    +
    typename candidate_argument_bindings< T >::type candidate_argument_bindings_t
    Definition: callable.h:221
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    ExecutionSpace
    denotes task execution space
    Definition: execution.h:17
    + + + +
    void abort()
    Aborts the TTG program using the default backend's ttg_abort method.
    Definition: run.h:62
    +
    meta::typelist< Ts... > typelist
    Definition: typelist.h:81
    +
    TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise > coroutine_handle
    Definition: coroutine.h:24
    + + + +
    drops N elements from the front
    Definition: meta.h:349
    + +
    take first N elements of a type list
    Definition: meta.h:373
    +
    A container for types.
    Definition: typelist.h:24
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/menudata.js b/dox-master/menudata.js new file mode 100644 index 000000000..25482a75d --- /dev/null +++ b/dox-master/menudata.js @@ -0,0 +1,212 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Overview",url:"index.html"}, +{text:"User Guide",url:"userguide.html"}, +{text:"Programmer Guides",url:"usergroup0.html",children:[ +{text:"Developer Guide",url:"devguide.html"}, +{text:"Contributor Guide",url:"contribguide.html"}]}, +{text:"Source Reference",url:"usergroup1.html",children:[ +{text:"Modules",url:"modules.html"}, +{text:"Namespace List",url:"namespaces.html",children:[ +{text:"Namespace List",url:"namespaces.html"}, +{text:"Namespace Members",url:"namespacemembers.html",children:[ +{text:"All",url:"namespacemembers.html",children:[ +{text:"a",url:"namespacemembers.html#index_a"}, +{text:"b",url:"namespacemembers_b.html#index_b"}, +{text:"c",url:"namespacemembers_c.html#index_c"}, +{text:"d",url:"namespacemembers_d.html#index_d"}, +{text:"e",url:"namespacemembers_e.html#index_e"}, +{text:"f",url:"namespacemembers_f.html#index_f"}, +{text:"g",url:"namespacemembers_g.html#index_g"}, +{text:"h",url:"namespacemembers_h.html#index_h"}, +{text:"i",url:"namespacemembers_i.html#index_i"}, +{text:"l",url:"namespacemembers_l.html#index_l"}, +{text:"m",url:"namespacemembers_m.html#index_m"}, +{text:"n",url:"namespacemembers_n.html#index_n"}, +{text:"o",url:"namespacemembers_o.html#index_o"}, +{text:"p",url:"namespacemembers_p.html#index_p"}, +{text:"q",url:"namespacemembers_q.html#index_q"}, +{text:"r",url:"namespacemembers_r.html#index_r"}, +{text:"s",url:"namespacemembers_s.html#index_s"}, +{text:"t",url:"namespacemembers_t.html#index_t"}, +{text:"u",url:"namespacemembers_u.html#index_u"}, +{text:"v",url:"namespacemembers_v.html#index_v"}, +{text:"w",url:"namespacemembers_w.html#index_w"}]}, +{text:"Functions",url:"namespacemembers_func.html",children:[ +{text:"a",url:"namespacemembers_func.html#index_a"}, +{text:"b",url:"namespacemembers_func_b.html#index_b"}, +{text:"c",url:"namespacemembers_func_c.html#index_c"}, +{text:"d",url:"namespacemembers_func_d.html#index_d"}, +{text:"e",url:"namespacemembers_func_e.html#index_e"}, +{text:"f",url:"namespacemembers_func_f.html#index_f"}, +{text:"g",url:"namespacemembers_func_g.html#index_g"}, +{text:"h",url:"namespacemembers_func_h.html#index_h"}, +{text:"i",url:"namespacemembers_func_i.html#index_i"}, +{text:"l",url:"namespacemembers_func_l.html#index_l"}, +{text:"m",url:"namespacemembers_func_m.html#index_m"}, +{text:"n",url:"namespacemembers_func_n.html#index_n"}, +{text:"o",url:"namespacemembers_func_o.html#index_o"}, +{text:"p",url:"namespacemembers_func_p.html#index_p"}, +{text:"r",url:"namespacemembers_func_r.html#index_r"}, +{text:"s",url:"namespacemembers_func_s.html#index_s"}, +{text:"t",url:"namespacemembers_func_t.html#index_t"}, +{text:"v",url:"namespacemembers_func_v.html#index_v"}, +{text:"w",url:"namespacemembers_func_w.html#index_w"}]}, +{text:"Variables",url:"namespacemembers_vars.html",children:[ +{text:"a",url:"namespacemembers_vars.html#index_a"}, +{text:"c",url:"namespacemembers_vars.html#index_c"}, +{text:"d",url:"namespacemembers_vars.html#index_d"}, +{text:"f",url:"namespacemembers_vars.html#index_f"}, +{text:"h",url:"namespacemembers_vars.html#index_h"}, +{text:"i",url:"namespacemembers_vars.html#index_i"}, +{text:"l",url:"namespacemembers_vars.html#index_l"}, +{text:"m",url:"namespacemembers_vars.html#index_m"}, +{text:"p",url:"namespacemembers_vars.html#index_p"}, +{text:"r",url:"namespacemembers_vars.html#index_r"}, +{text:"s",url:"namespacemembers_vars.html#index_s"}, +{text:"t",url:"namespacemembers_vars.html#index_t"}, +{text:"v",url:"namespacemembers_vars.html#index_v"}]}, +{text:"Typedefs",url:"namespacemembers_type.html",children:[ +{text:"a",url:"namespacemembers_type.html#index_a"}, +{text:"b",url:"namespacemembers_type.html#index_b"}, +{text:"c",url:"namespacemembers_type.html#index_c"}, +{text:"d",url:"namespacemembers_type.html#index_d"}, +{text:"e",url:"namespacemembers_type.html#index_e"}, +{text:"f",url:"namespacemembers_type.html#index_f"}, +{text:"g",url:"namespacemembers_type.html#index_g"}, +{text:"h",url:"namespacemembers_type.html#index_h"}, +{text:"i",url:"namespacemembers_type.html#index_i"}, +{text:"m",url:"namespacemembers_type.html#index_m"}, +{text:"n",url:"namespacemembers_type.html#index_n"}, +{text:"o",url:"namespacemembers_type.html#index_o"}, +{text:"p",url:"namespacemembers_type.html#index_p"}, +{text:"q",url:"namespacemembers_type.html#index_q"}, +{text:"r",url:"namespacemembers_type.html#index_r"}, +{text:"s",url:"namespacemembers_type.html#index_s"}, +{text:"t",url:"namespacemembers_type.html#index_t"}, +{text:"u",url:"namespacemembers_type.html#index_u"}, +{text:"v",url:"namespacemembers_type.html#index_v"}]}, +{text:"Enumerations",url:"namespacemembers_enum.html"}]}]}, +{text:"Class List",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Hierarchy",url:"hierarchy.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"_",url:"functions.html#index__5F"}, +{text:"a",url:"functions_a.html#index_a"}, +{text:"b",url:"functions_b.html#index_b"}, +{text:"c",url:"functions_c.html#index_c"}, +{text:"d",url:"functions_d.html#index_d"}, +{text:"e",url:"functions_e.html#index_e"}, +{text:"f",url:"functions_f.html#index_f"}, +{text:"g",url:"functions_g.html#index_g"}, +{text:"h",url:"functions_h.html#index_h"}, +{text:"i",url:"functions_i.html#index_i"}, +{text:"k",url:"functions_k.html#index_k"}, +{text:"l",url:"functions_l.html#index_l"}, +{text:"m",url:"functions_m.html#index_m"}, +{text:"n",url:"functions_n.html#index_n"}, +{text:"o",url:"functions_o.html#index_o"}, +{text:"p",url:"functions_p.html#index_p"}, +{text:"q",url:"functions_q.html#index_q"}, +{text:"r",url:"functions_r.html#index_r"}, +{text:"s",url:"functions_s.html#index_s"}, +{text:"t",url:"functions_t.html#index_t"}, +{text:"u",url:"functions_u.html#index_u"}, +{text:"v",url:"functions_v.html#index_v"}, +{text:"w",url:"functions_w.html#index_w"}, +{text:"x",url:"functions_x.html#index_x"}, +{text:"~",url:"functions_~.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"_",url:"functions_func.html#index__5F"}, +{text:"a",url:"functions_func_a.html#index_a"}, +{text:"b",url:"functions_func_b.html#index_b"}, +{text:"c",url:"functions_func_c.html#index_c"}, +{text:"d",url:"functions_func_d.html#index_d"}, +{text:"e",url:"functions_func_e.html#index_e"}, +{text:"f",url:"functions_func_f.html#index_f"}, +{text:"g",url:"functions_func_g.html#index_g"}, +{text:"h",url:"functions_func_h.html#index_h"}, +{text:"i",url:"functions_func_i.html#index_i"}, +{text:"l",url:"functions_func_l.html#index_l"}, +{text:"m",url:"functions_func_m.html#index_m"}, +{text:"n",url:"functions_func_n.html#index_n"}, +{text:"o",url:"functions_func_o.html#index_o"}, +{text:"p",url:"functions_func_p.html#index_p"}, +{text:"r",url:"functions_func_r.html#index_r"}, +{text:"s",url:"functions_func_s.html#index_s"}, +{text:"t",url:"functions_func_t.html#index_t"}, +{text:"u",url:"functions_func_u.html#index_u"}, +{text:"v",url:"functions_func_v.html#index_v"}, +{text:"w",url:"functions_func_w.html#index_w"}, +{text:"x",url:"functions_func_x.html#index_x"}, +{text:"~",url:"functions_func_~.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"g",url:"functions_vars.html#index_g"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"k",url:"functions_vars.html#index_k"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"o",url:"functions_vars.html#index_o"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"q",url:"functions_vars.html#index_q"}, +{text:"r",url:"functions_vars.html#index_r"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"u",url:"functions_vars.html#index_u"}, +{text:"v",url:"functions_vars.html#index_v"}, +{text:"w",url:"functions_vars.html#index_w"}]}, +{text:"Typedefs",url:"functions_type.html",children:[ +{text:"a",url:"functions_type.html#index_a"}, +{text:"b",url:"functions_type_b.html#index_b"}, +{text:"c",url:"functions_type_c.html#index_c"}, +{text:"d",url:"functions_type_d.html#index_d"}, +{text:"e",url:"functions_type_e.html#index_e"}, +{text:"f",url:"functions_type_f.html#index_f"}, +{text:"h",url:"functions_type_h.html#index_h"}, +{text:"i",url:"functions_type_i.html#index_i"}, +{text:"k",url:"functions_type_k.html#index_k"}, +{text:"l",url:"functions_type_l.html#index_l"}, +{text:"m",url:"functions_type_m.html#index_m"}, +{text:"n",url:"functions_type_n.html#index_n"}, +{text:"o",url:"functions_type_o.html#index_o"}, +{text:"p",url:"functions_type_p.html#index_p"}, +{text:"q",url:"functions_type_q.html#index_q"}, +{text:"r",url:"functions_type_r.html#index_r"}, +{text:"s",url:"functions_type_s.html#index_s"}, +{text:"t",url:"functions_type_t.html#index_t"}, +{text:"v",url:"functions_type_v.html#index_v"}, +{text:"w",url:"functions_type_w.html#index_w"}]}, +{text:"Enumerations",url:"functions_enum.html"}, +{text:"Enumerator",url:"functions_eval.html"}, +{text:"Related Functions",url:"functions_rela.html"}]}]}]}]} diff --git a/dox-master/meta_8h.html b/dox-master/meta_8h.html new file mode 100644 index 000000000..911ae862a --- /dev/null +++ b/dox-master/meta_8h.html @@ -0,0 +1,328 @@ + + + + + + + + + + + ttg: ttg/ttg/util/meta.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    meta.h File Reference
    +
    +
    +
    #include <functional>
    +#include <type_traits>
    +#include "ttg/util/span.h"
    +#include "ttg/util/typelist.h"
    +#include "ttg/buffer.h"
    +#include "ttg/ptr.h"
    +#include "ttg/devicescratch.h"
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  ttg::meta::nonref_tuple< std::tuple< Ts... > >
     
    struct  ttg::meta::tuple_concat< std::tuple< Ts... > >
     
    struct  ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >
     
    struct  ttg::meta::detail::keep_or_drop< bool >
     
    struct  ttg::meta::detail::keep_or_drop< false >
     
    struct  ttg::meta::filtered_tuple< std::tuple< Es... >, Pred >
     
    struct  ttg::meta::probe_last< Predicate, Default >
     
    struct  ttg::meta::probe_last< Predicate, Default, T >
     
    struct  ttg::meta::probe_last< Predicate, Default, T1, Ts... >
     
    struct  ttg::meta::probe_last< Predicate, Default, std::tuple< Ts... > >
     
    struct  ttg::meta::probe_last< Predicate, Default, ttg::typelist< Ts... > >
     
    struct  ttg::meta::probe_first< Predicate, Default >
     
    struct  ttg::meta::probe_first< Predicate, Default, T1, Ts... >
     
    struct  ttg::meta::probe_first< Predicate, Default, std::tuple< Ts... > >
     
    struct  ttg::meta::probe_first< Predicate, Default, ttg::typelist< Ts... > >
     
    struct  ttg::meta::probe_any< Predicate, Ts >
     
    struct  ttg::meta::probe_any< Predicate, std::tuple< Ts... > >
     
    struct  ttg::meta::probe_any< Predicate, ttg::typelist< Ts... > >
     
    struct  ttg::meta::probe_all< Predicate, Ts >
     
    struct  ttg::meta::probe_all< Predicate, std::tuple< Ts... > >
     
    struct  ttg::meta::probe_all< Predicate, ttg::typelist< Ts... > >
     
    struct  ttg::meta::is_void< T >
     
    struct  ttg::meta::is_nonvoid< T >
     
    struct  ttg::meta::is_last_void< Ts >
     
    struct  ttg::meta::void_to_Void< T >
     
    struct  ttg::meta::void_to_Void< void >
     
    struct  ttg::meta::is_const_lvalue_reference< T >
     
    struct  ttg::meta::is_nonconst_lvalue_reference< T >
     
    struct  ttg::meta::is_ptr< T >
     
    struct  ttg::meta::is_ptr< ttg::Ptr< T > >
     
    struct  ttg::meta::is_buffer< T >
     
    struct  ttg::meta::is_buffer< ttg::Buffer< T, A > >
     
    struct  ttg::meta::is_buffer< const ttg::Buffer< T, A > >
     
    struct  ttg::meta::is_devicescratch< T >
     
    struct  ttg::meta::is_devicescratch< ttg::devicescratch< T > >
     
    struct  ttg::meta::is_devicescratch< const ttg::devicescratch< T > >
     
    struct  ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>
     
    struct  ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>
     
    struct  ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >
     
    struct  ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >
     
    struct  ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>
     
    struct  ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>
     
    struct  ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >
     
    struct  ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >
     
    struct  ttg::meta::take_first_n< std::tuple< Ts... >, N >
     
    struct  ttg::meta::take_first_n< typelist< Ts... >, N >
     
    + + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::meta
     
     ttg::meta::detail
     
    + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<class... >
    using ttg::meta::void_t = void
     
    template<typename T >
    using ttg::meta::remove_cvr_t = std::remove_cv_t< std::remove_reference_t< T > >
     
    template<typename Tuple >
    using ttg::meta::nonref_tuple_t = typename nonref_tuple< Tuple >::type
     
    template<typename... TupleTs>
    using ttg::meta::tuple_concat_t = typename tuple_concat< TupleTs... >::type
     
    template<typename Tuple , template< typename > typename Pred>
    using ttg::meta::filtered_tuple_t = typename filtered_tuple< Tuple, Pred >::type
     
    template<typename T >
    using ttg::meta::void_to_Void_t = typename void_to_Void< T >::type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    template<template< typename > typename Predicate, bool Default, typename... Ts>
    constexpr bool ttg::meta::probe_last_v = probe_last<Predicate, Default, Ts...>::value
     
    template<template< typename > typename Predicate, bool Default, typename... Ts>
    constexpr bool ttg::meta::probe_first_v = probe_first<Predicate, Default, Ts...>::value
     
    template<template< typename > typename Predicate, typename... Ts>
    constexpr bool ttg::meta::probe_any_v = probe_any<Predicate, Ts...>::value
     
    template<template< typename > typename Predicate, typename... Ts>
    constexpr bool ttg::meta::probe_all_v = probe_all<Predicate, Ts...>::value
     
    template<typename T >
    constexpr bool ttg::meta::is_Void_v = std::is_same_v<std::decay_t<T>, Void>
     
    template<typename T >
    constexpr bool ttg::meta::is_void_v = is_Void_v<T> || std::is_void_v<T>
     
    template<typename T >
    constexpr bool ttg::meta::is_nonvoid_v = !is_void_v<T>
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_all_void_v = (is_void_v<Ts> && ...)
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_all_Void_v = (is_Void_v<Ts> && ...)
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_any_void_v = (is_void_v<Ts> || ...)
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_any_Void_v = (is_Void_v<Ts> || ...)
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_none_void_v = !is_any_void_v<Ts...>
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_none_Void_v = !is_any_Void_v<Ts...>
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_last_void_v = is_last_void<Ts...>::value
     
    template<typename T >
    constexpr bool ttg::meta::is_const_lvalue_reference_v
     
    template<typename T >
    constexpr bool ttg::meta::is_nonconst_lvalue_reference_v
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_any_nonconst_lvalue_reference_v = (is_nonconst_lvalue_reference_v<Ts> || ...)
     
    template<typename T >
    constexpr bool ttg::meta::is_ptr_v = is_ptr<T>::value
     
    template<typename T >
    constexpr bool ttg::meta::is_buffer_v = is_buffer<T>::value
     
    template<typename T >
    constexpr bool ttg::meta::is_devicescratch_v = is_devicescratch<T>::value
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/meta_8h_source.html b/dox-master/meta_8h_source.html new file mode 100644 index 000000000..b00d2e684 --- /dev/null +++ b/dox-master/meta_8h_source.html @@ -0,0 +1,1081 @@ + + + + + + + + + + + ttg: ttg/ttg/util/meta.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    meta.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_UTIL_META_H
    +
    2 #define TTG_UTIL_META_H
    +
    3 
    +
    4 #include <functional>
    +
    5 #include <type_traits>
    +
    6 
    +
    7 #include "ttg/util/span.h"
    +
    8 #include "ttg/util/typelist.h"
    +
    9 #include "ttg/buffer.h"
    +
    10 #include "ttg/ptr.h"
    +
    11 #include "ttg/devicescratch.h"
    +
    12 
    +
    13 namespace ttg {
    +
    14 
    +
    15  class Void;
    +
    16 
    +
    17  namespace meta {
    +
    18 
    +
    19 #if __cplusplus >= 201703L
    +
    20  using std::void_t;
    +
    21 #else
    +
    22  template <class...>
    +
    23  using void_t = void;
    +
    24 #endif
    +
    25 
    +
    26  template <typename T>
    +
    27  using remove_cvr_t = std::remove_cv_t<std::remove_reference_t<T>>;
    +
    28 
    +
    30  // (meta)tuple/typelist/typepack manipulations
    +
    32 
    +
    33  // tuple<Ts...> -> tuple<std::remove_reference_t<Ts>...>
    +
    34  template <typename T, typename Enabler = void>
    +
    35  struct nonref_tuple;
    +
    36 
    +
    37  template <typename... Ts>
    +
    38  struct nonref_tuple<std::tuple<Ts...>> {
    +
    39  using type = std::tuple<typename std::remove_reference<Ts>::type...>;
    +
    40  };
    +
    41 
    +
    42  template <typename Tuple>
    + +
    44 
    +
    45  template <typename... TupleTs>
    +
    46  struct tuple_concat;
    +
    47 
    +
    48  template <typename... Ts>
    +
    49  struct tuple_concat<std::tuple<Ts...>> {
    +
    50  using type = std::tuple<Ts...>;
    +
    51  };
    +
    52 
    +
    53  template <typename... Ts, typename... Us, typename... R>
    +
    54  struct tuple_concat<std::tuple<Ts...>, std::tuple<Us...>, R...> {
    +
    55  using type = typename tuple_concat<
    +
    56  decltype(std::tuple_cat(std::declval<std::tuple<Ts...>>(), std::declval<std::tuple<Us...>>())), R...>::type;
    +
    57  };
    +
    58 
    +
    59  template <typename... TupleTs>
    +
    60  using tuple_concat_t = typename tuple_concat<TupleTs...>::type;
    +
    61 
    +
    62  // filtered_tuple<tuple,p>::type returns tuple with types for which the predicate evaluates to true
    +
    63  template <typename Tuple, template <typename> typename Predicate>
    + +
    65 
    +
    66  namespace detail {
    +
    67  template <bool>
    +
    68  struct keep_or_drop {
    +
    69  template <typename E>
    +
    70  using type = std::tuple<E>;
    +
    71  };
    +
    72 
    +
    73  template <>
    +
    74  struct keep_or_drop<false> {
    +
    75  template <typename E>
    +
    76  using type = std::tuple<>;
    +
    77  };
    +
    78  } // namespace detail
    +
    79 
    +
    80  template <template <typename> typename Pred, typename... Es>
    +
    81  struct filtered_tuple<std::tuple<Es...>, Pred> {
    +
    82  using type = decltype(std::tuple_cat(
    +
    83  std::declval<typename detail::keep_or_drop<Pred<Es>::value>::template type<Es>>()...));
    +
    84  };
    +
    85 
    +
    86  template <typename Tuple, template <typename> typename Pred>
    + +
    88 
    +
    89  // clang-format off
    +
    94  // clang-format on
    +
    95  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    96  struct probe_last;
    +
    97 
    +
    98  template <template <typename> typename Predicate, bool Default>
    +
    99  struct probe_last<Predicate, Default> : public std::bool_constant<Default> {};
    +
    100 
    +
    101  template <template <typename> typename Predicate, bool Default, typename T>
    +
    102  struct probe_last<Predicate, Default, T> : public std::bool_constant<Predicate<T>::value> {};
    +
    103 
    +
    104  template <template <typename> typename Predicate, bool Default, typename T1, typename... Ts>
    +
    105  struct probe_last<Predicate, Default, T1, Ts...> : public probe_last<Predicate, Default, Ts...> {};
    +
    106 
    +
    107  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    108  struct probe_last<Predicate, Default, std::tuple<Ts...>> : public probe_last<Predicate, Default, Ts...> {};
    +
    109 
    +
    110  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    111  struct probe_last<Predicate, Default, ttg::typelist<Ts...>> : public probe_last<Predicate, Default, Ts...> {};
    +
    112 
    +
    113  // clang-format off
    +
    118  // clang-format on
    +
    119  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    120  constexpr bool probe_last_v = probe_last<Predicate, Default, Ts...>::value;
    +
    121 
    +
    122  // clang-format off
    +
    127  // clang-format on
    +
    128  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    129  struct probe_first;
    +
    130 
    +
    131  template <template <typename> typename Predicate, bool Default>
    +
    132  struct probe_first<Predicate, Default> : public std::bool_constant<Default> {};
    +
    133 
    +
    134  template <template <typename> typename Predicate, bool Default, typename T1, typename... Ts>
    +
    135  struct probe_first<Predicate, Default, T1, Ts...> : public std::bool_constant<Predicate<T1>::value> {};
    +
    136 
    +
    137  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    138  struct probe_first<Predicate, Default, std::tuple<Ts...>> : public probe_first<Predicate, Default, Ts...> {};
    +
    139 
    +
    140  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    141  struct probe_first<Predicate, Default, ttg::typelist<Ts...>> : public probe_first<Predicate, Default, Ts...> {};
    +
    142 
    +
    143  // clang-format off
    +
    148  // clang-format on
    +
    149  template <template <typename> typename Predicate, bool Default, typename... Ts>
    +
    150  constexpr bool probe_first_v = probe_first<Predicate, Default, Ts...>::value;
    +
    151 
    +
    152  // clang-format off
    +
    156  // clang-format on
    +
    157  template <template <typename> typename Predicate, typename... Ts>
    +
    158  struct probe_any : std::bool_constant<(Predicate<Ts>::value || ...)> {};
    +
    159 
    +
    160  template <template <typename> typename Predicate, typename... Ts>
    +
    161  struct probe_any<Predicate, std::tuple<Ts...>> : public probe_any<Predicate, Ts...> {};
    +
    162 
    +
    163  template <template <typename> typename Predicate, typename... Ts>
    +
    164  struct probe_any<Predicate, ttg::typelist<Ts...>> : public probe_any<Predicate, Ts...> {};
    +
    165 
    +
    166  // clang-format off
    +
    170  // clang-format on
    +
    171  template <template <typename> typename Predicate, typename... Ts>
    +
    172  constexpr bool probe_any_v = probe_any<Predicate, Ts...>::value;
    +
    173 
    +
    174  // clang-format off
    +
    178  // clang-format on
    +
    179  template <template <typename> typename Predicate, typename... Ts>
    +
    180  struct probe_all : std::bool_constant<(Predicate<Ts>::value && ...)> {};
    +
    181 
    +
    182  template <template <typename> typename Predicate, typename... Ts>
    +
    183  struct probe_all<Predicate, std::tuple<Ts...>> : public probe_all<Predicate, Ts...> {};
    +
    184 
    +
    185  template <template <typename> typename Predicate, typename... Ts>
    +
    186  struct probe_all<Predicate, ttg::typelist<Ts...>> : public probe_all<Predicate, Ts...> {};
    +
    187 
    +
    188  // clang-format off
    +
    192  // clang-format on
    +
    193  template <template <typename> typename Predicate, typename... Ts>
    +
    194  constexpr bool probe_all_v = probe_all<Predicate, Ts...>::value;
    +
    195 
    +
    197  // is_Void_v
    +
    198  // is_void_v = Void or void
    +
    199  // is_none_void_v
    +
    200  // is_any_void_v
    +
    201  // is_last_void_v
    +
    202  // void_to_Void_t
    +
    203  // is_any_nonconst_lvalue_reference_v
    +
    205  template <typename T>
    +
    206  constexpr bool is_Void_v = std::is_same_v<std::decay_t<T>, Void>;
    +
    207 
    +
    208  template <typename T>
    +
    209  constexpr bool is_void_v = is_Void_v<T> || std::is_void_v<T>;
    +
    210 
    +
    211  template <typename T>
    +
    212  struct is_void : std::bool_constant<is_void_v<T>> {};
    +
    213 
    +
    214  template <typename T>
    +
    215  constexpr bool is_nonvoid_v = !is_void_v<T>;
    +
    216 
    +
    217  template <typename T>
    +
    218  struct is_nonvoid : std::bool_constant<is_nonvoid_v<T>> {};
    +
    219 
    +
    220  template <typename... Ts>
    +
    221  constexpr bool is_all_void_v = (is_void_v<Ts> && ...);
    +
    222 
    +
    223  template <typename... Ts>
    +
    224  constexpr bool is_all_void_v<ttg::typelist<Ts...>> = is_all_void_v<Ts...>;
    +
    225 
    +
    226  template <typename... Ts>
    +
    227  constexpr bool is_all_Void_v = (is_Void_v<Ts> && ...);
    +
    228 
    +
    229  template <typename... Ts>
    +
    230  constexpr bool is_all_Void_v<ttg::typelist<Ts...>> = is_all_Void_v<Ts...>;
    +
    231 
    +
    232  template <typename... Ts>
    +
    233  constexpr bool is_any_void_v = (is_void_v<Ts> || ...);
    +
    234 
    +
    235  template <typename... Ts>
    +
    236  constexpr bool is_any_void_v<ttg::typelist<Ts...>> = is_all_void_v<Ts...>;
    +
    237 
    +
    238  template <typename... Ts>
    +
    239  constexpr bool is_any_Void_v = (is_Void_v<Ts> || ...);
    +
    240 
    +
    241  template <typename... Ts>
    +
    242  constexpr bool is_any_Void_v<ttg::typelist<Ts...>> = is_any_Void_v<Ts...>;
    +
    243 
    +
    244  template <typename... Ts>
    +
    245  constexpr bool is_none_void_v = !is_any_void_v<Ts...>;
    +
    246 
    +
    247  template <typename... Ts>
    +
    248  constexpr bool is_none_void_v<ttg::typelist<Ts...>> = is_none_void_v<Ts...>;
    +
    249 
    +
    250  template <typename... Ts>
    +
    251  constexpr bool is_none_Void_v = !is_any_Void_v<Ts...>;
    +
    252 
    +
    253  template <typename... Ts>
    +
    254  constexpr bool is_none_Void_v<ttg::typelist<Ts...>> = is_none_Void_v<Ts...>;
    +
    255 
    +
    256  template <typename... Ts>
    +
    257  struct is_last_void : probe_last<is_void, false, Ts...> {};
    +
    258 
    +
    259  template <typename... Ts>
    +
    260  constexpr bool is_last_void_v = is_last_void<Ts...>::value;
    +
    261 
    +
    262  template <typename T>
    +
    263  struct void_to_Void {
    +
    264  using type = T;
    +
    265  };
    +
    266  template <>
    +
    267  struct void_to_Void<void> {
    +
    268  using type = Void;
    +
    269  };
    +
    270  template <typename T>
    + +
    272 
    +
    273  template <typename T>
    + +
    275  std::is_lvalue_reference_v<T> &&std::is_const_v<std::remove_reference_t<T>>;
    +
    276 
    +
    277  template <typename T>
    +
    278  struct is_const_lvalue_reference : std::bool_constant<is_const_lvalue_reference_v<T>> {};
    +
    279 
    +
    280  template <typename T>
    + +
    282  std::is_lvalue_reference_v<T> && !std::is_const_v<std::remove_reference_t<T>>;
    +
    283 
    +
    284  template <typename T>
    +
    285  struct is_nonconst_lvalue_reference : std::bool_constant<is_nonconst_lvalue_reference_v<T>> {};
    +
    286 
    +
    287  template <typename... Ts>
    +
    288  constexpr bool is_any_nonconst_lvalue_reference_v = (is_nonconst_lvalue_reference_v<Ts> || ...);
    +
    289 
    +
    290  template <typename... Ts>
    + +
    292 
    +
    293  template <typename... Ts>
    +
    294  constexpr bool is_any_nonconst_lvalue_reference_v<std::tuple<Ts...>> = is_any_nonconst_lvalue_reference_v<Ts...>;
    +
    295 
    +
    296 
    +
    298  // device type traits
    +
    300 
    +
    301  template<typename T>
    +
    302  struct is_ptr : std::false_type
    +
    303  { };
    +
    304 
    +
    305  template<typename T>
    +
    306  struct is_ptr<ttg::Ptr<T>> : std::true_type
    +
    307  { };
    +
    308 
    +
    309  template<typename T>
    +
    310  constexpr bool is_ptr_v = is_ptr<T>::value;
    +
    311 
    +
    312  template<typename T>
    +
    313  struct is_buffer : std::false_type
    +
    314  { };
    +
    315 
    +
    316  template<typename T, typename A>
    +
    317  struct is_buffer<ttg::Buffer<T, A>> : std::true_type
    +
    318  { };
    +
    319 
    +
    320  template<typename T, typename A>
    +
    321  struct is_buffer<const ttg::Buffer<T, A>> : std::true_type
    +
    322  { };
    +
    323 
    +
    324  template<typename T>
    + +
    326 
    +
    327  template<typename T>
    +
    328  struct is_devicescratch : std::false_type
    +
    329  { };
    +
    330 
    +
    331  template<typename T>
    +
    332  struct is_devicescratch<ttg::devicescratch<T>> : std::true_type
    +
    333  { };
    +
    334 
    +
    335  template<typename T>
    +
    336  struct is_devicescratch<const ttg::devicescratch<T>> : std::true_type
    +
    337  { };
    +
    338 
    +
    339  template<typename T>
    + +
    341 
    +
    342 
    +
    344  // typelist metafunctions
    +
    346 
    +
    348  template <typename Typelist, std::size_t N, typename Enabler = void>
    +
    349  struct drop_first_n;
    +
    350 
    +
    351  template <typename... Ts>
    +
    352  struct drop_first_n<std::tuple<Ts...>, std::size_t(0)> {
    +
    353  using type = std::tuple<Ts...>;
    +
    354  };
    +
    355 
    +
    356  template <typename... Ts>
    +
    357  struct drop_first_n<typelist<Ts...>, std::size_t(0)> {
    +
    358  using type = typelist<Ts...>;
    +
    359  };
    +
    360 
    +
    361  template <typename T, typename... Ts, std::size_t N>
    +
    362  struct drop_first_n<std::tuple<T, Ts...>, N, std::enable_if_t<N != 0>> {
    +
    363  using type = typename drop_first_n<std::tuple<Ts...>, N - 1>::type;
    +
    364  };
    +
    365 
    +
    366  template <typename T, typename... Ts, std::size_t N>
    +
    367  struct drop_first_n<typelist<T, Ts...>, N, std::enable_if_t<N != 0>> {
    +
    368  using type = typename drop_first_n<typelist<Ts...>, N - 1>::type;
    +
    369  };
    +
    370 
    +
    372  template <typename Typelist, std::size_t N>
    +
    373  struct take_first_n;
    +
    374 
    +
    375  template <typename ResultTuple, typename InputTuple, std::size_t N, typename Enabler = void>
    + +
    377 
    +
    378  template <typename... Ts, typename... Us>
    +
    379  struct take_first_n_helper<std::tuple<Ts...>, std::tuple<Us...>, std::size_t(0)> {
    +
    380  using type = std::tuple<Ts...>;
    +
    381  };
    +
    382  template <typename... Ts, typename... Us>
    +
    383  struct take_first_n_helper<typelist<Ts...>, typelist<Us...>, std::size_t(0)> {
    +
    384  using type = typelist<Ts...>;
    +
    385  };
    +
    386 
    +
    387  template <typename... Ts, typename U, typename... Us, std::size_t N>
    +
    388  struct take_first_n_helper<std::tuple<Ts...>, std::tuple<U, Us...>, N, std::enable_if_t<N != 0>> {
    +
    389  using type = typename take_first_n_helper<std::tuple<Ts..., U>, std::tuple<Us...>, N - 1>::type;
    +
    390  };
    +
    391  template <typename... Ts, typename U, typename... Us, std::size_t N>
    +
    392  struct take_first_n_helper<typelist<Ts...>, typelist<U, Us...>, N, std::enable_if_t<N != 0>> {
    +
    393  using type = typename take_first_n_helper<typelist<Ts..., U>, typelist<Us...>, N - 1>::type;
    +
    394  };
    +
    395 
    +
    396  template <typename... Ts, std::size_t N>
    +
    397  struct take_first_n<std::tuple<Ts...>, N> {
    +
    398  using type = typename take_first_n_helper<std::tuple<>, std::tuple<Ts...>, N>::type;
    +
    399  };
    +
    400 
    +
    401  template <typename... Ts, std::size_t N>
    +
    402  struct take_first_n<typelist<Ts...>, N> {
    +
    403  using type = typename take_first_n_helper<typelist<>, typelist<Ts...>, N>::type;
    +
    404  };
    +
    405 
    +
    407  template <typename Typelist, std::size_t N, typename Enabler = void>
    +
    408  struct drop_last_n;
    +
    409 
    +
    410  template <typename... Ts, std::size_t N>
    +
    411  struct drop_last_n<std::tuple<Ts...>, N, std::enable_if_t<N <= sizeof...(Ts)>> {
    +
    412  using type = typename take_first_n<std::tuple<Ts...>, (sizeof...(Ts) - N)>::type;
    +
    413  };
    +
    414  template <typename... Ts, std::size_t N>
    +
    415  struct drop_last_n<typelist<Ts...>, N, std::enable_if_t<N <= sizeof...(Ts)>> {
    +
    416  using type = typename take_first_n<typelist<Ts...>, (sizeof...(Ts) - N)>::type;
    +
    417  };
    +
    418 
    +
    419  template <typename... Ts, std::size_t N>
    +
    420  struct drop_last_n<std::tuple<Ts...>, N, std::enable_if_t<!(N <= sizeof...(Ts))>> {
    +
    421  using type = std::tuple<>;
    +
    422  };
    +
    423  template <typename... Ts, std::size_t N>
    +
    424  struct drop_last_n<typelist<Ts...>, N, std::enable_if_t<!(N <= sizeof...(Ts))>> {
    +
    425  using type = typelist<>;
    +
    426  };
    +
    427 
    +
    429  template <typename T, typename Enabler = void>
    +
    430  struct decayed_typelist;
    +
    431 
    +
    432  template <typename... Ts>
    +
    433  struct decayed_typelist<std::tuple<Ts...>> {
    +
    434  using type = std::tuple<std::decay_t<Ts>...>;
    +
    435  };
    +
    436  template <typename... Ts>
    +
    437  struct decayed_typelist<typelist<Ts...>> {
    +
    438  using type = typelist<std::decay_t<Ts>...>;
    +
    439  };
    +
    440 
    +
    441  template <typename Tuple>
    +
    442  using decayed_typelist_t = typename decayed_typelist<Tuple>::type;
    +
    443 
    +
    445  template <typename T, template <typename...> typename Pred>
    +
    446  struct filter;
    +
    447 
    +
    448  template <typename FilteredTypelist, template <typename...> typename Pred, typename... ToBeFilteredTs>
    +
    449  struct filter_impl;
    +
    450 
    +
    451  template <typename... FilteredTs, template <typename...> typename Pred>
    +
    452  struct filter_impl<typelist<FilteredTs...>, Pred> {
    +
    453  using type = typelist<FilteredTs...>;
    +
    454  };
    +
    455  template <typename... FilteredTs, template <typename...> typename Pred>
    +
    456  struct filter_impl<std::tuple<FilteredTs...>, Pred> {
    +
    457  using type = std::tuple<FilteredTs...>;
    +
    458  };
    +
    459 
    +
    460  template <typename... FilteredTs, template <typename...> typename Pred, typename U, typename... RestOfUs>
    +
    461  struct filter_impl<typelist<FilteredTs...>, Pred, U, RestOfUs...>
    +
    462  : std::conditional_t<Pred<U>::value, filter_impl<typelist<FilteredTs..., U>, Pred, RestOfUs...>,
    +
    463  filter_impl<typelist<FilteredTs...>, Pred, RestOfUs...>> {};
    +
    464  template <typename... FilteredTs, template <typename...> typename Pred, typename U, typename... RestOfUs>
    +
    465  struct filter_impl<std::tuple<FilteredTs...>, Pred, U, RestOfUs...>
    +
    466  : std::conditional_t<Pred<U>::value, filter_impl<std::tuple<FilteredTs..., U>, Pred, RestOfUs...>,
    +
    467  filter_impl<std::tuple<FilteredTs...>, Pred, RestOfUs...>> {};
    +
    468 
    +
    469  template <typename... Ts, template <typename...> typename Pred>
    +
    470  struct filter<typelist<Ts...>, Pred> : filter_impl<typelist<>, Pred, Ts...> {};
    +
    471  template <typename... Ts, template <typename...> typename Pred>
    +
    472  struct filter<std::tuple<Ts...>, Pred> : filter_impl<std::tuple<>, Pred, Ts...> {};
    +
    473 
    +
    474  template <typename T, template <typename...> typename Pred>
    +
    475  using filter_t = typename filter<T, Pred>::type;
    +
    476 
    +
    477  template <typename T>
    +
    478  using drop_void = filter<T, is_nonvoid>;
    +
    479 
    +
    480  template <typename T>
    +
    481  using drop_void_t = typename drop_void<T>::type;
    +
    482 
    +
    483  template <typename T, typename S, typename U>
    +
    484  struct replace_nonvoid_helper;
    +
    485 
    +
    486  /* non-void S, replace with U */
    +
    487  template <typename... Ts, typename S, typename... Ss, typename U, typename... Us>
    +
    488  struct replace_nonvoid_helper<ttg::typelist<Ts...>, ttg::typelist<S, Ss...>, ttg::typelist<U, Us...>> {
    +
    489  using type =
    +
    490  typename replace_nonvoid_helper<ttg::typelist<Ts..., U>, ttg::typelist<Ss...>, ttg::typelist<Us...>>::type;
    +
    491  };
    +
    492 
    +
    493  /* void S, keep */
    +
    494  template <typename... Ts, typename... Ss, typename U, typename... Us>
    +
    495  struct replace_nonvoid_helper<ttg::typelist<Ts...>, ttg::typelist<void, Ss...>, ttg::typelist<U, Us...>> {
    +
    496  using type = typename replace_nonvoid_helper<ttg::typelist<Ts..., void>, ttg::typelist<Ss...>,
    +
    497  ttg::typelist<U, Us...>>::type;
    +
    498  };
    +
    499 
    +
    500  /* empty S, done */
    +
    501  template <typename... Ts, typename... Us>
    +
    502  struct replace_nonvoid_helper<ttg::typelist<Ts...>, ttg::typelist<>, ttg::typelist<Us...>> {
    +
    503  using type = ttg::typelist<Ts...>;
    +
    504  };
    +
    505 
    +
    506  /* empty U, done */
    +
    507  template <typename... Ts, typename... Ss>
    +
    508  struct replace_nonvoid_helper<ttg::typelist<Ts...>, ttg::typelist<Ss...>, ttg::typelist<>> {
    +
    509  using type = ttg::typelist<Ts..., Ss...>;
    +
    510  };
    +
    511 
    +
    512  /* empty S and U, done */
    +
    513  template <typename... Ts>
    +
    514  struct replace_nonvoid_helper<ttg::typelist<Ts...>, ttg::typelist<>, ttg::typelist<>> {
    +
    515  using type = ttg::typelist<Ts...>;
    +
    516  };
    +
    517 
    +
    518  /* Replace the first min(sizeof...(T), sizeof...(U)) non-void types in T with types in U; U does not contain void */
    +
    519  template <typename T, typename U>
    +
    520  struct replace_nonvoid;
    +
    521 
    +
    522  template <typename... T, typename... U>
    +
    523  struct replace_nonvoid<ttg::typelist<T...>, ttg::typelist<U...>> {
    +
    524  using type = typename replace_nonvoid_helper<ttg::typelist<>, ttg::typelist<T...>, ttg::typelist<U...>>::type;
    +
    525  };
    +
    526 
    +
    527  template <typename... T, typename... U>
    +
    528  struct replace_nonvoid<std::tuple<T...>, std::tuple<U...>> {
    +
    529  using type =
    +
    530  ttg::meta::typelist_to_tuple_t<typename replace_nonvoid<ttg::typelist<T...>, ttg::typelist<U...>>::type>;
    +
    531  };
    +
    532 
    +
    533  template <typename T, typename U>
    +
    534  using replace_nonvoid_t = typename replace_nonvoid<T, U>::type;
    +
    535 
    +
    537  // Tuple-element type conversions
    +
    539 
    +
    540  template <typename T>
    +
    541  struct void_to_Void_tuple;
    +
    542 
    +
    543  template <typename... Ts>
    +
    544  struct void_to_Void_tuple<std::tuple<Ts...>> {
    +
    545  using type = std::tuple<void_to_Void_t<Ts>...>;
    +
    546  };
    +
    547 
    +
    548  template <typename tupleT>
    +
    549  using void_to_Void_tuple_t = typename void_to_Void_tuple<std::decay_t<tupleT>>::type;
    +
    550 
    +
    551  template <typename T>
    +
    552  struct add_lvalue_reference_tuple;
    +
    553 
    +
    554  template <typename... Ts>
    +
    555  struct add_lvalue_reference_tuple<std::tuple<Ts...>> {
    +
    556  using type = std::tuple<std::add_lvalue_reference_t<Ts>...>;
    +
    557  };
    +
    558 
    +
    559  template <typename tupleT>
    +
    560  using add_lvalue_reference_tuple_t = typename add_lvalue_reference_tuple<tupleT>::type;
    +
    561 
    +
    562  template <typename T>
    +
    563  struct add_glvalue_reference_tuple;
    +
    564 
    +
    565  template <typename... Ts>
    +
    566  struct add_glvalue_reference_tuple<std::tuple<Ts...>> {
    +
    567  using type = std::tuple<std::conditional_t<std::is_const_v<Ts>, std::add_lvalue_reference_t<Ts>,
    +
    568  std::add_rvalue_reference_t<std::remove_const_t<Ts>>>...>;
    +
    569  };
    +
    570 
    +
    571  template <typename tupleT>
    +
    572  using add_glvalue_reference_tuple_t = typename add_glvalue_reference_tuple<tupleT>::type;
    +
    573 
    +
    574  template <typename T, typename... Ts>
    +
    575  struct none_has_reference {
    +
    576  static constexpr bool value = !std::is_reference_v<T> && none_has_reference<Ts...>::value;
    +
    577  };
    +
    578 
    +
    579  template <typename T>
    +
    580  struct none_has_reference<T> {
    +
    581  static constexpr bool value = !std::is_reference_v<T>;
    +
    582  };
    +
    583 
    +
    584  template <typename... T>
    +
    585  struct none_has_reference<ttg::typelist<T...>> : none_has_reference<T...> {};
    +
    586 
    +
    587  template <>
    +
    588  struct none_has_reference<ttg::typelist<>> : std::true_type {};
    +
    589 
    +
    590  template <typename... T>
    +
    591  constexpr bool none_has_reference_v = none_has_reference<T...>::value;
    +
    592 
    +
    593  template <typename T>
    +
    594  struct is_tuple : std::integral_constant<bool, false> {};
    +
    595 
    +
    596  template <typename... Ts>
    +
    597  struct is_tuple<std::tuple<Ts...>> : std::integral_constant<bool, true> {};
    +
    598 
    +
    599  template <typename T>
    +
    600  constexpr bool is_tuple_v = is_tuple<T>::value;
    +
    601 
    +
    602  template <typename>
    +
    603  struct is_span : std::false_type {};
    +
    604 
    +
    605  template <typename T, std::size_t S>
    +
    606  struct is_span<ttg::span<T, S>> : std::true_type {};
    +
    607 
    +
    608  template <typename T>
    +
    609  constexpr bool is_span_v = is_span<T>::value;
    +
    610 
    +
    611  template <template <class> class Pred, typename TupleT, std::size_t I, std::size_t... Is>
    +
    612  struct predicate_index_seq_helper;
    +
    613 
    +
    614  template <template <class> class Pred, typename T, typename... Ts, std::size_t I, std::size_t... Is>
    +
    615  struct predicate_index_seq_helper<Pred, std::tuple<T, Ts...>, I, Is...> {
    +
    616  using seq = std::conditional_t<Pred<T>::value,
    +
    617  typename predicate_index_seq_helper<Pred, std::tuple<Ts...>, I + 1, Is..., I>::seq,
    +
    618  typename predicate_index_seq_helper<Pred, std::tuple<Ts...>, I + 1, Is...>::seq>;
    +
    619  };
    +
    620 
    +
    621  template <template <class> class Pred, std::size_t I, std::size_t... Is>
    +
    622  struct predicate_index_seq_helper<Pred, std::tuple<>, I, Is...> {
    +
    623  using seq = std::index_sequence<Is...>;
    +
    624  };
    +
    625 
    +
    626  template <typename T>
    +
    627  struct is_none_void_pred : std::integral_constant<bool, is_none_void_v<T>> {};
    +
    628 
    +
    632  template <typename TupleT>
    +
    633  using nonvoid_index_seq = typename predicate_index_seq_helper<is_none_void_pred, TupleT, 0>::seq;
    +
    634 
    +
    635  template <typename T>
    +
    636  struct is_void_pred : std::integral_constant<bool, is_void_v<T>> {};
    +
    637 
    +
    641  template <typename TupleT>
    +
    642  using void_index_seq = typename predicate_index_seq_helper<is_void_pred, TupleT, 0>::seq;
    +
    643 
    +
    645  // is_empty_tuple
    +
    647 
    +
    648  // true if tuple is empty or contains only Void types, e.g. is_empty_tuple<std::tuple<>> or
    +
    649  // is_empty_tuple<std::tuple<Void>> evaluate to true
    +
    650  template <typename T, typename Enabler = void>
    +
    651  struct is_empty_tuple : std::false_type {};
    +
    652 
    +
    653  template <typename... Ts>
    +
    654  struct is_empty_tuple<std::tuple<Ts...>, std::enable_if_t<(is_Void_v<Ts> && ...)>> : std::true_type {};
    +
    655 
    +
    656  template <typename Tuple>
    +
    657  inline constexpr bool is_empty_tuple_v = is_empty_tuple<Tuple>::value;
    +
    658 
    +
    659  static_assert(!is_empty_tuple_v<std::tuple<int>>, "ouch");
    +
    660  static_assert(is_empty_tuple_v<std::tuple<>>, "ouch");
    +
    661  static_assert(is_empty_tuple_v<std::tuple<Void>>, "ouch");
    +
    662  static_assert(is_empty_tuple_v<std::tuple<Void, Void, Void>>, "ouch");
    +
    663 
    +
    665  // nonesuch struct from Library Fundamentals V2, source from https://en.cppreference.com/w/cpp/experimental/nonesuch
    +
    667 
    +
    668  struct nonesuch {
    +
    669  ~nonesuch() = delete;
    +
    670  nonesuch(nonesuch const &) = delete;
    +
    671  void operator=(nonesuch const &) = delete;
    +
    672  };
    +
    673 
    +
    675  // is_detected family from Library Fundamentals V2, source from
    +
    676  // https://en.cppreference.com/w/cpp/experimental/is_detected
    +
    678 
    +
    679  namespace detail {
    +
    680 
    +
    681  template <class Default, class Enabler, template <class...> class TT, class... Args>
    +
    682  struct detector {
    +
    683  using value_t = std::false_type;
    +
    684  using type = Default;
    +
    685  };
    +
    686 
    +
    687  template <class Default, template <class...> class TT, class... Args>
    +
    688  struct detector<Default, void_t<TT<Args...>>, TT, Args...> {
    +
    689  using value_t = std::true_type;
    +
    690  using type = TT<Args...>;
    +
    691  };
    +
    692 
    +
    693  } // namespace detail
    +
    694 
    +
    695  template <template <class...> class TT, class... Args>
    +
    696  using is_detected = typename detail::detector<nonesuch, void, TT, Args...>::value_t;
    +
    697 
    +
    698  template <template <class...> class TT, class... Args>
    +
    699  using detected_t = typename detail::detector<nonesuch, void, TT, Args...>::type;
    +
    700 
    +
    701  template <class Default, template <class...> class TT, class... Args>
    +
    702  using detected_or = detail::detector<Default, void, TT, Args...>;
    +
    703 
    +
    704  template <template <class...> class TT, class... Args>
    +
    705  constexpr bool is_detected_v = is_detected<TT, Args...>::value;
    +
    706 
    +
    707  template <class Default, template <class...> class TT, class... Args>
    +
    708  using detected_or_t = typename detected_or<Default, TT, Args...>::type;
    +
    709 
    +
    710  template <class Expected, template <class...> class TT, class... Args>
    +
    711  using is_detected_exact = std::is_same<Expected, detected_t<TT, Args...>>;
    +
    712 
    +
    713  template <class Expected, template <class...> class TT, class... Args>
    +
    714  constexpr bool is_detected_exact_v = is_detected_exact<Expected, TT, Args...>::value;
    +
    715 
    +
    716  template <class To, template <class...> class TT, class... Args>
    +
    717  using is_detected_convertible = std::is_convertible<detected_t<TT, Args...>, To>;
    +
    718 
    +
    719  template <class To, template <class...> class TT, class... Args>
    +
    720  constexpr bool is_detected_convertible_v = is_detected_convertible<To, TT, Args...>::value;
    +
    721 
    +
    723  // type_printer useful to print types in metaprograms
    +
    725 
    +
    726  template <typename T>
    +
    727  struct type_printer;
    +
    728 
    +
    730  // has_std_hash_specialization_v<T> evaluates to true if std::hash<T> is defined
    +
    732  template <typename T, typename Enabler = void>
    +
    733  struct has_std_hash_specialization : std::false_type {};
    +
    734  template <typename T>
    +
    735  struct has_std_hash_specialization<
    +
    736  T, ttg::meta::void_t<decltype(std::declval<std::hash<T>>()(std::declval<const T &>()))>> : std::true_type {};
    +
    737  template <typename T>
    +
    738  constexpr bool has_std_hash_specialization_v = has_std_hash_specialization<T>::value;
    +
    739 
    +
    740  namespace detail {
    +
    741 
    +
    743  // send_callback_t<key,value> = std::function<void(const key&, const value&>, protected against void key or value
    +
    745  template <typename Key, typename Value, typename Enabler = void>
    +
    746  struct send_callback;
    +
    747  template <typename Key, typename Value>
    +
    748  struct send_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && !is_void_v<Value>>> {
    +
    749  using type = std::function<void(const Key &, const Value &)>;
    +
    750  };
    +
    751  template <typename Key, typename Value>
    +
    752  struct send_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && is_void_v<Value>>> {
    +
    753  using type = std::function<void(const Key &)>;
    +
    754  };
    +
    755  template <typename Key, typename Value>
    +
    756  struct send_callback<Key, Value, std::enable_if_t<is_void_v<Key> && !is_void_v<Value>>> {
    +
    757  using type = std::function<void(const Value &)>;
    +
    758  };
    +
    759  template <typename Key, typename Value>
    +
    760  struct send_callback<Key, Value, std::enable_if_t<is_void_v<Key> && is_void_v<Value>>> {
    +
    761  using type = std::function<void()>;
    +
    762  };
    +
    763  template <typename Key, typename Value>
    +
    764  using send_callback_t = typename send_callback<Key, Value>::type;
    +
    765 
    +
    767  // move_callback_t<key,value> = std::function<void(const key&, value&&>, protected against void key or value
    +
    769  template <typename Key, typename Value, typename Enabler = void>
    +
    770  struct move_callback;
    +
    771  template <typename Key, typename Value>
    +
    772  struct move_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && !is_void_v<Value>>> {
    +
    773  using type = std::function<void(const Key &, Value &&)>;
    +
    774  };
    +
    775  template <typename Key, typename Value>
    +
    776  struct move_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && is_void_v<Value>>> {
    +
    777  using type = std::function<void(const Key &)>;
    +
    778  };
    +
    779  template <typename Key, typename Value>
    +
    780  struct move_callback<Key, Value, std::enable_if_t<is_void_v<Key> && !is_void_v<Value>>> {
    +
    781  using type = std::function<void(Value &&)>;
    +
    782  };
    +
    783  template <typename Key, typename Value>
    +
    784  struct move_callback<Key, Value, std::enable_if_t<is_void_v<Key> && is_void_v<Value>>> {
    +
    785  using type = std::function<void()>;
    +
    786  };
    +
    787  template <typename Key, typename Value>
    +
    788  using move_callback_t = typename move_callback<Key, Value>::type;
    +
    789 
    +
    791  // broadcast_callback_t<key,value> = std::function<void(const key&, value&&>, protected against void key or value
    +
    793  template <typename Key, typename Value, typename Enabler = void>
    +
    794  struct broadcast_callback;
    +
    795  template <typename Key, typename Value>
    +
    796  struct broadcast_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && !is_void_v<Value>>> {
    +
    797  using type = std::function<void(const ttg::span<const Key> &, const Value &)>;
    +
    798  };
    +
    799  template <typename Key, typename Value>
    +
    800  struct broadcast_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && is_void_v<Value>>> {
    +
    801  using type = std::function<void(const ttg::span<const Key> &)>;
    +
    802  };
    +
    803  template <typename Key, typename Value>
    +
    804  struct broadcast_callback<Key, Value, std::enable_if_t<is_void_v<Key> && !is_void_v<Value>>> {
    +
    805  using type = std::function<void(const Value &)>;
    +
    806  };
    +
    807  template <typename Key, typename Value>
    +
    808  struct broadcast_callback<Key, Value, std::enable_if_t<is_void_v<Key> && is_void_v<Value>>> {
    +
    809  using type = std::function<void()>;
    +
    810  };
    +
    811  template <typename Key, typename Value>
    +
    812  using broadcast_callback_t = typename broadcast_callback<Key, Value>::type;
    +
    813 
    +
    814 
    +
    815 
    +
    817  // setsize_callback_t<key> = std::function<void(const keyT &, std::size_t)> protected against void key
    +
    819  template <typename Key, typename Enabler = void>
    +
    820  struct setsize_callback;
    +
    821  template <typename Key>
    +
    822  struct setsize_callback<Key, std::enable_if_t<!is_void_v<Key>>> {
    +
    823  using type = std::function<void(const Key &, std::size_t)>;
    +
    824  };
    +
    825  template <typename Key>
    +
    826  struct setsize_callback<Key, std::enable_if_t<is_void_v<Key>>> {
    +
    827  using type = std::function<void(std::size_t)>;
    +
    828  };
    +
    829  template <typename Key>
    +
    830  using setsize_callback_t = typename setsize_callback<Key>::type;
    +
    831 
    +
    833  // finalize_callback_t<key> = std::function<void(const keyT &)> protected against void key
    +
    835  template <typename Key, typename Enabler = void>
    +
    836  struct finalize_callback;
    +
    837  template <typename Key>
    +
    838  struct finalize_callback<Key, std::enable_if_t<!is_void_v<Key>>> {
    +
    839  using type = std::function<void(const Key &)>;
    +
    840  };
    +
    841  template <typename Key>
    +
    842  struct finalize_callback<Key, std::enable_if_t<is_void_v<Key>>> {
    +
    843  using type = std::function<void()>;
    +
    844  };
    +
    845  template <typename Key>
    +
    846  using finalize_callback_t = typename finalize_callback<Key>::type;
    +
    847 
    +
    849  // keymap_t<key,value> = std::function<int(const key&>, protected against void key
    +
    851  template <typename Key, typename Return, typename Enabler = void>
    +
    852  struct keymap;
    +
    853  template <typename Key, typename Return>
    +
    854  struct keymap<Key, Return, std::enable_if_t<!is_void_v<Key>>> {
    +
    855  using type = std::function<Return(const Key &)>;
    +
    856  };
    +
    857  template <typename Key, typename Return>
    +
    858  struct keymap<Key, Return, std::enable_if_t<is_void_v<Key>>> {
    +
    859  using type = std::function<Return()>;
    +
    860  };
    +
    861  template <typename Key, typename Return = int>
    +
    862  using keymap_t = typename keymap<Key, Return>::type;
    +
    863 
    +
    865  // input_reducers_t<valueTs...> = std::tuple<
    +
    866  // std::function<std::decay_t<input_valueTs>(std::decay_t<input_valueTs> &&, std::decay_t<input_valueTs>
    +
    867  // &&)>...>
    +
    868  // protected against void valueTs
    +
    870  template <typename T, typename Enabler = void>
    +
    871  struct input_reducer_type;
    +
    872  template <typename T>
    +
    873  struct input_reducer_type<T, std::enable_if_t<!is_void_v<T>>> {
    +
    874  using type = std::function<void(std::decay_t<T> &, const std::decay_t<T> &)>;
    +
    875  };
    +
    876  template <typename T>
    +
    877  struct input_reducer_type<T, std::enable_if_t<is_void_v<T>>> {
    +
    878  using type = std::function<void()>;
    +
    879  };
    +
    880  template <typename... valueTs>
    +
    881  struct input_reducers {
    +
    882  using type = std::tuple<typename input_reducer_type<valueTs>::type...>;
    +
    883  };
    +
    884  template <typename... valueTs>
    +
    885  struct input_reducers<std::tuple<valueTs...>> {
    +
    886  using type = std::tuple<typename input_reducer_type<valueTs>::type...>;
    +
    887  };
    +
    888  template <typename... valueTs>
    +
    889  using input_reducers_t = typename input_reducers<valueTs...>::type;
    +
    890 
    +
    892  // prepare_send_callback_t<Key, Value> = std::function<int(const ttg::span<Key> &, const Value &)> protected against void key
    +
    894  template <typename Key, typename Value, typename Enabler = void>
    +
    895  struct prepare_send_callback;
    +
    896  template <typename Key, typename Value>
    +
    897  struct prepare_send_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && !is_void_v<Value>>> {
    +
    898  using type = std::function<void(const ttg::span<const Key> &, const Value &)>;
    +
    899  };
    +
    900  template <typename Key, typename Value>
    +
    901  struct prepare_send_callback<Key, Value, std::enable_if_t<!is_void_v<Key> && is_void_v<Value>>> {
    +
    902  using type = std::function<void(const ttg::span<const Key> &)>;
    +
    903  };
    +
    904  template <typename Key, typename Value>
    +
    905  struct prepare_send_callback<Key, Value, std::enable_if_t<is_void_v<Key> && !is_void_v<Value>>> {
    +
    906  using type = std::function<void(const Value &)>;
    +
    907  };
    +
    908  template <typename Key, typename Value>
    +
    909  struct prepare_send_callback<Key, Value, std::enable_if_t<is_void_v<Key> && is_void_v<Value>>> {
    +
    910  using type = std::function<void()>;
    +
    911  };
    +
    912  template <typename Key, typename Value>
    +
    913  using prepare_send_callback_t = typename prepare_send_callback<Key, Value>::type;
    +
    914 
    +
    915 
    +
    916  } // namespace detail
    +
    917 
    +
    919  // check whether a type is iterable
    +
    920  // Taken from https://en.cppreference.com/w/cpp/types/void_t
    +
    922  template <typename T, typename = void>
    +
    923  struct is_iterable : std::false_type {};
    +
    924 
    +
    925  // this gets used only when we can call std::begin() and std::end() on that type
    +
    926  template <typename T>
    +
    927  struct is_iterable<T, std::void_t<decltype(std::begin(std::declval<T>())), decltype(std::end(std::declval<T>()))>>
    +
    928  : std::true_type {};
    +
    929 
    +
    930  template <typename T>
    +
    931  constexpr bool is_iterable_v = is_iterable<T>::value;
    +
    932 
    +
    934  // check whether a Callable is invocable with the arguments given as a typelist
    +
    936  template <typename Callable, typename Typelist>
    +
    937  constexpr bool is_invocable_typelist_v = false;
    +
    938  template <typename Callable, typename... Args>
    +
    939  constexpr bool is_invocable_typelist_v<Callable, ttg::typelist<Args...>> = std::is_invocable_v<Callable, Args...>;
    +
    940  template <typename ReturnType, typename Callable, typename Typelist>
    +
    941  constexpr bool is_invocable_typelist_r_v = false;
    +
    942  template <typename ReturnType, typename Callable, typename... Args>
    +
    943  constexpr bool is_invocable_typelist_r_v<ReturnType, Callable, ttg::typelist<Args...>> =
    +
    944  std::is_invocable_r_v<ReturnType, Callable, Args...>;
    +
    945 
    +
    947  // detects the return result of a Callable when invoked with the arguments given as a typelist
    +
    949  template <typename Callable, typename Typelist>
    +
    950  struct invoke_result_typelist {};
    +
    951  template <typename Callable, typename... Args>
    +
    952  struct invoke_result_typelist<Callable, ttg::typelist<Args...>> : std::invoke_result<Callable, Args...> {};
    +
    953  template <class F, class... ArgTypes>
    +
    954  using invoke_result_typelist_t = typename invoke_result_typelist<F, ArgTypes...>::type;
    +
    955 
    +
    956  } // namespace meta
    +
    957 } // namespace ttg
    +
    958 
    +
    959 #endif // TTG_UTIL_META_H
    + +
    A complete version of void.
    Definition: void.h:11
    + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_r_v
    +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_v
    +
    constexpr bool is_none_Void_v
    Definition: meta.h:251
    +
    typename void_to_Void< T >::type void_to_Void_t
    Definition: meta.h:271
    +
    constexpr bool is_Void_v
    Definition: meta.h:206
    +
    constexpr bool is_any_nonconst_lvalue_reference_v
    Definition: meta.h:288
    +
    constexpr bool probe_last_v
    Definition: meta.h:120
    +
    constexpr bool is_any_void_v
    Definition: meta.h:233
    +
    constexpr bool probe_any_v
    Definition: meta.h:172
    +
    constexpr bool probe_all_v
    Definition: meta.h:194
    +
    constexpr bool is_all_Void_v
    Definition: meta.h:227
    +
    void void_t
    Definition: meta.h:23
    +
    typename nonref_tuple< Tuple >::type nonref_tuple_t
    Definition: meta.h:43
    +
    constexpr bool is_any_Void_v
    Definition: meta.h:239
    +
    constexpr bool is_devicescratch_v
    Definition: meta.h:340
    +
    std::remove_cv_t< std::remove_reference_t< T > > remove_cvr_t
    Definition: meta.h:27
    +
    constexpr bool is_last_void_v
    Definition: meta.h:260
    +
    constexpr bool is_nonconst_lvalue_reference_v
    Definition: meta.h:281
    +
    constexpr bool is_const_lvalue_reference_v
    Definition: meta.h:274
    +
    constexpr bool probe_first_v
    Definition: meta.h:150
    +
    constexpr bool is_buffer_v
    Definition: meta.h:325
    +
    constexpr bool is_ptr_v
    Definition: meta.h:310
    +
    typename filtered_tuple< Tuple, Pred >::type filtered_tuple_t
    Definition: meta.h:87
    +
    constexpr bool is_nonvoid_v
    Definition: meta.h:215
    +
    typename tuple_concat< TupleTs... >::type tuple_concat_t
    Definition: meta.h:60
    +
    constexpr bool is_none_void_v
    Definition: meta.h:245
    +
    typename typelist_to_tuple< T >::type typelist_to_tuple_t
    Definition: typelist.h:52
    +
    constexpr bool is_all_void_v
    Definition: meta.h:221
    +
    constexpr bool is_void_v
    Definition: meta.h:209
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    meta::typelist< Ts... > typelist
    Definition: typelist.h:81
    + + + + +
    std::tuple< E > type
    Definition: meta.h:70
    +
    typename drop_first_n< std::tuple< Ts... >, N - 1 >::type type
    Definition: meta.h:363
    + +
    typename drop_first_n< typelist< Ts... >, N - 1 >::type type
    Definition: meta.h:368
    +
    drops N elements from the front
    Definition: meta.h:349
    +
    drops N trailing elements from a typelist
    Definition: meta.h:408
    +
    decltype(std::tuple_cat(std::declval< typename detail::keep_or_drop< Pred< Es >::value >::template type< Es > >()...)) type
    Definition: meta.h:83
    + + + + + + + + + +
    std::tuple< typename std::remove_reference< Ts >::type... > type
    Definition: meta.h:39
    + + + + + +
    typename take_first_n_helper< std::tuple<>, std::tuple< Ts... >, N >::type type
    Definition: meta.h:398
    +
    typename take_first_n_helper< typelist<>, typelist< Ts... >, N >::type type
    Definition: meta.h:403
    +
    typename take_first_n_helper< std::tuple< Ts..., U >, std::tuple< Us... >, N - 1 >::type type
    Definition: meta.h:389
    + +
    typename take_first_n_helper< typelist< Ts..., U >, typelist< Us... >, N - 1 >::type type
    Definition: meta.h:393
    + +
    take first N elements of a type list
    Definition: meta.h:373
    +
    typename tuple_concat< decltype(std::tuple_cat(std::declval< std::tuple< Ts... > >(), std::declval< std::tuple< Us... > >())), R... >::type type
    Definition: meta.h:56
    + + +
    A container for types.
    Definition: typelist.h:24
    + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/modules.html b/dox-master/modules.html new file mode 100644 index 000000000..72cc5b66c --- /dev/null +++ b/dox-master/modules.html @@ -0,0 +1,120 @@ + + + + + + + + + + + ttg: Modules + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Modules
    +
    +
    +
    Here is a list of all modules:
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/multiindex_8h.html b/dox-master/multiindex_8h.html new file mode 100644 index 000000000..d4fcdaae3 --- /dev/null +++ b/dox-master/multiindex_8h.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg/ttg/util/multiindex.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    multiindex.h File Reference
    +
    +
    + + + + +

    +Classes

    struct  ttg::MultiIndex< Rank, Int >
     
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + +

    +Functions

    template<std::size_t Rank>
    std::ostream & ttg::operator<< (std::ostream &os, const MultiIndex< Rank > &key)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/multiindex_8h_source.html b/dox-master/multiindex_8h_source.html new file mode 100644 index 000000000..363ac2e56 --- /dev/null +++ b/dox-master/multiindex_8h_source.html @@ -0,0 +1,258 @@ + + + + + + + + + + + ttg: ttg/ttg/util/multiindex.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    multiindex.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 10/21/22.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_UTIL_MULTIINDEX_H
    +
    6 #define TTG_UTIL_MULTIINDEX_H
    +
    7 
    + +
    9 
    +
    10 namespace ttg {
    +
    11 
    +
    12  template <std::size_t Rank, typename Int = int>
    +
    13  struct MultiIndex {
    +
    14  static constexpr const std::size_t max_index = 1 << 21;
    +
    15  static constexpr const std::size_t max_index_square = max_index * max_index;
    +
    16  MultiIndex() = default;
    +
    17  template <typename Integer, typename = std::enable_if_t<std::is_integral_v<Int>>>
    +
    18  MultiIndex(std::initializer_list<Integer> ilist) {
    +
    19  std::copy(ilist.begin(), ilist.end(), data_.begin());
    +
    20  assert(valid());
    +
    21  }
    +
    22  template <typename... Ints, typename = std::enable_if_t<(std::is_integral_v<Ints> && ...)>>
    +
    23  MultiIndex(Ints... ilist) : data_{{static_cast<Int>(ilist)...}} {
    +
    24  assert(valid());
    +
    25  }
    +
    26  explicit MultiIndex(std::size_t hash) {
    +
    27  static_assert(Rank == 1 || Rank == 2 || Rank == 3,
    +
    28  "MultiIndex<Rank>::MultiIndex(hash) only implemented for Rank={1,2,3}");
    +
    29  if (Rank == 1) {
    +
    30  assert(hash < max_index);
    +
    31  (*this)[0] = hash;
    +
    32  }
    +
    33  if (Rank == 2) {
    +
    34  (*this)[0] = hash / max_index;
    +
    35  (*this)[1] = hash % max_index;
    +
    36  } else if (Rank == 3) {
    +
    37  (*this)[0] = hash / max_index_square;
    +
    38  (*this)[1] = (hash % max_index_square) / max_index;
    +
    39  (*this)[2] = hash % max_index;
    +
    40  }
    +
    41  }
    +
    42  std::size_t hash() const {
    +
    43  static_assert(Rank == 1 || Rank == 2 || Rank == 3, "MultiIndex<Rank>::hash only implemented for Rank={1,2,3}");
    +
    44  if constexpr (Rank == 1)
    +
    45  return (*this)[0];
    +
    46  else if constexpr (Rank == 2) {
    +
    47  return (*this)[0] * max_index + (*this)[1];
    +
    48  } else if constexpr (Rank == 3) {
    +
    49  return ((*this)[0] * max_index + (*this)[1]) * max_index + (*this)[2];
    +
    50  }
    +
    51  }
    +
    52 
    +
    53  const auto &operator[](std::size_t idx) const {
    +
    54  if (idx >= Rank) assert(idx < Rank);
    +
    55  return data_[idx];
    +
    56  }
    +
    57 
    +
    58  template <typename Archive>
    +
    59  void serialize(Archive &ar, const unsigned int version = 0) {
    +
    60  ar &data_;
    +
    61  }
    +
    62 
    +
    63  private:
    +
    64  bool valid() {
    +
    65  bool result = true;
    +
    66  for (const auto &idx : data_) {
    +
    67  result = result && (idx < max_index);
    +
    68  }
    +
    69  return result;
    +
    70  }
    +
    71 
    +
    72  std::array<Int, Rank> data_;
    +
    73 
    +
    74  friend bool operator==(const MultiIndex<Rank> &lhs, const MultiIndex<Rank> &rhs) {
    +
    75  return lhs.data_ == rhs.data_;
    +
    76  }
    +
    77  friend bool operator!=(const MultiIndex<Rank> &lhs, const MultiIndex<Rank> &rhs) {
    +
    78  return !(lhs == rhs);
    +
    79  }
    +
    80  };
    +
    81 
    +
    82  template <std::size_t Rank>
    +
    83  std::ostream &operator<<(std::ostream &os, const MultiIndex<Rank> &key) {
    +
    84  os << "{";
    +
    85  for (size_t i = 0; i != Rank; ++i) os << key[i] << (i + 1 != Rank ? "," : "");
    +
    86  os << "}";
    +
    87  return os;
    +
    88  }
    +
    89 
    +
    90 } // namespace ttg
    +
    91 
    +
    92 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    93 namespace madness {
    +
    94  namespace archive {
    +
    95  template <class Archive, std::size_t Rank>
    +
    96  struct ArchiveStoreImpl<Archive, ttg::MultiIndex<Rank>> {
    +
    97  static inline void store(const Archive& ar, const ttg::MultiIndex<Rank>& mi) {
    +
    98  for (size_t i = 0; i != Rank; ++i) ar << mi[i];
    +
    99  }
    +
    100  };
    +
    101 
    +
    102  template <class Archive, std::size_t Rank>
    +
    103  struct ArchiveLoadImpl<Archive, ttg::MultiIndex<Rank>> {
    +
    104  static inline void load(const Archive& ar, ttg::MultiIndex<Rank>& mi) {
    +
    105  for (size_t i = 0; i != Rank; ++i) ar >> mi[i];
    +
    106  }
    +
    107  };
    +
    108  } // namespace archive
    +
    109 } // namespace madness
    +
    110 
    +
    111 static_assert(madness::is_serializable_v<madness::archive::BufferOutputArchive, ttg::MultiIndex<3>>);
    +
    112 
    +
    113 #endif // TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    114 
    +
    115 #endif // TTG_UTIL_MULTIINDEX_H
    + +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    std::array< int, 3 > version()
    Definition: version.cc:4
    +
    std::ostream & operator<<(std::ostream &os, const MultiIndex< Rank > &key)
    Definition: multiindex.h:83
    + +
    MultiIndex(std::size_t hash)
    Definition: multiindex.h:26
    +
    MultiIndex(std::initializer_list< Integer > ilist)
    Definition: multiindex.h:18
    +
    MultiIndex(Ints... ilist)
    Definition: multiindex.h:23
    +
    std::size_t hash() const
    Definition: multiindex.h:42
    +
    void serialize(Archive &ar, const unsigned int version=0)
    Definition: multiindex.h:59
    +
    static constexpr const std::size_t max_index_square
    Definition: multiindex.h:15
    +
    friend bool operator==(const MultiIndex< Rank > &lhs, const MultiIndex< Rank > &rhs)
    Definition: multiindex.h:74
    +
    static constexpr const std::size_t max_index
    Definition: multiindex.h:14
    +
    friend bool operator!=(const MultiIndex< Rank > &lhs, const MultiIndex< Rank > &rhs)
    Definition: multiindex.h:77
    +
    const auto & operator[](std::size_t idx) const
    Definition: multiindex.h:53
    +
    MultiIndex()=default
    +
    Computes hash values for objects of type T.
    Definition: hash.h:81
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html b/dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html new file mode 100644 index 000000000..179e544a7 --- /dev/null +++ b/dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html @@ -0,0 +1,498 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    TCB_SPAN_NAMESPACE_NAME Namespace Reference
    +
    +
    + + + + +

    +Namespaces

     detail
     
    + + + +

    +Classes

    class  span
     
    + + + +

    +Typedefs

    using byte = unsigned char
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename ElementType , std::size_t Extent>
    constexpr span< ElementType, Extent > make_span (span< ElementType, Extent > s) noexcept
     
    template<typename T , std::size_t N>
    constexpr span< T, N > make_span (T(&arr)[N]) noexcept
     
    template<typename T , std::size_t N>
    TCB_SPAN_ARRAY_CONSTEXPR span< T, N > make_span (std::array< T, N > &arr) noexcept
     
    template<typename T , std::size_t N>
    TCB_SPAN_ARRAY_CONSTEXPR span< const T, N > make_span (const std::array< T, N > &arr) noexcept
     
    template<typename Container >
    constexpr span< typename Container::value_type > make_span (Container &cont)
     
    template<typename Container >
    constexpr span< const typename Container::value_type > make_span (const Container &cont)
     
    template<typename ElementType , std::size_t Extent>
    span< const byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> as_bytes (span< ElementType, Extent > s) noexcept
     
    template<class ElementType , size_t Extent, typename std::enable_if<!std::is_const< ElementType >::value, int >::type = 0>
    span< byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> as_writable_bytes (span< ElementType, Extent > s) noexcept
     
    template<std::size_t N, typename E , std::size_t S>
    constexpr auto get (span< E, S > s) -> decltype(s[N])
     
    + + + +

    +Variables

    constexpr TCB_SPAN_INLINE_VAR std::size_t dynamic_extent = SIZE_MAX
     
    +

    Typedef Documentation

    + +

    ◆ byte

    + +
    +
    + + + + +
    using TCB_SPAN_NAMESPACE_NAME::byte = typedef unsigned char
    +
    + +

    Definition at line 137 of file span.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ as_bytes()

    + +
    +
    +
    +template<typename ElementType , std::size_t Extent>
    + + + + + +
    + + + + + + + + +
    span<const byte, ((Extent == dynamic_extent) ? dynamic_extent : sizeof(ElementType) * Extent)> TCB_SPAN_NAMESPACE_NAME::as_bytes (span< ElementType, Extent > s)
    +
    +noexcept
    +
    + +

    Definition at line 479 of file span.h.

    + +
    +
    + +

    ◆ as_writable_bytes()

    + +
    +
    +
    +template<class ElementType , size_t Extent, typename std::enable_if<!std::is_const< ElementType >::value, int >::type = 0>
    + + + + + +
    + + + + + + + + +
    span<byte, ((Extent == dynamic_extent) ? dynamic_extent : sizeof(ElementType) * Extent)> TCB_SPAN_NAMESPACE_NAME::as_writable_bytes (span< ElementType, Extent > s)
    +
    +noexcept
    +
    + +

    Definition at line 486 of file span.h.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<std::size_t N, typename E , std::size_t S>
    + + + + + +
    + + + + + + + + +
    constexpr auto TCB_SPAN_NAMESPACE_NAME::get (span< E, S > s) -> decltype(s[N])
    +
    +constexpr
    +
    + +

    Definition at line 492 of file span.h.

    + +
    +
    + +

    ◆ make_span() [1/6]

    + +
    +
    +
    +template<typename Container >
    + + + + + +
    + + + + + + + + +
    constexpr span<const typename Container::value_type> TCB_SPAN_NAMESPACE_NAME::make_span (const Container & cont)
    +
    +constexpr
    +
    + +

    Definition at line 474 of file span.h.

    + +
    +
    + +

    ◆ make_span() [2/6]

    + +
    +
    +
    +template<typename T , std::size_t N>
    + + + + + +
    + + + + + + + + +
    TCB_SPAN_ARRAY_CONSTEXPR span<const T, N> TCB_SPAN_NAMESPACE_NAME::make_span (const std::array< T, N > & arr)
    +
    +noexcept
    +
    + +

    Definition at line 464 of file span.h.

    + +
    +
    + +

    ◆ make_span() [3/6]

    + +
    +
    +
    +template<typename Container >
    + + + + + +
    + + + + + + + + +
    constexpr span<typename Container::value_type> TCB_SPAN_NAMESPACE_NAME::make_span (Container & cont)
    +
    +constexpr
    +
    + +

    Definition at line 469 of file span.h.

    + +
    +
    + +

    ◆ make_span() [4/6]

    + +
    +
    +
    +template<typename ElementType , std::size_t Extent>
    + + + + + +
    + + + + + + + + +
    constexpr span<ElementType, Extent> TCB_SPAN_NAMESPACE_NAME::make_span (span< ElementType, Extent > s)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 449 of file span.h.

    + +
    +
    + +

    ◆ make_span() [5/6]

    + +
    +
    +
    +template<typename T , std::size_t N>
    + + + + + +
    + + + + + + + + +
    TCB_SPAN_ARRAY_CONSTEXPR span<T, N> TCB_SPAN_NAMESPACE_NAME::make_span (std::array< T, N > & arr)
    +
    +noexcept
    +
    + +

    Definition at line 459 of file span.h.

    + +
    +
    + +

    ◆ make_span() [6/6]

    + +
    +
    +
    +template<typename T , std::size_t N>
    + + + + + +
    + + + + + + + + +
    constexpr span<T, N> TCB_SPAN_NAMESPACE_NAME::make_span (T(&) arr[N])
    +
    +constexprnoexcept
    +
    + +

    Definition at line 454 of file span.h.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ dynamic_extent

    + +
    +
    + + + + + +
    + + + + +
    constexpr TCB_SPAN_INLINE_VAR std::size_t TCB_SPAN_NAMESPACE_NAME::dynamic_extent = SIZE_MAX
    +
    +constexpr
    +
    + +

    Definition at line 146 of file span.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html b/dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html new file mode 100644 index 000000000..f2a2e5468 --- /dev/null +++ b/dox-master/namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html @@ -0,0 +1,435 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    TCB_SPAN_NAMESPACE_NAME::detail Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  span_storage
     
    struct  span_storage< E, dynamic_extent >
     
    struct  is_span
     
    struct  is_span< span< T, S > >
     
    struct  is_std_array
     
    struct  is_std_array< std::array< T, N > >
     
    struct  has_size_and_data
     
    struct  has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >
     
    struct  is_container
     
    struct  is_container_element_type_compatible
     
    struct  is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type >
     
    struct  is_complete
     
    struct  is_complete< T, decltype(sizeof(T))>
     
    + + + + + + + + + + +

    +Typedefs

    template<typename... >
    using void_t = void
     
    template<typename T >
    using uncvref_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type
     
    template<typename T >
    using remove_pointer_t = typename std::remove_pointer< T >::type
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class C >
    constexpr auto size (const C &c) -> decltype(c.size())
     
    template<class T , std::size_t N>
    constexpr std::size_t size (const T(&)[N]) noexcept
     
    template<class C >
    constexpr auto data (C &c) -> decltype(c.data())
     
    template<class C >
    constexpr auto data (const C &c) -> decltype(c.data())
     
    template<class T , std::size_t N>
    constexpr T * data (T(&array)[N]) noexcept
     
    template<class E >
    constexpr const E * data (std::initializer_list< E > il) noexcept
     
    +

    Typedef Documentation

    + +

    ◆ remove_pointer_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using TCB_SPAN_NAMESPACE_NAME::detail::remove_pointer_t = typedef typename std::remove_pointer<T>::type
    +
    + +

    Definition at line 246 of file span.h.

    + +
    +
    + +

    ◆ uncvref_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using TCB_SPAN_NAMESPACE_NAME::detail::uncvref_t = typedef typename std::remove_cv<typename std::remove_reference<T>::type>::type
    +
    + +

    Definition at line 217 of file span.h.

    + +
    +
    + +

    ◆ void_t

    + +
    +
    +
    +template<typename... >
    + + + + +
    using TCB_SPAN_NAMESPACE_NAME::detail::void_t = typedef void
    +
    + +

    Definition at line 213 of file span.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ data() [1/4]

    + +
    +
    +
    +template<class C >
    + + + + + +
    + + + + + + + + +
    constexpr auto TCB_SPAN_NAMESPACE_NAME::detail::data (C & c) -> decltype(c.data())
    +
    +constexpr
    +
    + +

    Definition at line 189 of file span.h.

    + +
    +
    + +

    ◆ data() [2/4]

    + +
    +
    +
    +template<class C >
    + + + + + +
    + + + + + + + + +
    constexpr auto TCB_SPAN_NAMESPACE_NAME::detail::data (const C & c) -> decltype(c.data())
    +
    +constexpr
    +
    + +

    Definition at line 194 of file span.h.

    + +
    +
    + +

    ◆ data() [3/4]

    + +
    +
    +
    +template<class E >
    + + + + + +
    + + + + + + + + +
    constexpr const E* TCB_SPAN_NAMESPACE_NAME::detail::data (std::initializer_list< E > il)
    +
    +constexprnoexcept
    +
    + +

    Definition at line 204 of file span.h.

    + +
    +
    + +

    ◆ data() [4/4]

    + +
    +
    +
    +template<class T , std::size_t N>
    + + + + + +
    + + + + + + + + +
    constexpr T* TCB_SPAN_NAMESPACE_NAME::detail::data (T(&) array[N])
    +
    +constexprnoexcept
    +
    + +

    Definition at line 199 of file span.h.

    + +
    +
    + +

    ◆ size() [1/2]

    + +
    +
    +
    +template<class C >
    + + + + + +
    + + + + + + + + +
    constexpr auto TCB_SPAN_NAMESPACE_NAME::detail::size (const C & c) -> decltype(c.size())
    +
    +constexpr
    +
    + +

    Definition at line 179 of file span.h.

    + +
    +
    + +

    ◆ size() [2/2]

    + +
    +
    +
    +template<class T , std::size_t N>
    + + + + + +
    + + + + + + + + +
    constexpr std::size_t TCB_SPAN_NAMESPACE_NAME::detail::size (const  T(&)[N])
    +
    +constexprnoexcept
    +
    + +

    Definition at line 184 of file span.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespaceboost.html b/dox-master/namespaceboost.html new file mode 100644 index 000000000..10e531572 --- /dev/null +++ b/dox-master/namespaceboost.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: boost Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    boost Namespace Reference
    +
    +
    + + + + + + + + +

    +Namespaces

     archive
     
     callable_traits
     
     serialization
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespaceboost_1_1archive.html b/dox-master/namespaceboost_1_1archive.html new file mode 100644 index 000000000..3bc8f128a --- /dev/null +++ b/dox-master/namespaceboost_1_1archive.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: boost::archive Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::archive Namespace Reference
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespaceboost_1_1callable__traits.html b/dox-master/namespaceboost_1_1callable__traits.html new file mode 100644 index 000000000..1f769c7a9 --- /dev/null +++ b/dox-master/namespaceboost_1_1callable__traits.html @@ -0,0 +1,1034 @@ + + + + + + + + + + + ttg: boost::callable_traits Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits Namespace Reference
    +
    +
    + + + + +

    +Namespaces

     detail
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  add_member_const
     
    struct  add_member_cv
     
    struct  add_member_lvalue_reference
     
    struct  add_member_rvalue_reference
     
    struct  add_member_volatile
     
    struct  add_noexcept_t
     
    struct  add_noexcept
     
    struct  add_transaction_safe_t
     
    struct  add_transaction_safe
     
    struct  add_varargs
     
    struct  apply_member_pointer
     
    struct  apply_return
     
    struct  args
     
    struct  class_of
     
    struct  function_type
     
    struct  has_member_qualifiers
     
    struct  has_varargs
     
    struct  has_void_return
     
    struct  is_const_member
     
    struct  is_invocable
     
    struct  is_invocable_r
     
    struct  is_lvalue_reference_member
     
    struct  is_noexcept
     
    struct  is_reference_member
     
    struct  is_rvalue_reference_member
     
    struct  is_transaction_safe
     
    struct  is_volatile_member
     
    struct  qualified_class_of
     
    struct  remove_member_const
     
    struct  remove_member_cv
     
    struct  remove_member_reference
     
    struct  remove_member_volatile
     
    struct  remove_noexcept
     
    struct  remove_transaction_safe
     
    struct  remove_varargs
     
    struct  return_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<typename T >
    using add_member_const_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_const, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using add_member_cv_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_cv, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using add_member_lvalue_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_lvalue_reference, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using add_member_rvalue_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_rvalue_reference, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using add_member_volatile_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_member_volatile, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using add_varargs_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::add_varargs, varargs_are_illegal_for_this_type >
     
    template<typename T , typename C >
    using apply_member_pointer_t = detail::sfinae_try< detail::fallback_if_invalid< typename detail::traits< T >::template apply_member_pointer< C >, typename detail::make_member_pointer< T, C >::type >, detail::fail_when_same< void, T, members_cannot_have_a_type_of_void >, detail::fail_if<!std::is_class< C >::value, second_template_argument_must_be_a_class_or_struct > >
     
    template<typename T , typename R >
    using apply_return_t = detail::try_but_fail_if_invalid< typename detail::apply_return_helper< T, R >::type, invalid_types_for_apply_return >
     
    template<typename T , template< class... > class Container = std::tuple>
    using args_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::template expand_args< Container >, cannot_expand_the_parameter_list_of_first_template_argument >
     
    template<typename T >
    using class_of_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::class_type, type_is_not_a_member_pointer >
     
    template<typename T >
    using function_type_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::function_type, cannot_determine_parameters_for_this_type >
     
    template<typename T >
    using qualified_class_of_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::invoke_type, type_is_not_a_member_pointer >
     
    template<typename T >
    using remove_member_const_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_const, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using remove_member_cv_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_cv, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using remove_member_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_reference, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using remove_member_volatile_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_volatile, member_qualifiers_are_illegal_for_this_type >
     
    template<typename T >
    using remove_noexcept_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_noexcept, cannot_remove_noexcept_from_this_type >
     
    template<typename T >
    using remove_transaction_safe_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_transaction_safe, cannot_remove_transaction_safe_from_this_type >
     
    template<typename T >
    using remove_varargs_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_varargs, varargs_are_illegal_for_this_type >
     
    template<typename T >
    using return_type_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::return_type, unable_to_determine_return_type >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_member_qualifiers_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_varargs_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool has_void_return_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_const_member_v
     
    template<typename T , typename... Args>
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_v
     
    template<typename Ret , typename T , typename... Args>
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_invocable_r_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_lvalue_reference_member_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_noexcept_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_reference_member_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_rvalue_reference_member_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_transaction_safe_v
     
    template<typename T >
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool is_volatile_member_v
     
    +

    Typedef Documentation

    + +

    ◆ add_member_const_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::add_member_const_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_const, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 25 of file add_member_const.hpp.

    + +
    +
    + +

    ◆ add_member_cv_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::add_member_cv_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_cv, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 25 of file add_member_cv.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::add_member_lvalue_reference_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_lvalue_reference, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 35 of file add_member_lvalue_reference.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::add_member_rvalue_reference_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_rvalue_reference, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 35 of file add_member_rvalue_reference.hpp.

    + +
    +
    + +

    ◆ add_member_volatile_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::add_member_volatile_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_member_volatile, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 25 of file add_member_volatile.hpp.

    + +
    +
    + +

    ◆ add_varargs_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::add_varargs_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::add_varargs, varargs_are_illegal_for_this_type>
    +
    + +

    Definition at line 25 of file add_varargs.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer_t

    + +
    +
    +
    +template<typename T , typename C >
    + + + + +
    using boost::callable_traits::apply_member_pointer_t = typedef detail::sfinae_try< detail::fallback_if_invalid< typename detail::traits<T>::template apply_member_pointer<C>, typename detail::make_member_pointer<T, C>::type>, detail::fail_when_same<void, T, members_cannot_have_a_type_of_void>, detail::fail_if<!std::is_class<C>::value, second_template_argument_must_be_a_class_or_struct> >
    +
    + +

    Definition at line 53 of file apply_member_pointer.hpp.

    + +
    +
    + +

    ◆ apply_return_t

    + +
    +
    +
    +template<typename T , typename R >
    + + + + +
    using boost::callable_traits::apply_return_t = typedef detail::try_but_fail_if_invalid< typename detail::apply_return_helper<T, R>::type, invalid_types_for_apply_return>
    +
    + +

    Definition at line 42 of file apply_return.hpp.

    + +
    +
    + +

    ◆ args_t

    + +
    +
    +
    +template<typename T , template< class... > class Container = std::tuple>
    + + + + +
    using boost::callable_traits::args_t = typedef detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay<T> >::template expand_args<Container>, cannot_expand_the_parameter_list_of_first_template_argument>
    +
    + +

    Definition at line 24 of file args.hpp.

    + +
    +
    + +

    ◆ class_of_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::class_of_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<detail::shallow_decay<T> >::class_type, type_is_not_a_member_pointer>
    +
    + +

    Definition at line 25 of file class_of.hpp.

    + +
    +
    + +

    ◆ function_type_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::function_type_t = typedef detail::try_but_fail_if_invalid<typename detail::traits< detail::shallow_decay<T> >::function_type, cannot_determine_parameters_for_this_type>
    +
    + +

    Definition at line 24 of file function_type.hpp.

    + +
    +
    + +

    ◆ qualified_class_of_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::qualified_class_of_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<detail::shallow_decay<T> >::invoke_type, type_is_not_a_member_pointer>
    +
    + +

    Definition at line 26 of file qualified_class_of.hpp.

    + +
    +
    + +

    ◆ remove_member_const_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::remove_member_const_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_const, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 25 of file remove_member_const.hpp.

    + +
    +
    + +

    ◆ remove_member_cv_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::remove_member_cv_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_cv, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 26 of file remove_member_cv.hpp.

    + +
    +
    + +

    ◆ remove_member_reference_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::remove_member_reference_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_reference, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 25 of file remove_member_reference.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::remove_member_volatile_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_member_volatile, member_qualifiers_are_illegal_for_this_type>
    +
    + +

    Definition at line 25 of file remove_member_volatile.hpp.

    + +
    +
    + +

    ◆ remove_noexcept_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::remove_noexcept_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_noexcept, cannot_remove_noexcept_from_this_type>
    +
    + +

    Definition at line 29 of file remove_noexcept.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::remove_transaction_safe_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_transaction_safe, cannot_remove_transaction_safe_from_this_type>
    +
    + +

    Definition at line 29 of file remove_transaction_safe.hpp.

    + +
    +
    + +

    ◆ remove_varargs_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::remove_varargs_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<T>::remove_varargs, varargs_are_illegal_for_this_type>
    +
    + +

    Definition at line 26 of file remove_varargs.hpp.

    + +
    +
    + +

    ◆ return_type_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::return_type_t = typedef detail::try_but_fail_if_invalid< typename detail::traits<detail::shallow_decay<T> >::return_type, unable_to_determine_return_type>
    +
    + +

    Definition at line 29 of file return_type.hpp.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ has_member_qualifiers_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_member_qualifiers_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::has_member_qualifiers::value
    +
    +

    Definition at line 52 of file has_member_qualifiers.hpp.

    + +
    +
    + +

    ◆ has_varargs_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_varargs_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::has_varargs::value
    +
    +

    Definition at line 52 of file has_varargs.hpp.

    + +
    +
    + +

    ◆ has_void_return_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::has_void_return_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    std::is_same<typename detail::traits<
    +
    detail::shallow_decay<T>>::return_type, void>::value
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    +

    Definition at line 49 of file has_void_return.hpp.

    + +
    +
    + +

    ◆ is_const_member_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_const_member_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::is_const_member::value
    +
    +

    Definition at line 50 of file is_const_member.hpp.

    + +
    +
    + +

    ◆ is_invocable_r_v

    + +
    +
    +
    +template<typename Ret , typename T , typename... Args>
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_invocable_r_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::is_invocable_r_impl<
    +
    typename detail::is_invocable_impl<T, Args...>::type,
    +
    Ret, T, Args...>::type::value
    +
    +

    Definition at line 78 of file is_invocable.hpp.

    + +
    +
    + +

    ◆ is_invocable_v

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_invocable_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::is_invocable_impl<T, Args...>::type::value
    +
    +

    Definition at line 68 of file is_invocable.hpp.

    + +
    +
    + +

    ◆ is_lvalue_reference_member_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_lvalue_reference_member_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::is_lvalue_reference_member::value
    +
    +

    Definition at line 51 of file is_lvalue_reference_member.hpp.

    + +
    +
    + +

    ◆ is_noexcept_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_noexcept_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::is_noexcept::value
    +
    +

    Definition at line 50 of file is_noexcept.hpp.

    + +
    +
    + +

    ◆ is_reference_member_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_reference_member_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::is_reference_member::value
    +
    +

    Definition at line 53 of file is_reference_member.hpp.

    + +
    +
    + +

    ◆ is_rvalue_reference_member_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_rvalue_reference_member_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::is_rvalue_reference_member::value
    +
    +

    Definition at line 53 of file is_rvalue_reference_member.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_transaction_safe_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::is_transaction_safe::value
    +
    +

    Definition at line 53 of file is_transaction_safe.hpp.

    + +
    +
    + +

    ◆ is_volatile_member_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr BOOST_CLBL_TRAITS_INLINE_VAR bool boost::callable_traits::is_volatile_member_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    +
    detail::traits<detail::shallow_decay<T>>::is_volatile_member::value
    +
    +

    Definition at line 53 of file is_volatile_member.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespaceboost_1_1callable__traits_1_1detail.html b/dox-master/namespaceboost_1_1callable__traits_1_1detail.html new file mode 100644 index 000000000..07b5caa59 --- /dev/null +++ b/dox-master/namespaceboost_1_1callable__traits_1_1detail.html @@ -0,0 +1,1317 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  add_member_const_impl
     
    struct  add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >
     
    struct  add_member_cv_impl
     
    struct  add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >
     
    struct  add_member_lvalue_reference_impl
     
    struct  add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >
     
    struct  add_member_rvalue_reference_impl
     
    struct  add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >
     
    struct  add_member_volatile_impl
     
    struct  add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >
     
    struct  add_varargs_impl
     
    struct  add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >
     
    struct  make_member_pointer
     
    struct  make_member_pointer< T, C, true >
     
    struct  make_member_pointer< void, C, true >
     
    struct  make_member_pointer< T, C, false >
     
    struct  apply_member_pointer_impl
     
    struct  apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >
     
    struct  apply_return_helper
     
    struct  apply_return_helper< std::tuple< Args... >, R >
     
    struct  apply_return_impl
     
    struct  apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >
     
    struct  args_impl
     
    struct  args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >
     
    struct  class_of_impl
     
    struct  class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >
     
    struct  default_callable_traits
     
    struct  function
     
    struct  has_normal_call_operator
     
    struct  callable_dummy
     
    struct  pmf
     
    struct  pmd
     
    struct  function_object
     
    struct  function< T & >
     
    struct  function_object< T U::*, Base >
     
    struct  can_dereference_t
     
    struct  generalize_t
     
    struct  generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >
     
    struct  generalize_t< T, is_reference_wrapper< T > >
     
    struct  test_invoke
     
    struct  test_invoke< function< F >, true >
     
    struct  test_invoke< pmf< Pmf >, Ignored >
     
    struct  test_invoke< pmd< Pmd >, Ignored >
     
    struct  is_invocable_impl
     
    struct  is_invocable_impl< void, Args... >
     
    struct  is_invocable_r_impl
     
    struct  is_invocable_r_impl< std::false_type, Ret, T, Args... >
     
    struct  pmd< D T::* >
     
    struct  set_member_function_qualifiers_t
     
    struct  set_varargs_member_function_qualifiers_t
     
    struct  disjunction
     
    struct  disjunction< T >
     
    struct  disjunction< T, Ts... >
     
    struct  index_sequence
     
    struct  concat
     
    struct  concat< index_sequence< I1... >, index_sequence< I2... > >
     
    struct  make_index_sequence_t
     
    struct  make_index_sequence_t< 0 >
     
    struct  make_index_sequence_t< 1 >
     
    struct  flag_map
     
    struct  flag_map< T & >
     
    struct  flag_map< T && >
     
    struct  flag_map< T const >
     
    struct  flag_map< T const & >
     
    struct  flag_map< T const && >
     
    struct  flag_map< T volatile >
     
    struct  flag_map< T volatile & >
     
    struct  flag_map< T volatile && >
     
    struct  flag_map< T const volatile >
     
    struct  flag_map< T const volatile & >
     
    struct  flag_map< T const volatile && >
     
    struct  set_function_qualifiers_t
     
    struct  set_varargs_function_qualifiers_t
     
    struct  sfinae_error
     
    struct  success
     
    struct  fail_if
     
    struct  fail
     
    struct  cdecl_tag
     
    struct  stdcall_tag
     
    struct  fastcall_tag
     
    struct  pascal_tag
     
    struct  invalid_type
     
    struct  reference_error
     
    struct  dummy
     
    struct  substitution_failure
     
    struct  force_sfinae
     
    struct  is_reference_wrapper_t
     
    struct  is_reference_wrapper_t< std::reference_wrapper< T > >
     
    struct  unwrap_reference_t
     
    struct  unwrap_reference_t< T, is_reference_wrapper< T > >
     
    struct  function_type_impl
     
    struct  function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >
     
    struct  qualified_class_of_impl
     
    struct  qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >
     
    struct  remove_member_const_impl
     
    struct  remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >
     
    struct  remove_member_cv_impl
     
    struct  remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >
     
    struct  remove_member_reference_impl
     
    struct  remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >
     
    struct  remove_member_volatile_impl
     
    struct  remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >
     
    struct  remove_noexcept_impl
     
    struct  remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >
     
    struct  remove_transaction_safe_impl
     
    struct  remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >
     
    struct  remove_varargs_impl
     
    struct  remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >
     
    struct  return_type_impl
     
    struct  return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<typename T , typename C >
    using make_member_pointer_t = typename make_member_pointer< T, C >::type
     
    template<typename T >
    using default_to_function_object = typename std::conditional< has_normal_call_operator< T >::value, T, callable_dummy >::type
     
    template<typename F , typename T = typename std::remove_reference<F>::type>
    using function_object_base = typename std::conditional< has_normal_call_operator< T >::value, pmf< decltype(&default_to_function_object< T >::operator())>, default_callable_traits< T > >::type
     
    template<typename T >
    using can_dereference = std::integral_constant< bool, can_dereference_t< T >::value >
     
    template<typename T >
    using generalize = typename generalize_t< T >::type
     
    template<typename Base , typename T , typename IsBaseOf = std::is_base_of<Base, shallow_decay<T>>, typename IsSame = std::is_same<Base, shallow_decay<T>>>
    using generalize_if_dissimilar = typename std::conditional< IsBaseOf::value||IsSame::value, T, generalize< T > >::type
     
    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using set_member_function_qualifiers = typename set_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using set_varargs_member_function_qualifiers = typename set_varargs_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    template<std::size_t... I>
    using make_index_sequence = typename make_index_sequence_t< I... >::type
     
    using qualifier_flags = std::uint32_t
     
    template<qualifier_flags Flags>
    using remove_const_flag = std::integral_constant< qualifier_flags, Flags &~const_ >
     
    template<qualifier_flags Flags>
    using is_const = std::integral_constant< bool,(Flags &const_) !=0 >
     
    template<qualifier_flags Flags>
    using remove_volatile_flag = std::integral_constant< qualifier_flags, Flags &~volatile_ >
     
    template<typename U , typename T = typename std::remove_reference<U>::type>
    using cv_of = std::integral_constant< qualifier_flags,(std::is_const< T >::value ? const_ :default_)|(std::is_volatile< T >::value ? volatile_ :default_)>
     
    template<typename T >
    using ref_of = std::integral_constant< qualifier_flags, std::is_rvalue_reference< T >::value ? rref_ :(std::is_lvalue_reference< T >::value ? lref_ :default_)>
     
    template<qualifier_flags Existing, qualifier_flags Other, bool AlreadyHasRef = (Existing & (lref_ | rref_)) != 0, bool AlreadyHasLRef = (Existing & lref_) == lref_, bool IsAddingLRef = (Other & lref_) == lref_>
    using collapse_flags = std::integral_constant< qualifier_flags, !AlreadyHasRef ?(Existing|Other) :(AlreadyHasLRef ?(Existing|(Other &~rref_)) :(IsAddingLRef ?((Existing &~rref_)|Other) :(Existing|Other)))>
     
    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using set_function_qualifiers = typename set_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using set_varargs_function_qualifiers = typename set_varargs_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    template<typename T , typename... FailIfs>
    using sfinae_try = typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type
     
    template<typename T >
    using traits = typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits
     
    template<typename T >
    using error_type = typename std::conditional< std::is_reference< T >::value, reference_error, invalid_type >::type
     
    template<bool Value>
    using bool_type = std::integral_constant< bool, Value >
     
    template<std::size_t I, typename Tup >
    using at = typename std::tuple_element< I, Tup >::type
     
    template<typename T , typename Class >
    using add_member_pointer = T Class::*
     
    template<typename L , typename R , typename ErrorType >
    using fail_when_same = fail_if< std::is_same< L, R >::value, ErrorType >
     
    template<typename T , typename ErrorType , typename U = typename std::remove_reference<T>::type>
    using try_but_fail_if_invalid = sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > >
     
    template<typename T , typename ErrorType , typename U = typename std::remove_reference<T>::type, bool is_reference_error = std::is_same<reference_error, U>::value>
    using fail_if_invalid = fail_if< std::is_same< U, invalid_type >::value||is_reference_error, typename std::conditional< is_reference_error, reference_type_not_supported_by_this_metafunction, ErrorType >::type >
     
    template<typename T , typename Fallback >
    using fallback_if_invalid = typename std::conditional< std::is_same< T, invalid_type >::value, Fallback, T >::type
     
    template<typename T >
    using shallow_decay = typename std::remove_cv< typename std::remove_reference< T >::type >::type
     
    template<typename T >
    using is_reference_wrapper = typename is_reference_wrapper_t< shallow_decay< T > >::type
     
    template<typename T >
    using unwrap_reference = typename unwrap_reference_t< T >::type
     
    + + + + + + + + + + + + + + + +

    +Functions

     BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const)
     
    BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS & BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (&&);BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const &
     
     BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const &&)
     
     BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (volatile &)
     
     BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (volatile &&)
     
     BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const volatile &)
     
     BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const volatile &&)
     
    + + + + + + + + + + + + + +

    +Variables

    constexpr qualifier_flags default_ = 0
     
    constexpr qualifier_flags const_ = 1
     
    constexpr qualifier_flags volatile_ = 2
     
    constexpr qualifier_flags lref_ = 4
     
    constexpr qualifier_flags rref_ = 8
     
    constexpr qualifier_flags cv_ = 3
     
    +

    Typedef Documentation

    + +

    ◆ add_member_pointer

    + +
    +
    +
    +template<typename T , typename Class >
    + + + + +
    using boost::callable_traits::detail::add_member_pointer = typedef T Class::*
    +
    + +

    Definition at line 48 of file utility.hpp.

    + +
    +
    + +

    ◆ at

    + +
    +
    +
    +template<std::size_t I, typename Tup >
    + + + + +
    using boost::callable_traits::detail::at = typedef typename std::tuple_element<I, Tup>::type
    +
    + +

    Definition at line 45 of file utility.hpp.

    + +
    +
    + +

    ◆ bool_type

    + +
    +
    +
    +template<bool Value>
    + + + + +
    using boost::callable_traits::detail::bool_type = typedef std::integral_constant<bool, Value>
    +
    + +

    Definition at line 41 of file utility.hpp.

    + +
    +
    + +

    ◆ can_dereference

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::can_dereference = typedef std::integral_constant<bool, can_dereference_t<T>::value>
    +
    + +

    Definition at line 41 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ collapse_flags

    + +
    +
    +
    +template<qualifier_flags Existing, qualifier_flags Other, bool AlreadyHasRef = (Existing & (lref_ | rref_)) != 0, bool AlreadyHasLRef = (Existing & lref_) == lref_, bool IsAddingLRef = (Other & lref_) == lref_>
    + + + + +
    using boost::callable_traits::detail::collapse_flags = typedef std::integral_constant<qualifier_flags, !AlreadyHasRef ? (Existing | Other) : (AlreadyHasLRef ? (Existing | (Other & ~rref_)) : (IsAddingLRef ? ((Existing & ~rref_) | Other ) : (Existing | Other)))>
    +
    + +

    Definition at line 102 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ cv_of

    + +
    +
    +
    +template<typename U , typename T = typename std::remove_reference<U>::type>
    + + + + +
    using boost::callable_traits::detail::cv_of = typedef std::integral_constant<qualifier_flags, (std::is_const<T>::value ? const_ : default_) | (std::is_volatile<T>::value ? volatile_ : default_)>
    +
    + +

    Definition at line 85 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ default_to_function_object

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::default_to_function_object = typedef typename std::conditional< has_normal_call_operator<T>::value, T, callable_dummy>::type
    +
    + +

    Definition at line 33 of file forward_declarations.hpp.

    + +
    +
    + +

    ◆ error_type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::error_type = typedef typename std::conditional< std::is_reference<T>::value, reference_error, invalid_type>::type
    +
    + +

    Definition at line 27 of file utility.hpp.

    + +
    +
    + +

    ◆ fail_if_invalid

    + +
    +
    +
    +template<typename T , typename ErrorType , typename U = typename std::remove_reference<T>::type, bool is_reference_error = std::is_same<reference_error, U>::value>
    + + + + +
    using boost::callable_traits::detail::fail_if_invalid = typedef fail_if< std::is_same<U, invalid_type>::value || is_reference_error, typename std::conditional<is_reference_error, reference_type_not_supported_by_this_metafunction, ErrorType>::type>
    +
    + +

    Definition at line 63 of file utility.hpp.

    + +
    +
    + +

    ◆ fail_when_same

    + +
    +
    +
    +template<typename L , typename R , typename ErrorType >
    + + + + +
    using boost::callable_traits::detail::fail_when_same = typedef fail_if<std::is_same<L, R>::value, ErrorType>
    +
    + +

    Definition at line 51 of file utility.hpp.

    + +
    +
    + +

    ◆ fallback_if_invalid

    + +
    +
    +
    +template<typename T , typename Fallback >
    + + + + +
    using boost::callable_traits::detail::fallback_if_invalid = typedef typename std::conditional< std::is_same<T, invalid_type>::value, Fallback, T>::type
    +
    + +

    Definition at line 69 of file utility.hpp.

    + +
    +
    + +

    ◆ function_object_base

    + +
    +
    +
    +template<typename F , typename T = typename std::remove_reference<F>::type>
    + + + + +
    using boost::callable_traits::detail::function_object_base = typedef typename std::conditional< has_normal_call_operator<T>::value, pmf<decltype(&default_to_function_object<T>::operator())>, default_callable_traits<T> >::type
    +
    + +

    Definition at line 44 of file forward_declarations.hpp.

    + +
    +
    + +

    ◆ generalize

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::generalize = typedef typename generalize_t<T>::type
    +
    + +

    Definition at line 66 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ generalize_if_dissimilar

    + +
    +
    +
    +template<typename Base , typename T , typename IsBaseOf = std::is_base_of<Base, shallow_decay<T>>, typename IsSame = std::is_same<Base, shallow_decay<T>>>
    + + + + +
    using boost::callable_traits::detail::generalize_if_dissimilar = typedef typename std::conditional< IsBaseOf::value || IsSame::value, T, generalize<T> >::type
    +
    + +

    Definition at line 72 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ is_const

    + +
    +
    +
    +template<qualifier_flags Flags>
    + + + + +
    using boost::callable_traits::detail::is_const = typedef std::integral_constant<bool, (Flags & const_) != 0>
    +
    + +

    Definition at line 77 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ is_reference_wrapper

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::is_reference_wrapper = typedef typename is_reference_wrapper_t<shallow_decay<T> >::type
    +
    + +

    Definition at line 92 of file utility.hpp.

    + +
    +
    + +

    ◆ make_index_sequence

    + +
    +
    +
    +template<std::size_t... I>
    + + + + +
    using boost::callable_traits::detail::make_index_sequence = typedef typename make_index_sequence_t<I...>::type
    +
    + +

    Definition at line 46 of file make_index_sequence.hpp.

    + +
    +
    + +

    ◆ make_member_pointer_t

    + +
    +
    +
    +template<typename T , typename C >
    + + + + +
    using boost::callable_traits::detail::make_member_pointer_t = typedef typename make_member_pointer<T, C>::type
    +
    + +

    Definition at line 41 of file apply_member_pointer.hpp.

    + +
    +
    + +

    ◆ qualifier_flags

    + +
    +
    + + + + +
    using boost::callable_traits::detail::qualifier_flags = typedef std::uint32_t
    +
    + +

    Definition at line 18 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ ref_of

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::ref_of = typedef std::integral_constant<qualifier_flags, std::is_rvalue_reference<T>::value ? rref_ : (std::is_lvalue_reference<T>::value ? lref_ : default_)>
    +
    + +

    Definition at line 90 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ remove_const_flag

    + +
    +
    +
    +template<qualifier_flags Flags>
    + + + + +
    using boost::callable_traits::detail::remove_const_flag = typedef std::integral_constant< qualifier_flags, Flags & ~const_>
    +
    + +

    Definition at line 73 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ remove_volatile_flag

    + +
    +
    +
    +template<qualifier_flags Flags>
    + + + + +
    using boost::callable_traits::detail::remove_volatile_flag = typedef std::integral_constant< qualifier_flags, Flags & ~volatile_>
    +
    + +

    Definition at line 81 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ set_function_qualifiers

    + +
    +
    +
    +template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    + + + + +
    using boost::callable_traits::detail::set_function_qualifiers = typedef typename set_function_qualifiers_t<Flags, IsTransactionSafe, IsNoexcept, Ts...>::type
    +
    + +

    Definition at line 108 of file set_function_qualifiers.hpp.

    + +
    +
    + +

    ◆ set_member_function_qualifiers

    + +
    +
    +
    +template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    + + + + +
    using boost::callable_traits::detail::set_member_function_qualifiers = typedef typename set_member_function_qualifiers_t<Flags, IsTransactionSafe, IsNoexcept, Ts...>::type
    +
    + +

    Definition at line 32 of file pmf.hpp.

    + +
    +
    + +

    ◆ set_varargs_function_qualifiers

    + +
    +
    +
    +template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    + + + + +
    using boost::callable_traits::detail::set_varargs_function_qualifiers = typedef typename set_varargs_function_qualifiers_t<Flags, IsTransactionSafe, IsNoexcept, Ts...>::type
    +
    + +

    Definition at line 114 of file set_function_qualifiers.hpp.

    + +
    +
    + +

    ◆ set_varargs_member_function_qualifiers

    + +
    +
    +
    +template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    + + + + +
    using boost::callable_traits::detail::set_varargs_member_function_qualifiers = typedef typename set_varargs_member_function_qualifiers_t<Flags, IsTransactionSafe, IsNoexcept, Ts...>::type
    +
    + +

    Definition at line 38 of file pmf.hpp.

    + +
    +
    + +

    ◆ sfinae_try

    + +
    +
    +
    +template<typename T , typename... FailIfs>
    + + + + +
    using boost::callable_traits::detail::sfinae_try = typedef typename BOOST_CLBL_TRTS_DISJUNCTION( FailIfs..., success<T>)::_::type
    +
    + +

    Definition at line 33 of file sfinae_errors.hpp.

    + +
    +
    + +

    ◆ shallow_decay

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::shallow_decay = typedef typename std::remove_cv< typename std::remove_reference<T>::type>::type
    +
    + +

    Definition at line 78 of file utility.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::traits = typedef typename BOOST_CLBL_TRTS_DISJUNCTION( function_object<unwrap_reference<T> >, function<T>, pmf<T>, pmd<T>, default_callable_traits<T> )::traits
    +
    + +

    Definition at line 19 of file traits.hpp.

    + +
    +
    + +

    ◆ try_but_fail_if_invalid

    + +
    +
    +
    +template<typename T , typename ErrorType , typename U = typename std::remove_reference<T>::type>
    + + + + +
    using boost::callable_traits::detail::try_but_fail_if_invalid = typedef sfinae_try<T, fail_when_same<U, invalid_type, ErrorType>, fail_when_same<U, reference_error, reference_type_not_supported_by_this_metafunction> >
    +
    + +

    Definition at line 55 of file utility.hpp.

    + +
    +
    + +

    ◆ unwrap_reference

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::unwrap_reference = typedef typename unwrap_reference_t<T>::type
    +
    + +

    Definition at line 107 of file utility.hpp.

    + +
    +
    +

    Function Documentation

    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS() [1/7]

    + +
    +
    + + + + + + + + +
    BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS& boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (&& ) const &
    +
    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS() [2/7]

    + +
    +
    + + + + + + + + +
    boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const && )
    +
    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS() [3/7]

    + +
    +
    + + + + + + + + +
    boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const volatile && )
    +
    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS() [4/7]

    + +
    +
    + + + + + + + + +
    boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const volatile & )
    +
    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS() [5/7]

    + +
    +
    + + + + + + + + +
    boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const )
    +
    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS() [6/7]

    + +
    +
    + + + + + + + + +
    boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (volatile && )
    +
    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS() [7/7]

    + +
    +
    + + + + + + + + +
    boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (volatile & )
    +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ const_

    + +
    +
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::const_ = 1
    +
    +constexpr
    +
    + +

    Definition at line 46 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ cv_

    + +
    +
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::cv_ = 3
    +
    +constexpr
    +
    + +

    Definition at line 70 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ default_

    + +
    +
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::default_ = 0
    +
    +constexpr
    +
    + +

    Definition at line 42 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ lref_

    + +
    +
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::lref_ = 4
    +
    +constexpr
    +
    + +

    Definition at line 61 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ rref_

    + +
    +
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::rref_ = 8
    +
    +constexpr
    +
    + +

    Definition at line 66 of file qualifier_flags.hpp.

    + +
    +
    + +

    ◆ volatile_

    + +
    +
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::volatile_ = 2
    +
    +constexpr
    +
    + +

    Definition at line 50 of file qualifier_flags.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespaceboost_1_1serialization.html b/dox-master/namespaceboost_1_1serialization.html new file mode 100644 index 000000000..13d3e2b72 --- /dev/null +++ b/dox-master/namespaceboost_1_1serialization.html @@ -0,0 +1,163 @@ + + + + + + + + + + + ttg: boost::serialization Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::serialization Namespace Reference
    +
    +
    + + + + +

    +Classes

    struct  unsigned_int
     
    + + + +

    +Variables

    const unsigned_int version_as_adl_tag = 0u
     
    +

    Variable Documentation

    + +

    ◆ version_as_adl_tag

    + +
    +
    + + + + +
    const unsigned_int boost::serialization::version_as_adl_tag = 0u
    +
    + +

    Definition at line 18 of file traits.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers.html b/dox-master/namespacemembers.html new file mode 100644 index 000000000..edd9935ac --- /dev/null +++ b/dox-master/namespacemembers.html @@ -0,0 +1,210 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - a -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_b.html b/dox-master/namespacemembers_b.html new file mode 100644 index 000000000..45e474444 --- /dev/null +++ b/dox-master/namespacemembers_b.html @@ -0,0 +1,202 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - b -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_c.html b/dox-master/namespacemembers_c.html new file mode 100644 index 000000000..a2123f375 --- /dev/null +++ b/dox-master/namespacemembers_c.html @@ -0,0 +1,216 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - c -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_d.html b/dox-master/namespacemembers_d.html new file mode 100644 index 000000000..980a94f02 --- /dev/null +++ b/dox-master/namespacemembers_d.html @@ -0,0 +1,207 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - d -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_e.html b/dox-master/namespacemembers_e.html new file mode 100644 index 000000000..f4538e558 --- /dev/null +++ b/dox-master/namespacemembers_e.html @@ -0,0 +1,192 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - e -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_enum.html b/dox-master/namespacemembers_enum.html new file mode 100644 index 000000000..8e517ca1c --- /dev/null +++ b/dox-master/namespacemembers_enum.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_f.html b/dox-master/namespacemembers_f.html new file mode 100644 index 000000000..44df76bb0 --- /dev/null +++ b/dox-master/namespacemembers_f.html @@ -0,0 +1,201 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - f -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func.html b/dox-master/namespacemembers_func.html new file mode 100644 index 000000000..e6b7ce9ab --- /dev/null +++ b/dox-master/namespacemembers_func.html @@ -0,0 +1,172 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_b.html b/dox-master/namespacemembers_func_b.html new file mode 100644 index 000000000..236aedc02 --- /dev/null +++ b/dox-master/namespacemembers_func_b.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - b -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_c.html b/dox-master/namespacemembers_func_c.html new file mode 100644 index 000000000..651c73de4 --- /dev/null +++ b/dox-master/namespacemembers_func_c.html @@ -0,0 +1,184 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - c -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_d.html b/dox-master/namespacemembers_func_d.html new file mode 100644 index 000000000..625032e40 --- /dev/null +++ b/dox-master/namespacemembers_func_d.html @@ -0,0 +1,187 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - d -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_e.html b/dox-master/namespacemembers_func_e.html new file mode 100644 index 000000000..e99562f33 --- /dev/null +++ b/dox-master/namespacemembers_func_e.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - e -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_f.html b/dox-master/namespacemembers_func_f.html new file mode 100644 index 000000000..87dbce7c3 --- /dev/null +++ b/dox-master/namespacemembers_func_f.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - f -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_g.html b/dox-master/namespacemembers_func_g.html new file mode 100644 index 000000000..b72930034 --- /dev/null +++ b/dox-master/namespacemembers_func_g.html @@ -0,0 +1,193 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - g -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_h.html b/dox-master/namespacemembers_func_h.html new file mode 100644 index 000000000..686bcbb07 --- /dev/null +++ b/dox-master/namespacemembers_func_h.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - h -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_i.html b/dox-master/namespacemembers_func_i.html new file mode 100644 index 000000000..e0132b6d1 --- /dev/null +++ b/dox-master/namespacemembers_func_i.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - i -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_l.html b/dox-master/namespacemembers_func_l.html new file mode 100644 index 000000000..5e7646ba0 --- /dev/null +++ b/dox-master/namespacemembers_func_l.html @@ -0,0 +1,172 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - l -

      +
    • launch_debugger() +: ttg +
    • +
    • launch_gdb() +: ttg +
    • +
    • launch_lldb() +: ttg +
    • +
    • log() +: ttg +
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_m.html b/dox-master/namespacemembers_func_m.html new file mode 100644 index 000000000..276bdf081 --- /dev/null +++ b/dox-master/namespacemembers_func_m.html @@ -0,0 +1,198 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - m -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_n.html b/dox-master/namespacemembers_func_n.html new file mode 100644 index 000000000..188411b46 --- /dev/null +++ b/dox-master/namespacemembers_func_n.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - n -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_o.html b/dox-master/namespacemembers_func_o.html new file mode 100644 index 000000000..a370e3fc2 --- /dev/null +++ b/dox-master/namespacemembers_func_o.html @@ -0,0 +1,194 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - o -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_p.html b/dox-master/namespacemembers_func_p.html new file mode 100644 index 000000000..3ffd346a6 --- /dev/null +++ b/dox-master/namespacemembers_func_p.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - p -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_r.html b/dox-master/namespacemembers_func_r.html new file mode 100644 index 000000000..0f100e8f6 --- /dev/null +++ b/dox-master/namespacemembers_func_r.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - r -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_s.html b/dox-master/namespacemembers_func_s.html new file mode 100644 index 000000000..4eec040f8 --- /dev/null +++ b/dox-master/namespacemembers_func_s.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - s -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_t.html b/dox-master/namespacemembers_func_t.html new file mode 100644 index 000000000..05854b46d --- /dev/null +++ b/dox-master/namespacemembers_func_t.html @@ -0,0 +1,240 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - t -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_v.html b/dox-master/namespacemembers_func_v.html new file mode 100644 index 000000000..bc3f148e6 --- /dev/null +++ b/dox-master/namespacemembers_func_v.html @@ -0,0 +1,163 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - v -

      +
    • version() +: ttg +
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_func_w.html b/dox-master/namespacemembers_func_w.html new file mode 100644 index 000000000..0c448da68 --- /dev/null +++ b/dox-master/namespacemembers_func_w.html @@ -0,0 +1,172 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - w -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_g.html b/dox-master/namespacemembers_g.html new file mode 100644 index 000000000..eb5658198 --- /dev/null +++ b/dox-master/namespacemembers_g.html @@ -0,0 +1,201 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - g -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_h.html b/dox-master/namespacemembers_h.html new file mode 100644 index 000000000..3e39033be --- /dev/null +++ b/dox-master/namespacemembers_h.html @@ -0,0 +1,243 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - h -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_i.html b/dox-master/namespacemembers_i.html new file mode 100644 index 000000000..ebe6204b8 --- /dev/null +++ b/dox-master/namespacemembers_i.html @@ -0,0 +1,348 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - i -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_l.html b/dox-master/namespacemembers_l.html new file mode 100644 index 000000000..f531ebab9 --- /dev/null +++ b/dox-master/namespacemembers_l.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - l -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_m.html b/dox-master/namespacemembers_m.html new file mode 100644 index 000000000..399df8e06 --- /dev/null +++ b/dox-master/namespacemembers_m.html @@ -0,0 +1,209 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - m -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_n.html b/dox-master/namespacemembers_n.html new file mode 100644 index 000000000..487ad2b26 --- /dev/null +++ b/dox-master/namespacemembers_n.html @@ -0,0 +1,173 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - n -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_o.html b/dox-master/namespacemembers_o.html new file mode 100644 index 000000000..9a1982e06 --- /dev/null +++ b/dox-master/namespacemembers_o.html @@ -0,0 +1,203 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - o -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_p.html b/dox-master/namespacemembers_p.html new file mode 100644 index 000000000..96a332c5a --- /dev/null +++ b/dox-master/namespacemembers_p.html @@ -0,0 +1,233 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - p -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_q.html b/dox-master/namespacemembers_q.html new file mode 100644 index 000000000..9ecfea4f5 --- /dev/null +++ b/dox-master/namespacemembers_q.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - q -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_r.html b/dox-master/namespacemembers_r.html new file mode 100644 index 000000000..c65016289 --- /dev/null +++ b/dox-master/namespacemembers_r.html @@ -0,0 +1,230 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - r -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_s.html b/dox-master/namespacemembers_s.html new file mode 100644 index 000000000..434aad8a4 --- /dev/null +++ b/dox-master/namespacemembers_s.html @@ -0,0 +1,226 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - s -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_t.html b/dox-master/namespacemembers_t.html new file mode 100644 index 000000000..b0b9c9431 --- /dev/null +++ b/dox-master/namespacemembers_t.html @@ -0,0 +1,288 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - t -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_type.html b/dox-master/namespacemembers_type.html new file mode 100644 index 000000000..01f5a290f --- /dev/null +++ b/dox-master/namespacemembers_type.html @@ -0,0 +1,529 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    + + +

    - b -

    + + +

    - c -

    + + +

    - d -

    + + +

    - e -

    + + +

    - f -

    + + +

    - g -

    + + +

    - h -

    + + +

    - i -

    + + +

    - m -

    + + +

    - n -

    + + +

    - o -

    + + +

    - p -

    + + +

    - q -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - u -

    + + +

    - v -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_u.html b/dox-master/namespacemembers_u.html new file mode 100644 index 000000000..054694407 --- /dev/null +++ b/dox-master/namespacemembers_u.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - u -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_v.html b/dox-master/namespacemembers_v.html new file mode 100644 index 000000000..8bb555370 --- /dev/null +++ b/dox-master/namespacemembers_v.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - v -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_vars.html b/dox-master/namespacemembers_vars.html new file mode 100644 index 000000000..dfe925b84 --- /dev/null +++ b/dox-master/namespacemembers_vars.html @@ -0,0 +1,499 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +  + +

    - a -

    + + +

    - c -

    + + +

    - d -

    + + +

    - f -

    + + +

    - h -

    + + +

    - i -

    + + +

    - l -

    + + +

    - m -

    + + +

    - p -

    + + +

    - r -

    + + +

    - s -

    + + +

    - t -

    + + +

    - v -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacemembers_w.html b/dox-master/namespacemembers_w.html new file mode 100644 index 000000000..36c217c52 --- /dev/null +++ b/dox-master/namespacemembers_w.html @@ -0,0 +1,174 @@ + + + + + + + + + + + ttg: Namespace Members + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    Here is a list of all namespace members with links to the namespace documentation for each member:
    + +

    - w -

    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespaces.html b/dox-master/namespaces.html new file mode 100644 index 000000000..f3b1d10a2 --- /dev/null +++ b/dox-master/namespaces.html @@ -0,0 +1,529 @@ + + + + + + + + + + + ttg: Namespace List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Namespace List
    +
    +
    +
    Here is a list of all namespaces with brief descriptions:
    +
    [detail level 12345]
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
     Nboost
     Narchive
     Ncallable_traits
     Nserialization
     NstdSTL namespace
     Ctuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >
     Ctuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >
     Ctuple_size< ttg::meta::typelist< Ts... > >
     Ctuple_element< I, ttg::meta::typelist< Ts... > >
     Chash< ttg::Void >
     NTCB_SPAN_NAMESPACE_NAME
     Ndetail
     Cspan
     NttgTop-level TTG namespace contains runtime-neutral functionality
     Nbase
     Ndetail
     Ndevice
     Niostream
     Nmeta
     NoverloadPlace for overloading/instantiating hash and other functionality
     CTerminalBase
     CTTBaseA base class for all template tasks
     CBinaryTreeBroadcastGeneric binary broadcast of a value to a set of {key,value} pairs
     Cresumable_task_events
     CeventGeneric one-time event
     Cresumable_taskTask that can be resumed after some events occur
     Cresumable_task_state
     CEdgeEdge is used to connect In and Out terminals
     Cterminals_to_edges
     Cterminals_to_edges< std::tuple< termsT... > >
     Cedges_to_output_terminals
     Cedges_to_output_terminals< std::tuple< edgesT... > >
     CTTGTemplate task graph implementation
     CBinaryTreeReduceGeneric binary reduction of a set of key-value pairs
     Cruntime_traits
     Cruntime_traits< Runtime::PaRSEC >
     Cruntime_traits< Runtime::MADWorld >
     Cdefault_data_descriptorProvides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor
     Cdefault_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >Default_data_descriptor for trivially-copyable types
     Cdefault_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >Default_data_descriptor for types that support 2-stage serialization (metadata first, then the rest) for implementing zero-copy transfers
     CSplitMetadataDescriptor
     Chas_split_metadata
     Chas_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >
     CInTerminalBaseBase type for input terminals receiving messages annotated by task IDs of type keyT
     CIn
     COutTerminalBase
     COut
     CTraverseTraverses a graph of ops in depth-first manner following out edges
     CSinkTTA data sink for one input
     CDebugger
     CDotPrints the graph to a std::string in the format understood by GraphViz's dot program
     Ciovec
     CMultiIndex
     CBinarySpanningTreeBinary spanning tree of integers in the [0,size) interval
     CVoidA complete version of void
     CWorld
     Nttg_madnessThis contains MADNESS-based TTG functionality
     Ndetail
     CBufferA runtime-managed buffer mirrored between host and device memory
     CTT
     CPtr
     Cdevicescratch
     CTTValue
     CWorldImpl
     Nttg_parsecThis contains PaRSEC-based TTG functionality
     Ndetail
     CBuffer
     Cdevicescratch
     CTT
     CPtr
     CTTValue
     Cptr
     Cmsg_header_t
     CWorldImpl
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg.html b/dox-master/namespacettg.html new file mode 100644 index 000000000..64629c9d1 --- /dev/null +++ b/dox-master/namespacettg.html @@ -0,0 +1,4745 @@ + + + + + + + + + + + ttg: ttg Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ttg Namespace Reference
    +
    +
    + +

    top-level TTG namespace contains runtime-neutral functionality +More...

    + + + + + + + + + + + + + + + +

    +Namespaces

     base
     
     detail
     
     device
     
     iostream
     
     meta
     
     overload
     place for overloading/instantiating hash and other functionality
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    class  TerminalBase
     
    class  TTBase
     A base class for all template tasks. More...
     
    class  BinaryTreeBroadcast
     generic binary broadcast of a value to a set of {key,value} pairs More...
     
    struct  resumable_task_events
     
    struct  event
     represents a generic one-time event More...
     
    struct  resumable_task
     task that can be resumed after some events occur More...
     
    struct  resumable_task_state
     
    class  Edge
     Edge is used to connect In and Out terminals. More...
     
    struct  terminals_to_edges
     
    struct  terminals_to_edges< std::tuple< termsT... > >
     
    struct  edges_to_output_terminals
     
    struct  edges_to_output_terminals< std::tuple< edgesT... > >
     
    class  TTG
     a template task graph implementation More...
     
    class  BinaryTreeReduce
     generic binary reduction of a set of key-value pairs. More...
     
    struct  runtime_traits
     
    struct  runtime_traits< Runtime::PaRSEC >
     
    struct  runtime_traits< Runtime::MADWorld >
     
    struct  default_data_descriptor
     Provides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor. More...
     
    struct  default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >
     default_data_descriptor for trivially-copyable types More...
     
    struct  default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >
     default_data_descriptor for types that support 2-stage serialization (metadata first, then the rest) for implementing zero-copy transfers More...
     
    struct  SplitMetadataDescriptor
     
    struct  has_split_metadata
     
    struct  has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >
     
    class  InTerminalBase
     Base type for input terminals receiving messages annotated by task IDs of type keyT More...
     
    class  In
     
    class  OutTerminalBase
     
    class  Out
     
    class  Traverse
     Traverses a graph of ops in depth-first manner following out edges. More...
     
    class  SinkTT
     A data sink for one input. More...
     
    class  Debugger
     
    class  Dot
     Prints the graph to a std::string in the format understood by GraphViz's dot program. More...
     
    struct  iovec
     
    struct  MultiIndex
     
    class  BinarySpanningTree
     a binary spanning tree of integers in the [0,size) interval More...
     
    class  Void
     A complete version of void. More...
     
    class  World
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<typename T , typename Allocator = std::allocator<T>>
    using Buffer = TTG_IMPL_NS::Buffer< T, Allocator >
     
    using suspend_always = TTG_CXX_COROUTINE_NAMESPACE::suspend_always
     
    using suspend_never = TTG_CXX_COROUTINE_NAMESPACE::suspend_never
     
    template<typename Promise >
    using coroutine_handle = TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise >
     
    template<typename T >
    using devicescratch = TTG_IMPL_NS::devicescratch< T >
     
    using OpBase = TTBase
     
    using TemplateTaskBase = TTBase
     
    template<typename input_terminalsT , typename output_terminalsT >
    using TemplateTaskGraph = TTG< input_terminalsT, output_terminalsT >
     
    template<typename input_terminalsT , typename output_terminalsT >
    using CompositeOp = TTG< input_terminalsT, output_terminalsT >
     
    template<typename T >
    using Ptr = TTG_IMPL_NS::Ptr< T >
     
    template<typename T >
    using TTValue = TTG_IMPL_NS::TTValue< T >
     
    template<typename... Ts>
    using typelist = meta::typelist< Ts... >
     
    + + + + + + + + + + + + + +

    +Enumerations

    enum class  TaskCoroutineID { Invalid +, ResumableTask +, DeviceTask + }
     
    enum class  scope { Allocate = 0x0 +, SyncIn = 0x2 + }
     
    enum class  Execution { Inline +, Async + }
     denotes task execution policy More...
     
    enum class  ExecutionSpace {
    +  Host +, CUDA +, HIP +, L0 +,
    +  Invalid +
    + }
     denotes task execution space More...
     
    enum class  Runtime { PaRSEC +, MADWorld + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename... Events>
     resumable_task_events (Events &&...) -> resumable_task_events< sizeof...(Events)>
     
    template<typename T >
    auto make_scratch (T *val, ttg::scope scope, std::size_t count=1)
     
    template<typename... TTBasePtrs>
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable (TTBasePtrs &&...tts)
     
    template<typename keyT , typename valueT >
    void connect (ttg::Out< keyT, valueT > *out, ttg::In< keyT, valueT > *in)
     Connect output terminal to successor input terminal. More...
     
    void connect (ttg::TerminalBase *out, ttg::TerminalBase *in)
     Connect output terminal to successor input terminal. More...
     
    template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr >
    void connect (producer_tt_ptr &p, successor_tt_ptr &c)
     Connect producer output terminal outindex to consumer input terminal inindex (via unique or otherwise wrapped pointers to TTs) More...
     
    template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr >
    void connect (producer_tt_ptr *p, successor_tt_ptr *c)
     Connect producer output terminal outindex to consumer input terminal inindex (via bare pointers to TTs) More...
     
    void connect (size_t outindex, size_t inindex, TTBase *producer, TTBase *consumer)
     Connect producer output terminal outindex to consumer input terminal inindex (via TTBase pointers) More...
     
    template<typename keyT , typename... valuesT>
    auto fuse (const Edge< keyT, valuesT > &...args)
     Fuse edges into one This allows receiving one data from either of the combined edges. More...
     
    template<typename... inedgesT>
    auto edges (inedgesT &&...args)
     Make a tuple of Edges to pass to. More...
     
    template<typename keyT , typename valueT , typename output_terminalT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void send (const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
     Sends a task id and a value to the given output terminal. More...
     
    template<typename keyT >
    void sendk (const keyT &key, ttg::Out< keyT, void > &t)
     Sends a task id (without an accompanying value) to the given output terminal. More...
     
    template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void sendv (valueT &&value, ttg::Out< void, valueT > &t)
     Sends a value (without an accompanying task id) to the given output terminal. More...
     
    void send (ttg::Out< void, void > &t)
     Sends a control message (message without an accompanying task id or a value) to the given output terminal. More...
     
    template<size_t i, typename keyT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > send (const keyT &key, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a task id and a value to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    template<typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > send (size_t i, const keyT &key, valueT &&value)
     Sends a task id and a value to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t< meta::is_none_void_v< keyT, std::decay_t< valueT > >, void > send (const keyT &key, valueT &&value)
     Sends a task id and a value to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > sendk (const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a task id (without an accompanying value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    template<typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > sendk (std::size_t i, const keyT &key)
     Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > sendk (const keyT &key)
     Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > sendv (valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a value (without an accompanying task id) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > sendv (std::size_t i, valueT &&value)
     Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    std::enable_if_t<!meta::is_void_v< std::decay_t< valueT > >, void > sendv (valueT &&value)
     Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename... out_keysT, typename... out_valuesT>
    void send (std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t. More...
     
    void send (std::size_t i)
     Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i>
    void send ()
     Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task. More...
     
    template<size_t i, typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcast (const rangeT &keylist, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcast (std::size_t i, const rangeT &keylist, valueT &&value)
     
    template<size_t i, typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcast (const rangeT &keylist, valueT &&value)
     
    template<size_t i, size_t... I, typename... RangesT, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcast (const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t i, size_t... I, typename... RangesT, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcast (const std::tuple< RangesT... > &keylists, valueT &&value)
     
    template<size_t i, typename rangeT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcastk (const rangeT &keylist, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcastk (std::size_t i, const rangeT &keylist)
     
    template<size_t i, typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcastk (const rangeT &keylist)
     
    template<size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcastk (const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t i, size_t... I, typename... RangesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    void broadcastk (const std::tuple< RangesT... > &keylists)
     
    template<typename keyT , typename out_valueT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > set_size (const keyT &key, const std::size_t size, ttg::Out< keyT, out_valueT > &t)
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > set_size (const keyT &key, const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Set the size of all streaming input terminals connected to the output terminal for a task identified by key. More...
     
    template<typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > set_size (std::size_t i, const keyT &key, const std::size_t size)
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > set_size (const keyT &key, const std::size_t size)
     
    template<typename out_keyT , typename out_valueT >
    void set_size (const std::size_t size, ttg::Out< out_keyT, out_valueT > &t)
     Set the size of all streaming input terminals connected to an output terminal with void key. More...
     
    template<size_t i, typename... out_keysT, typename... out_valuesT>
    void set_size (const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Set the size of all streaming input terminals connected to an output terminal for a task, with void key. More...
     
    void set_size (std::size_t i, const std::size_t size)
     
    template<std::size_t i>
    void set_size (const std::size_t size)
     
    template<typename keyT , typename out_keyT , typename out_valueT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize (const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
     Finalize streaming input terminals connecting to the given output terminal for tasks identified by key. More...
     
    template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize (const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with non-void key. More...
     
    template<typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize (std::size_t i, const keyT &key)
     
    template<std::size_t i, typename keyT >
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize (const keyT &key)
     
    template<typename out_keyT , typename out_valueT >
    void finalize (ttg::Out< out_keyT, out_valueT > &t)
     Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with void key. More...
     
    template<size_t i, typename... out_keysT, typename... out_valuesT>
    void finalize (std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     Finalize streaming input terminals connected to the ith output terminal in the tuple; use this to finalize terminals with void key. More...
     
    void finalize (std::size_t i)
     
    template<std::size_t i>
    void finalize ()
     Finalizes the TTG runtime. More...
     
    template<typename... RestOfArgs>
    void initialize (int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
     
    void abort ()
     Aborts the TTG program using the default backend's ttg_abort method. More...
     
    World default_execution_context ()
     Accesses the default backend's default execution context. More...
     
    void execute (World world=default_execution_context())
     Starts the execution in the given execution context. More...
     
    void fence (World world=default_execution_context())
     Returns when all tasks associated with the given execution context have finished on all ranks. More...
     
    template<typename T , typename... Args>
    Ptr< T > make_ptr (Args &&... args)
     
    template<typename T >
    Ptr< std::decay_t< T > > get_ptr (T &&obj)
     
    template<typename... RestOfArgs>
    void initialize (int argc, char **argv, int num_threads, RestOfArgs &&... args)
     Initializes the TTG runtime with the default backend. More...
     
    int rank (World world=default_execution_context())
     
    int size (World world=default_execution_context())
     
    template<typename TT >
    void invoke_once (TT &tt)
     
    template<typename TT , typename Key >
    void invoke_once (TT &&tt, Key &&key)
     
    template<typename T >
    const ttg_data_descriptorget_data_descriptor ()
     
    template<typename TTVisitor = decltype(trivial_1param_lambda)&, typename InVisitor = decltype(trivial_1param_lambda)&, typename OutVisitor = decltype(trivial_1param_lambda)&>
    auto make_traverse (TTVisitor &&tt_v=trivial_1param_lambda, InVisitor &&in_v=trivial_1param_lambda, OutVisitor &&out_v=trivial_1param_lambda)
     
    template<typename ttseqT , typename input_terminalsT , typename output_terminalsT >
    auto make_ttg (ttseqT &&tts, const input_terminalsT &ins, const output_terminalsT &outs, const std::string &name="ttg")
     
    void initialize_fpe ()
     Initializes the floating point exceptions. More...
     
    void launch_debugger (int rank, const char *exec_name, const char *cmd)
     
    void launch_lldb (int rank, const char *exec_name)
     
    void launch_gdb (int rank, const char *exec_name)
     
    bool diagnose ()
     
    void diagnose_on ()
     
    void diagnose_off ()
     
    template<typename T >
    bool has_value (std::future< T > const &f)
     
    template<typename T >
    bool has_value (std::shared_future< T > const &f)
     
    template<class T >
    void hash_combine (std::size_t &seed, T const &v)
     
    template<std::size_t Rank>
    std::ostream & operator<< (std::ostream &os, const MultiIndex< Rank > &key)
     
    template<typename T , typename... Ts>
    void print (const T &t, const Ts &... ts)
     atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by std::endl More...
     
    template<typename T , typename... Ts>
    void print_error (const T &t, const Ts &... ts)
     atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by std::endl More...
     
    template<typename T , typename... Ts>
    void log (const T &t, const Ts &... ts)
     atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by std::endl More...
     
    constexpr bool trace_enabled ()
     returns whether tracing was enabled at configure time More...
     
    bool tracing ()
     returns whether tracing is enabled More...
     
    void trace_on ()
     enables tracing; if trace_enabled()==true this has no effect More...
     
    void trace_off ()
     disables tracing; if trace_enabled()==true this has no effect More...
     
    template<typename T , typename... Ts>
    void trace (const T &t, const Ts &... ts)
     
    std::array< int, 3 > version ()
     
    const char * git_revision () noexcept
     
    const char * git_description () noexcept
     
    bool operator== (const Void &, const Void &)
     
    bool operator!= (const Void &, const Void &)
     
    std::ostream & operator<< (std::ostream &os, const ttg::Void &)
     
    ttg::Worldget_default_world ()
     
    + + + + + + + + + + + +

    +Variables

    constexpr const ttg::Runtime ttg_runtime = ttg::Runtime::MADWorld
     
    constexpr char print_separator = ' '
     
    constexpr char print_seq_separator = ','
     
    constexpr char print_seq_begin = '{'
     
    constexpr char print_seq_end = '}'
     
    +

    Typedef Documentation

    + +

    ◆ Buffer

    + +
    +
    +
    +template<typename T , typename Allocator = std::allocator<T>>
    + + + + +
    using ttg::Buffer = typedef TTG_IMPL_NS::Buffer<T, Allocator>
    +
    + +

    Definition at line 9 of file buffer.h.

    + +
    +
    + +

    ◆ CompositeOp

    + +
    +
    +
    +template<typename input_terminalsT , typename output_terminalsT >
    + + + + +
    using ttg::CompositeOp = typedef TTG<input_terminalsT, output_terminalsT>
    +
    + +

    Definition at line 43 of file fwd.h.

    + +
    +
    + +

    ◆ coroutine_handle

    + +
    +
    +
    +template<typename Promise >
    + + + + +
    using ttg::coroutine_handle = typedef TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle<Promise>
    +
    + +

    Definition at line 24 of file coroutine.h.

    + +
    +
    + +

    ◆ devicescratch

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::devicescratch = typedef TTG_IMPL_NS::devicescratch<T>
    +
    + +

    Definition at line 10 of file devicescratch.h.

    + +
    +
    + +

    ◆ OpBase

    + +
    +
    + + + + +
    using ttg::OpBase = typedef TTBase
    +
    + +

    Definition at line 27 of file fwd.h.

    + +
    +
    + +

    ◆ Ptr

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::Ptr = typedef TTG_IMPL_NS::Ptr<T>
    +
    + +

    Definition at line 9 of file ptr.h.

    + +
    +
    + +

    ◆ suspend_always

    + +
    +
    + + + + +
    using ttg::suspend_always = typedef TTG_CXX_COROUTINE_NAMESPACE::suspend_always
    +
    + +

    Definition at line 21 of file coroutine.h.

    + +
    +
    + +

    ◆ suspend_never

    + +
    +
    + + + + +
    using ttg::suspend_never = typedef TTG_CXX_COROUTINE_NAMESPACE::suspend_never
    +
    + +

    Definition at line 22 of file coroutine.h.

    + +
    +
    + +

    ◆ TemplateTaskBase

    + +
    +
    + + + + +
    using ttg::TemplateTaskBase = typedef TTBase
    +
    + +

    Definition at line 29 of file fwd.h.

    + +
    +
    + +

    ◆ TemplateTaskGraph

    + +
    +
    +
    +template<typename input_terminalsT , typename output_terminalsT >
    + + + + +
    using ttg::TemplateTaskGraph = typedef TTG<input_terminalsT, output_terminalsT>
    +
    + +

    Definition at line 39 of file fwd.h.

    + +
    +
    + +

    ◆ TTValue

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::TTValue = typedef TTG_IMPL_NS::TTValue<T>
    +
    + +

    Definition at line 9 of file ttvalue.h.

    + +
    +
    + +

    ◆ typelist

    + +
    +
    +
    +template<typename... Ts>
    + + + + +
    using ttg::typelist = typedef meta::typelist<Ts...>
    +
    + +

    Definition at line 81 of file typelist.h.

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ Execution

    + +
    +
    + + + + + +
    + + + + +
    enum ttg::Execution
    +
    +strong
    +
    + +

    denotes task execution policy

    + + + +
    Enumerator
    Inline 
    Async 
    + +

    Definition at line 11 of file execution.h.

    + +
    +
    + +

    ◆ ExecutionSpace

    + +
    +
    + + + + + +
    + + + + +
    enum ttg::ExecutionSpace
    +
    +strong
    +
    + +

    denotes task execution space

    + + + + + + +
    Enumerator
    Host 
    CUDA 
    HIP 
    L0 
    Invalid 
    + +

    Definition at line 17 of file execution.h.

    + +
    +
    + +

    ◆ Runtime

    + +
    +
    + + + + + +
    + + + + +
    enum ttg::Runtime
    +
    +strong
    +
    + + + +
    Enumerator
    PaRSEC 
    MADWorld 
    + +

    Definition at line 15 of file runtimes.h.

    + +
    +
    + +

    ◆ scope

    + +
    +
    + + + + + +
    + + + + +
    enum ttg::scope
    +
    +strong
    +
    + + + +
    Enumerator
    Allocate 
    SyncIn 
    + +

    Definition at line 5 of file devicescope.h.

    + +
    +
    + +

    ◆ TaskCoroutineID

    + +
    +
    + + + + + +
    + + + + +
    enum ttg::TaskCoroutineID
    +
    +strong
    +
    +

    describes all types of coroutine tasks known to TTG

    + + + + +
    Enumerator
    Invalid 

    not a coroutine, i.e. a standard task function, -> void

    +
    ResumableTask 

    -> ttg::resumable_task

    +
    DeviceTask 

    -> ttg::device::Task

    +
    + +

    Definition at line 222 of file coroutine.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ abort()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::abort ()
    +
    +inline
    +
    + +

    Aborts the TTG program using the default backend's ttg_abort method.

    + +

    Definition at line 62 of file run.h.

    + +
    +
    + +

    ◆ broadcast() [1/5]

    + +
    +
    +
    +template<size_t i, typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::broadcast (const rangeT & keylist,
    valueT && value 
    )
    +
    +inline
    +
    + +

    Definition at line 418 of file func.h.

    + +
    +
    + +

    ◆ broadcast() [2/5]

    + +
    +
    +
    +template<size_t i, typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::broadcast (const rangeT & keylist,
    valueT && value,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Definition at line 402 of file func.h.

    + +
    +
    + +

    ◆ broadcast() [3/5]

    + +
    +
    +
    +template<size_t i, size_t... I, typename... RangesT, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::broadcast (const std::tuple< RangesT... > & keylists,
    valueT && value 
    )
    +
    +inline
    +
    + +

    Definition at line 433 of file func.h.

    + +
    +
    + +

    ◆ broadcast() [4/5]

    + +
    +
    +
    +template<size_t i, size_t... I, typename... RangesT, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::broadcast (const std::tuple< RangesT... > & keylists,
    valueT && value,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Definition at line 424 of file func.h.

    + +
    +
    + +

    ◆ broadcast() [5/5]

    + +
    +
    +
    +template<typename rangeT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::broadcast (std::size_t i,
    const rangeT & keylist,
    valueT && value 
    )
    +
    +inline
    +
    + +

    Definition at line 409 of file func.h.

    + +
    +
    + +

    ◆ broadcastk() [1/5]

    + +
    +
    +
    +template<size_t i, typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + +
    void ttg::broadcastk (const rangeT & keylist)
    +
    +inline
    +
    + +

    Definition at line 454 of file func.h.

    + +
    +
    + +

    ◆ broadcastk() [2/5]

    + +
    +
    +
    +template<size_t i, typename rangeT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::broadcastk (const rangeT & keylist,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Definition at line 442 of file func.h.

    + +
    +
    + +

    ◆ broadcastk() [3/5]

    + +
    +
    +
    +template<size_t i, size_t... I, typename... RangesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + +
    void ttg::broadcastk (const std::tuple< RangesT... > & keylists)
    +
    +inline
    +
    + +

    Definition at line 467 of file func.h.

    + +
    +
    + +

    ◆ broadcastk() [4/5]

    + +
    +
    +
    +template<size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::broadcastk (const std::tuple< RangesT... > & keylists,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Definition at line 460 of file func.h.

    + +
    +
    + +

    ◆ broadcastk() [5/5]

    + +
    +
    +
    +template<typename rangeT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::broadcastk (std::size_t i,
    const rangeT & keylist 
    )
    +
    +inline
    +
    + +

    Definition at line 447 of file func.h.

    + +
    +
    + +

    ◆ connect() [1/5]

    + +
    +
    +
    +template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::connect (producer_tt_ptr & p,
    successor_tt_ptr & c 
    )
    +
    +inline
    +
    + +

    Connect producer output terminal outindex to consumer input terminal inindex (via unique or otherwise wrapped pointers to TTs)

    +
    Template Parameters
    + + + +
    outindexThe index of the output terminal on the producer.
    inindexThe index of the input terminal on the consumer.
    +
    +
    +
    Parameters
    + + + +
    pThe producer TT
    cThe consumer TT
    +
    +
    + +

    Definition at line 107 of file func.h.

    + +
    +
    + +

    ◆ connect() [2/5]

    + +
    +
    +
    +template<std::size_t outindex, std::size_t inindex, typename producer_tt_ptr , typename successor_tt_ptr >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::connect (producer_tt_ptr * p,
    successor_tt_ptr * c 
    )
    +
    +inline
    +
    + +

    Connect producer output terminal outindex to consumer input terminal inindex (via bare pointers to TTs)

    +
    Template Parameters
    + + + +
    outindexThe index of the output terminal on the producer.
    inindexThe index of the input terminal on the consumer.
    +
    +
    +
    Parameters
    + + + +
    pThe producer TT
    cThe consumer TT
    +
    +
    + +

    Definition at line 117 of file func.h.

    + +
    +
    + +

    ◆ connect() [3/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::connect (size_t outindex,
    size_t inindex,
    TTBaseproducer,
    TTBaseconsumer 
    )
    +
    +inline
    +
    + +

    Connect producer output terminal outindex to consumer input terminal inindex (via TTBase pointers)

    +
    Parameters
    + + + + + +
    outindexThe index of the output terminal on the producer.
    inindexThe index of the input terminal on the consumer.
    producerThe producer TT
    consumerThe consumer TT
    +
    +
    + +

    Definition at line 126 of file func.h.

    + +
    +
    + +

    ◆ connect() [4/5]

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::connect (ttg::Out< keyT, valueT > * out,
    ttg::In< keyT, valueT > * in 
    )
    +
    +inline
    +
    + +

    Connect output terminal to successor input terminal.

    +
    Parameters
    + + + +
    outThe output terminal.
    inThe input terminal.
    +
    +
    + +

    Definition at line 93 of file func.h.

    + +
    +
    + +

    ◆ connect() [5/5]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::connect (ttg::TerminalBaseout,
    ttg::TerminalBasein 
    )
    +
    +inline
    +
    + +

    Connect output terminal to successor input terminal.

    + +

    Definition at line 98 of file func.h.

    + +
    +
    + +

    ◆ default_execution_context()

    + +
    +
    + + + + + +
    + + + + + + + +
    World ttg::default_execution_context ()
    +
    +inline
    +
    + +

    Accesses the default backend's default execution context.

    +
    Note
    Dispatches to the ttg_default_execution_context method of the default backend
    +
    Returns
    the default backend's default execution context
    + +

    Definition at line 68 of file run.h.

    + +
    +
    + +

    ◆ diagnose()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg::diagnose ()
    +
    +inline
    +
    + +

    Definition at line 12 of file diagnose.h.

    + +
    +
    + +

    ◆ diagnose_off()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::diagnose_off ()
    +
    +inline
    +
    + +

    Definition at line 14 of file diagnose.h.

    + +
    +
    + +

    ◆ diagnose_on()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::diagnose_on ()
    +
    +inline
    +
    + +

    Definition at line 13 of file diagnose.h.

    + +
    +
    + +

    ◆ edges()

    + +
    +
    +
    +template<typename... inedgesT>
    + + + + + +
    + + + + + + + + +
    auto ttg::edges (inedgesT &&... args)
    +
    +inline
    +
    + +

    Make a tuple of Edges to pass to.

    +
    See also
    ttg::make_tt.
    +
    Parameters
    + + +
    argsvariable argument list of Edges
    +
    +
    +
    Returns
    A tuple of Edges.
    +
    Note
    All Edges must have the same prototype.
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 147 of file func.h.

    + +
    +
    + +

    ◆ execute()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg::execute (World world = default_execution_context())
    +
    +inline
    +
    + +

    Starts the execution in the given execution context.

    +
    Parameters
    + + +
    worldan execution context associated with the default backend
    +
    +
    +
    Note
    Dispatches to the ttg_execute method of the default backend
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 74 of file run.h.

    + +
    +
    + +

    ◆ fence()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg::fence (World world = default_execution_context())
    +
    +inline
    +
    + +

    Returns when all tasks associated with the given execution context have finished on all ranks.

    +
    Parameters
    + + +
    worldan execution context associated with the default backend
    +
    +
    +
    Note
    Dispatches to the ttg_fence method of the default backend
    +
    +This is a collective operation with respect to world
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 81 of file run.h.

    + +
    +
    + +

    ◆ finalize() [1/8]

    + +
    +
    +
    +template<std::size_t i>
    + + + + + +
    + + + + + + + +
    void ttg::finalize ()
    +
    +inline
    +
    + +

    Finalizes the TTG runtime.

    +

    This will possibly try to release as many resources as possible (some resources may only be released at the conclusion of the program). Execution of TTG code is not possible after calling this.

    Note
    Dispatches to the default backend's ttg_finalize.
    +
    +This is a collective operation with respect to the default execution context used by the matching initialize call
    + +

    Definition at line 579 of file func.h.

    + +
    +
    + +

    ◆ finalize() [2/8]

    + +
    +
    +
    +template<std::size_t i, typename keyT >
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::finalize (const keyT & key)
    +
    +inline
    +
    + +

    Definition at line 554 of file func.h.

    + +
    +
    + +

    ◆ finalize() [3/8]

    + +
    +
    +
    +template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::finalize (const keyT & key,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with non-void key.

    +
    Template Parameters
    + + +
    <i>The index of the output terminal through which to finalize connected streaming terminals.
    +
    +
    +
    Parameters
    + + + +
    keyThe key identifying the tasks for which to finalize the streaming terminal.
    tThe task's output terminals.
    +
    +
    + +

    Definition at line 542 of file func.h.

    + +
    +
    + +

    ◆ finalize() [4/8]

    + +
    +
    +
    +template<typename keyT , typename out_keyT , typename out_valueT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::finalize (const keyT & key,
    ttg::Out< out_keyT, out_valueT > & t 
    )
    +
    +inline
    +
    + +

    Finalize streaming input terminals connecting to the given output terminal for tasks identified by key.

    +
    Parameters
    + + + +
    keyThe key identifying the tasks for which to finalize the streaming terminal.
    tThe output terminal through which to finalize connected streaming terminals.
    +
    +
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 533 of file func.h.

    + +
    +
    + +

    ◆ finalize() [5/8]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg::finalize (std::size_t i)
    +
    +inline
    +
    + +

    Definition at line 573 of file func.h.

    + +
    +
    + +

    ◆ finalize() [6/8]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::finalize (std::size_t i,
    const keyT & key 
    )
    +
    +inline
    +
    + +

    Definition at line 548 of file func.h.

    + +
    +
    + +

    ◆ finalize() [7/8]

    + +
    +
    +
    +template<size_t i, typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + +
    void ttg::finalize (std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t)
    +
    +inline
    +
    + +

    Finalize streaming input terminals connected to the ith output terminal in the tuple; use this to finalize terminals with void key.

    +
    Template Parameters
    + + +
    <i>The index of the output terminal through which to finalize connected streaming terminals.
    +
    +
    +
    Parameters
    + + +
    tThe task's output terminals.
    +
    +
    + +

    Definition at line 569 of file func.h.

    + +
    +
    + +

    ◆ finalize() [8/8]

    + +
    +
    +
    +template<typename out_keyT , typename out_valueT >
    + + + + + +
    + + + + + + + + +
    void ttg::finalize (ttg::Out< out_keyT, out_valueT > & t)
    +
    +inline
    +
    + +

    Finalize streaming input terminals connected to the given output terminal; use this to finalize terminals with void key.

    +
    Parameters
    + + +
    tThe output terminal through which to finalize connected streaming terminals.
    +
    +
    + +

    Definition at line 561 of file func.h.

    + +
    +
    + +

    ◆ fuse()

    + +
    +
    +
    +template<typename keyT , typename... valuesT>
    + + + + + +
    + + + + + + + + +
    auto ttg::fuse (const Edge< keyT, valuesT > &... args)
    +
    +inline
    +
    + +

    Fuse edges into one This allows receiving one data from either of the combined edges.

    +
    Note
    All the types of the edges have to have the same prototype.
    +
    +The valuesT template argument is used only for variadic arguments.
    +
    Parameters
    + + +
    argsThe edges to combine one edge.
    +
    +
    +
    Returns
    One edge with the same type, combining the input edges.
    + +

    Definition at line 137 of file func.h.

    + +
    +
    + +

    ◆ get_data_descriptor()

    + +
    +
    +
    +template<typename T >
    + + + + + + + +
    const ttg_data_descriptor* ttg::get_data_descriptor ()
    +
    + +

    Definition at line 285 of file data_descriptor.h.

    + +
    +
    + +

    ◆ get_default_world()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::World& ttg::get_default_world ()
    +
    +inline
    +
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 80 of file world.h.

    + +
    +
    + +

    ◆ get_ptr()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    Ptr<std::decay_t<T> > ttg::get_ptr (T && obj)
    +
    +inline
    +
    + +

    Definition at line 17 of file ptr.h.

    + +
    +
    + +

    ◆ git_description()

    + +
    +
    + + + + + +
    + + + + + + + +
    const char* ttg::git_description ()
    +
    +noexcept
    +
    + +

    Definition at line 11 of file version.cc.

    + +
    +
    + +

    ◆ git_revision()

    + +
    +
    + + + + + +
    + + + + + + + +
    const char* ttg::git_revision ()
    +
    +noexcept
    +
    + +

    Definition at line 6 of file version.cc.

    + +
    +
    + +

    ◆ has_value() [1/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + +
    bool ttg::has_value (std::future< T > const & f)
    +
    + +

    Definition at line 13 of file future.h.

    + +
    +
    + +

    ◆ has_value() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + +
    bool ttg::has_value (std::shared_future< T > const & f)
    +
    + +

    Definition at line 17 of file future.h.

    + +
    +
    + +

    ◆ hash_combine()

    + +
    +
    +
    +template<class T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::hash_combine (std::size_t & seed,
    T const & v 
    )
    +
    +inline
    +
    + +

    Definition at line 147 of file hash.h.

    + +
    +
    + +

    ◆ initialize() [1/2]

    + +
    +
    +
    +template<typename... RestOfArgs>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::initialize (int argc,
    char ** argv,
    int num_threads,
    RestOfArgs &&... args 
    )
    +
    +inline
    +
    + +

    Initializes the TTG runtime with the default backend.

    +
    Note
    Dispatches to the default backend's ttg_initialize.
    +
    +This is a collective operation with respect to the default backend's default execution context
    + +

    Definition at line 31 of file run.h.

    + +
    +
    + +

    ◆ initialize() [2/2]

    + +
    +
    +
    +template<typename... RestOfArgs>
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::initialize (int argc,
    char ** argv,
    int num_threads = -1,
    RestOfArgs && ... 
    )
    +
    +
    + +

    ◆ initialize_fpe()

    + +
    +
    + + + + + + + +
    void ttg::initialize_fpe ()
    +
    + +

    Initializes the floating point exceptions.

    +

    Enables (if available) FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW; FE_UNDERFLOW and FE_INEXACT are disabled (if available).

    Warning
    This should be called from the main thread before any threads have been created (i.e. before madness::initialize()), so that all threads inherit the same floating point environment.
    + +

    Definition at line 51 of file bug.cpp.

    + +
    +
    + +

    ◆ invoke_once() [1/2]

    + +
    +
    +
    +template<typename TT , typename Key >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::invoke_once (TT && tt,
    Key && key 
    )
    +
    +inline
    +
    +

    Invoke the provided template task tt once with the provided key, on the process provided by the tt's keymap.

    Parameters
    + + + +
    tta template task to invoke
    keythe to invoke the tt on
    +
    +
    +
    Note
    invoke_once may be called by all processes and must at least be called by the process returned by tt.keymap(key)
    + +

    Definition at line 110 of file run.h.

    + +
    +
    + +

    ◆ invoke_once() [2/2]

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + +
    void ttg::invoke_once (TTtt)
    +
    +inline
    +
    +

    Invoke the provided template task tt once, on the process provided by the tt's keymap

    Parameters
    + + +
    tta template task to invoke
    +
    +
    +
    Note
    invoke_once may be called by all processes and must at least be called by the process returned by tt.keymap()
    + +

    Definition at line 97 of file run.h.

    + +
    +
    + +

    ◆ launch_debugger()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::launch_debugger (int rank,
    const char * exec_name,
    const char * cmd 
    )
    +
    + +

    Definition at line 445 of file bug.cpp.

    + +
    +
    + +

    ◆ launch_gdb()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void ttg::launch_gdb (int rank,
    const char * exec_name 
    )
    +
    + +

    Definition at line 458 of file bug.cpp.

    + +
    +
    + +

    ◆ launch_lldb()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    void ttg::launch_lldb (int rank,
    const char * exec_name 
    )
    +
    + +

    Definition at line 457 of file bug.cpp.

    + +
    +
    + +

    ◆ log()

    + +
    +
    +
    +template<typename T , typename... Ts>
    + + + + + + + + + + + + + + + + + + +
    void ttg::log (const T & t,
    const Ts &... ts 
    )
    +
    + +

    atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by std::endl

    + +

    Definition at line 146 of file print.h.

    + +
    +
    + +

    ◆ make_graph_executable()

    + +
    +
    +
    +template<typename... TTBasePtrs>
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<(std::is_convertible_v<decltype(*(std::declval<TTBasePtrs>))), TTBase &> bool ttg::make_graph_executable (TTBasePtrs &&... tts)
    +
    +inline
    +
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 80 of file func.h.

    + +
    +
    + +

    ◆ make_ptr()

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + + +
    + + + + + + + + +
    Ptr<T> ttg::make_ptr (Args &&... args)
    +
    +inline
    +
    + +

    Definition at line 12 of file ptr.h.

    + +
    +
    + +

    ◆ make_scratch()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto ttg::make_scratch (T * val,
    ttg::scope scope,
    std::size_t count = 1 
    )
    +
    + +

    Definition at line 13 of file devicescratch.h.

    + +
    +
    + +

    ◆ make_traverse()

    + +
    +
    +
    +template<typename TTVisitor = decltype(trivial_1param_lambda)&, typename InVisitor = decltype(trivial_1param_lambda)&, typename OutVisitor = decltype(trivial_1param_lambda)&>
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto ttg::make_traverse (TTVisitor && tt_v = trivial_1param_lambda,
    InVisitor && in_v = trivial_1param_lambda,
    OutVisitor && out_v = trivial_1param_lambda 
    )
    +
    + +

    Definition at line 205 of file traverse.h.

    + +
    +
    + +

    ◆ make_ttg()

    + +
    +
    +
    +template<typename ttseqT , typename input_terminalsT , typename output_terminalsT >
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    auto ttg::make_ttg (ttseqT && tts,
    const input_terminalsT & ins,
    const output_terminalsT & outs,
    const std::string & name = "ttg" 
    )
    +
    + +

    Definition at line 113 of file tt.h.

    + +
    +
    + +

    ◆ operator!=()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool ttg::operator!= (const Void,
    const Void 
    )
    +
    +inline
    +
    + +

    Definition at line 18 of file void.h.

    + +
    +
    + +

    ◆ operator<<() [1/2]

    + +
    +
    +
    +template<std::size_t Rank>
    + + + + + + + + + + + + + + + + + + +
    std::ostream& ttg::operator<< (std::ostream & os,
    const MultiIndex< Rank > & key 
    )
    +
    + +

    Definition at line 83 of file multiindex.h.

    + +
    +
    + +

    ◆ operator<<() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::ostream& ttg::operator<< (std::ostream & os,
    const ttg::Void 
    )
    +
    +inline
    +
    + +

    Definition at line 20 of file void.h.

    + +
    +
    + +

    ◆ operator==()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool ttg::operator== (const Void,
    const Void 
    )
    +
    +inline
    +
    + +

    Definition at line 17 of file void.h.

    + +
    +
    + +

    ◆ print()

    + +
    +
    +
    +template<typename T , typename... Ts>
    + + + + + + + + + + + + + + + + + + +
    void ttg::print (const T & t,
    const Ts &... ts 
    )
    +
    + +

    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by std::endl

    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 130 of file print.h.

    + +
    +
    + +

    ◆ print_error()

    + +
    +
    +
    +template<typename T , typename... Ts>
    + + + + + + + + + + + + + + + + + + +
    void ttg::print_error (const T & t,
    const Ts &... ts 
    )
    +
    + +

    atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by std::endl

    + +

    Definition at line 138 of file print.h.

    + +
    +
    + +

    ◆ rank()

    + +
    +
    + + + + + +
    + + + + + + + + +
    int ttg::rank (World world = default_execution_context())
    +
    +inline
    +
    +
    Parameters
    + + +
    worldan execution context to query the process rank from
    +
    +
    +
    Note
    Calls rank() on world
    +
    Examples
    distributed.cc.
    +
    + +

    Definition at line 85 of file run.h.

    + +
    +
    + +

    ◆ send() [1/8]

    + +
    +
    +
    +template<size_t i>
    + + + + + +
    + + + + + + + +
    void ttg::send ()
    +
    +inline
    +
    + +

    Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task.

    +
    Note
    this is provided to support send<i> with and without explicitly-passed terminal tuple
    +
    Template Parameters
    + + +
    <i>Identifies which output terminal of this template task to select for sending
    +
    +
    + +

    Definition at line 328 of file func.h.

    + +
    +
    + +

    ◆ send() [2/8]

    + +
    +
    +
    +template<size_t i, typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<meta::is_none_void_v<keyT, std::decay_t<valueT> >, void> ttg::send (const keyT & key,
    valueT && value 
    )
    +
    +inline
    +
    + +

    Sends a task id and a value to the template tasks attached to the output terminal of this template task.

    +
    Note
    this is provided to support send<i> with and without explicitly-passed terminal tuple
    +
    Template Parameters
    + + +
    <i>Identifies which output terminal of this template task to select for sending
    +
    +
    +
    Parameters
    + + + +
    [in]keythe id of the task(s) receiving the value
    [in]valuethe value to send to the receiving task(s)
    +
    +
    + +

    Definition at line 227 of file func.h.

    + +
    +
    + +

    ◆ send() [3/8]

    + +
    +
    +
    +template<size_t i, typename keyT , typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<meta::is_none_void_v<keyT, std::decay_t<valueT> >, void> ttg::send (const keyT & key,
    valueT && value,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Sends a task id and a value to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t.

    +
    Template Parameters
    + + +
    <i>Identifies which output terminal in t to select for sending
    +
    +
    +
    Parameters
    + + + + +
    [in]keythe id of the task(s) receiving the value
    [in]valuethe value to send to the receiving task(s)
    [in]ta tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
    +
    +
    + +

    Definition at line 199 of file func.h.

    + +
    +
    + +

    ◆ send() [4/8]

    + +
    +
    +
    +template<typename keyT , typename valueT , typename output_terminalT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::send (const keyT & key,
    valueT && value,
    ttg::Out< keyT, valueT > & t 
    )
    +
    +inline
    +
    + +

    Sends a task id and a value to the given output terminal.

    +
    Parameters
    + + + + +
    [in]keythe id of the task(s) receiving the value
    [in]valuethe value to send to the receiving task(s)
    [in]tthe output terminal
    +
    +
    +
    Examples
    distributed.cc, iterative.cc, reducing.cc, and simple.cc.
    +
    + +

    Definition at line 158 of file func.h.

    + +
    +
    + +

    ◆ send() [5/8]

    + +
    +
    +
    +template<typename keyT , typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<meta::is_none_void_v<keyT, std::decay_t<valueT> >, void> ttg::send (size_t i,
    const keyT & key,
    valueT && value 
    )
    +
    +inline
    +
    + +

    Sends a task id and a value to the template tasks attached to the output terminal of this template task.

    +
    Parameters
    + + + + +
    [in]iIdentifies which output terminal of this template task to select for sending
    [in]keythe id of the task(s) receiving the value
    [in]valuethe value to send to the receiving task(s)
    +
    +
    + +

    Definition at line 212 of file func.h.

    + +
    +
    + +

    ◆ send() [6/8]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg::send (std::size_t i)
    +
    +inline
    +
    + +

    Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal of this template task.

    +
    Parameters
    + + +
    [in]iIdentifies which output terminal of this template task to select for sending
    +
    +
    + +

    Definition at line 317 of file func.h.

    + +
    +
    + +

    ◆ send() [7/8]

    + +
    +
    +
    +template<size_t i, typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + +
    void ttg::send (std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t)
    +
    +inline
    +
    + +

    Sends a control message (message without an accompanying task id or a value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t.

    +
    Template Parameters
    + + +
    <i>Identifies which output terminal in t to select for sending
    +
    +
    +
    Parameters
    + + +
    [in]ta tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
    +
    +
    + +

    Definition at line 309 of file func.h.

    + +
    +
    + +

    ◆ send() [8/8]

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg::send (ttg::Out< void, void > & t)
    +
    +inline
    +
    + +

    Sends a control message (message without an accompanying task id or a value) to the given output terminal.

    +
    Parameters
    + + +
    [in]tthe output terminal
    +
    +
    + +

    Definition at line 188 of file func.h.

    + +
    +
    + +

    ◆ sendk() [1/4]

    + +
    +
    +
    +template<size_t i, typename keyT >
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::sendk (const keyT & key)
    +
    +inline
    +
    + +

    Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task.

    +
    Note
    this is provided to support sendk<i> with and without explicitly-passed terminal tuple
    +
    Template Parameters
    + + +
    <i>Identifies which output terminal of this template task to select for sending
    +
    +
    +
    Parameters
    + + +
    [in]keythe id of the task(s) receiving the value
    +
    +
    + +

    Definition at line 262 of file func.h.

    + +
    +
    + +

    ◆ sendk() [2/4]

    + +
    +
    +
    +template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::sendk (const keyT & key,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Sends a task id (without an accompanying value) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t.

    +
    Template Parameters
    + + +
    <i>Identifies which output terminal in t to select for sending
    +
    +
    +
    Parameters
    + + + +
    [in]keythe id of the task(s) receiving the value
    [in]ta tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
    +
    +
    + +

    Definition at line 239 of file func.h.

    + +
    +
    + +

    ◆ sendk() [3/4]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::sendk (const keyT & key,
    ttg::Out< keyT, void > & t 
    )
    +
    +inline
    +
    + +

    Sends a task id (without an accompanying value) to the given output terminal.

    +
    Parameters
    + + + +
    [in]keythe id of the task(s) receiving the value
    [in]tthe output terminal
    +
    +
    + +

    Definition at line 169 of file func.h.

    + +
    +
    + +

    ◆ sendk() [4/4]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::sendk (std::size_t i,
    const keyT & key 
    )
    +
    +inline
    +
    + +

    Sends a task id (without an accompanying value) to the template tasks attached to the output terminal of this template task.

    +
    Parameters
    + + + +
    [in]iIdentifies which output terminal of this template task to select for sending
    [in]keythe id of the task(s) receiving the value
    +
    +
    + +

    Definition at line 250 of file func.h.

    + +
    +
    + +

    ◆ sendv() [1/4]

    + +
    +
    +
    +template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<std::decay_t<valueT> >, void> ttg::sendv (std::size_t i,
    valueT && value 
    )
    +
    +inline
    +
    + +

    Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task.

    +
    Parameters
    + + + +
    [in]<i>Identifies which output terminal of this template task to select for sending
    [in]valuethe value to send to the receiving task(s)
    +
    +
    + +

    Definition at line 286 of file func.h.

    + +
    +
    + +

    ◆ sendv() [2/4]

    + +
    +
    +
    +template<size_t i, typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<std::decay_t<valueT> >, void> ttg::sendv (valueT && value)
    +
    +inline
    +
    + +

    Sends a value (without an accompanying task id) to the template tasks attached to the output terminal of this template task.

    +
    Note
    this is provided to support sendv<i> with and without explicitly-passed terminal tuple
    +
    Template Parameters
    + + +
    <i>Identifies which output terminal of this template task to select for sending
    +
    +
    +
    Parameters
    + + +
    [in]valuethe value to send to the receiving task(s)
    +
    +
    + +

    Definition at line 299 of file func.h.

    + +
    +
    + +

    ◆ sendv() [3/4]

    + +
    +
    +
    +template<size_t i, typename valueT , typename... out_keysT, typename... out_valuesT, ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<std::decay_t<valueT> >, void> ttg::sendv (valueT && value,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Sends a value (without an accompanying task id) to the template tasks attached to the output terminal selected in the explicitly given terminal tuple t.

    +
    Template Parameters
    + + +
    <i>Identifies which output terminal in t to select for sending
    +
    +
    +
    Parameters
    + + + +
    [in]valuethe value to send to the receiving task(s)
    [in]ta tuple of output terminals (typically, this is the output terminal of the template task where this is invoked)
    +
    +
    + +

    Definition at line 274 of file func.h.

    + +
    +
    + +

    ◆ sendv() [4/4]

    + +
    +
    +
    +template<typename valueT , ttg::Runtime Runtime = ttg::ttg_runtime>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::sendv (valueT && value,
    ttg::Out< void, valueT > & t 
    )
    +
    +inline
    +
    + +

    Sends a value (without an accompanying task id) to the given output terminal.

    +
    Parameters
    + + + +
    [in]valuethe value to send to the receiving task(s)
    [in]tthe output terminal
    +
    +
    +
    Examples
    simple.cc.
    +
    + +

    Definition at line 179 of file func.h.

    + +
    +
    + +

    ◆ set_size() [1/8]

    + +
    +
    +
    +template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::set_size (const keyT & key,
    const std::size_t size 
    )
    +
    +inline
    +
    + +

    Definition at line 497 of file func.h.

    + +
    +
    + +

    ◆ set_size() [2/8]

    + +
    +
    +
    +template<size_t i, typename keyT , typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::set_size (const keyT & key,
    const std::size_t size,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Set the size of all streaming input terminals connected to the output terminal for a task identified by key.

    +
    Template Parameters
    + + +
    <i>The index of the terminal through which to set the size.
    +
    +
    +
    Parameters
    + + + + +
    keyThe key identifying the task (or tasks) for which to set the streaming terminal size.
    sizeTHe size to set (i.e., the number of elements to accumulate).
    tThe tasks's output terminals.
    +
    +
    + +

    Definition at line 484 of file func.h.

    + +
    +
    + +

    ◆ set_size() [3/8]

    + +
    +
    +
    +template<typename keyT , typename out_valueT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::set_size (const keyT & key,
    const std::size_t size,
    ttg::Out< keyT, out_valueT > & t 
    )
    +
    +inline
    +
    + +

    Definition at line 474 of file func.h.

    + +
    +
    + +

    ◆ set_size() [4/8]

    + +
    +
    +
    +template<std::size_t i>
    + + + + + +
    + + + + + + + + +
    void ttg::set_size (const std::size_t size)
    +
    +inline
    +
    + +

    Definition at line 524 of file func.h.

    + +
    +
    + +

    ◆ set_size() [5/8]

    + +
    +
    +
    +template<size_t i, typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::set_size (const std::size_t size,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Set the size of all streaming input terminals connected to an output terminal for a task, with void key.

    +
    Template Parameters
    + + +
    <i>The index of the terminal for which to set the size.
    +
    +
    +
    Parameters
    + + + +
    sizeTHe size to set (i.e., the number of elements to accumulate).
    tThe task's output terminals.
    +
    +
    + +

    Definition at line 514 of file func.h.

    + +
    +
    + +

    ◆ set_size() [6/8]

    + +
    +
    +
    +template<typename out_keyT , typename out_valueT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::set_size (const std::size_t size,
    ttg::Out< out_keyT, out_valueT > & t 
    )
    +
    +inline
    +
    + +

    Set the size of all streaming input terminals connected to an output terminal with void key.

    +
    Parameters
    + + + +
    sizeTHe size to set (i.e., the number of elements to accumulate).
    tThe output terminal through which to set the size.
    +
    +
    + +

    Definition at line 505 of file func.h.

    + +
    +
    + +

    ◆ set_size() [7/8]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<keyT>, void> ttg::set_size (std::size_t i,
    const keyT & key,
    const std::size_t size 
    )
    +
    +inline
    +
    + +

    Definition at line 490 of file func.h.

    + +
    +
    + +

    ◆ set_size() [8/8]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::set_size (std::size_t i,
    const std::size_t size 
    )
    +
    +inline
    +
    + +

    Definition at line 518 of file func.h.

    + +
    +
    + +

    ◆ size()

    + +
    +
    + + + + + +
    + + + + + + + + +
    int ttg::size (World world = default_execution_context())
    +
    +inline
    +
    +
    Parameters
    + + +
    worldan execution context whose number of processes to query
    +
    +
    +
    Note
    Calls size() on world
    + +

    Definition at line 89 of file run.h.

    + +
    +
    + +

    ◆ trace()

    + +
    +
    +
    +template<typename T , typename... Ts>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::trace (const T & t,
    const Ts &... ts 
    )
    +
    +inline
    +
    +

    if trace_enabled()==true and tracing()==true atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by std::endl

    + +

    Definition at line 43 of file trace.h.

    + +
    +
    + +

    ◆ trace_enabled()

    + +
    +
    + + + + + +
    + + + + + + + +
    constexpr bool ttg::trace_enabled ()
    +
    +inlineconstexpr
    +
    + +

    returns whether tracing was enabled at configure time

    + +

    Definition at line 15 of file trace.h.

    + +
    +
    + +

    ◆ trace_off()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::trace_off ()
    +
    +inline
    +
    + +

    disables tracing; if trace_enabled()==true this has no effect

    + +

    Definition at line 38 of file trace.h.

    + +
    +
    + +

    ◆ trace_on()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::trace_on ()
    +
    +inline
    +
    + +

    enables tracing; if trace_enabled()==true this has no effect

    + +

    Definition at line 36 of file trace.h.

    + +
    +
    + +

    ◆ tracing()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg::tracing ()
    +
    +inline
    +
    + +

    returns whether tracing is enabled

    +

    To enable tracing invoke trace_on(). To disable tracing

    Returns
    false, if trace_enabled()==false, otherwise returns true if the most recent call to trace_on() has not been followed by trace_off()
    + +

    Definition at line 28 of file trace.h.

    + +
    +
    + +

    ◆ version()

    + +
    +
    + + + + + + + +
    std::array<int, 3> ttg::version ()
    +
    + +

    Definition at line 4 of file version.cc.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ print_separator

    + +
    +
    + + + + + +
    + + + + +
    constexpr char ttg::print_separator = ' '
    +
    +constexpr
    +
    + +

    Definition at line 12 of file print.h.

    + +
    +
    + +

    ◆ print_seq_begin

    + +
    +
    + + + + + +
    + + + + +
    constexpr char ttg::print_seq_begin = '{'
    +
    +constexpr
    +
    + +

    Definition at line 14 of file print.h.

    + +
    +
    + +

    ◆ print_seq_end

    + +
    +
    + + + + + +
    + + + + +
    constexpr char ttg::print_seq_end = '}'
    +
    +constexpr
    +
    + +

    Definition at line 15 of file print.h.

    + +
    +
    + +

    ◆ print_seq_separator

    + +
    +
    + + + + + +
    + + + + +
    constexpr char ttg::print_seq_separator = ','
    +
    +constexpr
    +
    + +

    Definition at line 13 of file print.h.

    + +
    +
    + +

    ◆ ttg_runtime

    + +
    +
    + + + + + +
    + + + + +
    constexpr const ttg::Runtime ttg::ttg_runtime = ttg::Runtime::MADWorld
    +
    +constexpr
    +
    + +

    Definition at line 20 of file import.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1base.html b/dox-master/namespacettg_1_1base.html new file mode 100644 index 000000000..d50be51a1 --- /dev/null +++ b/dox-master/namespacettg_1_1base.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::base Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::base Namespace Reference
    +
    +
    + + + + + + + +

    +Classes

    class  WorldImplBase
     Base class for implementation-specific Worlds. More...
     
    class  World
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1detail.html b/dox-master/namespacettg_1_1detail.html new file mode 100644 index 000000000..2a516c929 --- /dev/null +++ b/dox-master/namespacettg_1_1detail.html @@ -0,0 +1,2566 @@ + + + + + + + + + + + ttg: ttg::detail Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  default_keymap_impl
     
    struct  default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >
     
    struct  default_priomap_impl
     the default priority map implementation More...
     
    struct  edges_tuple
     
    struct  edges_tuple< keyT, std::tuple< valuesT... > >
     
    struct  value_copy_handler
     
    struct  value_copy_handler< ttg::Runtime::PaRSEC >
     
    class  boost_optimized_oarchive
     optimized data-only serializer More...
     
    class  boost_optimized_iarchive
     optimized data-only deserializer for boost_optimized_oarchive More...
     
    struct  is_boost_array_serializable
     
    struct  is_boost_array_serializable< Archive, T >
     
    struct  is_boost_serializable
     
    struct  is_boost_default_serializable
     
    struct  is_boost_buffer_serializable
     
    struct  is_boost_default_buffer_serializable
     
    struct  is_madness_output_serializable
     
    struct  is_madness_input_serializable
     
    struct  is_madness_buffer_serializable
     
    struct  is_madness_user_buffer_serializable
     
    class  counting_streambuf
     streambuf that counts bytes More...
     
    class  iovec_ostreambuf
     streambuf that records vector of address-size pairs More...
     
    class  iovec_istreambuf
     streambuf that reads vector of address-size pairs More...
     
    class  byte_ostreambuf
     streambuf that writes bytes to a buffer in memory More...
     
    class  byte_istreambuf
     streambuf that writes bytes to a buffer in memory More...
     
    struct  is_printable
     
    struct  is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> >
     
    struct  printer_helper
     
    struct  printer_helper< T, std::enable_if_t< is_printable< T >::value > >
     
    struct  is_user_buffer_serializable
     is_user_buffer_serializable<T> evaluates to true if T can be serialized to a buffer using user-provided methods More...
     
    struct  is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > >
     
    struct  is_memcpyable
     reports whether objects of type T are safe to std::memcpy More...
     
    struct  ContainerWrapper
     
    struct  ContainerWrapper< void, valueT >
     
    struct  ContainerWrapper< keyT, void >
     
    struct  ContainerWrapper< ttg::Void, valueT >
     
    struct  ContainerWrapper< void, void >
     
    struct  input_terminals_tuple
     
    struct  input_terminals_tuple< keyT, std::tuple< valuesT... > >
     
    class  Traverse
     Traverses a graph of TTs in depth-first manner following out edges. More...
     
    class  Backtrace
     
    class  MemoryWatchpoint_x86_64
     MemoryWatchpoint represents a hardware watchpoint for a memory location Implements a memory watchpoint on x86 ... only implemented for macOS so far this is a slightly tweaked version of https://m.habrahabr.ru/post/103073/ see also http://www.sandpile.org/x86/drx.htm for the x86 debugging register map. More...
     
    class  FNVhasher
     byte-wise hasher More...
     
    struct  hash_combine_impl
     combines 2 hash values; implementation based on boost::hash_combine_impl<64> from Boost v1.79.0 More...
     
    struct  default_keymap
     
    struct  default_priomap
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<typename keyT , typename valuesT >
    using edges_tuple_t = typename edges_tuple< keyT, valuesT >::type
     
    using boost_counting_oarchive = boost_optimized_oarchive< counting_streambuf >
     an archive that counts the size of serialized representation of an object More...
     
    using boost_iovec_oarchive = boost_optimized_oarchive< iovec_ostreambuf >
     an archive that constructs an IOVEC (= sequence of {pointer,size} pairs) representation of an object More...
     
    using boost_buffer_oarchive = boost_optimized_oarchive< boost::iostreams::stream< boost::iostreams::basic_array_sink< char > >>
     an archive that constructs serialized representation of an object in a memory buffer More...
     
    using boost_byte_oarchive = boost_optimized_oarchive< byte_ostreambuf >
     an archive that constructs serialized representation of an object in a memory buffer, in an optimized manner More...
     
    using boost_iovec_iarchive = boost_optimized_iarchive< iovec_istreambuf >
     the deserializer for boost_iovec_oarchive More...
     
    using boost_buffer_iarchive = boost_optimized_iarchive< boost::iostreams::stream< boost::iostreams::basic_array_source< char > >>
     the deserializer for boost_buffer_oarchive More...
     
    using boost_byte_iarchive = boost_optimized_iarchive< byte_istreambuf >
     the deserializer for boost_byte_oarchive More...
     
    template<typename T , typename Archive >
    using has_member_serialize_t = decltype(std::declval< T & >().serialize(std::declval< Archive & >()))
     
    template<typename T , typename Archive >
    using has_member_serialize_with_version_t = decltype(std::declval< T & >().serialize(std::declval< Archive & >(), 0u))
     
    template<typename T , typename Archive >
    using has_member_load_t = decltype(std::declval< T & >().load(std::declval< Archive & >()))
     
    template<typename T , typename Archive >
    using has_member_load_with_version_t = decltype(std::declval< T & >().load(std::declval< Archive & >(), 0u))
     
    template<typename T , typename Archive >
    using has_member_save_t = decltype(std::declval< T & >().save(std::declval< Archive & >()))
     
    template<typename T , typename Archive >
    using has_member_save_with_version_t = decltype(std::declval< T & >().save(std::declval< Archive & >(), 0u))
     
    template<typename T , typename Archive >
    using has_freestanding_serialize_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >()))
     
    template<typename T , typename Archive >
    using has_freestanding_serialize_with_version_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), 0u))
     
    template<typename T , typename Archive >
    using has_freestanding_boost_serialize_with_version_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), boost::serialization::version_as_adl_tag))
     
    template<typename keyT , typename... valuesT>
    using input_terminals_tuple_t = typename input_terminals_tuple< keyT, valuesT... >::type
     
    + + + +

    +Enumerations

    enum class  StdOstreamTag { Cout +, Cerr + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    bool & tt_base_trace_accessor (void)
     
    bool & op_base_lazy_pull_accessor (void)
     
    void register_world (ttg::base::WorldImplBase &world)
     
    void deregister_world (ttg::base::WorldImplBase &world)
     
    void destroy_worlds (void)
     
    const char * execution_space_name (ExecutionSpace space) noexcept
     
    template<typename keyT , typename valueT >
    auto get_out_terminal (size_t i, const char *func)
     
    template<typename keyT >
    auto get_out_base_terminal (size_t i, const char *func)
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT , typename... out_keysT, typename... out_valuesT>
    void broadcast (const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT >
    void broadcast (const std::tuple< RangesT... > &keylists, valueT &&value)
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT>
    void broadcast (const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)
     
    template<size_t KeyId, size_t i, size_t... I, typename... RangesT>
    void broadcast (const std::tuple< RangesT... > &keylists)
     
    template<typename Archive , typename T >
    void oarchive_save_override_optimized_dispatch (Archive &ar, const T &t)
     
    template<typename Archive , typename T >
    void iarchive_load_override_optimized_dispatch (Archive &ar, T &t)
     
    auto make_boost_buffer_oarchive (void *const buf, std::size_t size, std::size_t buf_offset=0)
     constructs a boost_buffer_oarchive object More...
     
    template<std::size_t N>
    auto make_boost_buffer_oarchive (char(&buf)[N], std::size_t buf_offset=0)
     constructs a boost_buffer_oarchive object More...
     
    auto make_boost_buffer_iarchive (const void *const buf, std::size_t size, std::size_t buf_offset=0)
     constructs a boost_buffer_iarchive object More...
     
    template<std::size_t N>
    auto make_boost_buffer_iarchive (const char(&buf)[N], std::size_t buf_offset=0)
     constructs a boost_buffer_iarchive object More...
     
    bool & diagnose_accessor ()
     
    int num_threads ()
     Determine the number of compute threads to use by TTG when not given to ttg::initialize More...
     
    bool force_device_comm ()
     
    std::ostream & print_helper (std::ostream &out)
     
    template<typename T , typename... Ts>
    std::ostream & print_helper (std::ostream &out, const T &t, const Ts &... ts)
     
    template<StdOstreamTag >
    std::mutex & print_mutex_accessor ()
     
    bool & trace_accessor ()
     
    template<std::size_t... Is>
    auto make_void_tuple (std::index_sequence< Is... >)
     
    template<std::size_t N>
    auto make_void_tuple ()
     
    template<typename WorldT >
    WorldT & default_world_accessor ()
     
    template<typename WorldT >
    void set_default_world (WorldT &world)
     
    template<typename WorldT >
    void set_default_world (WorldT &&world)
     
    template<typename WorldImplT >
    std::list< WorldImplT * > & world_registry_accessor ()
     
    template<typename WorldImplT >
    void register_world (WorldImplT &world)
     
    template<typename WorldImplT >
    void deregister_world (WorldImplT &world)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    template<typename T >
    constexpr bool is_boost_archive_v = false
     
    template<typename T >
    constexpr bool is_boost_input_archive_v = false
     
    template<typename T >
    constexpr bool is_boost_output_archive_v = false
     
    template<typename T >
    constexpr bool is_boost_buffer_serializable_v = is_boost_buffer_serializable<T>::value
     evaluates to true if can serialize T to/from buffer using Boost serialization More...
     
    template<typename T >
    constexpr bool is_boost_default_buffer_serializable_v = is_boost_default_buffer_serializable<T>::value
     evaluates to true if can serialize T to/from buffer using default Boost serialization More...
     
    template<typename T >
    constexpr bool is_boost_user_buffer_serializable_v
     evaluates to true if can serialize T to/from buffer using user-provided Boost serialization More...
     
    template<typename T >
    constexpr bool is_madness_archive_v = false
     
    template<typename T >
    constexpr bool is_madness_input_archive_v = false
     
    template<typename T >
    constexpr bool is_madness_output_archive_v = false
     
    template<typename T >
    constexpr bool is_madness_buffer_serializable_v = is_madness_buffer_serializable<T>::value
     evaluates to true if can serialize T to/from buffer using MADNESS serialization More...
     
    template<typename T >
    constexpr bool is_madness_user_buffer_serializable_v = is_madness_user_buffer_serializable<T>::value
     evaluates to true if can serialize T to/from buffer using user-provided MADNESS serialization More...
     
    template<typename T , typename Archive >
    constexpr bool has_member_serialize_v = ttg::meta::is_detected_v<has_member_serialize_t, T, Archive>
     
    template<typename T , typename Archive >
    constexpr bool has_member_serialize_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool has_member_load_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool has_member_save_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool has_freestanding_serialize_v
     
    template<typename T , typename Archive >
    constexpr bool has_freestanding_serialize_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool has_freestanding_boost_serialize_with_version_v
     
    template<typename T , typename Enabler = void>
    constexpr bool is_archive_v = false
     
    template<typename T , typename Enabler >
    constexpr bool is_input_archive_v = false
     
    template<typename T , typename Enabler = void>
    constexpr bool is_output_archive_v = false
     
    template<typename T >
    constexpr bool is_user_buffer_serializable_v = is_user_buffer_serializable<T>::value
     
    template<typename T >
    constexpr bool is_memcpyable_override_v = std::is_trivially_copyable_v<T>
     can be used to override the default value of is_memcpyable<T>::value More...
     
    template<typename T >
    constexpr bool is_memcpyable_v = is_memcpyable<T>::value
     
    +

    Typedef Documentation

    + +

    ◆ boost_buffer_iarchive

    + +
    +
    + + + + +
    using ttg::detail::boost_buffer_iarchive = typedef boost_optimized_iarchive<boost::iostreams::stream<boost::iostreams::basic_array_source<char> >>
    +
    + +

    the deserializer for boost_buffer_oarchive

    + +

    Definition at line 378 of file archive.h.

    + +
    +
    + +

    ◆ boost_buffer_oarchive

    + +
    +
    + + + + +
    using ttg::detail::boost_buffer_oarchive = typedef boost_optimized_oarchive<boost::iostreams::stream<boost::iostreams::basic_array_sink<char> >>
    +
    + +

    an archive that constructs serialized representation of an object in a memory buffer

    + +

    Definition at line 218 of file archive.h.

    + +
    +
    + +

    ◆ boost_byte_iarchive

    + +
    +
    + +

    the deserializer for boost_byte_oarchive

    + +

    Definition at line 382 of file archive.h.

    + +
    +
    + +

    ◆ boost_byte_oarchive

    + +
    +
    + +

    an archive that constructs serialized representation of an object in a memory buffer, in an optimized manner

    + +

    Definition at line 222 of file archive.h.

    + +
    +
    + +

    ◆ boost_counting_oarchive

    + +
    +
    + +

    an archive that counts the size of serialized representation of an object

    + +

    Definition at line 212 of file archive.h.

    + +
    +
    + +

    ◆ boost_iovec_iarchive

    + +
    +
    + +

    the deserializer for boost_iovec_oarchive

    + +

    Definition at line 375 of file archive.h.

    + +
    +
    + +

    ◆ boost_iovec_oarchive

    + +
    +
    + +

    an archive that constructs an IOVEC (= sequence of {pointer,size} pairs) representation of an object

    + +

    Definition at line 215 of file archive.h.

    + +
    +
    + +

    ◆ edges_tuple_t

    + +
    +
    +
    +template<typename keyT , typename valuesT >
    + + + + +
    using ttg::detail::edges_tuple_t = typedef typename edges_tuple<keyT, valuesT>::type
    +
    + +

    Definition at line 191 of file edge.h.

    + +
    +
    + +

    ◆ has_freestanding_boost_serialize_with_version_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_freestanding_boost_serialize_with_version_t = typedef decltype(serialize(std::declval<Archive&>(), std::declval<T&>(), boost::serialization::version_as_adl_tag))
    +
    +

    helps to detect that T supports freestanding boost::serialization::serialize function that accepts version

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 74 of file traits.h.

    + +
    +
    + +

    ◆ has_freestanding_serialize_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_freestanding_serialize_t = typedef decltype(serialize(std::declval<Archive&>(), std::declval<T&>()))
    +
    +

    helps to detect that T supports freestanding serialize function discoverable by ADL

    Note
    use in combination with std::is_detected_v or ttg::meta::is_detected_v
    + +

    Definition at line 63 of file traits.h.

    + +
    +
    + +

    ◆ has_freestanding_serialize_with_version_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_freestanding_serialize_with_version_t = typedef decltype(serialize(std::declval<Archive&>(), std::declval<T&>(), 0u))
    +
    +

    helps to detect that T supports freestanding serialize function discoverable by ADL that accepts version

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 68 of file traits.h.

    + +
    +
    + +

    ◆ has_member_load_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_member_load_t = typedef decltype(std::declval<T&>().load(std::declval<Archive&>()))
    +
    +

    helps to detect that T has a member serialization method that accepts single argument of type Archive

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 40 of file traits.h.

    + +
    +
    + +

    ◆ has_member_load_with_version_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_member_load_with_version_t = typedef decltype(std::declval<T&>().load(std::declval<Archive&>(), 0u))
    +
    +

    helps to detect that T has a member serialization method that accepts one argument of type Archive and an unsigned version

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 46 of file traits.h.

    + +
    +
    + +

    ◆ has_member_save_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_member_save_t = typedef decltype(std::declval<T&>().save(std::declval<Archive&>()))
    +
    +

    helps to detect that T has a member serialization method that accepts single argument of type Archive

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 52 of file traits.h.

    + +
    +
    + +

    ◆ has_member_save_with_version_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_member_save_with_version_t = typedef decltype(std::declval<T&>().save(std::declval<Archive&>(), 0u))
    +
    +

    helps to detect that T has a member serialization method that accepts one argument of type Archive and an unsigned version

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 58 of file traits.h.

    + +
    +
    + +

    ◆ has_member_serialize_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_member_serialize_t = typedef decltype(std::declval<T&>().serialize(std::declval<Archive&>()))
    +
    +

    helps to detect that T has a member serialization method that accepts single argument of type Archive

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 28 of file traits.h.

    + +
    +
    + +

    ◆ has_member_serialize_with_version_t

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + +
    using ttg::detail::has_member_serialize_with_version_t = typedef decltype(std::declval<T&>().serialize(std::declval<Archive&>(), 0u))
    +
    +

    helps to detect that T has a member serialization method that accepts one argument of type Archive and an unsigned version

    Note
    use in combination with ttg::meta::is_detected_v
    + +

    Definition at line 34 of file traits.h.

    + +
    +
    + +

    ◆ input_terminals_tuple_t

    + +
    +
    +
    +template<typename keyT , typename... valuesT>
    + + + + +
    using ttg::detail::input_terminals_tuple_t = typedef typename input_terminals_tuple<keyT, valuesT...>::type
    +
    + +

    Definition at line 346 of file terminal.h.

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ StdOstreamTag

    + +
    +
    + + + + + +
    + + + + +
    enum ttg::detail::StdOstreamTag
    +
    +strong
    +
    + + + +
    Enumerator
    Cout 
    Cerr 
    + +

    Definition at line 120 of file print.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ broadcast() [1/4]

    + +
    +
    +
    +template<size_t KeyId, size_t i, size_t... I, typename... RangesT>
    + + + + + +
    + + + + + + + + +
    void ttg::detail::broadcast (const std::tuple< RangesT... > & keylists)
    +
    +inline
    +
    + +

    Definition at line 382 of file func.h.

    + +
    +
    + +

    ◆ broadcast() [2/4]

    + +
    +
    +
    +template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::detail::broadcast (const std::tuple< RangesT... > & keylists,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Definition at line 368 of file func.h.

    + +
    +
    + +

    ◆ broadcast() [3/4]

    + +
    +
    +
    +template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::detail::broadcast (const std::tuple< RangesT... > & keylists,
    valueT && value 
    )
    +
    +inline
    +
    + +

    Definition at line 350 of file func.h.

    + +
    +
    + +

    ◆ broadcast() [4/4]

    + +
    +
    +
    +template<size_t KeyId, size_t i, size_t... I, typename... RangesT, typename valueT , typename... out_keysT, typename... out_valuesT>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg::detail::broadcast (const std::tuple< RangesT... > & keylists,
    valueT && value,
    std::tuple< ttg::Out< out_keysT, out_valuesT >... > & t 
    )
    +
    +inline
    +
    + +

    Definition at line 335 of file func.h.

    + +
    +
    + +

    ◆ default_world_accessor()

    + +
    +
    +
    +template<typename WorldT >
    + + + + + + + +
    WorldT& ttg::detail::default_world_accessor ()
    +
    + +

    Definition at line 23 of file world.h.

    + +
    +
    + +

    ◆ deregister_world() [1/2]

    + +
    +
    + + + + + + + + +
    void ttg::detail::deregister_world (ttg::base::WorldImplBaseworld)
    +
    + +
    +
    + +

    ◆ deregister_world() [2/2]

    + +
    +
    +
    +template<typename WorldImplT >
    + + + + + + + + +
    void ttg::detail::deregister_world (WorldImplT & world)
    +
    + +

    Definition at line 61 of file world.h.

    + +
    +
    + +

    ◆ destroy_worlds()

    + +
    +
    + + + + + + + + +
    void ttg::detail::destroy_worlds (void )
    +
    + +

    Definition at line 70 of file world.h.

    + +
    +
    + +

    ◆ diagnose_accessor()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool& ttg::detail::diagnose_accessor ()
    +
    +inline
    +
    + +

    Definition at line 6 of file diagnose.h.

    + +
    +
    + +

    ◆ execution_space_name()

    + +
    +
    + + + + + +
    + + + + + + + + +
    const char* ttg::detail::execution_space_name (ExecutionSpace space)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 26 of file execution.h.

    + +
    +
    + +

    ◆ force_device_comm()

    + +
    +
    + + + + + + + +
    bool ttg::detail::force_device_comm ()
    +
    +

    Override whether TTG should attempt to communicate to and from device buffers. TTG will attempt to query device support from the underlying MPI implementation (e.g., using the unofficial extension MPIX_Query_cuda_support). However, since not all MPI implementations support this extension, users can force the use of device buffers in communication by setting TTG_FORCE_DEVICE_COMM to a non-negative number.

    Returns
    true if the user wants to force the use of device-side buffers in communicaton.
    + +

    Definition at line 33 of file env.cpp.

    + +
    +
    + +

    ◆ get_out_base_terminal()

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto ttg::detail::get_out_base_terminal (size_t i,
    const char * func 
    )
    +
    +inline
    +
    + +

    Definition at line 51 of file func.h.

    + +
    +
    + +

    ◆ get_out_terminal()

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto ttg::detail::get_out_terminal (size_t i,
    const char * func 
    )
    +
    +inline
    +
    + +

    Definition at line 29 of file func.h.

    + +
    +
    + +

    ◆ iarchive_load_override_optimized_dispatch()

    + +
    +
    +
    +template<typename Archive , typename T >
    + + + + + + + + + + + + + + + + + + +
    void ttg::detail::iarchive_load_override_optimized_dispatch (Archive & ar,
    T & t 
    )
    +
    + +

    Definition at line 48 of file archive.h.

    + +
    +
    + +

    ◆ make_boost_buffer_iarchive() [1/2]

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto ttg::detail::make_boost_buffer_iarchive (const char(&) buf[N],
    std::size_t buf_offset = 0 
    )
    +
    +inline
    +
    + +

    constructs a boost_buffer_iarchive object

    +
    Template Parameters
    + + +
    Narray size
    +
    +
    +
    Parameters
    + + + +
    [in]bufa buffer from which serialized representation will be read
    [in]buf_offsetif non-zero, specifies the first byte of buf from which data will be read
    +
    +
    +
    Returns
    a boost_buffer_iarchive object referring to buf
    + +

    Definition at line 402 of file archive.h.

    + +
    +
    + +

    ◆ make_boost_buffer_iarchive() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto ttg::detail::make_boost_buffer_iarchive (const void *const buf,
    std::size_t size,
    std::size_t buf_offset = 0 
    )
    +
    +inline
    +
    + +

    constructs a boost_buffer_iarchive object

    +
    Parameters
    + + + + +
    [in]bufpointer to a memory buffer from which serialized representation will be read
    [in]sizethe size of the buffer, in bytes
    [in]buf_offsetif non-zero, specifies the first byte of buf from which data will be read
    +
    +
    +
    Returns
    a boost_buffer_iarchive object referring to buf
    + +

    Definition at line 390 of file archive.h.

    + +
    +
    + +

    ◆ make_boost_buffer_oarchive() [1/2]

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    auto ttg::detail::make_boost_buffer_oarchive (char(&) buf[N],
    std::size_t buf_offset = 0 
    )
    +
    +inline
    +
    + +

    constructs a boost_buffer_oarchive object

    +
    Template Parameters
    + + +
    Narray size
    +
    +
    +
    Parameters
    + + + +
    [in]bufa buffer to which serialized representation will be written
    [in]buf_offsetif non-zero, specifies the first byte of buf to which data will be written
    +
    +
    +
    Returns
    a boost_buffer_oarchive object referring to buf
    + +

    Definition at line 242 of file archive.h.

    + +
    +
    + +

    ◆ make_boost_buffer_oarchive() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto ttg::detail::make_boost_buffer_oarchive (void *const buf,
    std::size_t size,
    std::size_t buf_offset = 0 
    )
    +
    +inline
    +
    + +

    constructs a boost_buffer_oarchive object

    +
    Parameters
    + + + + +
    [in]bufpointer to a memory buffer to which serialized representation will be written
    [in]sizethe size of the buffer, in bytes
    [in]buf_offsetif non-zero, specifies the first byte of buf to which data will be written
    +
    +
    +
    Returns
    a boost_buffer_oarchive object referring to buf
    + +

    Definition at line 230 of file archive.h.

    + +
    +
    + +

    ◆ make_void_tuple() [1/2]

    + +
    +
    +
    +template<std::size_t N>
    + + + + + + + +
    auto ttg::detail::make_void_tuple ()
    +
    + +

    Definition at line 36 of file void.h.

    + +
    +
    + +

    ◆ make_void_tuple() [2/2]

    + +
    +
    +
    +template<std::size_t... Is>
    + + + + + + + + +
    auto ttg::detail::make_void_tuple (std::index_sequence< Is... > )
    +
    + +

    Definition at line 30 of file void.h.

    + +
    +
    + +

    ◆ num_threads()

    + +
    +
    + + + + + + + +
    int ttg::detail::num_threads ()
    +
    + +

    Determine the number of compute threads to use by TTG when not given to ttg::initialize

    +

    The number of threads is queried from the environment variable TTG_NUM_THREADS; if not given, then std::thread::hardware_concurrency is used.

    Returns
    the number of threads to use by TTG
    +
    Postcondition
    num_threads()>0
    + +

    Definition at line 15 of file env.cpp.

    + +
    +
    + +

    ◆ oarchive_save_override_optimized_dispatch()

    + +
    +
    +
    +template<typename Archive , typename T >
    + + + + + + + + + + + + + + + + + + +
    void ttg::detail::oarchive_save_override_optimized_dispatch (Archive & ar,
    const T & t 
    )
    +
    + +

    Definition at line 23 of file archive.h.

    + +
    +
    + +

    ◆ op_base_lazy_pull_accessor()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool& ttg::detail::op_base_lazy_pull_accessor (void )
    +
    +inline
    +
    + +

    Definition at line 23 of file tt.h.

    + +
    +
    + +

    ◆ print_helper() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    std::ostream& ttg::detail::print_helper (std::ostream & out)
    +
    +inline
    +
    + +

    Definition at line 112 of file print.h.

    + +
    +
    + +

    ◆ print_helper() [2/2]

    + +
    +
    +
    +template<typename T , typename... Ts>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    std::ostream& ttg::detail::print_helper (std::ostream & out,
    const T & t,
    const Ts &... ts 
    )
    +
    +inline
    +
    + +

    Definition at line 114 of file print.h.

    + +
    +
    + +

    ◆ print_mutex_accessor()

    + +
    +
    +
    +template<StdOstreamTag >
    + + + + + +
    + + + + + + + +
    std::mutex& ttg::detail::print_mutex_accessor ()
    +
    +inline
    +
    + +

    Definition at line 122 of file print.h.

    + +
    +
    + +

    ◆ register_world() [1/2]

    + +
    +
    + + + + + + + + +
    void ttg::detail::register_world (ttg::base::WorldImplBaseworld)
    +
    + +
    +
    + +

    ◆ register_world() [2/2]

    + +
    +
    +
    +template<typename WorldImplT >
    + + + + + + + + +
    void ttg::detail::register_world (WorldImplT & world)
    +
    + +

    Definition at line 55 of file world.h.

    + +
    +
    + +

    ◆ set_default_world() [1/2]

    + +
    +
    +
    +template<typename WorldT >
    + + + + + +
    + + + + + + + + +
    void ttg::detail::set_default_world (WorldT && world)
    +
    +inline
    +
    + +

    Definition at line 31 of file world.h.

    + +
    +
    + +

    ◆ set_default_world() [2/2]

    + +
    +
    +
    +template<typename WorldT >
    + + + + + +
    + + + + + + + + +
    void ttg::detail::set_default_world (WorldT & world)
    +
    +inline
    +
    + +

    Definition at line 29 of file world.h.

    + +
    +
    + +

    ◆ trace_accessor()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool& ttg::detail::trace_accessor ()
    +
    +inline
    +
    + +

    Definition at line 8 of file trace.h.

    + +
    +
    + +

    ◆ tt_base_trace_accessor()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool& ttg::detail::tt_base_trace_accessor (void )
    +
    +inline
    +
    + +

    Definition at line 18 of file tt.h.

    + +
    +
    + +

    ◆ world_registry_accessor()

    + +
    +
    +
    +template<typename WorldImplT >
    + + + + + + + +
    std::list<WorldImplT*>& ttg::detail::world_registry_accessor ()
    +
    + +

    Definition at line 48 of file world.h.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ has_freestanding_boost_serialize_with_version_v

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::has_freestanding_boost_serialize_with_version_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    ttg::meta::is_detected_v<has_freestanding_boost_serialize_with_version_t, T, Archive>
    +

    true if this is well-formed:

    // T t; Archive ar;
    +
    boost::serialization::serialize(ar, t, 0u);
    +
    +

    Definition at line 136 of file traits.h.

    + +
    +
    + +

    ◆ has_freestanding_serialize_v

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::has_freestanding_serialize_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    ttg::meta::is_detected_v<has_freestanding_serialize_t, T, Archive>
    +

    true if this is well-formed:

    // T t; Archive ar;
    +
    serialize(ar, t);
    +
    +

    Definition at line 118 of file traits.h.

    + +
    +
    + +

    ◆ has_freestanding_serialize_with_version_v

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::has_freestanding_serialize_with_version_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    ttg::meta::is_detected_v<has_freestanding_serialize_with_version_t, T, Archive>
    +

    true if this is well-formed:

    // T t; Archive ar;
    +
    serialize(ar, t, 0u);
    +
    +

    Definition at line 127 of file traits.h.

    + +
    +
    + +

    ◆ has_member_load_with_version_v

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::has_member_load_with_version_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    ttg::meta::is_detected_v<has_member_load_with_version_t, T, Archive>
    +

    true if this is well-formed:

    // T t; Archive ar;
    +
    t.load(ar, 0u);
    +
    +

    Definition at line 100 of file traits.h.

    + +
    +
    + +

    ◆ has_member_save_with_version_v

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::has_member_save_with_version_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    ttg::meta::is_detected_v<has_member_save_with_version_t, T, Archive>
    +

    true if this is well-formed:

    // T t; Archive ar;
    +
    t.save(ar, 0u);
    +
    +

    Definition at line 109 of file traits.h.

    + +
    +
    + +

    ◆ has_member_serialize_v

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::has_member_serialize_v = ttg::meta::is_detected_v<has_member_serialize_t, T, Archive>
    +
    +inlineconstexpr
    +
    +

    true if this is well-formed:

    // T t; Archive ar;
    +
    t.serialize(ar);
    +
    +

    Definition at line 83 of file traits.h.

    + +
    +
    + +

    ◆ has_member_serialize_with_version_v

    + +
    +
    +
    +template<typename T , typename Archive >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::has_member_serialize_with_version_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    ttg::meta::is_detected_v<has_member_serialize_with_version_t, T, Archive>
    +

    true if this is well-formed:

    // T t; Archive ar;
    +
    t.serialize(ar, 0u);
    +
    +

    Definition at line 91 of file traits.h.

    + +
    +
    + +

    ◆ is_archive_v

    + +
    +
    +
    +template<typename T , typename Enabler = void>
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 142 of file traits.h.

    + +
    +
    + +

    ◆ is_boost_archive_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_boost_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 46 of file boost.h.

    + +
    +
    + +

    ◆ is_boost_buffer_serializable_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_boost_buffer_serializable_v = is_boost_buffer_serializable<T>::value
    +
    +inlineconstexpr
    +
    + +

    evaluates to true if can serialize T to/from buffer using Boost serialization

    + +

    Definition at line 150 of file boost.h.

    + +
    +
    + +

    ◆ is_boost_default_buffer_serializable_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_boost_default_buffer_serializable_v = is_boost_default_buffer_serializable<T>::value
    +
    +inlineconstexpr
    +
    + +

    evaluates to true if can serialize T to/from buffer using default Boost serialization

    + +

    Definition at line 164 of file boost.h.

    + +
    +
    + +

    ◆ is_boost_input_archive_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_boost_input_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 48 of file boost.h.

    + +
    +
    + +

    ◆ is_boost_output_archive_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_boost_output_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 50 of file boost.h.

    + +
    +
    + +

    ◆ is_boost_user_buffer_serializable_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_boost_user_buffer_serializable_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    is_boost_buffer_serializable<T>::value && !is_boost_default_buffer_serializable_v<T>
    +
    +

    evaluates to true if can serialize T to/from buffer using user-provided Boost serialization

    + +

    Definition at line 168 of file boost.h.

    + +
    +
    + +

    ◆ is_input_archive_v

    + +
    +
    +
    +template<typename T , typename Enabler >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_input_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 145 of file traits.h.

    + +
    +
    + +

    ◆ is_madness_archive_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_madness_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 41 of file madness.h.

    + +
    +
    + +

    ◆ is_madness_buffer_serializable_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_madness_buffer_serializable_v = is_madness_buffer_serializable<T>::value
    +
    +inlineconstexpr
    +
    + +

    evaluates to true if can serialize T to/from buffer using MADNESS serialization

    + +

    Definition at line 93 of file madness.h.

    + +
    +
    + +

    ◆ is_madness_input_archive_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_madness_input_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 43 of file madness.h.

    + +
    +
    + +

    ◆ is_madness_output_archive_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_madness_output_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 45 of file madness.h.

    + +
    +
    + +

    ◆ is_madness_user_buffer_serializable_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_madness_user_buffer_serializable_v = is_madness_user_buffer_serializable<T>::value
    +
    +inlineconstexpr
    +
    + +

    evaluates to true if can serialize T to/from buffer using user-provided MADNESS serialization

    + +

    Definition at line 108 of file madness.h.

    + +
    +
    + +

    ◆ is_memcpyable_override_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_memcpyable_override_v = std::is_trivially_copyable_v<T>
    +
    +inlineconstexpr
    +
    + +

    can be used to override the default value of is_memcpyable<T>::value

    +

    std::is_trivially_copyable_v<T> is sufficient to guarantee that T std::memcpy is safe to use on object of type T however, sometimes is_trivially_copyable_v<T> reports false for objects that can be copied with memcpy , e.g., std::pair<int, int> (see https://danlark.org/2020/04/13/why-is-stdpair-broken/). In this case specialize this trait

    + +

    Definition at line 194 of file traits.h.

    + +
    +
    + +

    ◆ is_memcpyable_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_memcpyable_v = is_memcpyable<T>::value
    +
    +inlineconstexpr
    +
    + +

    Definition at line 207 of file traits.h.

    + +
    +
    + +

    ◆ is_output_archive_v

    + +
    +
    +
    +template<typename T , typename Enabler = void>
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_output_archive_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 148 of file traits.h.

    + +
    +
    + +

    ◆ is_user_buffer_serializable_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::detail::is_user_buffer_serializable_v = is_user_buffer_serializable<T>::value
    +
    +inlineconstexpr
    +
    + +

    Definition at line 185 of file traits.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1device.html b/dox-master/namespacettg_1_1device.html new file mode 100644 index 000000000..43e0265b9 --- /dev/null +++ b/dox-master/namespacettg_1_1device.html @@ -0,0 +1,273 @@ + + + + + + + + + + + ttg: ttg::device Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::device Namespace Reference
    +
    +
    + + + + +

    +Namespaces

     detail
     
    + + + + +

    +Classes

    class  Device
     Represents a device in a specific execution space. More...
     
    + + + + + + + + +

    +Functions

    Device current_device ()
     
    template<ttg::ExecutionSpace Space = ttg::ExecutionSpace::Invalid>
    const void * current_stream ()
     
    int num_devices ()
     
    + + + +

    +Variables

    constexpr ttg::ExecutionSpace available_execution_space = ttg::ExecutionSpace::Invalid
     
    +

    Function Documentation

    + +

    ◆ current_device()

    + +
    +
    + + + + + +
    + + + + + + + +
    Device ttg::device::current_device ()
    +
    +inline
    +
    + +

    Definition at line 173 of file device.h.

    + +
    +
    + +

    ◆ current_stream()

    + +
    +
    +
    +template<ttg::ExecutionSpace Space = ttg::ExecutionSpace::Invalid>
    + + + + + +
    + + + + + + + +
    const void* ttg::device::current_stream ()
    +
    +inline
    +
    + +

    Definition at line 178 of file device.h.

    + +
    +
    + +

    ◆ num_devices()

    + +
    +
    + + + + + +
    + + + + + + + +
    int ttg::device::num_devices ()
    +
    +inline
    +
    + +

    Definition at line 187 of file device.h.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ available_execution_space

    + +
    +
    + + + + + +
    + + + + +
    constexpr ttg::ExecutionSpace ttg::device::available_execution_space = ttg::ExecutionSpace::Invalid
    +
    +constexpr
    +
    + +

    Definition at line 19 of file device.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1device_1_1detail.html b/dox-master/namespacettg_1_1device_1_1detail.html new file mode 100644 index 000000000..19c8ae9c7 --- /dev/null +++ b/dox-master/namespacettg_1_1device_1_1detail.html @@ -0,0 +1,132 @@ + + + + + + + + + + + ttg: ttg::device::detail Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::device::detail Namespace Reference
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1iostream.html b/dox-master/namespacettg_1_1iostream.html new file mode 100644 index 000000000..f42679ee0 --- /dev/null +++ b/dox-master/namespacettg_1_1iostream.html @@ -0,0 +1,401 @@ + + + + + + + + + + + ttg: ttg::iostream Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::iostream Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    I/O operators for standard types
    template<typename T >
    std::ostream & operator<< (std::ostream &s, const std::complex< T > &c)
     default printing of std::complex More...
     
    template<typename T , typename U >
    std::ostream & operator<< (std::ostream &s, const std::pair< T, U > &p)
     default printing of std::pair More...
     
    template<typename T >
    std::ostream & operator<< (std::ostream &s, const std::vector< T > &c)
     default printing of std::vector More...
     
    template<typename T , std::size_t N>
    std::enable_if<!std::is_same< T, char >::value, std::ostream & >::type operator<< (std::ostream &s, const std::array< T, N > &v)
     default printing of std::array More...
     
    template<typename T , std::size_t N>
    std::enable_if<!std::is_same< T, char >::value, std::ostream & >::type operator<< (std::ostream &s, const T(&v)[N])
     default printing of fixed dimension arrays. More...
     
    +

    Function Documentation

    + +

    ◆ operator<<() [1/5]

    + +
    +
    +
    +template<typename T , std::size_t N>
    + + + + + + + + + + + + + + + + + + +
    std::enable_if<!std::is_same<T, char>::value, std::ostream &>::type ttg::iostream::operator<< (std::ostream & s,
    const std::array< T, N > & v 
    )
    +
    + +

    default printing of std::array

    +

    STL I/O already does char (thus the enable_if business).

    Template Parameters
    + + + +
    TType of data in the array.
    NSize of the array.
    +
    +
    +
    Parameters
    + + + +
    [in,out]sThe output stream.
    [in]vThe array.
    +
    +
    +
    Returns
    The output stream (for chaining).
    + +

    Definition at line 76 of file print.h.

    + +
    +
    + +

    ◆ operator<<() [2/5]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    std::ostream& ttg::iostream::operator<< (std::ostream & s,
    const std::complex< T > & c 
    )
    +
    + +

    default printing of std::complex

    +
    Template Parameters
    + + +
    TThe "real" type of the complex number.
    +
    +
    +
    Parameters
    + + + +
    [in,out]sThe output stream.
    [in]cThe complex number.
    +
    +
    +
    Returns
    The output stream (for chaining).
    + +

    Definition at line 29 of file print.h.

    + +
    +
    + +

    ◆ operator<<() [3/5]

    + +
    +
    +
    +template<typename T , typename U >
    + + + + + + + + + + + + + + + + + + +
    std::ostream& ttg::iostream::operator<< (std::ostream & s,
    const std::pair< T, U > & p 
    )
    +
    + +

    default printing of std::pair

    +
    Template Parameters
    + + + +
    TType 1 of the pair.
    UType 2 of the pair.
    +
    +
    +
    Parameters
    + + + +
    [in,out]sThe output stream.
    [in]pThe pair.
    +
    +
    +
    Returns
    The output stream (for chaining).
    + +

    Definition at line 42 of file print.h.

    + +
    +
    + +

    ◆ operator<<() [4/5]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + +
    std::ostream& ttg::iostream::operator<< (std::ostream & s,
    const std::vector< T > & c 
    )
    +
    + +

    default printing of std::vector

    +
    Template Parameters
    + + +
    TType stored in the vector.
    +
    +
    +
    Parameters
    + + + +
    [in,out]sThe output stream.
    [in]cThe vector.
    +
    +
    +
    Returns
    The output stream (for chaining).
    + +

    Definition at line 54 of file print.h.

    + +
    +
    + +

    ◆ operator<<() [5/5]

    + +
    +
    +
    +template<typename T , std::size_t N>
    + + + + + + + + + + + + + + + + + + +
    std::enable_if<!std::is_same<T, char>::value, std::ostream &>::type ttg::iostream::operator<< (std::ostream & s,
    const T(&) v[N] 
    )
    +
    + +

    default printing of fixed dimension arrays.

    +

    STL I/O already does char (thus the enable_if business).

    Template Parameters
    + + + +
    TType of data in the array.
    NSize of the array.
    +
    +
    +
    Parameters
    + + + +
    [in,out]sThe output stream.
    [in]vThe array.
    +
    +
    +
    Returns
    The output stream (for chaining).
    + +

    Definition at line 97 of file print.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1meta.html b/dox-master/namespacettg_1_1meta.html new file mode 100644 index 000000000..b76ead58b --- /dev/null +++ b/dox-master/namespacettg_1_1meta.html @@ -0,0 +1,1956 @@ + + + + + + + + + + + ttg: ttg::meta Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta Namespace Reference
    +
    +
    + + + + +

    +Namespaces

     detail
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  is_terminal
     
    struct  is_input_terminal
     
    struct  is_output_terminal
     
    struct  is_output_terminal_tuple
     
    struct  is_output_terminal_tuple< std::tuple< Ts... > >
     
    struct  decays_to_output_terminal_tuple
     
    struct  is_nonconst_lvalue_reference_to_output_terminal_tuple
     
    struct  has_member_function_hash
     
    struct  has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> >
     
    struct  has_ttg_hash_specialization
     
    struct  has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> >
     
    struct  is_generic_callable
     
    struct  is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > >
     
    struct  candidate_argument_bindings
     
    struct  candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >
     
    struct  candidate_argument_bindings< void, void >
     
    struct  candidate_argument_bindings< const void, void >
     
    struct  nonref_tuple
     
    struct  nonref_tuple< std::tuple< Ts... > >
     
    struct  tuple_concat
     
    struct  tuple_concat< std::tuple< Ts... > >
     
    struct  tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >
     
    struct  filtered_tuple
     
    struct  filtered_tuple< std::tuple< Es... >, Pred >
     
    struct  probe_last
     
    struct  probe_last< Predicate, Default >
     
    struct  probe_last< Predicate, Default, T >
     
    struct  probe_last< Predicate, Default, T1, Ts... >
     
    struct  probe_last< Predicate, Default, std::tuple< Ts... > >
     
    struct  probe_last< Predicate, Default, ttg::typelist< Ts... > >
     
    struct  probe_first
     
    struct  probe_first< Predicate, Default >
     
    struct  probe_first< Predicate, Default, T1, Ts... >
     
    struct  probe_first< Predicate, Default, std::tuple< Ts... > >
     
    struct  probe_first< Predicate, Default, ttg::typelist< Ts... > >
     
    struct  probe_any
     
    struct  probe_any< Predicate, std::tuple< Ts... > >
     
    struct  probe_any< Predicate, ttg::typelist< Ts... > >
     
    struct  probe_all
     
    struct  probe_all< Predicate, std::tuple< Ts... > >
     
    struct  probe_all< Predicate, ttg::typelist< Ts... > >
     
    struct  is_void
     
    struct  is_nonvoid
     
    struct  is_last_void
     
    struct  void_to_Void
     
    struct  void_to_Void< void >
     
    struct  is_const_lvalue_reference
     
    struct  is_nonconst_lvalue_reference
     
    struct  is_ptr
     
    struct  is_ptr< ttg::Ptr< T > >
     
    struct  is_buffer
     
    struct  is_buffer< ttg::Buffer< T, A > >
     
    struct  is_buffer< const ttg::Buffer< T, A > >
     
    struct  is_devicescratch
     
    struct  is_devicescratch< ttg::devicescratch< T > >
     
    struct  is_devicescratch< const ttg::devicescratch< T > >
     
    struct  drop_first_n
     drops N elements from the front More...
     
    struct  drop_first_n< std::tuple< Ts... >, std::size_t(0)>
     
    struct  drop_first_n< typelist< Ts... >, std::size_t(0)>
     
    struct  drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >
     
    struct  drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >
     
    struct  take_first_n
     take first N elements of a type list More...
     
    struct  take_first_n_helper
     
    struct  take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>
     
    struct  take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>
     
    struct  take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >
     
    struct  take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >
     
    struct  take_first_n< std::tuple< Ts... >, N >
     
    struct  take_first_n< typelist< Ts... >, N >
     
    struct  drop_last_n
     drops N trailing elements from a typelist More...
     
    struct  type_identity
     
    struct  typelist
     A container for types. More...
     
    struct  is_typelist
     
    struct  is_typelist< typelist< Ts... > >
     
    struct  typelist_to_tuple
     
    struct  typelist_to_tuple< typelist< T... > >
     
    struct  typelist_size
     
    struct  typelist_size< typelist< Ts... > >
     
    struct  typelist_is_empty
     
    struct  typelist_is_not_empty
     
    + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<typename T >
    using candidate_argument_bindings_t = typename candidate_argument_bindings< T >::type
     
    template<class... >
    using void_t = void
     
    template<typename T >
    using remove_cvr_t = std::remove_cv_t< std::remove_reference_t< T > >
     
    template<typename Tuple >
    using nonref_tuple_t = typename nonref_tuple< Tuple >::type
     
    template<typename... TupleTs>
    using tuple_concat_t = typename tuple_concat< TupleTs... >::type
     
    template<typename Tuple , template< typename > typename Pred>
    using filtered_tuple_t = typename filtered_tuple< Tuple, Pred >::type
     
    template<typename T >
    using void_to_Void_t = typename void_to_Void< T >::type
     
    template<typename T >
    using typelist_to_tuple_t = typename typelist_to_tuple< T >::type
     
    + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<std::size_t N>
    constexpr auto ordinal2index (std::size_t ordinal, std::array< std::size_t, N > extents)
     
    template<std::size_t Ordinal, typename Func , typename... Typelists, std::size_t... ArgIdx>
    auto compute_arg_binding_types_impl (Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
     
    template<std::size_t Ordinal, typename ReturnType , typename Func , typename... Typelists, std::size_t... ArgIdx>
    auto compute_arg_binding_types_r_impl (Func &func, typelist< Typelists... > argument_type_lists, std::index_sequence< ArgIdx... > arg_idx={})
     
    template<typename Func , typename... Typelists>
    auto compute_arg_binding_types (Func &func, typelist< Typelists... > argument_type_lists)
     
    template<typename ReturnType , typename Func , typename... Typelists>
    auto compute_arg_binding_types_r (Func &func, typelist< Typelists... > argument_type_lists)
     
    template<std::size_t I, typename T , typename... RestOfTs>
    constexpr auto get (typelist< T, RestOfTs... >)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    template<typename T , typename = void>
    constexpr bool is_terminal_v = false
     
    template<typename T >
    constexpr bool is_input_terminal_v = false
     detects whether a given type is an input terminal type More...
     
    template<typename keyT >
    constexpr bool is_input_terminal_v< InTerminalBase< keyT > > = true
     
    template<typename keyT , typename valueT >
    constexpr bool is_input_terminal_v< In< keyT, valueT > > = true
     
    template<typename T >
    constexpr bool is_output_terminal_v = false
     detects whether a given type is an output terminal type More...
     
    template<typename keyT >
    constexpr bool is_output_terminal_v< OutTerminalBase< keyT > > = true
     
    template<typename keyT , typename valueT >
    constexpr bool is_output_terminal_v< Out< keyT, valueT > > = true
     
    template<typename... Ts>
    constexpr bool is_output_terminal_tuple_v = is_output_terminal_tuple<Ts...>::value
     
    template<typename T >
    constexpr bool decays_to_output_terminal_tuple_v = is_output_terminal_tuple_v<std::decay_t<T>>
     
    template<typename T >
    constexpr bool is_nonconst_lvalue_reference_to_output_terminal_tuple_v
     
    template<typename T >
    constexpr bool has_member_function_hash_v = has_member_function_hash<T>::value
     
    template<typename T >
    constexpr bool has_ttg_hash_specialization_v = has_ttg_hash_specialization<T>::value
     
    template<typename Callable >
    constexpr bool is_generic_callable_v = is_generic_callable<Callable>::value
     
    template<typename Callable , typename Enabler = void>
    constexpr std::pair< bool, std::pair< ttg::typelist<>, ttg::typelist<> > > callable_args = {true, {}}
     
    template<template< typename > typename Predicate, bool Default, typename... Ts>
    constexpr bool probe_last_v = probe_last<Predicate, Default, Ts...>::value
     
    template<template< typename > typename Predicate, bool Default, typename... Ts>
    constexpr bool probe_first_v = probe_first<Predicate, Default, Ts...>::value
     
    template<template< typename > typename Predicate, typename... Ts>
    constexpr bool probe_any_v = probe_any<Predicate, Ts...>::value
     
    template<template< typename > typename Predicate, typename... Ts>
    constexpr bool probe_all_v = probe_all<Predicate, Ts...>::value
     
    template<typename T >
    constexpr bool is_Void_v = std::is_same_v<std::decay_t<T>, Void>
     
    template<typename T >
    constexpr bool is_void_v = is_Void_v<T> || std::is_void_v<T>
     
    template<typename T >
    constexpr bool is_nonvoid_v = !is_void_v<T>
     
    template<typename... Ts>
    constexpr bool is_all_void_v = (is_void_v<Ts> && ...)
     
    template<typename... Ts>
    constexpr bool is_all_Void_v = (is_Void_v<Ts> && ...)
     
    template<typename... Ts>
    constexpr bool is_any_void_v = (is_void_v<Ts> || ...)
     
    template<typename... Ts>
    constexpr bool is_any_Void_v = (is_Void_v<Ts> || ...)
     
    template<typename... Ts>
    constexpr bool is_none_void_v = !is_any_void_v<Ts...>
     
    template<typename... Ts>
    constexpr bool is_none_Void_v = !is_any_Void_v<Ts...>
     
    template<typename... Ts>
    constexpr bool is_last_void_v = is_last_void<Ts...>::value
     
    template<typename T >
    constexpr bool is_const_lvalue_reference_v
     
    template<typename T >
    constexpr bool is_nonconst_lvalue_reference_v
     
    template<typename... Ts>
    constexpr bool is_any_nonconst_lvalue_reference_v = (is_nonconst_lvalue_reference_v<Ts> || ...)
     
    template<typename T >
    constexpr bool is_ptr_v = is_ptr<T>::value
     
    template<typename T >
    constexpr bool is_buffer_v = is_buffer<T>::value
     
    template<typename T >
    constexpr bool is_devicescratch_v = is_devicescratch<T>::value
     
    template<typename T >
    constexpr bool is_typelist_v = is_typelist<T>::value
     
    template<typename T >
    constexpr std::size_t typelist_size_v = typelist_size<T>::value
     
    template<typename T >
    constexpr bool typelist_is_empty_v = (typelist_size_v<T> == 0)
     
    template<typename T >
    constexpr bool typelist_is_not_empty_v = (typelist_size_v<T> != 0)
     
    +

    Typedef Documentation

    + +

    ◆ candidate_argument_bindings_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::meta::candidate_argument_bindings_t = typedef typename candidate_argument_bindings<T>::type
    +
    + +

    Definition at line 221 of file callable.h.

    + +
    +
    + +

    ◆ filtered_tuple_t

    + +
    +
    +
    +template<typename Tuple , template< typename > typename Pred>
    + + + + +
    using ttg::meta::filtered_tuple_t = typedef typename filtered_tuple<Tuple, Pred>::type
    +
    + +

    Definition at line 87 of file meta.h.

    + +
    +
    + +

    ◆ nonref_tuple_t

    + +
    +
    +
    +template<typename Tuple >
    + + + + +
    using ttg::meta::nonref_tuple_t = typedef typename nonref_tuple<Tuple>::type
    +
    + +

    Definition at line 43 of file meta.h.

    + +
    +
    + +

    ◆ remove_cvr_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::meta::remove_cvr_t = typedef std::remove_cv_t<std::remove_reference_t<T> >
    +
    + +

    Definition at line 27 of file meta.h.

    + +
    +
    + +

    ◆ tuple_concat_t

    + +
    +
    +
    +template<typename... TupleTs>
    + + + + +
    using ttg::meta::tuple_concat_t = typedef typename tuple_concat<TupleTs...>::type
    +
    + +

    Definition at line 60 of file meta.h.

    + +
    +
    + +

    ◆ typelist_to_tuple_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::meta::typelist_to_tuple_t = typedef typename typelist_to_tuple<T>::type
    +
    + +

    Definition at line 52 of file typelist.h.

    + +
    +
    + +

    ◆ void_t

    + +
    +
    +
    +template<class... >
    + + + + +
    using ttg::meta::void_t = typedef void
    +
    + +

    Definition at line 23 of file meta.h.

    + +
    +
    + +

    ◆ void_to_Void_t

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::meta::void_to_Void_t = typedef typename void_to_Void<T>::type
    +
    + +

    Definition at line 271 of file meta.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ compute_arg_binding_types()

    + +
    +
    +
    +template<typename Func , typename... Typelists>
    + + + + + + + + + + + + + + + + + + +
    auto ttg::meta::compute_arg_binding_types (Func & func,
    typelist< Typelists... > argument_type_lists 
    )
    +
    +
    Template Parameters
    + + + +
    Funca callable type
    Typelistsa pack of typelists encoding how each argument can be invoked
    +
    +
    +
    Parameters
    + + + +
    funca reference to callable of type Func
    argument_type_listsa list of possible types to try for each argument; can contain void
    +
    +
    +
    Returns
    a ttg::typelist<ttg::typelist<ReturnType>,ttg::typelist<ArgsTypes>> where ReturnType is the return type of func and ArgsTypes encodes:
      +
    • the exact argument bindings used by Func, if func is a nongeneric callable;
    • +
    • the first invocable combination of argument types discovered by row-major iteration, if func is a generic callable
    • +
    +
    + +

    Definition at line 154 of file callable.h.

    + +
    +
    + +

    ◆ compute_arg_binding_types_impl()

    + +
    +
    +
    +template<std::size_t Ordinal, typename Func , typename... Typelists, std::size_t... ArgIdx>
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto ttg::meta::compute_arg_binding_types_impl (Func & func,
    typelist< Typelists... > argument_type_lists,
    std::index_sequence< ArgIdx... > arg_idx = {} 
    )
    +
    +

    detects argument and return types of a generic callable (func) by trying each combination of types (argument_type_lists) for the respective arguments starting with the combination corresponding to the given Ordinal

    Template Parameters
    + + + + +
    Ordinala nonnegative integer specifying the ordinal of the type combination from Typelists to try; maximum value is (std::tuple_size_v<Typelists> * ...)
    Funca generic callable type
    Typelistsa pack of ttg::typelist's each of which specifies candidate types for the respective argument of Func
    +
    +
    +
    Parameters
    + + + +
    funca generic callable
    argument_type_listsa ttg::typelist<Typelists...>
    +
    +
    +
    Note
    iterates over argument_type_lists in "row-major" order (i.e. last list in argument_type_lists is iterated first, etc.; the maxim
    +
    Returns
    an object of type ttg::typelist<ttg::typelist<ReturnType>,ttg::typelist<ArgTypes>>
    + +

    Definition at line 84 of file callable.h.

    + +
    +
    + +

    ◆ compute_arg_binding_types_r()

    + +
    +
    +
    +template<typename ReturnType , typename Func , typename... Typelists>
    + + + + + + + + + + + + + + + + + + +
    auto ttg::meta::compute_arg_binding_types_r (Func & func,
    typelist< Typelists... > argument_type_lists 
    )
    +
    +
    Template Parameters
    + + + + +
    ReturnTypea type expected to be returned by Func
    Funca callable type
    Typelistsa pack of typelists encoding how each argument can be invoked
    +
    +
    +
    Parameters
    + + + +
    funca reference to callable of type Func
    argument_type_listsa list of possible types to try for each argument; can contain void
    +
    +
    +
    Returns
    a ttg::typelist encoding:
      +
    • the exact argument bindings used by Func, if func is a nongeneric callable;
    • +
    • the first invocable combination of argument types discovered by row-major iteration, if func is a generic callable
    • +
    +
    + +

    Definition at line 175 of file callable.h.

    + +
    +
    + +

    ◆ compute_arg_binding_types_r_impl()

    + +
    +
    +
    +template<std::size_t Ordinal, typename ReturnType , typename Func , typename... Typelists, std::size_t... ArgIdx>
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto ttg::meta::compute_arg_binding_types_r_impl (Func & func,
    typelist< Typelists... > argument_type_lists,
    std::index_sequence< ArgIdx... > arg_idx = {} 
    )
    +
    +

    detects argument types of a generic callable (func) by trying each combination of types (argument_type_lists) for the respective arguments starting with the combination corresponding to the given Ordinal . The callable is expected to return ReturnType

    Template Parameters
    + + + + + +
    Ordinala nonnegative integer specifying the ordinal of the type combination from Typelists to try; maximum value is (std::tuple_size_v<Typelists> * ...)
    ReturnTypethe expected return type of Func
    Funca generic callable type
    Typelistsa pack of ttg::typelist's each of which specifies candidate types for the respective argument of Func
    +
    +
    +
    Parameters
    + + + +
    funca generic callable
    argument_type_listsa ttg::typelist<Typelists...>
    +
    +
    +
    Note
    iterates over argument_type_lists in "row-major" order (i.e. last list in argument_type_lists is iterated first, etc.; the maxim
    +
    Returns
    an object of type ttg::typelist<ArgTypes>
    + +

    Definition at line 122 of file callable.h.

    + +
    +
    + +

    ◆ get()

    + +
    +
    +
    +template<std::size_t I, typename T , typename... RestOfTs>
    + + + + + +
    + + + + + + + + +
    constexpr auto ttg::meta::get (typelist< T, RestOfTs... > )
    +
    +constexpr
    +
    + +

    Definition at line 101 of file typelist.h.

    + +
    +
    + +

    ◆ ordinal2index()

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    constexpr auto ttg::meta::ordinal2index (std::size_t ordinal,
    std::array< std::size_t, N > extents 
    )
    +
    +constexpr
    +
    +

    converts an ordinal to N-index

    Parameters
    + + + +
    ordinalthe ordinal value
    extentsextent of each mode
    +
    +
    + +

    Definition at line 61 of file callable.h.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ callable_args

    + +
    +
    +
    +template<typename Callable , typename Enabler = void>
    + + + + + +
    + + + + +
    constexpr std::pair<bool, std::pair<ttg::typelist<>, ttg::typelist<> > > ttg::meta::callable_args = {true, {}}
    +
    +constexpr
    +
    +

    callable_args<Callable> detects whether Callable is generic or not, and in the latter case detects (using Boost.CallableTraits) its return and argument types. callable_args<Callable> is a constexpr value of type std::pair<bool,ttg::typelist<ttg::typelist<ReturnType>,ttg::typelist<ArgTypes>>> where:

      +
    • the boolean indicates whether Callable is generic (true) or not (false),
    • +
    • ReturnType is the return type of the Callable if it's generic, empty otherwise
    • +
    • ArgTypes is the argument types of the Callable if it's generic, empty otherwise
      Template Parameters
      + + +
      Callablea callable type
      +
      +
      +
    • +
    + +

    Definition at line 44 of file callable.h.

    + +
    +
    + +

    ◆ decays_to_output_terminal_tuple_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::decays_to_output_terminal_tuple_v = is_output_terminal_tuple_v<std::decay_t<T>>
    +
    +inlineconstexpr
    +
    + +

    Definition at line 616 of file terminal.h.

    + +
    +
    + +

    ◆ has_member_function_hash_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::has_member_function_hash_v = has_member_function_hash<T>::value
    +
    +constexpr
    +
    + +

    Definition at line 70 of file hash.h.

    + +
    +
    + +

    ◆ has_ttg_hash_specialization_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::has_ttg_hash_specialization_v = has_ttg_hash_specialization<T>::value
    +
    +constexpr
    +
    + +

    Definition at line 143 of file hash.h.

    + +
    +
    + +

    ◆ is_all_void_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_all_void_v< ttg::typelist< Ts... > > = (is_void_v<Ts> && ...)
    +
    +constexpr
    +
    + +

    Definition at line 221 of file meta.h.

    + +
    +
    + +

    ◆ is_all_Void_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_all_Void_v< ttg::typelist< Ts... > > = (is_Void_v<Ts> && ...)
    +
    +constexpr
    +
    + +

    Definition at line 227 of file meta.h.

    + +
    +
    + +

    ◆ is_any_nonconst_lvalue_reference_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_any_nonconst_lvalue_reference_v< std::tuple< Ts... > > = (is_nonconst_lvalue_reference_v<Ts> || ...)
    +
    +constexpr
    +
    + +

    Definition at line 288 of file meta.h.

    + +
    +
    + +

    ◆ is_any_void_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_any_void_v< ttg::typelist< Ts... > > = (is_void_v<Ts> || ...)
    +
    +constexpr
    +
    + +

    Definition at line 233 of file meta.h.

    + +
    +
    + +

    ◆ is_any_Void_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_any_Void_v< ttg::typelist< Ts... > > = (is_Void_v<Ts> || ...)
    +
    +constexpr
    +
    + +

    Definition at line 239 of file meta.h.

    + +
    +
    + +

    ◆ is_buffer_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_buffer_v = is_buffer<T>::value
    +
    +constexpr
    +
    + +

    Definition at line 325 of file meta.h.

    + +
    +
    + +

    ◆ is_const_lvalue_reference_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_const_lvalue_reference_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    std::is_lvalue_reference_v<T> &&std::is_const_v<std::remove_reference_t<T>>
    +
    +

    Definition at line 274 of file meta.h.

    + +
    +
    + +

    ◆ is_devicescratch_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_devicescratch_v = is_devicescratch<T>::value
    +
    +constexpr
    +
    + +

    Definition at line 340 of file meta.h.

    + +
    +
    + +

    ◆ is_generic_callable_v

    + +
    +
    +
    +template<typename Callable >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_generic_callable_v = is_generic_callable<Callable>::value
    +
    +inlineconstexpr
    +
    + +

    Definition at line 32 of file callable.h.

    + +
    +
    + +

    ◆ is_input_terminal_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_input_terminal_v = false
    +
    +inlineconstexpr
    +
    + +

    detects whether a given type is an input terminal type

    + +

    Definition at line 352 of file terminal.h.

    + +
    +
    + +

    ◆ is_input_terminal_v< In< keyT, valueT > >

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_input_terminal_v< In< keyT, valueT > > = true
    +
    +inlineconstexpr
    +
    + +

    Definition at line 356 of file terminal.h.

    + +
    +
    + +

    ◆ is_input_terminal_v< InTerminalBase< keyT > >

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_input_terminal_v< InTerminalBase< keyT > > = true
    +
    +inlineconstexpr
    +
    + +

    Definition at line 354 of file terminal.h.

    + +
    +
    + +

    ◆ is_last_void_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_last_void_v = is_last_void<Ts...>::value
    +
    +constexpr
    +
    + +

    Definition at line 260 of file meta.h.

    + +
    +
    + +

    ◆ is_nonconst_lvalue_reference_to_output_terminal_tuple_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_nonconst_lvalue_reference_to_output_terminal_tuple_v
    +
    +inlineconstexpr
    +
    +Initial value:
    =
    +
    is_output_terminal_tuple_v<std::decay_t<T>> &&std::is_lvalue_reference_v<T> &&
    +
    !std::is_const_v<std::remove_reference_t<T>>
    +
    +

    Definition at line 621 of file terminal.h.

    + +
    +
    + +

    ◆ is_nonconst_lvalue_reference_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_nonconst_lvalue_reference_v
    +
    +constexpr
    +
    +Initial value:
    =
    +
    std::is_lvalue_reference_v<T> && !std::is_const_v<std::remove_reference_t<T>>
    +
    +

    Definition at line 281 of file meta.h.

    + +
    +
    + +

    ◆ is_none_void_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_none_void_v< ttg::typelist< Ts... > > = !is_any_void_v<Ts...>
    +
    +constexpr
    +
    + +

    Definition at line 245 of file meta.h.

    + +
    +
    + +

    ◆ is_none_Void_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_none_Void_v< ttg::typelist< Ts... > > = !is_any_Void_v<Ts...>
    +
    +constexpr
    +
    + +

    Definition at line 251 of file meta.h.

    + +
    +
    + +

    ◆ is_nonvoid_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_nonvoid_v = !is_void_v<T>
    +
    +constexpr
    +
    + +

    Definition at line 215 of file meta.h.

    + +
    +
    + +

    ◆ is_output_terminal_tuple_v

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_output_terminal_tuple_v = is_output_terminal_tuple<Ts...>::value
    +
    +inlineconstexpr
    +
    + +

    Definition at line 613 of file terminal.h.

    + +
    +
    + +

    ◆ is_output_terminal_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_output_terminal_v = false
    +
    +inlineconstexpr
    +
    + +

    detects whether a given type is an output terminal type

    + +

    Definition at line 599 of file terminal.h.

    + +
    +
    + +

    ◆ is_output_terminal_v< Out< keyT, valueT > >

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_output_terminal_v< Out< keyT, valueT > > = true
    +
    +inlineconstexpr
    +
    + +

    Definition at line 603 of file terminal.h.

    + +
    +
    + +

    ◆ is_output_terminal_v< OutTerminalBase< keyT > >

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_output_terminal_v< OutTerminalBase< keyT > > = true
    +
    +inlineconstexpr
    +
    + +

    Definition at line 601 of file terminal.h.

    + +
    +
    + +

    ◆ is_ptr_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_ptr_v = is_ptr<T>::value
    +
    +constexpr
    +
    + +

    Definition at line 310 of file meta.h.

    + +
    +
    + +

    ◆ is_terminal_v

    + +
    +
    +
    +template<typename T , typename = void>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_terminal_v = false
    +
    +inlineconstexpr
    +
    + +

    Definition at line 131 of file terminal.h.

    + +
    +
    + +

    ◆ is_typelist_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_typelist_v = is_typelist<T>::value
    +
    +constexpr
    +
    + +

    Definition at line 41 of file typelist.h.

    + +
    +
    + +

    ◆ is_Void_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_Void_v = std::is_same_v<std::decay_t<T>, Void>
    +
    +constexpr
    +
    + +

    Definition at line 206 of file meta.h.

    + +
    +
    + +

    ◆ is_void_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::is_void_v = is_Void_v<T> || std::is_void_v<T>
    +
    +constexpr
    +
    + +

    Definition at line 209 of file meta.h.

    + +
    +
    + +

    ◆ probe_all_v

    + +
    +
    +
    +template<template< typename > typename Predicate, typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::probe_all_v = probe_all<Predicate, Ts...>::value
    +
    +constexpr
    +
    +

    This constexpr function checks if Predicate is true for all elements of Ts...; evaluates to true for the empty Ts...

    Template Parameters
    + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Tsa type pack
    +
    +
    + +

    Definition at line 194 of file meta.h.

    + +
    +
    + +

    ◆ probe_any_v

    + +
    +
    +
    +template<template< typename > typename Predicate, typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::probe_any_v = probe_any<Predicate, Ts...>::value
    +
    +constexpr
    +
    +

    This constexpr function checks if Predicate is true for any element of Ts...; evaluates to false for the empty Ts...

    Template Parameters
    + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Tsa type pack
    +
    +
    + +

    Definition at line 172 of file meta.h.

    + +
    +
    + +

    ◆ probe_first_v

    + +
    +
    +
    +template<template< typename > typename Predicate, bool Default, typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::probe_first_v = probe_first<Predicate, Default, Ts...>::value
    +
    +constexpr
    +
    +

    This constexpr function checks if Predicate is true when applied to the first element of Ts..., if not empty, else evaluates to Default

    Template Parameters
    + + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Defaultthe metafunction result for the case of empty Ts...
    Tsa type pack
    +
    +
    + +

    Definition at line 150 of file meta.h.

    + +
    +
    + +

    ◆ probe_last_v

    + +
    +
    +
    +template<template< typename > typename Predicate, bool Default, typename... Ts>
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::probe_last_v = probe_last<Predicate, Default, Ts...>::value
    +
    +constexpr
    +
    +

    This constexpr function applies Predicate is true when applied to the last element of Ts..., if not empty, else evaluates to Default

    Template Parameters
    + + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Defaultthe metafunction result for the case of empty Ts...
    Tsa type pack
    +
    +
    + +

    Definition at line 120 of file meta.h.

    + +
    +
    + +

    ◆ typelist_is_empty_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::typelist_is_empty_v = (typelist_size_v<T> == 0)
    +
    +constexpr
    +
    + +

    Definition at line 66 of file typelist.h.

    + +
    +
    + +

    ◆ typelist_is_not_empty_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool ttg::meta::typelist_is_not_empty_v = (typelist_size_v<T> != 0)
    +
    +constexpr
    +
    + +

    Definition at line 72 of file typelist.h.

    + +
    +
    + +

    ◆ typelist_size_v

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr std::size_t ttg::meta::typelist_size_v = typelist_size<T>::value
    +
    +constexpr
    +
    + +

    Definition at line 63 of file typelist.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1meta_1_1detail.html b/dox-master/namespacettg_1_1meta_1_1detail.html new file mode 100644 index 000000000..124ce3f58 --- /dev/null +++ b/dox-master/namespacettg_1_1meta_1_1detail.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: ttg::meta::detail Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::detail Namespace Reference
    +
    +
    + + + + + + +

    +Classes

    struct  keep_or_drop
     
    struct  keep_or_drop< false >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg_1_1overload.html b/dox-master/namespacettg_1_1overload.html new file mode 100644 index 000000000..5455b59c5 --- /dev/null +++ b/dox-master/namespacettg_1_1overload.html @@ -0,0 +1,155 @@ + + + + + + + + + + + ttg: ttg::overload Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::overload Namespace Reference
    +
    +
    + +

    place for overloading/instantiating hash and other functionality +More...

    + + + + + + + + + + + + + + + + +

    +Classes

    struct  hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >
     
    struct  hash
     Computes hash values for objects of type T. More...
     
    struct  hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >
     instantiation of hash for types which have member function hash() that returns More...
     
    struct  hash< void, void >
     instantiation of hash for void More...
     
    struct  hash< Void, void >
     instantiation of hash for Void More...
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg__madness.html b/dox-master/namespacettg__madness.html new file mode 100644 index 000000000..d1c73dae8 --- /dev/null +++ b/dox-master/namespacettg__madness.html @@ -0,0 +1,1018 @@ + + + + + + + + + + + ttg: ttg_madness Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ttg_madness Namespace Reference
    +
    +
    + +

    this contains MADNESS-based TTG functionality +More...

    + + + + +

    +Namespaces

     detail
     
    + + + + + + + + + + + + + + +

    +Classes

    struct  Buffer
     A runtime-managed buffer mirrored between host and device memory. More...
     
    class  TT
     
    struct  Ptr
     
    struct  devicescratch
     
    struct  TTValue
     
    class  WorldImpl
     
    + + + + + + + +

    +Typedefs

    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using Op = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using TemplateTask = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    int num_devices ()
     
    void make_executable_hook (ttg::World &)
     
    void ttg_initialize (int argc, char **argv, int num_threads=-1)
     
    void ttg_finalize ()
     
    void ttg_abort ()
     
    ttg::World ttg_default_execution_context ()
     
    void ttg_execute (ttg::World world)
     
    void ttg_fence (ttg::World world)
     
    template<typename T >
    void ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr)
     
    void ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
     
    ttg::Edgettg_ctl_edge (ttg::World world)
     
    template<typename T >
    void ttg_sum (ttg::World world, T &value)
     
    template<typename T >
    void ttg_broadcast (ttg::World world, T &data, int source_rank)
     
    template<typename T , typename... Args>
    Ptr< T > make_ptr (Args &&... args)
     
    template<typename T >
    auto get_ptr (T &&obj)
     
    template<typename... Views>
    bool register_device_memory (std::tuple< Views &... > &views)
     
    template<typename... Buffer>
    void post_device_out (std::tuple< Buffer &... > &b)
     
    template<typename... Buffer>
    void mark_device_out (std::tuple< Buffer &... > &b)
     
    template<typename T >
    void ttg_register_ptr (ttg::World world, std::unique_ptr< T > &&ptr)
     
    template<typename Callback >
    void ttg_register_callback (ttg::World world, Callback &&callback)
     
    void initialize_watchpoints ()
     must be called from main thread before setting watchpoints More...
     
    template<typename T >
    void watchpoint_set (T *addr, ttg::detail::MemoryWatchpoint_x86_64::Size size, ttg::detail::MemoryWatchpoint_x86_64::Condition cond)
     sets a hardware watchpoint for window [addr,addr+size) and condition cond More...
     
    template<typename T >
    void watchpoint_clear (T *addr)
     clears the hardware watchpoint for window [addr,addr+size) previously created with watchpoint_set<T> More...
     
    +

    Typedef Documentation

    + +

    ◆ Op

    + +
    +
    +
    +template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    + + + + +
    using ttg_madness::Op = typedef TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...> >
    +
    + +

    Definition at line 16 of file fwd.h.

    + +
    +
    + +

    ◆ TemplateTask

    + +
    +
    +
    +template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    + + + + +
    using ttg_madness::TemplateTask = typedef TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...> >
    +
    + +

    Definition at line 19 of file fwd.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ get_ptr()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + +
    auto ttg_madness::get_ptr (T && obj)
    +
    + +
    +
    + +

    ◆ initialize_watchpoints()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_madness::initialize_watchpoints ()
    +
    +inline
    +
    + +

    must be called from main thread before setting watchpoints

    + +

    Definition at line 52 of file watch.h.

    + +
    +
    + +

    ◆ make_executable_hook()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_madness::make_executable_hook (ttg::Worldworld)
    +
    +inline
    +
    + +

    Definition at line 121 of file ttg.h.

    + +
    +
    + +

    ◆ make_ptr()

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + + + + + +
    Ptr<T> ttg_madness::make_ptr (Args &&... args)
    +
    + +
    +
    + +

    ◆ mark_device_out()

    + +
    +
    +
    +template<typename... Buffer>
    + + + + + +
    + + + + + + + + +
    void ttg_madness::mark_device_out (std::tuple< Buffer &... > & b)
    +
    +inline
    +
    + +
    +
    + +

    ◆ num_devices()

    + +
    +
    + + + + + +
    + + + + + + + +
    int ttg_madness::num_devices ()
    +
    +inline
    +
    + +

    Definition at line 6 of file device.h.

    + +
    +
    + +

    ◆ post_device_out()

    + +
    +
    +
    +template<typename... Buffer>
    + + + + + +
    + + + + + + + + +
    void ttg_madness::post_device_out (std::tuple< Buffer &... > & b)
    +
    +inline
    +
    + +
    +
    + +

    ◆ register_device_memory()

    + +
    +
    +
    +template<typename... Views>
    + + + + + +
    + + + + + + + + +
    bool ttg_madness::register_device_memory (std::tuple< Views &... > & views)
    +
    +inline
    +
    + +
    +
    + +

    ◆ ttg_abort()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_madness::ttg_abort ()
    +
    +inline
    +
    + +

    Definition at line 137 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_broadcast()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg_madness::ttg_broadcast (ttg::World world,
    T & data,
    int source_rank 
    )
    +
    +inline
    +
    +

    broadcast

    Template Parameters
    + + +
    Ta serializable type
    +
    +
    + +

    Definition at line 174 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_ctl_edge()

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg::Edge & ttg_madness::ttg_ctl_edge (ttg::World world)
    +
    +inline
    +
    + +

    Definition at line 165 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_default_execution_context()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::World ttg_madness::ttg_default_execution_context ()
    +
    +inline
    +
    +
    Examples
    distributed.cc.
    +
    + +

    Definition at line 136 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_execute()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_madness::ttg_execute (ttg::World world)
    +
    +inline
    +
    + +

    Definition at line 141 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_fence()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_madness::ttg_fence (ttg::World world)
    +
    +inline
    +
    + +

    Definition at line 144 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_finalize()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_madness::ttg_finalize ()
    +
    +inline
    +
    + +

    Definition at line 131 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_initialize()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg_madness::ttg_initialize (int argc,
    char ** argv,
    int num_threads = -1 
    )
    +
    +inline
    +
    + +

    Definition at line 123 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_register_callback()

    + +
    +
    +
    +template<typename Callback >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_madness::ttg_register_callback (ttg::World world,
    Callback && callback 
    )
    +
    +inline
    +
    + +

    Definition at line 161 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_register_ptr() [1/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_madness::ttg_register_ptr (ttg::World world,
    const std::shared_ptr< T > & ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 147 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_register_ptr() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_madness::ttg_register_ptr (ttg::World world,
    std::unique_ptr< T > && ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 152 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_register_status()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_madness::ttg_register_status (ttg::World world,
    const std::shared_ptr< std::promise< void >> & status_ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 156 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_sum()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_madness::ttg_sum (ttg::World world,
    T & value 
    )
    +
    +inline
    +
    + +

    Definition at line 168 of file ttg.h.

    + +
    +
    + +

    ◆ watchpoint_clear()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    void ttg_madness::watchpoint_clear (T * addr)
    +
    +inline
    +
    + +

    clears the hardware watchpoint for window [addr,addr+size) previously created with watchpoint_set<T>

    + +

    Definition at line 73 of file watch.h.

    + +
    +
    + +

    ◆ watchpoint_set()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg_madness::watchpoint_set (T * addr,
    ttg::detail::MemoryWatchpoint_x86_64::Size size,
    ttg::detail::MemoryWatchpoint_x86_64::Condition cond 
    )
    +
    +inline
    +
    + +

    sets a hardware watchpoint for window [addr,addr+size) and condition cond

    + +

    Definition at line 65 of file watch.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg__madness_1_1detail.html b/dox-master/namespacettg__madness_1_1detail.html new file mode 100644 index 000000000..43d0cb8be --- /dev/null +++ b/dox-master/namespacettg__madness_1_1detail.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: ttg_madness::detail Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_madness::detail Namespace Reference
    +
    +
    + + + + +

    +Functions

    const std::vector< const pthread_t * > & watchpoints_threads ()
     
    +

    Function Documentation

    + +

    ◆ watchpoints_threads()

    + +
    +
    + + + + + +
    + + + + + + + +
    const std::vector<const pthread_t *>& ttg_madness::detail::watchpoints_threads ()
    +
    +inline
    +
    + +

    Definition at line 32 of file watch.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg__parsec.html b/dox-master/namespacettg__parsec.html new file mode 100644 index 000000000..75a0eb711 --- /dev/null +++ b/dox-master/namespacettg__parsec.html @@ -0,0 +1,1111 @@ + + + + + + + + + + + ttg: ttg_parsec Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ttg_parsec Namespace Reference
    +
    +
    + +

    this contains PaRSEC-based TTG functionality +More...

    + + + + +

    +Namespaces

     detail
     
    + + + + + + + + + + + + + + + + + +

    +Classes

    struct  Buffer
     
    struct  devicescratch
     
    class  TT
     
    struct  Ptr
     
    struct  TTValue
     
    struct  ptr
     
    struct  msg_header_t
     
    class  WorldImpl
     
    + + + + + + + + + + + + + +

    +Typedefs

    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using Op = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using TemplateTask = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    typedef void(* static_set_arg_fct_type) (void *, size_t, ttg::TTBase *)
     
    typedef std::pair< static_set_arg_fct_type, ttg::TTBase * > static_set_arg_fct_call_t
     
    typedef std::tuple< int, void *, size_t > static_set_arg_fct_arg_t
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    int num_devices ()
     
    template<typename... Views>
    bool register_device_memory (std::tuple< Views &... > &views)
     
    template<typename... Buffer>
    void mark_device_out (std::tuple< Buffer &... > &b)
     
    template<typename... Buffer>
    void post_device_out (std::tuple< Buffer &... > &b)
     
    void make_executable_hook (ttg::World &)
     
    void ttg_initialize (int argc, char **argv, int num_threads=-1, parsec_context_s *=nullptr)
     
    void ttg_finalize ()
     
    ttg::World ttg_default_execution_context ()
     
    void ttg_execute (ttg::World world)
     
    void ttg_fence (ttg::World world)
     
    template<typename T >
    void ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr)
     
    void ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
     
    template<typename Callback >
    void ttg_register_callback (ttg::World world, Callback &&callback)
     
    ttg::Edgettg_ctl_edge (ttg::World world)
     
    void ttg_sum (ttg::World world, double &value)
     
    template<typename T , typename... Args>
    Ptr< T > make_ptr (Args &&... args)
     
    template<typename T >
    Ptr< std::decay_t< T > > get_ptr (T &&obj)
     
    void ttg_initialize (int argc, char **argv, int num_threads, parsec_context_t *ctx)
     
    template<typename T >
    void ttg_register_ptr (ttg::World world, std::unique_ptr< T > &&ptr)
     
    template<typename T >
    void ttg_broadcast (::ttg::World world, T &data, int source_rank)
     
    template<typename ValueT >
    auto persistent (ValueT &&value)
     
    + + + + + + + +

    +Variables

    std::map< uint64_t, static_set_arg_fct_call_tstatic_id_to_op_map
     
    std::mutex static_map_mutex
     
    std::multimap< uint64_t, static_set_arg_fct_arg_tdelayed_unpack_actions
     
    +

    Typedef Documentation

    + +

    ◆ Op

    + +
    +
    +
    +template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    + + + + +
    using ttg_parsec::Op = typedef TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...> >
    +
    + +

    Definition at line 18 of file fwd.h.

    + +
    +
    + +

    ◆ static_set_arg_fct_arg_t

    + +
    +
    + + + + +
    typedef std::tuple<int, void *, size_t> ttg_parsec::static_set_arg_fct_arg_t
    +
    + +

    Definition at line 136 of file ttg.h.

    + +
    +
    + +

    ◆ static_set_arg_fct_call_t

    + +
    +
    + +

    Definition at line 133 of file ttg.h.

    + +
    +
    + +

    ◆ static_set_arg_fct_type

    + +
    +
    + + + + +
    typedef void(* ttg_parsec::static_set_arg_fct_type) (void *, size_t, ttg::TTBase *)
    +
    + +

    Definition at line 132 of file ttg.h.

    + +
    +
    + +

    ◆ TemplateTask

    + +
    +
    +
    +template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    + + + + +
    using ttg_parsec::TemplateTask = typedef TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...> >
    +
    + +

    Definition at line 21 of file fwd.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ get_ptr()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    Ptr< std::decay_t< T > > ttg_parsec::get_ptr (T && obj)
    +
    +inline
    +
    + +

    Definition at line 252 of file ptr.h.

    + +
    +
    + +

    ◆ make_executable_hook()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::make_executable_hook (ttg::Worldworld)
    +
    +inline
    +
    + +

    Definition at line 1114 of file ttg.h.

    + +
    +
    + +

    ◆ make_ptr()

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + + +
    + + + + + + + + +
    Ptr< T > ttg_parsec::make_ptr (Args &&... args)
    +
    +inline
    +
    + +

    Definition at line 270 of file ptr.h.

    + +
    +
    + +

    ◆ mark_device_out()

    + +
    +
    +
    +template<typename... Buffer>
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::mark_device_out (std::tuple< Buffer &... > & b)
    +
    +inline
    +
    + +

    Definition at line 135 of file devicefunc.h.

    + +
    +
    + +

    ◆ num_devices()

    + +
    +
    + + + + + +
    + + + + + + + +
    int ttg_parsec::num_devices ()
    +
    +inline
    +
    + +

    Definition at line 41 of file device.h.

    + +
    +
    + +

    ◆ persistent()

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + + +
    auto ttg_parsec::persistent (ValueT && value)
    +
    +inline
    +
    + +

    Definition at line 93 of file ttvalue.h.

    + +
    +
    + +

    ◆ post_device_out()

    + +
    +
    +
    +template<typename... Buffer>
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::post_device_out (std::tuple< Buffer &... > & b)
    +
    +inline
    +
    + +

    Definition at line 171 of file devicefunc.h.

    + +
    +
    + +

    ◆ register_device_memory()

    + +
    +
    +
    +template<typename... Views>
    + + + + + +
    + + + + + + + + +
    bool ttg_parsec::register_device_memory (std::tuple< Views &... > & views)
    +
    +inline
    +
    + +

    Definition at line 82 of file devicefunc.h.

    + +
    +
    + +

    ◆ ttg_broadcast()

    + +
    +
    +
    +template<typename T >
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_broadcast (::ttg::World world,
    T & data,
    int source_rank 
    )
    +
    +

    broadcast

    Template Parameters
    + + +
    Ta serializable type
    +
    +
    + +

    Definition at line 1121 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_ctl_edge()

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg::Edge & ttg_parsec::ttg_ctl_edge (ttg::World world)
    +
    +inline
    +
    + +

    Definition at line 1106 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_default_execution_context()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::World ttg_parsec::ttg_default_execution_context ()
    +
    +inline
    +
    + +

    Definition at line 1081 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_execute()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::ttg_execute (ttg::World world)
    +
    +inline
    +
    + +

    Definition at line 1084 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_fence()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::ttg_fence (ttg::World world)
    +
    +inline
    +
    + +

    Definition at line 1085 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_finalize()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::ttg_finalize ()
    +
    +inline
    +
    + +

    Definition at line 1071 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_initialize() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_initialize (int argc,
    char ** argv,
    int num_threads,
    parsec_context_t * ctx 
    )
    +
    +inline
    +
    + +

    Definition at line 1030 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_initialize() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_initialize (int argc,
    char ** argv,
    int num_threads = -1,
    parsec_context_s *  = nullptr 
    )
    +
    +inline
    +
    + +
    +
    + +

    ◆ ttg_register_callback()

    + +
    +
    +
    +template<typename Callback >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_register_callback (ttg::World world,
    Callback && callback 
    )
    +
    +inline
    +
    + +

    Definition at line 1102 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_register_ptr() [1/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_register_ptr (ttg::World world,
    const std::shared_ptr< T > & ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 1088 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_register_ptr() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_register_ptr (ttg::World world,
    std::unique_ptr< T > && ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 1093 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_register_status()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_register_status (ttg::World world,
    const std::shared_ptr< std::promise< void >> & status_ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 1097 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_sum()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::ttg_sum (ttg::World world,
    double & value 
    )
    +
    +inline
    +
    + +

    Definition at line 1108 of file ttg.h.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ delayed_unpack_actions

    + +
    +
    + + + + + +
    + + + + +
    std::multimap<uint64_t, static_set_arg_fct_arg_t> ttg_parsec::delayed_unpack_actions
    +
    +inline
    +
    + +

    Definition at line 137 of file ttg.h.

    + +
    +
    + +

    ◆ static_id_to_op_map

    + +
    +
    + + + + + +
    + + + + +
    std::map<uint64_t, static_set_arg_fct_call_t> ttg_parsec::static_id_to_op_map
    +
    +inline
    +
    + +

    Definition at line 134 of file ttg.h.

    + +
    +
    + +

    ◆ static_map_mutex

    + +
    +
    + + + + + +
    + + + + +
    std::mutex ttg_parsec::static_map_mutex
    +
    +inline
    +
    + +

    Definition at line 135 of file ttg.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/namespacettg__parsec_1_1detail.html b/dox-master/namespacettg__parsec_1_1detail.html new file mode 100644 index 000000000..4124ebbaa --- /dev/null +++ b/dox-master/namespacettg__parsec_1_1detail.html @@ -0,0 +1,1658 @@ + + + + + + + + + + + ttg: ttg_parsec::detail Namespace Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail Namespace Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  ptr_impl
     
    struct  device_ptr_t
     
    struct  device_state_t
     
    struct  device_state_t< true >
     
    struct  parsec_ttg_task_base_t
     
    struct  parsec_ttg_task_t
     
    struct  parsec_ttg_task_t< TT, true >
     
    struct  reducer_task_t
     
    struct  msg_t
     
    class  rma_delayed_activate
     
    struct  ParsecTTBase
     
    struct  ttg_parsec_data_wrapper_t
     
    struct  ttg_data_copy_container_setter
     
    struct  ttg_data_copy_self_t
     
    struct  ttg_data_copy_t
     
    struct  ttg_data_value_copy_t
     
    struct  is_ttvalue_base
     
    struct  is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >
     
    struct  persistent_value_ref
     
    + + + +

    +Typedefs

    typedef parsec_hook_return_t(* parsec_static_op_t) (void *)
     
    + + + +

    +Enumerations

    enum class  ttg_parsec_data_flags : uint8_t {
    +  NONE = 0 +, SINGLE_READER = 1 << 0 +, MULTIPLE_READER = 1 << 1 +, SINGLE_WRITER = 1 << 2 +,
    +  MULTIPLE_WRITER = 1 << 3 +, IS_MODIFIED = 1 << 4 +, MARKED_PUSHOUT = 1 << 5 +
    + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename T , typename A >
    parsec_data_t * get_parsec_data (const ttg_parsec::Buffer< T, A > &db)
     
    int ttg_device_to_parsec_device (const ttg::device::Device &device)
     
    ttg::device::Device parsec_device_to_ttg_device (int parsec_id)
     
    template<typename... Views, std::size_t I, std::size_t... Is>
    bool register_device_memory (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
     
    template<typename... Views, std::size_t I, std::size_t... Is, bool DeviceAvail = false>
    void mark_device_out (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
     
    template<typename... Views, std::size_t I, std::size_t... Is>
    void post_device_out (std::tuple< Views &... > &views, std::index_sequence< I, Is... >)
     
    template<typename T >
    parsec_data_t * get_parsec_data (const ttg_parsec::devicescratch< T > &)
     
    template<typename Value >
    ttg_data_copy_tcreate_new_datacopy (Value &&value)
     
    template<typename T >
    ttg_parsec::detail::ttg_data_copy_tget_copy (ttg_parsec::Ptr< T > &p)
     
    template<typename T >
    detail::ttg_data_copy_tget_copy (ttg_parsec::Ptr< T > &p)
     
    ttg_parsec_data_flags operator| (ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
     
    ttg_parsec_data_flags operator|= (ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
     
    uint8_t operator& (ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
     
    ttg_parsec_data_flags operator&= (ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
     
    bool operator! (ttg_parsec_data_flags lhs)
     
    ttg_data_copy_t *& ttg_data_copy_container ()
     
    bool & initialized_mpi ()
     
    ttg_data_copy_tfind_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
     
    int find_index_of_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
     
    bool add_copy_to_task (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
     
    void remove_data_copy (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
     
    template<typename TT , std::size_t I>
    void transfer_ownership_impl (ttg_data_copy_t *copy, int device)
     
    template<typename TT , std::size_t... Is>
    void transfer_ownership (parsec_ttg_task_t< TT > *me, int device, std::index_sequence< Is... >)
     
    template<typename TT >
    parsec_hook_return_t hook (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t hook_cuda (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t hook_hip (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t hook_level_zero (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t evaluate_cuda (const parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t evaluate_hip (const parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t evaluate_level_zero (const parsec_task_t *parsec_task)
     
    void release_data_copy (ttg_data_copy_t *copy)
     
    template<typename Value >
    ttg_data_copy_tregister_data_copy (ttg_data_copy_t *copy_in, parsec_ttg_task_base_t *task, bool readonly)
     
    + + + + + + + + + + + + + + + + + +

    +Variables

    int first_device_id = -1
     
    thread_local parsec_ttg_task_base_tparsec_ttg_caller = nullptr
     
    constexpr const int PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024
     
    std::size_t max_inline_size = msg_t::max_payload_size
     
    const parsec_symbol_t parsec_taskclass_param0
     
    const parsec_symbol_t parsec_taskclass_param1
     
    const parsec_symbol_t parsec_taskclass_param2
     
    const parsec_symbol_t parsec_taskclass_param3
     
    +

    Typedef Documentation

    + +

    ◆ parsec_static_op_t

    + +
    +
    + + + + +
    typedef parsec_hook_return_t(* ttg_parsec::detail::parsec_static_op_t) (void *)
    +
    + +

    Definition at line 87 of file task.h.

    + +
    +
    +

    Enumeration Type Documentation

    + +

    ◆ ttg_parsec_data_flags

    + +
    +
    + + + + + +
    + + + + +
    enum ttg_parsec::detail::ttg_parsec_data_flags : uint8_t
    +
    +strong
    +
    + + + + + + + + +
    Enumerator
    NONE 
    SINGLE_READER 
    MULTIPLE_READER 
    SINGLE_WRITER 
    MULTIPLE_WRITER 
    IS_MODIFIED 
    MARKED_PUSHOUT 
    + +

    Definition at line 44 of file task.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ add_copy_to_task()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool ttg_parsec::detail::add_copy_to_task (ttg_data_copy_tcopy,
    parsec_ttg_task_base_ttask 
    )
    +
    +inline
    +
    + +

    Definition at line 657 of file ttg.h.

    + +
    +
    + +

    ◆ create_new_datacopy()

    + +
    +
    +
    +template<typename Value >
    + + + + + +
    + + + + + + + + +
    ttg_data_copy_t * ttg_parsec::detail::create_new_datacopy (Value && value)
    +
    +inline
    +
    + +

    Definition at line 699 of file ttg.h.

    + +
    +
    + +

    ◆ evaluate_cuda()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::evaluate_cuda (const parsec_task_t * parsec_task)
    +
    +inline
    +
    + +

    Definition at line 800 of file ttg.h.

    + +
    +
    + +

    ◆ evaluate_hip()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::evaluate_hip (const parsec_task_t * parsec_task)
    +
    +inline
    +
    + +

    Definition at line 810 of file ttg.h.

    + +
    +
    + +

    ◆ evaluate_level_zero()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::evaluate_level_zero (const parsec_task_t * parsec_task)
    +
    +inline
    +
    + +

    Definition at line 820 of file ttg.h.

    + +
    +
    + +

    ◆ find_copy_in_task()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_data_copy_t* ttg_parsec::detail::find_copy_in_task (parsec_ttg_task_base_ttask,
    const void * ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 628 of file ttg.h.

    + +
    +
    + +

    ◆ find_index_of_copy_in_task()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    int ttg_parsec::detail::find_index_of_copy_in_task (parsec_ttg_task_base_ttask,
    const void * ptr 
    )
    +
    +inline
    +
    + +

    Definition at line 643 of file ttg.h.

    + +
    +
    + +

    ◆ get_copy() [1/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_copy_t* ttg_parsec::detail::get_copy (ttg_parsec::Ptr< T > & p)
    +
    +inline
    +
    + +

    Definition at line 277 of file ptr.h.

    + +
    +
    + +

    ◆ get_copy() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    detail::ttg_data_copy_t* ttg_parsec::detail::get_copy (ttg_parsec::Ptr< T > & p)
    +
    +inline
    +
    + +

    Definition at line 277 of file ptr.h.

    + +
    +
    + +

    ◆ get_parsec_data() [1/2]

    + +
    +
    +
    +template<typename T , typename A >
    + + + + + + + + +
    parsec_data_t * ttg_parsec::detail::get_parsec_data (const ttg_parsec::Buffer< T, A > & db)
    +
    + +

    Definition at line 393 of file buffer.h.

    + +
    +
    + +

    ◆ get_parsec_data() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + + + + +
    parsec_data_t * ttg_parsec::detail::get_parsec_data (const ttg_parsec::devicescratch< T > & scratch)
    +
    + +

    Definition at line 138 of file devicescratch.h.

    + +
    +
    + +

    ◆ hook()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::hook (struct parsec_execution_stream_s * es,
    parsec_task_t * parsec_task 
    )
    +
    +inline
    +
    + +

    Definition at line 757 of file ttg.h.

    + +
    +
    + +

    ◆ hook_cuda()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::hook_cuda (struct parsec_execution_stream_s * es,
    parsec_task_t * parsec_task 
    )
    +
    +inline
    +
    + +

    Definition at line 766 of file ttg.h.

    + +
    +
    + +

    ◆ hook_hip()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::hook_hip (struct parsec_execution_stream_s * es,
    parsec_task_t * parsec_task 
    )
    +
    +inline
    +
    + +

    Definition at line 777 of file ttg.h.

    + +
    +
    + +

    ◆ hook_level_zero()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::hook_level_zero (struct parsec_execution_stream_s * es,
    parsec_task_t * parsec_task 
    )
    +
    +inline
    +
    + +

    Definition at line 788 of file ttg.h.

    + +
    +
    + +

    ◆ initialized_mpi()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool& ttg_parsec::detail::initialized_mpi ()
    +
    +inline
    +
    + +

    Definition at line 224 of file ttg.h.

    + +
    +
    + +

    ◆ mark_device_out()

    + +
    +
    +
    +template<typename... Views, std::size_t I, std::size_t... Is, bool DeviceAvail = false>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::mark_device_out (std::tuple< Views &... > & views,
    std::index_sequence< I, Is... >  
    )
    +
    +inline
    +
    + +

    Definition at line 110 of file devicefunc.h.

    + +
    +
    + +

    ◆ operator!()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool ttg_parsec::detail::operator! (ttg_parsec_data_flags lhs)
    +
    +inline
    +
    + +

    Definition at line 81 of file task.h.

    + +
    +
    + +

    ◆ operator&()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    uint8_t ttg_parsec::detail::operator& (ttg_parsec_data_flags lhs,
    ttg_parsec_data_flags rhs 
    )
    +
    +inline
    +
    + +

    Definition at line 68 of file task.h.

    + +
    +
    + +

    ◆ operator&=()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_parsec_data_flags ttg_parsec::detail::operator&= (ttg_parsec_data_flagslhs,
    ttg_parsec_data_flags rhs 
    )
    +
    +inline
    +
    + +

    Definition at line 74 of file task.h.

    + +
    +
    + +

    ◆ operator|()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_parsec_data_flags ttg_parsec::detail::operator| (ttg_parsec_data_flags lhs,
    ttg_parsec_data_flags rhs 
    )
    +
    +inline
    +
    + +

    Definition at line 55 of file task.h.

    + +
    +
    + +

    ◆ operator|=()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_parsec_data_flags ttg_parsec::detail::operator|= (ttg_parsec_data_flagslhs,
    ttg_parsec_data_flags rhs 
    )
    +
    +inline
    +
    + +

    Definition at line 61 of file task.h.

    + +
    +
    + +

    ◆ parsec_device_to_ttg_device()

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg::device::Device ttg_parsec::detail::parsec_device_to_ttg_device (int parsec_id)
    +
    +inline
    +
    +

    map from parsec ID-space to TTG ID-space

    + +

    Definition at line 30 of file device.h.

    + +
    +
    + +

    ◆ post_device_out()

    + +
    +
    +
    +template<typename... Views, std::size_t I, std::size_t... Is>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::post_device_out (std::tuple< Views &... > & views,
    std::index_sequence< I, Is... >  
    )
    +
    +inline
    +
    + +

    Definition at line 151 of file devicefunc.h.

    + +
    +
    + +

    ◆ register_data_copy()

    + +
    +
    +
    +template<typename Value >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_data_copy_t* ttg_parsec::detail::register_data_copy (ttg_data_copy_tcopy_in,
    parsec_ttg_task_base_ttask,
    bool readonly 
    )
    +
    +inline
    +
    +

    no other readers, mark copy as mutable and defer the release of the task

    + +

    Definition at line 935 of file ttg.h.

    + +
    +
    + +

    ◆ register_device_memory()

    + +
    +
    +
    +template<typename... Views, std::size_t I, std::size_t... Is>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool ttg_parsec::detail::register_device_memory (std::tuple< Views &... > & views,
    std::index_sequence< I, Is... >  
    )
    +
    +inline
    +
    + +

    Definition at line 21 of file devicefunc.h.

    + +
    +
    + +

    ◆ release_data_copy()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::release_data_copy (ttg_data_copy_tcopy)
    +
    +inline
    +
    + +

    Definition at line 882 of file ttg.h.

    + +
    +
    + +

    ◆ remove_data_copy()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::remove_data_copy (ttg_data_copy_tcopy,
    parsec_ttg_task_base_ttask 
    )
    +
    +inline
    +
    + +

    Definition at line 671 of file ttg.h.

    + +
    +
    + +

    ◆ transfer_ownership()

    + +
    +
    +
    +template<typename TT , std::size_t... Is>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::transfer_ownership (parsec_ttg_task_t< TT > * me,
    int device,
    std::index_sequence< Is... >  
    )
    +
    +inline
    +
    + +

    Definition at line 750 of file ttg.h.

    + +
    +
    + +

    ◆ transfer_ownership_impl()

    + +
    +
    +
    +template<typename TT , std::size_t I>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::transfer_ownership_impl (ttg_data_copy_tcopy,
    int device 
    )
    +
    +inline
    +
    + +

    Definition at line 742 of file ttg.h.

    + +
    +
    + +

    ◆ ttg_data_copy_container()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg_data_copy_t*& ttg_parsec::detail::ttg_data_copy_container ()
    +
    +inline
    +
    + +

    Definition at line 14 of file thread_local.h.

    + +
    +
    + +

    ◆ ttg_device_to_parsec_device()

    + +
    +
    + + + + + +
    + + + + + + + + +
    int ttg_parsec::detail::ttg_device_to_parsec_device (const ttg::device::Devicedevice)
    +
    +inline
    +
    +

    map from TTG ID-space to parsec ID-space

    + +

    Definition at line 18 of file device.h.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ first_device_id

    + +
    +
    + + + + + +
    + + + + +
    int ttg_parsec::detail::first_device_id = -1
    +
    +inline
    +
    + +

    Definition at line 12 of file device.h.

    + +
    +
    + +

    ◆ max_inline_size

    + +
    +
    + + + + + +
    + + + + +
    std::size_t ttg_parsec::detail::max_inline_size = msg_t::max_payload_size
    +
    +inline
    +
    + +

    Definition at line 190 of file ttg.h.

    + +
    +
    + +

    ◆ parsec_taskclass_param0

    + +
    +
    + + + + +
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param0
    +
    +Initial value:
    = {
    +
    .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    .name = "HASH0",
    +
    .context_index = 0,
    +
    .min = nullptr,
    +
    .max = nullptr,
    +
    .expr_inc = nullptr,
    +
    .cst_inc = 0 }
    +
    +

    Definition at line 595 of file ttg.h.

    + +
    +
    + +

    ◆ parsec_taskclass_param1

    + +
    +
    + + + + +
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param1
    +
    +Initial value:
    = {
    +
    .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    .name = "HASH1",
    +
    .context_index = 1,
    +
    .min = nullptr,
    +
    .max = nullptr,
    +
    .expr_inc = nullptr,
    +
    .cst_inc = 0 }
    +
    +

    Definition at line 603 of file ttg.h.

    + +
    +
    + +

    ◆ parsec_taskclass_param2

    + +
    +
    + + + + +
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param2
    +
    +Initial value:
    = {
    +
    .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    .name = "KEY0",
    +
    .context_index = 2,
    +
    .min = nullptr,
    +
    .max = nullptr,
    +
    .expr_inc = nullptr,
    +
    .cst_inc = 0 }
    +
    +

    Definition at line 611 of file ttg.h.

    + +
    +
    + +

    ◆ parsec_taskclass_param3

    + +
    +
    + + + + +
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param3
    +
    +Initial value:
    = {
    +
    .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    .name = "KEY1",
    +
    .context_index = 3,
    +
    .min = nullptr,
    +
    .max = nullptr,
    +
    .expr_inc = nullptr,
    +
    .cst_inc = 0 }
    +
    +

    Definition at line 619 of file ttg.h.

    + +
    +
    + +

    ◆ parsec_ttg_caller

    + +
    +
    + + + + + +
    + + + + +
    thread_local parsec_ttg_task_base_t* ttg_parsec::detail::parsec_ttg_caller = nullptr
    +
    +inline
    +
    + +

    Definition at line 12 of file thread_local.h.

    + +
    +
    + +

    ◆ PARSEC_TTG_MAX_AM_SIZE

    + +
    +
    + + + + + +
    + + + + +
    constexpr const int ttg_parsec::detail::PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024
    +
    +constexpr
    +
    + +

    Definition at line 172 of file ttg.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/nav_f.png b/dox-master/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/dox-master/nav_g.png b/dox-master/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXLs;4Qhz%Jypd#wyaE0kh3P2YJ5tonHVgdYWb;_XRzu^+P2l;rBPWht zIdYO#1o)LZ%KES82S;xlIsW54&`zlRkrV$YqY3<_{k#KyX?6bkdo1Aup>v9d1${!Rdl#lfMK4s*L&>#SVLXvsjIWFm9^^=8(}Z! zXS7;JWW1z+M`s&%t7~4)PA)JhFImnXC8U67+G`QcYd?y(JIZoC*3iDD=nA#DCLt^; zEXpZ&=GwJuGEi$TVOC)L{v;fOiTzU zAq4Ywakugka)ELE)yO~Fxo-n|3blXcZtv=Hjn=N!6ITy+Sx!z`NB{cyYn<-(w*T(Q z1@@0=0TUFVeG$1OEGqJM)oi@%e^QP1<*#Z#=Ji*1GPK5|bZlU*P9C&T>ATpw%ZbVS z=;MFC{`VkdXl+Sp+k4qKJ-%=6Y~un0s>+FhBqU@+{`S+~RyF!}RS8L;&wtnaA7B1a zQ$~bFuKz*4zj*WGEx;VPGcqFoVzk^DVsF=jBS#dDsNBD+=XG>p#Asbs-%8|r_yPN) z<_q`r&Y$MJd+O39C56f7ZklgY4Ajj{N9OA@dI~C)|IV z@JAxgqo?N|op}G~{P}0sZU!H}^UW!6+qG0T7pA$NH&yO5E_ID2jCf}^)i=MC1{i4iyFYQkq$pJrY1E^}rb>iHJ z^LCsbct$?5!2*HSfz=)VNxUz!#P+)lmMusgCm>PIDL`E(&7Aw=}H06j?~Q zd26|9GQu@*cc_I8hJU2YE`DQN-_UFWowC312Gs7=lg`mAKOPydo(?p<)S<{IyV0Y& zo2`m>^_ygck9t$ksEva3NI4(v#{A;?ouJbkUY+6Q>jN!v6@iT@dsBS<;#$ z4%V};`Yx0JlL_44kl!0;)RNntYGRNs2y9H+HS?a1InBW4g;g`}lGlF{K#?B9>~9W5 z-kEqc86oYW-RM+7@I^$R=^tKG*8)Na+^(ybljH+xUib-;A(qJ3GgNg=~)Z2S@5Ei4y?A@VAZ8ZF=D_Q zBeCuXc+ng7Wm9J0jUdv#McU9-WYKGW<}v7<8vWL&?=l@<(n@r;Oy-&B-wGR$PVHdr zESOscuRsu9Bp8NNPsIx!_n?c*n3>{?yI|U9V|^kXf9~86qziR<9@g-W_U1ir=KupmcxvbA zL9q;oiBmCms;hV;KYiFx-?Q0)Se`E74v^!&l@GpcwJ6GiKm}&IzOs=~{wTN%&bj`; zH=+ol60gdT2jO&8QhZZHu_IQqzg*ivRtJ&U;PpdAwbf;?Svmb8nbm)@9X`$m@NQ45?qDt+kxCYXw ztN+pgH>Tu%^}kl`)(M=8_e^KeQgtXV{&n>JVaE#pV$}M(nTnMHNdm* zEZ9hv&-`;(xIiN16+oZheV;k%!3TC_lxWF7TkHPtK zCyHmhV}jEtK@JuCP`Mu+UA4WDUT~JL*s8#1}{LFJeL(oq}XQSCYVDiJ+t)+Zg_z!f5 z47OumdDQdn(p~f(J_AhXbsNP}Jo`>cQE1Oy!OSpSBKOtkk6y8t1d;29(rJKLe?VoT zROIXynF8Hg+6SjWWvKMH zwus;Fa~wVsJMq;!Vn#GwR;}^E23zHyU(f}X&_C8y@;W!vG281R!tYzkcV|K#x^1%+ zke~ZR04soP5s=bVL4kpWOH8o!GrWtx5l;_Us(IQC=@8xMZ}}V-{6fE&!lVDt`S}Ms z|37f7pMs5~EV$`!4 z2IuutcdAj0E&-mk|5qLZXq9BT?7}6s0nZ{s(RXCg*J-k z^#&_7W94Fz$nJ#!aTUdDAiK=(2iE^j9qYO5yLOTyY*n2o)Wj z7@a*HK$!-aUAj>-w%~O-M#r;|k1Z3gXmu5hGp4d? zd4yt!L)9hJkUsGp!|&#JB(^_%c`IDPELql^AgaW; z!)-MYDGcEBeGXub4%B(%6_=M3&t6bQaJ7+9O_YOnW9L3hg~&bj+9xY2cn+MvlNqfM zVCR;uR`7*hsDxL&GgwX~{(E{jYqaQl01Yz+_k6NKOvW*08|P+IT@3n)GOk2Fb3Zig z0%0rDP`Oj7J`uJm{5FWI#=|pAj&6!-1$4UWsaj0D2Qw3=c+{udHUx7e8c@0823{_P zvWikUi818@xu@#z=ht_mdm`7$q3Oz3I?{R3Aa5oN9soPj5kT4k#l3A zOB^@Hzcn=H*l=s3TN}Hard^TvG21;7R*WyupJwb>R-VL-)?mh#bf1j8Wz>krw_UKZ zYs|p$0o^3kqb3cWxyvf^B@Mu^KD^tnJVn^Ev;tkes^oq65;MicWSi-rczeEsPbRIZ zbAxTfFa2Ux9+$yK+5#MnD&;ML7}e~Jy!K%x-qlYYg_(x3m=Qba)GpJLZ==-uKv?A- zSo5hnMcYvhri}%9&aa|W4jWYNL}yyd0c)Skn*8i9SgGT&(J&>JdT!TT+7Ltq=SkI3 zsu)0kD!3Rcd{?@VU#;~o(FLdhm?F|ND6M#+2$^+DEZi0Ox>;=twv^*A6THN05t!-p8hT>Md$g2V_I;Rn@ zx6R#~`eKgMS+M$s7~&f-FPc8&@7`EvMs$w~9vX9K*OlI}hIPI=FuF;bipQB`K*73V z#|m>Gt899`KkD9ymM+|n;bP}TYPcgybnMME8I>Cvq9gOsp&5TMq=yD(H@yhI&x zTs+}ZaLJ)_Kd@y=%F^1^%umpU@&klA=tGKM{b3cy>!dDV+eW>#F&FvN z-L^9Tt|zpLkEfQaO>qP2>Pw8?95^n4A{c%EcGMyF5Ij3h-Km2(NLN4QTTCs_7t`e( zjt$W!cFEcvMl7YM#2v zQ?n$n_!d*{9$|0I{;T?(6eXntlQV}u#6u^@=b|!E2hAsPtA$5>?E{^oTQCz~yW9Xs zYcq!gx)xsTML(}RF!*}KPU-P&Oa`R`Wsq-pJp5)~LIY(U>~gYg)~-Ne7+pcG^3iPg zGnbN@7vWf6&_DCyrMszY}8%|#i(-E+s9){P9>;GH>v@clFH;b zb!8^U1lEZvrc_-@vTQNA8C&r%^>@RAzB6&Qd5CgVq%MTFT~P#&FKEs=>#!gO3hV~q z@Ju&W)mF=yJZ$-gENK2(ym{(Ee%nE9;H<}Kx!YE++xT*`RN{3U!uI=xZ>i;-$SR<` zno!kO<}MHnHu&fT5EBbfw4}(gi-Csxj8FKt`K)y40jqTP14_x(PC$JYW34DNFn8!F zsYvX_55AqT<+q`U383^3n`-WO7A#i1$V6o}vxnO~xbfxfJEJTV*K4(?=sTR_p1m;S zCBOtsaYONQ(uI01bnc^nk88kMbqp3}0s>5kM%*YRgqM4K#b|w2)+(gLC z8Qy~qy)gNr5yZ`u(~jU;puw!@;FEHXC$wX^*{(#+a~iy%A^Fhxm2ex)AM4~cYs5cS^)7- zc>rs&u{AO-ErK~@5z53b{0-NRQq!3Oh4s9z^pC0hckGL4I$AN|X=u z?Y~Fhy9oGr()H_^BJ6-Km7Nl>WBu}`o$tvmlP(DDw*oHI<0lrx775kEt=>@1#GcXb z*gSJ*a%8k3v7X%Sl`T0o$CSM4;z8B0@P^cOC%SrswR=@oZ|@k^gC83-c_AH$8D3G(Ubv#Lm|>odo8 zS*;m{8u^+yDV=nWFSN_j$j^|)XO*{x^tY_qHL=<$<{3sP=e}V;Ul%GJ?|pU*Jx*U{ z-`i~^QK(drCI<{74QZf*tq#AzSUau99VCWE1|}nbURM+q;bBsVaxe!^8+)WKwGi0{ z{t;#PXdYBrQxRzHD&V9xJDqf`yw|EC6WeF5iF%Rj`v)h^&J1EZOHaR_1bW#)VvSL83`0Ux67(1QZD6n{@ z+8rnN&aaJMb>Bqw=A@g=Y>=@R<}fEqJ+;{}VzhjsN5_$uM;qrzxUE8qejw-s2j#U4 zj-GUWsj$c={_#?;0oH@ACqU=;d|nu|^5L~QrBG5DFe-hIzXthf$);w|(X701KjT!N z{>5pRf7jbMlTkS%I`91F;!QK!ROT#(%ACIT*iK4rF=lSe|6%HQq$oq^=`*^@lxhK% znC5V?LaHMR;f&4f@HXL2BhAtIsCJBWoR3nSKANdxT?0Ac9xvM+-CgjC0rZxN;s=HT z(f|`)&xm&4S$?at9$VKLfhc^*0Akq~z40)V#JYHgWIQ8^c(nZXPxpA>V|ZWMxi19a z!gM#IXgO_OM@WvLo8z@krU1Jc;Z@w9S8ia+o2EGi?PjP>i!E|bUp=msV*)G zUc42*g_qVfX*!e73nU?hd-uxrK|TnC7PRQF~4J)?3V=s}X@B?tN3Ai6X9%^c@D ztTq+6G%;tS@X>=q<_13D4CuwT1CI_#UkOQl@y1bcR#i+G25d~ccqric&6S?O*_oP| z9?z60#Nv~ZL6xIe?!0 zO^Y?G`B_a1A#>&gT~|`RP>tGrX43-G0!Lc~jf+nO>^wXbe-x!3kWI>FK!>tQ=J$=% z6EbaNgjH~srU$&H5RMz_D%ucnn5(VclUP&Lfgj=k*l$5H>V06k=xv^N4K#FmYj!!C zulz}z61!}{SJ!FVC|azAm-(Y2>JLA)@O)r7Rk$nZ`93+yZu?}#Swu6Gw8@-QdN3;l zh|;$q^VreSMWH(y`;LI9+2iza6=!EeherRr*l!Vv{KGFlT+Ox9s-pTNyufb|-g(U! z)*-YVZI>yJ&+=Kxt--W8^z?O!ksdX$bGc`fzoK<*z}W#Y+zSU{bhJp+2z+dRB~*Uz z6<5TagYT2O8OACb)}_~vWqzSnp4jP`1LAAnze?7>Z-=d6`6MUDJcpbQcZv^pXyLk* zCPw-37Z*9Us#?V3+UZ4b4ldRp$-AlRh~WL{55Av03wq)8)MVEHYNANMYIx$U?sZxK zajW5QzqV~WSId7cj1LuGr_Bjy5c#T&K9j^-j^CqoHNAltpgy0Y}KR;bL8R8kg zpx}a;j^&fz#wxRW=%EMY_h+@bt?Gd|rrc&pq%1l9DQfi%^FrhI4+1@T0N)v*t3-L8Dl#mo3?6QTQ+t)>0nrTeyw*Zto_cdA^7x&tf%a@usmUJQd9N7$r zvBLUqD+;0&;p|2PLNh+>q|at-&&}Nz>#^%E*b>dxqT+6cE&*ZE6u*V1S9d!j1N3gD zsBu72{5Pp7hkIh+na8oMSNCU>sb-ZK8e?q-a~{RMX2^B;;xSoid<1KNlnPj{R~)yR zBkms8jdCo)@LmwptDUsO7YFXow+Yt>*4+-4Bs{esSXc@jlO>vWSqWFqqybG+GNVXD zzj>1}DM}IyXWi0y^Flo!ApvAiO0HvEcjCe=TCBJqe9VNq1IE}5FnENgx~97zhB|J9 zARxQZO+9DeYzEBi_jlL|RS%>&zB`DY=;Q2YsC2*WvjtvEMGV}1-_Kb=JZo0pwD7%f z8(30KF0TsO!9iFg5e7unr64Yro$a(mRddof*iIbk7$Bv{Ty9&zOF8T_i;8LHnKwv? zK-#=-_@P40gD|^`wlPqw*rX>WaBmn!Bm^@Yu8AD#kf&B_Y;TX(32E=B9K^eTJ+`mm6t3rn7O=ss4S-ipQhAo#<_vo zaeCLBT&7l+n-|v3LyF=hDRIw~4bbliNb}SRUwV9@;sfn2oX4a5U^DoL2TNt!H=Ka^ z>gzYB1Gn2O4jM1lzjH-JdNp%JS$C8O#;J+9Y|SXk@8Cg1yvH65Rxp>vBQMDBl88l_ zXA2$y;A3z)zK{rT9s~LYY$&w)ALsFI_e@9@z06B9NPCkK!{_j}*DlY)UdqBe3rs*U zE4PnHOIS#$S8U0QC!?d;T)Ng->e{qjT;!MKjBWlPzZNKJHJ-8>lgWvbR)Y%okZU&z zU6XBlqf74vb!mAHzo;SF*VNpH!xPLdQ<~7ci4u?&23>(+|Hnq|=Siz}`qZ)2Pliv= z6ey)~ggIC~5|_GCx0~eIp|X(L8lLBHutXOf&;?;c=QOzoI<}Vx0_>AREcau^Zt#g> zG~{dE`vuJ{rG+>OS9j!ed2brQhKuk{nFY5_{)qIjo`jM(djo(C z5xph$c2)*zvm!$;yCQu1LBeHvamLd_RTFbE0;0YhDQ^+^6qYb-FIBRB^(|&)_+108|Nrus&cbP*~xH;AO&OYIv!VXnazQxuoeq+ zv)_JeCK2xqunKiHmo6iJN^ZK#s;fL9(!|C-#9>Xc_24mPIV7593_sT}jRvUSNPptvCoFxOC_FCGg84*ou; z+~e6lB*f{P>|aNC*dIggZDlV-xe9o`HGb_RG*ZIB`6Fh%eoS_&*L&^St$F=5C`c2N z>sQf^Q3N0N#X!JuH=$vmIC<#)6Nv<{3Ew-pcUmb9lzZM!XrfQBe;@_ha)5i`Ew)j?x;B^8UDhlv~4T}KH{Ef>t@j_CIQIl%s>iu(O z;3aEF)C&?ZdI~d$@_#s(uMTK-p8P3`hElSx6E8YDp>QCA{i~H5vojCOa{(mn@_iOW z@^DYeoC>vG6M%1{c3<$xTrXxFEExnZWppg$8jFlO@%C6HTtU1vsR_qS^S0+^qY}tP zr<2QkPf?*lf~(RI21W_>(NkdvEnb+mz&>ng_AMwDbC3u^myJYh%*tgiE-}sWg=+?o zW9R+6gxkpY1rkJOe5nbS7Tg-4oUd9k8C3jL-Lhr!J!q7-Kd({NR}G#HPwC#242zHPY&lhVbU;pr-CL#4JGi?VuNLEmLiL0o;0;eD5cPrj(dKi@is=&*y zcPO@@8B`LLi*27Kpbbxo9YJWBYsDcN-^5Pe7u_oChkbrQ&7DVOKW1tdFU4$Sz#;k| z{-E{BBzWK1`E8~s;e-Yo`=T|4Yo$u7?A5Yfu!y@{Tb zJ#5PD%Q4cYa2LG@+jNxeJin({ZH=O`3T7K9jpfPN3tLeVitt%8f{aIY*4O57saOdU z7yHr$^*JEOoIeGH$Qp0R$MR4Y;!1;YtWR-7RLuMMS~9$1c!^>1;~fDBQWCr5-XH|( zcAfa$)*`y{crQA+2c%Wat!Xat?s!XtA{;z1RrG%S)9{BitX2TD(_v0D+`3OrzCUjb z?}EMp>=#3L+eVJCE9W<3+pk~fGJ%4{*>h#YP}dJJj62d#?Kxdtt9FwrYSi4}*|A~N zapqP7El)NBDF#kyj>0@_#OeAgprED6N1S&iouL|ROD^lBWvG&}BI5dAOdTGvN?O$% zRy6+N0gtzx>Z>FJHdHa@_E@5rU0fS433;0$*~I=&ZnBP(Ma>C^3dtrd>vN@jX;Ma9 zKaL}O%A$+*_t@f)J}%0_pps;IPUx1}HRTD?3yfV1(mR8{Qivihw*47xx`ltP8bEdG z?lbcbIg?>SRmod}KU%9b2Bzjb_p*)EwRW`t-Hto{OkAb&HcTe9%#UNlBud zQLl{Jmnbc4-U-~;@6qu2X#qmb*!~h8^L-+`8%%|Msm&-sntGKVBk;~3s1d7Fr8M{W zHyB>10I@b*9z-*Vh{6tE@YZmH!h~pS#?7N6_I)rOnDK%%8O$nQ`NrBd#2D19^K}5{ zn@HUUQBSkC>G*Kq3H1UNE{C%z2mCEH=SHR#V$YUi^YkkXG;r1v(a)Qnggd@O=+{F~ zXx0E>7&qcg`joPt8t?YY$g{##sc+6xv}1f9ah#3hVY2pCRq;g&x{$h~XtkeVqo{%9Q^ZpyMn_~V(TKRUe? z{2)z8s!k;;K?RhAWVq#j#jbKPx{qH2{nRMD-QL$TZ15t}W4&1FxRMyFSc4W=zkM!k3FdK~z)`5YBO?TzWrTqbfOr6snO zwMKfqc($5R8lpLt?|%dYe1cFlOC&qSrS-$b+(p}RSZ7{4F(zW~n{voLl$6h+?B#pX zVbZhUUXfdz9VS@BP!x1OF5JS<+}pEo*}vGdt;pUgR0+m6%2Knnfx_IB+#(g&x-_<(?ctq4>QBJAu|%6}HQw*P5VsZbXb}JMk1F7;Xv8d1&-8lS+=U zQ_5s(?&Ic!+qYLD3O{cCHX`&mzu)cgtlTU2tA!2+=pcaY0-E_`f=W$#Z0{Mq#P;yg zMVECFn^<-`8_iRL3Z?1QfQ@dNl55VF)||am`2p#wlaJr9X*=(Ih*vQ|Tu|!0nYGyemPj?ZOK4$mGv> zY@}n~__)CfGO*AI@vx@qZqrzLBr@9?| z(=`;7@7iFFWZkSr_~>%=!%tRj@A1u4ipzKVVfpXD@~vj<)5^IFL;*A}af#dVC@;ual zb38$NgkV4~d{Gm|WV{ieMD)M;og7`3b!mVnXz+ypn%2~g{THIv>1p^y^zD6X&%h{j zhly*QxY};55L!Cl*agkYlcdCxDy^RxbDGmM$(Jm{DnI054vRBW4OxP&;4by5lU045 z0LEA5F>f<<22UHU7%ULC(Zxihgxas|jFIMI>L1N_pW{9q`o*YZnxaQd8%efm39(?% z=kfNw?%>Jqoo#gL`Ncbczd)6Q2V`8()js70iUsYi*sO{8ei$x{YE?nC&dSqe?`AHS z=NSs5Z1b1`Sl;HKk8l%i^%wK|{Fw;&foqI`-gFvOcqP(&-1*N4{%;d+Y;I@d<@0FDEq4QWL4EyPN+o?e-G4u->Hs33h7|w3WXjXcQ zN_?Tp5MD$)Cl$v2J0`v9PLPo^UoJ+U+BM^G;AHtIG}kw5$(1l2bKG0YOE^aGW*f`0 z;O-Sl#$AYs!#FFENt~|lv6<3ET6p!hpwjuJ(I5z8%2_Q8Lrk0gH0kAuC~gpi7eDkH ztP;v$(CYsZ^ZLC7ozL#jm|U7mlv9F2LQR0wTx_v-SnN{z9|NcwDI%L-eu?aPCfB;37iccRTUV z5nz$mDGUf@mbLGCMIRuRS!J%E%3+>&l&4)LYm+b0YKgZ1X}j;zo1t#|h<-*>qgVf> z$%3?P&5Zza?O4ZYOr`9kr}v*Xk8hGHxz|#k8ck3x6>RSoKx731b&oTC+6;ZW41S7JsV9Z>qz6-%eGd1?CS(uva3 zt#aJ1zuAp0bvu04Sxj2B4LD^8%}Y}7l*Z`9%Dqc|py^?p--r7kK6}1xdM zYj#aj^b7W}1hgZrE)slIZn>5UH8s(T1&v1V#s@rV*MpojyW<|01G|W~wPK)Y1gC^g z5z;H?pw=_O@W@z-8T1lYzV`BFUOqyE(R)<5Wp}SaIbd4YwGBUlQ;GQwUM}uDQK6R# z1i|BLI5QC$O;c~JrWuOQP4d{1`K*dEC@MAU@7ChYWIMGgk%S6BTxM+qMf*+K&Rb%I z0;&AVg}5rsuX9iqVUa%{vO|3mKBOA(@*3Vazdhyo@gzA(x1CvUB95DoxpC@KZDY|_ z`v*6c_gm*5L#{g8KTz{(DNx;mM&9$+EMqqAQ-V9>7CDsOxjZH3?b%G!Z}%&eq-_wE zx?)AH#kR^u+GMVqa;aV0%`w*Ir50AHOE?a6T0wK$txD|6*PbOjtxz(~ba(m=X3IcK zy~#X>pK|BXNSeY-R*4TseNIf8vX;3+0ik(p13&>GfooJl5|>T0q}Ei~#Jp(XsRU?g zFLPnqa?Nr*E%Z#XucgQ?V?FW(g)VoSWZw`+T*lOCqWSCzSapct-GM1B=h7?j zCPPcG!7gvl1*Y;>SK@`*wpR+U4+#9uaSc48l`f>Y#L%#2dkzCnnOA~R#xcc)XdX|t z?+NdvBb1FULuxhhFNLVddw;CK*DRQyopV_S8av=C;V%lDieQ+0QzXd5WjgEjtIjNsp8aAKAOkH{or?xU8X6-Hx8#_w;tZD*#51-2A8 ztaZh8xgxx6W3SE^sd;3pmXriJ&9dCV%%p`wKjGqCid>=r%epOro!26=P2&g&!Cg6p zsE=01wHKC8u(R{pvoo8RUexk*{XYFEy5>#WD>M6PHm)wn8my2&yr9hXK7mq?fDvUY z3+_?vVp6o7AGE)WY{n7inC`%*sr}2&F8z`o3DKw+xPx(j=7PoP>`{CR=fildWu8f?Lzl z^}&)Z9`Q@ZEp&?~y`t^fy%G(&Lu**;CX+l{5CgWMq+3wf7ip-XrQRy+OA4q0_GmjHe-WN;LQD7{Cxw~xGon{{q|1- zX4?IBGq87zHtMkh4<4U%pM3c)^z-e?OvrccIBDwH%I#dV0sd~x@7{_hx?XK`n`P>1 z$%;2v#+~h(13%^C-t8I9OAh5hjV1@1Sno%BrX|2ewyZ*ZGkF>r zW+b*C7b`BUJ^^W1Cm!w*NgmdB_@qn3A`<)W_76Mo0HkhuqHpYN`RKGAbM&2&-FNO` zY~r+?AEyOxnWd$gWzDrWL_!5LzlxNupFe!10o?GyBi;x>M~;?Ab|%?&f-hl}^5=^i z{^&+>;hk(@!i#dZL=cQAYBeTlbdNB$r}4lYx`s%C9l?Fq02%YQv#25b zk2k>*y(&dYfqMOEy6>MwZQvU+11 z2qPF5ipmVt!$8YFAYq9nI4YeZ?-M=dXG8&!($1$Z&S=U|rNKg3_ON|&_cyY%FI9XF zFaR?_qrDa66Bzc^*@Y8dZv6SzR?ZFI4fd@?3~D1pvi5rLt!dT!ycX1i{;55uiYN@L zYy)R(2?F|^cru)A8IBK>xC)cdzP9*Sex$dJs>QO|T8x|C6H!?Uh5rb!)ci zC^cbhw-?I=Y`5Na#WTS3j>}{bQE9-<+MgQ0B}Eh%d$jTZ$HJz=h{G!=zqMXYkva7P zEMNL_Z(9LbP!o203bkXJNUgv#f5Y){S;+f~iM-W6i2XiG$0DY}ixjMhPS84Ki`%PR z5DxP57ea{NJB9(>2EpjW19z?UyUEOCnp;Ae%#3!=HuYC)Q01LYm)6heJ#|3;{qvze zRJiz~Kw#o(Tju7lSX8XkVp%uS2jRsZvJy2F3V|9zH=knsQn2SH$mOrMujeP2(7VI` z2>o)Vd{7~U0X-R#@>GLC1p~U4EeW=s8hBqaTD#<1k(Zg>%igolnTND~L=kjzkI(A0 z9xr`La@*1wB`0sGM<+@^EgmwQp5-I>v~v`e-UiWjM=0yOTXfUs_)bpW2JFm_px7+R zsgT_TbDc#1@KI(@T;LAukvc#)fqsFnTvb+D{jJ5Z!X{PN?84oQUAx`|QDA2%;iSja z$fQ+?LW4h+NLJOX!1h4JE_VgVs?;1141rNvkcsxuTqRV+pV{BB-RvVj=LMWbZ#fww zh}drT5@@YB!BM+XBIKd31sDtG2OfQEJS(D}L`yV~{wjC@_gKw;dmv2@Gn#xnFhIt; zB|aP~8hHHVn(4iOTG2?Uy8T7hW!<_Y(9{#VBFCv0t`Y$u9b&a{Rxy6k&cXz34PFya z4cdWMghXyr2Oo77R=v|CI-BIpWgr|~#*8$@e4@E>LjkZ0GX27aC~xAq?%`>kUD-*= z^h^Qrnxp3vn5*tX^^sg`x!;{S9)I3Co25_KwQWh*V|T&CMN!f=H+1tMDMlO?PYW8*;Im%yU=lSdYD%^ zG--6fYkhXfgW;CqwBa9tGc3!1FQ}7wV3vkCgKkL|^pG3o9t3hDAhqF}tT1VHtu!FA zCsrao$4>$cc7R5e-kQHQao0@DWaleEvuANZ9qX#40W@dsUqdJoy=tWKuXZxNAo4u? zvjXL$)C2Qlnq@vlnOfhYfw;*{?Er44797Pv$=tm1>Fo=f6$+<_xMe@Q8R5;VDNv2w zl8P1JQL8iCm`p5qt=1u9RyfWNtm5ojq_PA&-M?}7BulMJ_;sc|B{_v++xguYrmc~YRE&OPWB34!`X}FJy#5)1fYx{Ke(D$ru(O$e_|v|weLM+tR+0K% z?^m;z|Lu?JA;v-{c3NccCv8bDi$lu~Pd`Mt2f$6}#TdwX2%<|=YP zw8+&Uiddx{5isO7$;8{6d=*m|vpFx1L5o9%r*4JH!Au)5xqSjMm8t?r?}4+Zswlsu zhV5PUZBwuDm+WeZ;Rm6Id-4)|(v1xVUy7w-jqh7hPci^`XK(YS%tzXse_yN5!{_;U z9ip~hH~3CQHOAFZ(|BM5i&ObJix$L#gMF&$qVd85`rU%I)607;a-HO_+sWyHzDs)_ zK!!Y++VQtrV`61%;s;@&vJD}-e#*PUnJM|J*>p+J9+luT)k`K89KQ!{w`w#gVG8pq z1#u0&2W$QX(t&Dp=LhnSB|a+~$*Th#ELAhZ66wFQfJec0lFn}6 z9bC#j%!^4P@P3Q$DT2mjYujx}yBlDbqxtMc&j>D2E94h4aN;Y#JJxhw`kxCf?ZDF? z)h6KFbH8BkZ*MM$x=TLLxbkzEJbFyvG9Z*t9hP4#$@713S*tdF+xf>BpiB$`_wHv) zmgXq^aa0lhv?qghg6wCs{s;xi2=K*R|5*W`ZqO}YL4M6qQT%x`3YODA83WCmioasU zQvkBwK0<{2bTq)2aVO7>6ej8YSAc#(r2h)ge+B3#qH+HJLj?L1bSvx!a0C&~-&y$B zWPAy8c(4niEcq_E5F~%Z`2Q0w6Zt!8yBud+Ktm4;0TAp^`?eLZyk)#9T)WbU-xfKX z4|M)@-T9ZuMA8EXrJn=M$7KLR7HfDb8~?NWf4xcM2f!LMq(mFU&#-SZ830iK{wag_ zpHfr75(I#evu#bzrJtkYr}~S4hFMM+K0^y<|D-LaETA)j)8%r`|54<)%J7kY_LdpK#Omj88btUV=oq<}X7I0h|L4Q5CZKNW9iam1KN}iw<{SxhCV@8VdHuge z@jvEcIYtNATW}4Rm%mWR61qTVwiV&Vv?$$A+FFnX^v!M&w(!UH-ruw5lkFLxGrZ>` zfnUttpAX>im^kJV?@#+WKcEhDmPiu*zeJ$^7s>yx7b3Q`#IZeFkYkpCufn%?iVQ4u z%synn5#-_Wp_nwRBPsuYdf0p6ux-mf`>Fj_8Uppq8vY_8bFlh2q&e-ZNUdn@=6X>*3bnE%-qj$`3!hT_Z_d zJRCYq!Z%RE1bmoRF>3NdAhJ`L+?ZSa=Hznk3;Ba-qNA7Hx9Ic;_JoW}hlcV2sp1eM zR?hc}&Dt2FefC)P;%WW)s<9KA2h>$V377Ba)5UL{)*w`(Vr=K`x8#0dgpB>+7UO{u zVSMm#_Aqx`Dab}s5q%)8j|8t1E)&Xdd{+{!{D)LbRAfRKq;V&TjNDxiKWrh5*NI9TG zOjzsw{Dlhn?KYrs|0_B_v0MHtI{y`&zcHEqi#k6y&yNKC7j=Gaji3Lo==@i7{!ZEa z|7zeI{1=8qli#?1K*{NcQ#%* zUn5txOi*it{?f&iUySNg5pCzD#AN(?B32a2VPq zGzNGo9Gf3QWvBVIyg#2cUwNf0^TdT=3&?AQ1NYorJy;2C0kRP%fh1Lo8*r)I)e)ch z!tJ|RN*BmkVhCWoLpN650$0lojU8<6Z;c&h@X5}y5WT*>SLVRHb^Or&_aph3f9!b3 zQaz9c=09;U~o4UiGghUWv)O3_>} zAjPeJqu=7Nyx4yc$OrN$vLHUNv%LY>`a#Z@s}@Sz>Vf<7;>u~Kql&8M^5TH&^!QTz z)+&nQb{H?U(hGp)03neld|u5!X!`6;ULC_<5B)+*Wn`3D`2-w_aRaXAlbd@K=^%W` zJWioKke0GY4oFX0NqW{u$KvnWcRycTTmqCd#9L|uTkB~tQZlHa!K`#qeI5JPrDmOoFU;uWt%rQW=FHC2pi4%T3I0Xw@~e3tN1)EVG%g(;nMy)V9x^?*{v8Q@OCTdYd31MY(a*4 z0_Nh@`u421pEqN1mA)h0UR%SS+L8}Hh_(|p>fWtE8$9jqz&NlWkO>@PXl~T#{Qwl# zHM*W9$x`RYqA8E$RcnfYqF1weM}d534v(HkHW3Di^-4Q&@vwg29z>z7*VD4+Y1yvy zBP5PpHBA>Y10CJ?A7xwx+cRBdENKphiKGX35|`idI{W+SQK+Jt{vBrEL6mU zzK$3vv^6m)MeZE*jWit0H`tyRf0-PxGfPQ^n-`hL&KnVN)?~^7&N%Gca*SJzjQUDT z;9g6^mTyCUwP-PyqUT&Bca`gt7 zl)M^mdcQph$fO1+x*=y#eicYcW=VDCoO*^ty?Z)_grK%}`Wxi5xPM$v2_$i9PjClB zMA9`(@rYpQZ(-(ng6X}>>X5-JE@$x-#t$wC1NTiv19yeA)Gv7yx4}bdg}wp#y?(i2 z21AR?vnhv8L(?v3+ML=eYn)Wk+XEaBjjR+<89?Li%1);+bYW~E|D-3lIvI-N2UkzG zhYSy)b`fimSZ7Cc$b15*Y|+VW-XYf(12ZX{^y^~o?=f-pvKt~z^bMJ3u9FP%%W;O! zY5Alcr6-)+gx-m3GB`_{3}0c*XO^w(#l<&v1MocTX(T`G2{AFvG$)le5p$?&yTrQ?G~E8u&NPiq87_KY6Wtf?Q#|w9L=P z3Y;|;fE@rwOT&^1OPwN(ofV~s!xd_*(`BO4Lxy#8`sj@^+4cl=8OZ&75(l44I%xu^ zYJM^{9t^c%M5YgsASub%W8l}5*2=^!z##<7-bv@o{2)JPr*I+wy zWxh}s9~Dz*a1pp1;O%sk0fpN#+|i-nmP{JJGe@Ulo%J*W0U*_@1TSl~p&I~cX0Cio z6ZHDtQ?;V#-#uqOgvNeK2a>>{4x!$p+-hM%oOO=$#y=&K?Rf$9nRTHx z-EjIVb)nfIj1E#6D}AaoXX)O27gMX*Z{FdL_Cwy8IR^9oY9*LMZX%@)IAJLR z+;oaiITb5hx88N`OctEy9>-+2^8jyUWtPZ^d*mS2?W3$8%>F7zy3DaxakVDA>)^WpA_H#BP2dz zbuyQn^L%sBgpCS&`2S(=J)@f3qIS`3!-6P^f`Eu_rAbo|kd7jtAR@g6r1#JX9Z>-h z5T!+Wliq6x2}O`j=nxgq=Rd}3o6qfT`n>PNl7*Zh31idu2boTV9xqah{32fs@Ldj*h2N^G>D%UB zx>v;8+wWQ|iMv91zh8^ZZ{J{`(>WSHDQ?W z90;5Ux;pGgW8gk&UZ~xJEAwa}Y?}03F@FJ&XaY3PN1N(6+fKZA-8lN*+!_b&pkxlv?pu}yr+jBviTNVVq|}(;vewn^^Njv z+?i9>(TSLQ_TWA4@bsZQrB|$iG*EVZjiObcl*MZv0*haDsx2(f*+L`dgivy#w{QZw zpP%3$Z|!WA6P2kU$J%^gEPpWDJ7LLi329zyKZX^ns@|@81zAKJdfV4sO7xfx*#!^X z{H@OoU`vmb7%G9An8;T$qp7V#Q@XfqT$=AjOvXU8*tqq_&-GYGy8fPK_62cQQbo2T zZ?RWr>3j!waaT)J!?Aa8EoIm30TL-nAihu0D@VRrIw17$ORs2H772gJ$G|4MY;#}M z1(>xxkcLB-ZQ&2%n{40;ewAz;;ehiad8Xqb&(}_jfKr~=jVSzIF2QSMD%>;fK*xh_ zr&bmy)~3Z&U=YeuoQ6o=Okm_aOuLy3Myys19@}vKZ61{h%eKOoS%saw*j}jNTm$r_ zv%%5fB>8Y$gaEYKl@J;K&Laz%*^})yJnj-a8;p_$Y&I?~5^1fNA09Q{rBT(2vV+Q1 zmPztOj^^y*wDkzIo`eZy%$R&-UwTKyvE-ezp_}6$%TmPB^SV{R+mD@)55sZ#!FI3F zM*hBQRbA8?n`()pkE^P6qiEs=`T+Y#W1TSybOY73m=i^palS9kPIA}VmHaBuN-q*x zMHFTEtv%fKE@7L+R7wtKq>oI&g1N!@;~q!)_1pTHSK%Fr56kt^fVRIpE&{KTVODb> zL(61O3lLB+k}SabEw%Qq$?49A2-HarD~gzHYZUK~k`o!PXCB z;28)o9vY6W=4b{^@=)| zBs2R4s{J<@{8bgZI(a(@X91T{J0xls?#meN4lNg9!j$qwwQ`nSM-hF~Ln7@xdtzTB-5@mV%;oVS1t}X{G&NJFaZ4c3Ftd?QZ;m_eM4gZJzEt-95b#Y?^jQU{TmXmirB=f+pdnr!iTdJ^@wyFQbe}*zE}PH zmT^}}3hz(eC**f?BsxB=vmD+#*LA@aruWMGxPi>Y!~4ht;K8^r&TUlRK>eDKU_X^mDhpTy|D(k^&JSO_+89!Jd=75)Eb!n zXx<^7e3g7&U<*iv#)>&ui{a%x;(*y-l@Hx&2i#0&+0|qArGpv2S6?VS&LUL*UO9&F z`(7}tJN*Em&ztMF5AzqFtR{3CFdDRFhSeWp>QRy?xJinFt739hwOkcK#2*+=A@3xg z@7bJ9*D*N;Q1oyIvw%y|LlwW-d7JTf8=YbJOEV)%<4I(`4$dz)pkWE;^6V?)jD;C)fmk)Uwm=Jw3jdSnlub z_Nt9=cpQ*Y2jW#xlkE_#=~)gr0=Vm9!z@k?Htwuc^e)L~vwb_bcW?ggT=Ype|4PKs zLWG)0^6C-LFzB01+{@c%f2u`EL?)*pd^Rt&99#g^U5HIXjAJ*ColiWhD?sR>3siS^ zcO)%5`JFTArD1VA0n6_*MGaSaw3|(i?mtYrz5uS2Sc<>~2*KPSVt?J9jlUNYliJBIHC^!yba8VqlY zEB4;Djpqfov)@Sa`7al;5e%Y=A#d3dHv*9dS;&~YYxbe~W#{GZ8D$OG+1_o?e*vg4 zoV}{K;~J9C-RT}_AP`0ZYCP^|Ou~`hSl{M0ffzCQ=CjkLo^`x^?hXrl%{Xq8mI(nb z=)>lNu-8&t#|>@Va%~D#&d&}R9~T7ZH0l5++<1Gocm^u~(m0lI%RzVCyG;%&=Vw~u_+JB>?4<4moj z7BAx%w@g2avTqO?yw<|F_$#^?msk&eu$npMj4MR$cScI2q%D8*nb_@y%q_$!>_zGq zWzMntZ zxgLsG?Y-KcO+6e{bwo&BuSFxVd)|BS{)p zcj2y=fVR&GE!VhK1_1RM+a!N7$!M=18k=Awkot||WanJ%*t=PvBqZSIq}$}kILna8 zMaac2py&a14JgxaXczp+#RpL`@Y}_0L&WyAWx8mtwDtTv8ZtW6tecD3o9#wz-nOXS zU?b3V+w+Nb$07`qfreJyg+7c2+&%M^f6s=0_Uz}w`}Z{Ti%)EPj+DJMZYL)=s(u>- zGRZ2{+aOe?b@$oCn1r6JYUQ;l(9=BjD=TEyp0uOnb2Saw4+gWPDs?4~;eb<3EXS6( zfv6Z$1It~@G!IXN737;E^jqm+Med87BHHed6nf=3@)baY{s!q1g$9>7p6P(9< z=u~b;gv}T8f@$Z>z9RHdRaHK+UG+8+2@c7sD7V>*&A1D17#ljz6kIKosEc=8D?6AI zsgHZ?*-|7iuIHD>5vm7ewEC7aDNyv;Ihx{E0OmF zjfiE?7?%MHpq3dU;c~9~?l;j4)DE~tF+7SpdzY>1rq6N5ISBg|KUAd6M4;FR;RpRI&2GpASkK|jZ}IwLmc zs5UQ{+SFOj2Abg+7+H6miF=712z+?OA&6Pm{ zfEZtc2EPR=QhCpfs>g7wckH%~$43VQh~trh-pIrPv)&?!p9X%{?7>$BMHFsxJo2<2 z(X~t(Dp0!>(i$0_O3#OYZ#Jy8}Mmt_-uk)Do_DJF3##o zVmhAUx{N2gXdV14Ia|kX1`b$uWO(}loCg@E1Z*fh-rL?KIm#tL01R#2BV^R0URD4K zhj$8YuWhR)9KH$bu8`FFz;hLRE7@KY4SETCg)}%cy{u?EQnzh?h^2gI( zs~p?^ABaOm!B;};c|G^vD_{j(`x^i(xL?%io4=CGuV}9H85R;f#v7IawYQe8C4RUy z;4<&T#0d#9U$}!7*}Rlj);BtxH&Ju)pM^1HQ8V;{o5}+nTJ||RC1X%+@SyE6bRE!( z>A1kL5dMn&i@euyqr31zQNgKAeb@7|C(T(7Y@4~F;C4ybXP3~87KyVyvtJb~y6xa` zam=#>CF$)}-h}hEk1dOEG%21rnFn64LC4JNfS7Y;KDfKAyU*RtQR4z12vx9J-r`;R z?t&>K{V$*|-pI<)F3?gy)7Q0Fz9<0T@RS4{Bjdv*4SA{7wd6%9<>Dkkw6~~GY&oHL2o{yPy$J6`_ z;mQ%03V0n@#LTJ(MBxAqUcFDza^J7ZVg@v;|)zw&DH8Wi;k5du}! z;FLZk4l6(*Eez{MI|46aecrj+4ZjQDMSv=w0Z5vT=9_nb;~5SvsMAh$4t#hD3kA9B zCTDVMN4W?+=sAttY32vVCM66I5MM*o{emAbz&9@~j5;CiqRcCOs# z2)oNepeyf0+v9Ox3M+RbyZX3uhU5oU)f(667mchSQdO--k-jElfZJ%Vm$+vC-QONT zC@tKEuCNZ!qbF@TzF{#>N&QFLE8VU1XrnU5a{VECbj4V#BP4-n6uRbP=XA)n-&)bU z4T~4BC^~>nK2OlMBE<@bw2#MOcSok@(%pdaA0dq1Sr925FqG|VvR3mc{zv&nhf7Go z`!n`%l8yTy?`m{ujRZp^_n>FAP{NP&X~ASP`9~m0;W^Gn`b_(!}K8nLNl z;c3N>m<%JMe5-B3xihW)osFaeZvaR#YVK6?OAej9dCJq#DHFQajDH>&l&{@z=4Z5c z?$G-9?x)xfK%B;XrR|)7)cZ28t{*+A_x}EO(oqBPf`pxSe$m{&XJ`Il{SYI8m(~u( z4^yaJdJ}p~bak4^6$9+l|2@_8`!5ZKR{@R`RBxc>UnmIwnRl}*1zyGrmeAz*Gv#PR z>6qNAW~;~W$9Me|z)KIjtT{Y;=}*G}=E(a6z#%iVQC|LCclPfWmNWw|tE%46NCIy7 z_e*5n@E?;~l?tsvfB5v{TdQ<{m(hzP=l%Oq{C@fh8$guu&J`-8{^PseHqZl=Etu&R zb+0u|@S8Oq~`5&Kuj7pstQ7L?kbHzK_2KUSiEF1y zit>J)@(_&w{sL2>jB!<$KU@B`js6)eV_7zj`Gs?wpZqvE&vBNSpBFGc$H~mt@#PLe zCM`^DY)o?CyRt%j5*`VOf}#tCh3y6XdcGtcpJbOz5N}YZ_wTNakfguVboWulyqSFV ztUEcskVru#Bq_fsOh>#OGV@|s!nr4{;_nfT&nEiAMCvF7REDoLt}B zH+3i-(QEDO#Q{^&(xS*}RSeMbK!Y|V(@7J7@z3t;76|;|`~ER*sPh%ht_{6rt9Q>vR1pF~IH zWIAH|^r|q0H9!6T-GBmyBi4>?kSlz&Eh%i?bF@~szfAn{;Jqws2ie6z6_NnvfwXSt zgaHMMCX-4yS1|{O&p6*{kEs&E<9LeOyYiY<b@Wa!YEk1**d@sQnlsNZqW$u*(^?|gshND!Z;LY^< z9}MHWR?{b<1`xfEf!m*{P}rbvWlRHv!q%QD`0f*FRL8r;@#7x#piTSqExt$8;Z1Dq z+0hh5=J~nr9E!HD}!y(M8C)UsYMF_hM51Qn&}7b|Iq$JZ=3aAy5(GxLW_-yBkZ zTpO;3i&NT3R!?PI(WgJ%r?hy>Ml!CjBNUcG{rX!OI$%e#zt*5oDn+Y9KFI|j@U|;O zLP8s~{F!2zSxU-LP3J1PHe#oI)Iy^@%nv^4$_@zxXDEH+VCZypYz& z;;}8hOeZhxgw~;-dj?z$p{zp_qQZ$W!PoF&hC|Q3GrZcP5MIz)^_<+`EKq$G`%P8N zgkdS&z4Xvg+3us#;?<`$TVEE2?o|y6rA#z~Y3)<X5&O zLofeX0sIwkiIdj;eW-E)pJaZ5nM46~rJMBf(z0KR3&N4s9h>h@~_o$#uOJ5X1#~RQ&8IeNvIPghf=itqUT4i5A-|+!t6s z&1kfhu~rKax>HN-E5i6|D9{x&jV}qskLAxRUt}}9zI>Mmr8xG_Y$eWo^a=XWq0M!z zE)`#p&9(_)o$0-N!wNhwYGqS=jna2Wcyc16?TwSj-rK~BT`jQB+qCfoTjzTwFSfe* z7rJ(wpg1}AUNgiDv01l|>N>-xqGud3l|q8ur!=B5fls{__%-AgK}{T%K?EV8+$l5V zkJBb1pH~|~HCyV0NY>W0C{RW+B^$qgU1!nP8KrVJd8;|uXOy#o8vP+^@lFgihxRMH z&HI`WHZHExX#QKj0#o|#KC%^=YF=tGqI`()BYs+ym8UfftC67sRX<-L9CZ(Tc68}( zePeV+P%VO1o^7pn>2M7rg&U|9a;I{@bcQQ-TRf=OpQIX*V&^F>rdWmyh?Zf_kQqJ1 zZdJ-!`jgLRDcLm6iaGf+qYW_Ap=aD)EP@K0&aE}liJJZ}T6HT;o^H0HGmM^U)*lA< zQR9Ac%zB2XVBbs9U8iU`#6HSwMhV!83^hAf{>&z(J~3f<#W8PvCn5B#E2!T#-*)g3V8|&O!HS^Sbko~Bki?%2*Bj@kB zL%!s;=D%U<+Sh(H+t>(Jd-x)qqQsYM^o69WsZ8A{HBCr0J@+g?KLh^rWJOH@FMa3G z8OPF~N=DF%rSiu$6X|K@)#>K3sJ<-tm-?Z3H#g8v0c1^)ti$#T!veext13g^S3Jd$ zN66S$)3X~e3`Eo|Kd@FQ*=>I{LBIDs&j)^Lks}-bR|zGVQ)Zn zTFW1_@;EP_X6dSe+jjeT<9-w!=-v<)B~!KV=wy3sq<+HiF(cDG$Q9ezX4Pt_K{h29CDrsoMPgE* zXmRwA991QH5Tr*3JT7riSnG;-nDA8d<)yJ!u@Klxn_KxxN6+k|il0m6Q+!^=g$mmA zp;vGzxqR*+e74d`O}=X}GKMpPBO^4`V zpETZ+yf7BIlri10tG~LaW4?7CSySs(c{r#L5c2st1tjX6t4YB3zxdRw#EO)zD&_)2 z>X&b!gG$rs-)|Jx0X<6i4JWN0gbY*GEAcWJ4R)2&Wid>dt;rvCwWAh_i~c^Tbd#-H zEF*Ij^itF#_y7sVr}| z4ZRm^UwYO;9%Xw9nWGE3+^$T=yX^fbW+}eN05PUOvsN;Owx+b@-}s&@FuytM_z~4& zDg=7!s_iYz#`PgTVngfJizt@D@$XZ$+HOd9?czMhJSEd?#~HxhR2lR>*Y=u8`4%77 z#ySuE@Q@~2tGPHYw>X?d2ufWsNil8?mBKDtLMOGGunE`0iSWR~4B0&t3pec47sb zyTIHuwSG;Y9B{7(?gqb;Zj)9B-E#2*VmO1db6Em%QrggCk%S)CFhG89FJ~zesQ0hm z$5%To^!{is_g??X;pdMEZx`yIu!754x4ANv#&dG*3adaXAPBc_y0S-_O{TAhYSd5o z9=8ehkz3~;{c`rTme&KgZ8B2Qba>pcDLOj($*Dd2(%qaByN8#@@R)>%k(CmBlAfk! zrC&>#F+MUr-U~Qhfrdq(+Es2**5BWG;^3XbO3i?XJ7)2N>7^8L$WiTOi8ABh`L#a| zFW?nhuf}VJznIS0ZQL$Wb%mxX&bn^zuQRz_!9dYnt5**TpikSD8t1FT@#HPS`4Hx; z%oql=`b(tLQ}ryI6F&P`G?}3F zs3?9ZkGrVOIK^RA%C)Vb*x$ZupEb-@X-0_tk3ohE2dx#KlfLIt{uOMY&y&NxJh0aujzevvrMq?L}Mjm?N-6#)%n74YcA;6I}} zI>x<=C52ffr==b0_GhIHKh9O6ViO$dvBLUcV|Kfr%6jT|Hj_wF-y|W1htbQ52^U$b zW-ejEZ&m8LyAubk1t(eer-E7i^&n-$`Gx~O#2Ru&OCOw^lqBTYQE^#%Z#F}PscLbw zeE-hbHP|9Mvs+JloT&F&b%eC#$Je&ir}>->`shWFOH5pJ2hcW4^5CtCg8teKyG_b{{=nXEC2^HyLX zc2ajQj#b+F;&ihQRyVSXt2cu>mX>myBe3puYnP!PWQyvPp?oCit&t&-@pup1M7Ox# z>YlX07(yHDoB*5fBqyeTH1zc7HH%&)%y!Dc9Sl>}56i!w4VI^A2`5WDgB%&cy^rpjKr95r_3_nE!6uCNM^4?F=jYTZ{ktlL z*M{+e@#XOt^u)DWX^b7lvJ>Z9Z_&T1UGJ~=cj~)t%xai}Bpn6g;fFy}%ruht6?I@a z-oK`kl9t&1*}D?8k&@!K)&u3yWwJT)AsuRiocf;ZERmgsNdNv>b zQjuKF4h%I3(EYdvu9@4cC62FdMMd~e=UO(+AwiHmFZ@JpV=imr#!N)3|E&xDH8cFs z!@YS0R=;&%rq&Vpv>4bv1uDHNF%(1M!rqzUR zK1ljZdBecEhx;wWmcmyFBjztswsuSqcX{-Y|T&%f;MJUYZXM5v?Cp<>VA|n^%PwkN=Z94k^EpJfm_8fiWu?%XL z0pxQb^7~7tfhpOhQA_f!+TUM7nd&!&5mP_D$x>aukcMS2^1E&Ve{H0rv$Zx75$VmX zqx0Cidz`kD=H|DQKB2pb7la(@MTFs~?_BCl-Sr1Yhg3974}9ke;>s<8%Z*`^MANFH zg(#Jb*r_W?9OQKl;|c;beNg<6b(BwNZ0E*mAg_p1?4JYNH?kKh^nL?+?b${j+5`V` zIQ$OL2KhOec9xu3U0QZH+{|xp&(3<4@YUzWszZW=xt_B*XE4D2N)nTN22p(B)742&a??-E`~mhp9SUfBYAtoeD_8VWFvHuYZ()A@h%f!T;r0G};}z-Y z&SPP5>RH_$>r<^y({OGboy&AgU2&La>1_lAO)#5{<&Sy}Hpqv&S@|w5-a(L=B*(6)DXjNpiA^1+jmUon_!v%W zSP1pG5i`(l8qra3o=l(sXIe!aL$Q^K7`bvo=|yZvcB0@B;k@my#K_32MfV++t~+IB zmXcaBU32~A3_LyMs9_&#^y-ka0~YcEm3*_*4sZ;)cc%OC>QB>%$KNe`Zp|lp0%v^Q za#;DD};DjvI%(B!DmHzulH5RyHbW5OHqBckWx6Eq7+qBj-CbTi1W(bA32uFPCn z*)8X?K8}gho2}jBm{(SIKk)+d@Kd;D&lrg)1jLpfgzJ0ZcDYo`Y&Qaf%6MU6fT~)yG zzdo5e@H8QXJX`Q(LdXg!X5YvbGc+V87y8tAW~zy4>w)Wf!)tY&8{*3p5+S`*XNK?B zEcZ!rJj|qRJC+CD zrx0$PieScg$!(Z-%F(`26~-c;QP46_Jpo*%>Jb8RPN2fECVTY@X&WG$h^AM!r|dob ztJj7dZ+KC2z2Pi)mGBc6(zq2@3SX&3uZ6_FKIc%6@r5NlHI_fH+vGC;qa*iMfbicX zT76hI5v*UU^l&EMeH8l8@aCP&Jiu7gE5%cU~g(n~riC`9_zXvr)POjO~ z$cOQMlkL)dZf;pHq%B~dZR|rMj5Kyv9HGzoGU1`i=HTL#xyK#9{U7IB@4?RFl!Yfa z?YcwnlSXYx@9Pnh5#2jaoD-Z_{h3(gdyWi}gxjGCI7=fB(Q8DEW%2CFgPTF~(Lq1z zx0aa0`Bf=RJN;>3+NtTz{lK7LljUOjtC5z>nUJZ*sxO$p0LlFxXj2yKbu}T@wrbRw zV3l*$#}aR3=m_QnTtk;L)YP)ZfU?RaZ}hz0Y2LNOAEL(W?WdkZXD9g> z?43)imu9@wBeDIx#GX%5h&?em*>7v=Y;ck%3F~C~eETV?TE)b8sz}`busY*%51^Mi zjI*&r_4{s|8k(BQ@d9o_m=6{-Qawk6%r7iKQVz985LGWyr9BM3f|kCFGV~@SJwQ^e z{vZ63=&z>kws&Q96O4VfhC@X~M-^E7_jYhf87SAj6?0H+Ra3c9$r{~khIi(&3)ZdOtoP(zrT z2b%HC+AE}Zv{)LwytrNKg_GKAU}*}vbO{ISW%C~Pd{s2-E%|9 zyBH&?iyv#B7uVESc(!kraPvhs&BtQ!wYx-wtg+kJ&tj{c)g9B%J1G91%aubzLrSqc zG&ARMwA{(AOYo?f;sINa08>grdb^|wu{PFl%|uqG)I?5M8TF~ZU-Pr2+~TL+tnc@T zlDmW!ef%x&{x~`g<@1Lhcy0S!1dRMvrGr@^dVj;HS1r5ZT}B>q)DtGo-nmZQr`Lvg z3Kp^6^pB9nDFFV(*oP$h;9K6C17wf10;I%BDYZRdft>5kvU*N`ALyZmgRJN-)sx{B#RhCV2Dj%{Q*vWe>=rhv0 zwN(L#dea1gojK>vPynr!IFJ;oDyNsHKxpdCJtNk3N>F^8DPH2waJ@`0EiKmVqxqxr z6jqhUf4jz(Y->d+cgAv@@46G)caMVOHdg<3q3EzUjgbOy=z0#wQU~kENBt*L>|d_6 zA_JdKtPirFWQ*>cegN;gYHk$08*vYrQM%VB6ZaH(c(Ag|DN$_-s#sSl}IF0#z8TC+pD z^$deS)WxAkg=00ZLDIf@i0zs28c3;4;WFIMtK4R})f2U5g2u+f;S@TEzLntycBLMp z2IP;JAE3^LUjnIf3vkhY?UVYyFH>&^peD4ahFJcr{{9LOqNBwY#wFzcyN39Opiof; z=&hJ1ZhvSo^Lw0cP=LO%otvYW@Gs=~GSP9k`1yYy=|6gGtWaiDJ&Jx(fX{PB@)B#D zFR=;$W(zrA3)Y+c*ystmG_dKiceLH0wE{oos(Dmw9a`i`_D_1=J;Cfo#=RmhYv$V- z9h7S;Npn3150mz4`>PhA1_NuIN}cnpM2&B9iVQm+H^RrofC`pc zxnW5+&u|Sa_S7*XQg_k*8FkcFcxzN>N6xZ!T+lMo85q7Q!VO_4`h=$e60j;uNbhhPM+SxV9+x7Snr=yzkzhI^Ukbf8X$GI>Pi4#v!IB@nv0JZFJMAr>vfvKt>acHYAo`Nw{>m zX~G|mCG2f^&9=|8dM>3fB>BsG$9;67gxEa^7!-b-B`p43dy+|COV#g})Z|BJgjJ&S z!IA1zTwHOTXqB0qbpi`KfCAg4!Z)CD%nc?ykRa&r!;+5uatEH-q@=4W?3uQZkPv_g zo10tA5?55U43DN-jiO^?{Fj-<*_n9w3nA z?^FeU`eZ8I(S~rPQdap92Kara2Ee(Zb5tq#Tnk+%PkGx#qYKGppEBjx2ns}u`|FYEQZnR3`1PCOC0;oKn;!b^xRjB&${-k5yuknD#=m=5&vpjnt0I*<-$p6 z5##Auh}6zK4)Ns##2PJeHgKG8r9qrvS)U|k+ub5dwR$DL>tKDRNBUqZwA|0B`8^CI z>hZ?!QM)+af8|GO3aX<`VlNfHg<3xB+u@hGDLn;;8uqlWxvyEb%Goz2BL)4vbo(Nw z(@qf}K;27TULK^?&w07_vZZ_BhQ)Bb|!s_IwQrqU$Og zfVcNvTR6gKqBV+hbYi3W1mpc4`?wyg7QggEiiQVqX}GNF<@;?`Fk;JH))2T)3wL5$ zZ`F|*=Z%=$f7KFx?965>^BLUi96EAE6?@}`yJuO+KD@K;;tutw>-A#%UJY~S6?{oS z7*>zXT_~%^)+lw4xKNnmlP6O~tloSGeHa2Y33|tcm*mREYM`M$xmj;!4FNQEs2MkKX&4pqvG%7O)d=2F1o3Dj-3zYFqDGEeRXO( zn!Ess6SKE?@15i`J_X!^gsx4srch%x{ha4QLKtQO3q7(^9G{K6A#K{?KTu6=Mo1^< zM5&dNr4R~m(4g_i7ZHojuQ8f2F7x~!ZIXRAwqFA{+g%$MgvY8%kC=7FkJ5@_xQe-^ z=EA*;)lTmd!KDYq>FMbkTtXDQgd~78J`UmYnW|nFD*ZLnW?Za%8GOmiR{_#QMe}&2 zp*BiE(5&~Z<73E=#@PwgBSrWs92rIj29e2#O8yKu=G2iW#pJL>7*k1g{1D5q6V56h=k zI5&gvWIp5?pAS}&czG%yE)5p$6>eA5v(18~xfPvq@Cxyuz;Gj5IW{JSnzbBlRStM?+6xpsbeqr@~XC8fkBXwfTgYBtWY_Fn&o+>IHK7#Uq=!JW5B$U#c zG`y4&YdJvcN=^aa z@4U51&I`%_?d{&MhW^cTM|R{PA99OtEC8K46%?_?bTOyBsiPzBHLLIt4da(dv-eW9 zUeC6RksE67j!{Ku8i146`3khiPm7;y0>Dk>gfvWHG@M3FLF{I+IGkI zBlD4Eo2`IYFPxZER4GovYKmY9D@w(33|X1Yw~}>%Tpr7j%H%$=8>Dj$Q-S_f&Uuto zD>TuLP8A8JAhj%Nw>j=sF&F05l!+0ax3WuZ^9R^YnMH6azW6tM+q!wx%Lh{=_fs? zfnJpux0^{*fP2E}l?S|5k-j0uVPg2w9x>)V3a40=P#QsX>1Ef8SDaoLi z0)MBs{Y*`kc`|H2M*QOLF#4=Np#a1m`ba8{;O@e6Jgf}z(Zk>mcp0f@lW=n<69ob2fWV5ibQ|@V?)zRGl>F zrt8-uk?jK(&w^3DRaNL?L6W8p%lL4hmX zTXRy@3+&VKiXo|vP)wM{;1#){^$)kDVJVI-ENyYd2eCh{8<+NZg>5NOK_~VdbXvd8^&)LC5w9( zD5qLpOBz}H%8{HR;XBtpZ-87C&X5I@ra0(g`9Q-W#XXJbW5TMPRFmpzYJ59=m-&vc z%D_@h){_Zqy+2O1`ffId!3n}l66@7>FI)AFP)KM06;OPkC1OQ;zXs;1WHE6x;Q)oA z*Z6G120DNZN#Nn-E!;>_Q&)d#u4mJvzPN$12~mo-kBxQj9AcRCoXk+EU0({Hcu3zIFGaLC*P|(GmkV^rAyiI$$Q5Zp{7e);5#pT3gAZClus-hB= z0{84gN(whXjTVR>rwC2jGwL)pPnU#kezwru*CsrWC>8W6v@k_cay$yuZo9?sKBC}^ z0%f+6=PK$!kmVE2yc8c5F7sm(?yE$_cb{t~MeGXpP{n|WQh|g{Wy2{}5Nt_4T+ic; z#oepdDJbgG!XJP*S2hR1K`CIC2S5n{-kCdY`SJY8UZp%N9t`yuYOfGo#g-n>ViNYgz%qc&lw4 zV%k|#iywhKc|YlDedzDET4Vcm<j5$GC*q0qnzq5ATH5$ zpImjCJ(3)a)kYN|s*qwW6skdbLr(V}V`U*(wt0Z8EG(Q1WaBdabXVSPxR0ae$J{&_ z41TazSzW5BPmQGU$*sgRP?yNVU^ccts{;7TY?wVx3{Mk>!My9jBbi$E@B50k!wa!` zbl|s_3dX2p95VIw5L)jHim^JC+Z|X%k#d{D)1w{O5jS*4YRz2=2uq0tAb3J9E)7XEulIA10A)p>G}bSqO#zkIK~WNmO3D&Z}zXYhO)F6 z__p_GdA3toum5x@mLL>sJJfAzW57aQZd9)|H4jG_qFU@EZQPh_Ddd4=Qq2P@KdrU+ z3U4%a7CY=xP1&Uw!d0Xl3HK8!GpLlHy#8}3#gZELKA5^Oqi5v0hS zo@>rhZQb&5Vn{BtbB$bZ>gDjY|047Yf1R|wj-_E4B3@ddr#8dku z=z8jYQ&Q~M^PaZy&OQd$#^PnVo%CI$&GW}pX_n(6 z*Nm*}?L)$X|5c@yp-s zYM-^m`0b(~(tAVKMTWl*Znd>bEv4e6j#fG|aX5Sb5qZEN4`4rCCg}V*-}kYj+mBD5 zxI*(|_Zal(UgiBWAp!2Zy@y>7L&l40N*)REbHB`X*4wE0rZEf)CP{d|RE+4#A$%gu zhpY_;mP`Fly0oju@v@2`U%fxi$FKX)N~S*JG8X^Vx9)39%r2gc6oEDHs|w3FKYuH; zPrJZWHQMZdh&-4%6Y94i4_#U!J_Kj{r@K*5CF7AJ(=uE-|6`Dcms?_g5?ISDVu#}7 zckS)S5kU<-5}h+*+-PNlEwc*U;mI~Nm00LaUHe}YOYe)*!pE$QiFZBhFK}CXg+v*r*iIM*wcLC51)~67`(3>B! za5L1hV1^3-3k}DL(k~1pXUmT=N_O9(!?|Y`cN=&uS372qb5Di;&)KHE{e@P?%`nDl zOfQg2-O|8)b(Ng-kb9|wGM@O^kPC)hBLy}Td^eN(2Ti=o`2Pq^T!~V8lptRJYaVJK z?n@lcVZSSRxJ4JCm}pmR98_L9i9*Ei%p4gU0BII7TC89Z~bIC7c4bs#cLYPX!wX8$m{aZh_G1AYUJFi#^t5n^necgkUJbszdUCYC&VGL4)B}m< zg81%3wf&Zf4-ET*gFLmqKJ7Df85vZQvKK~Xy6pQ!x_S57^RK5||4`0ow9J6WN%vaB zrU+ZzWN~L1&OjGKiV|VS**bnLv7iMrp^5^DA z6G?jJK&j~x5+Ze@9`hN)9&0u=ty4tIw)Mku!-ze4A z2$AulhNzzUgNBSALyw8vsj)L>0{wkg;45J4TFq2{nk-dNJf6j=VFga8Cuf8vdk}Hu zDpJB@!leHV{M=AzIb8qAP4++&ijiM$ygdnQIk6HM)TfTqdoJ?u3%4;?~Qs?h(HRMak^% zSq`_nGYp3cGDpwaMb^m~D(XQu`5B;6lDRg5$lFE0KCs<*SX&w z$H8tG#!xk#xR#FTL#OnSor$s{>S%xE7S3HY7$7%)<5keo((F#Ezn$kv zY(~pYRnSG`pjM|Vr6rfYhf}roOR)mW2k7fFXQg$0MiG6FLixQdk6>iO%>^in-!S`s zfHto81JYfLxFoiX`l6weWVxNo$>t>3R#*UFlVtbb-A(56trgZ-c5ll%UpiPfD(PQm zIit(b!ZpMX488SgujDEN&@K>tJ;2kjwS&L ztrbEjtwa=pYA!90F871>$M;sBX_x99kMaNFehi*3z%PJDQcnc4R70>>Q|aJ~pAK85 z$InnlaR<}fEa^!W=dhvYH7rZD>eI>)R+6|OC^nR#(7k{Pf@((d^L?%je$%CuQB*hk zKid1wu%@!E?XfEeIEo-5U_(TNs0auMK~V&eCIV6dBE1FaH9=HBrKt!==)L!z08tQ- zUPB3l&|4s(2M8qJ;Th){b!PJZ_^#`_z8|l@FdTBuS$prb*Sgoe?)}1u83(d6d^FuF zws!4ht>V*MUY6Jhhsmk6=_*`LvqWmd}FfYOqaXe7Dz6F?7m zd^`Zk-P&j%6)}!YV}$uUK?44jgOZCJH*bKgGZas?M)G)geFkurY9exf?5>UcaE3b# z25@u*#JSJ(NyP;_n~Og{j(y3VQEM;u-%%7X@AGxxbG~NyNt5_$K1aB-XCI}k@ zb)uT14Ij|4v;7c>S6N4|Tjs%sWO^yHGCB zgvy;Y{@08-B7g7^dp*4Py0JaK1<-iA$nW6=txe6x3n)>OjJr$tVMdxW=u|)Tk;P9F zq_#G!$K&vi3#={rBUj2{s|f{-5sIi+;nG=ku|6T7M?W;{#f2QSUY~|K#R&))1q&RC zob^5Y&9(p*t1p$XsWs$EZsa5ZRXaj|Wxbs2exO9f<=hLCwp-eIfi3md($Me=iU={F4`<|-M7=6wM`c7R^ZB;8ej)poqb0ZPS z$;Docmhob#KUf%ONj=7pwDy{oW9F(WtKo!+GV%9X)0xb9=@FH$gnh>i1mXF=k=lPB zi4Rxg**bd@Qi#l3;|I+|PVr`0vh`LTO|Y6%iR0&(>Ax4;DE+jsn>zw{zYlLGyl9pi zMg~s&+46cnbz6C#ZkKk(tr9prq+EA!aDg3b0}DL%*;kj~o38jt?D*;om$Kj`{Z73- zI|0dGa0!4mCuG}?G=xDcpQ_j#ie0cr6}U_}Q-~?zd^YcU1cWO#g(zw7lWkja*0bV} zPu%8eo%kWwM1!{tg*TIevjnw37Y~Wd)Oa}4zJzt8BMLG;q+Ss8a(&uz4XvirG;!dE z+1Ic;-{3cEO6-?CPg(dPL=&k>!%9JJ)mrMex0NNWyT<#|3IO;mE1-E}A7f^w742}( zZKGcdTf>+%X=-YHjG}I~p2Rd8Q>C4&ns!O=_uMp!CZuvSLV;1m-B4Q|*Jwm?d@U^! ziV0QsmldB&BS>U8k3s56V2OpH4&j&*LT7SHhG}gf4dOb=*hD-9Dpkz8_@h~5;$U}N z++gmjGoh4;kLhFR^^7ljtIs{C=F4bqZa(M}Q8>k08X@fRgjCd$%YGo z+(?OSA0k6T!@aIv4cq!NB>BVUGE+z86=pUfAqBywLRaTUDsuM? zJ|DiyBSUIhQnqg0apP~WWX$T;YO6NoFli%%3mFsy5RyAHqbe@40^#4QH6QT$)CVwJ z6~a2;H}zv?={>m@d(V+wj<#*YdPm<=hfPN<#IUq@L%%f%2wz#{Yo@=Ub4 zzCNYoIe=iZ>%(Oa&fbP8D9m#nWR`kDdge;03}zL4yKQN_{%QeKao!dv;&#OU+~wV# zzPH-wibs_A1v1U~0q3C9g9`V%6K}n)Q<|bR7!|{C5<;HAukRbgXi_yUCn)l~3-K5U z!d0OZvZ_){`ysJ%Od0Iqb=Wq@Nv_QwRcindAZ$H~SiP5d$SarK07h8OO^MnZQv|Tw z%!M_S+cGIYPD%*ra6~0rBTjB#YQWE3N21?N}(HI*_wirt& zK!3P<#DkRIbx!3b*ln{pq^;a_z(&q*kXWN~;W7l71$349+%2}zIqk3$9COLUrDR=0 z+;y_p9*dFqT=C#fI?B5vY3XTihi+@B>rf1&A)4K6M`?nr$1l-z^+defCYAS~l2TqZ zWtxI?R|ZODhr*^aCT_c$P9`wwlU6gMuT@E(<`wLbU9CP|+Y3{bc7`^wOZ+I3<6XBq z`xGuYrLJTVP?r&@Qn%a+ma#}@Qc2GBR48oe?1YwYj!Kd|R?^w^Ve|9(YBZR~1h+@^ zdp>TMs^cd-nnVIgkP(rj=+e9$N<{UOk`wt28)h-rO*XTR;FKang)PGX?st<0`}P`k zV2Co^<%QnRPn#P+^@3WZOaN8{g$I_>@Z}!6=z0v>g=0LPFWq-)a^{rXCZv`KbQ^wv zdL!^pG&HYnw}wMl3vKN_5EpKeW<~_cYiiN(Lh2RCL_%K7$Viyg(u1ZCOSSAYKHfsB z&AM`o53k0)n77)bj2{4-&$RRJKDeq4(j5EuTc6s0^9S^PN|al{$;s(QeH&c>eXvRPov#_iXAF^kxsNMnbI8z3$W zFYlVFcNkbR+a$KcttX?n#p#V4rV&N#sd)rcfNpp8-0ou&9bn@A#8agy{t2imsGSql zHxXv~(KY`HVrCui?pqdw(YxeG-!K5IF;(r||LY(B;M-(Q1AyZ)nGU%Z=&CpaP@9i6 zJvs8zX7S6H-f^LF|Fx6+@=M?`+b;lIHk+p$hv{&QpFf{&#qXha7wjt;_sA1Iw|3q@ zCX>OKTl^C3n_4zDxpl`9afOVIU^CPL=0$aqLP&N0@8{%-+Ea|88YxXwE~B%CY|&;I ziRKTy7oN`lS7Sa2azAPs$U<-Tk|M@2p>&?(zAY6 z^bWsoOHYXo7#SD3!|&Uh&iPYN_KOv*_y9y$60G%81o{h9YR>Du0x(jGA8H|Yn!CK2 zKv%5lR<67TP<~GMMK0*xt`sH0Gl$vrV+EG;E`iw)4?W3DQw%myhQd|oHHsa>0)T&+ zWyhyKe$&IP)dIHD%-&`ws(()*8|&(e0BqT%*%O@qZWS56qw*Z$rlrc)A?kFCADRFp zY?Ucsr1z^?fB5cbfVtY+z&7akBbf8coWf=R)sO6)0J|T9w_l9yc&)8P?%r>|N%tt+ zx%CJ@&G~enbvczFm7?#3;=0Fu(=;6d)K9ux&Z=+Y;O@ z1Lxa9IYW6BNHO9c#V(U-Y$sdTxO8a{#iz8xvcJXq=z#x?UuevVD(as|+|y|&dl60T=wa}R+i|8d*@ z*-=WAe3lq=V!w^r(Fu4>3i9CYQw;)i7^aCR;&so&_z`{tP!mAStrwqpd7yHe*w>uZ z3|qq*Eq9!wE>EIVZZ3OXuehpflfUgeV13oHa6+I_nl{?xGDL}M(E4gquqY=vpNE@P zi!?DaQ;8N`-p=QNUx9kQJj8sW-HROUGHBV`hx^B#C1x242h2`?rA((Q!rMW|IL4HvImGu5aU&iE;IxK*Jwg@y?6dXg`76 zb!jMvunya#tw1NU#0_^90Crp2d^K+l-sqSa2Lw0Ov&sy4)j4iiJ^gf!625#+|Nrw~KzR z*Ba+fc1!+Q-uZ{IG9TM*;kL)Oc=JfePR}sJ1se~PF>B;>yL1RWJ1PtT0Xf0ai@`v` z%()`&+WveRW-EqwcKKEmBr%6F1P`)B1|KfRy#k@#0kIJ9767{&z@2Wn3hLi1r2x&L z^|5ex_1A`%2PUT`*9N`twy^8Ou82aT4TJSL6gdV^bg}*1t*8$qzRbAV~a7k!mbMq%L+b>2cV9J+!W5UAMHpv9kyr^!gLEgghp<}Y( z_$l-dO!3=1Kt#i@w@K1mN0N)WyKlYRf0$FE>>inD`;|NdC?BlHA-35jU0WkkUv-gb zs~xWdf01uRPo?v9ny;_G*md<=ti zZZs3RD6foI7=bg4H_2^YPHugE?2Y6>a(ks0)yTDT(#r zV^GoXrA0swBsfnTWE@dBN|{%dm>=Acw!jWJUb;=^wcHy#sPO@x?)gbD?l_=V zLH$<4%%IYJIJkbRWuo^^IV3Gg*p^DlE$3$~VH}wLL%_lZ=M?{JyTvQW9;KR-lT$T| z)CEwN%@yKtsF>^Ub6aA*ZW?-a6MVNEa?wvZ7d5k{dP2guefZ1E+h;0lL7t$?I;_CG zPDzVVXNU`xx}{lE*z)b2c3B~MdIQr(c4wCp05MmWS#2=WeHXkl%=Mu0*J5SzkWIy+ zT+{vg37kyRcrQY>D0q8(tU6m3>0Be|av`@D#v+A0&#yk{xZeJ3t>3HafpiRehCt@nYIVhKpJJM%WwKm6mXB0V)VLw6nbvg4KsoU3Qw z1H5TQNgBfe=7XtETMf$0zf|9im!4Z2@TgvQ!PBlBJ*Hnv4qQgF%W;aY6-r%w?^{JD z`bB!n_$3oXBTGGKH5^|qo?k#-@Nn5K)+*NfuyC!M;6s_7_!ikLaakir@2E#jujY{^w_b z|M=>{mN#FK@(4L5j~BNBgD>{AYoM##yr^S=f;G35x&Ej@6*ZRA>Cli3zKOZ0xaPOqxGF(2qMcu!+k%dNa%8ila;Ye{)h=gLaCu!xlQ4 zZ61F}N=j;X-v|O)Mt1MFio#r2AX0lw>RIi=yEhvjP83syby*u7fiwK zn~H{QD%7vegivsd!1)(hUC{L!+93J!xsIX#@gdB;=aq29e75YnW)X9^5Nz!OT6);O=asOi>_%W|ir&ggfyB`4z$YMgz%1PJ?Sznu=ylQS$2NkdafT;Oz62A z>(tN7{z^F^TrwjsDQRZa>7{5zV^04G2C)i6j*BiMcFG*hBWbJ1jPZ1(^baXV|J>ESK zifn4>FQQ#OKVHo^f7?E1extN`sMfjDd7u@gTk*thdh0oiY`OLt0AX?ULCm4=dxr)2 zE$$C9ap-lUTuiNv4^pORxYg-BUO1~@J4QAkhEnH#x73BBsJ>686O2_(YfQcR#ce~! z5_U8wfbE^9#$;O1c$aLv)YXnjdNNsWgz_NiC_K({VBV`->`0NYE&G?ZEki!Q*}z;u z>tFnMe6F6#!%v-kgPe9%UY}JP5p*mrF77h(JauWR#o)1)7W&r zXl>DUvu`#wwgC*j2u0NbGx=<8ZuUD&6$@W@^)oj9^AdGr@lNVE#yq=U*p0ku2E>WV z;>#5*(un>wM=FUpuoiWN*vSLg9v5z_m*ci?r>*Rj4e%AJLLh^Xs1JjZ!otRrx2xv63tMBQjWp9p17f5v9#9@> zYx#>nK?>7@F-h_Z>Z+dTw&3wxu2#&<$gHtL1aIRF4ltcOaf$Qf$zH9jww8uN6AR_5 zB`9e5e5zP|5t7&l7Zl}1WUbqS;0)Xv+oKdr7qjj4dAI=rMbAnM1~`g}gUD`j-6 z@*sJw&n*ibazhF~&zlMX@#vWNV{{n~~I&`T-I{=tx)0CwXH|d}yeK zVVZ`Bh|SkBI$+5WmfbkxUdVxmYYhz?H}X!;AtRS9?0`YAk}@++B3-k;qoky?fhc}I zc3oG_x9i%yx$8IQnsrN|+aHpfboReOEKF9smt-s#2bcm+Y zS9d>jkuptJ`uOwA{xQlwU9~TXIO+ilphN47t3N1@Tm6(QszwJhT4#HQ^e3%em7sGC z_qo$fy+&c!J9I*fQC*o?p{m~c>Hjs*Kabk~8tDJ88I)d((U3ANxIm9He;N+J&;I!0 ztJmnQ4&Ha&eSLk27pw~a7cxDx+qMeK_uv`r5XzZkL44QW5+fyf)1^C2O>%sO8)>s! z(`I0BG(NQ0-%q0td-ZW~_Hlnd*Gx8+%sd;TJm-PQ5+hyhVlDz&N~P3!Ah9$Nt5eLy zi{5T4b{??pTa|iToFj&(^63=Mi_KMV&mjpnb*1Q`{e298$I1SDl-_&BE$>YtO0;RV z(eZ(MOK!`|LIv_({Y0|(Wv)-(1a8(^h!OsGB>Ok->?7}x0}Pkr>D^31MP@c<*?N^u zYnjXwfxQn)&uU)$+r4Be7`iL+o?vqE0lgi(3uT+uCnyE_T}NG+rEI4qpJ5&{6fh9M zDO2xVMgy#(w(u)H@fy*7fBO2hP zhFNeGyJTxr$UQTIGBax>tuTVVLBY~&Z$Z_S%jDDpjuQ?88(AW~75W?4(Z1oWSe_{N z_Tj#h6El{q9dVb^5+{jv@}z-Ceb{DJg8$GT%63 zgDISB)jc9t28GpX79XWI9C5P1aHNL6ecPzw&koJ^D+*Y-iVAp~Z;#PHmv20WUC{Gd zHPN*$kloDraa#-{zze3z^5;2ZV6d7MjzYcwp01cDSLw|QEL&erH?C-=FlT*& zGys<=8$jC*C6WgVYV-CoJVrscja1Mp3u7UQO`4TUeFn$=V7mWey!QOv{CCUyQ-c+7 z;vjzE;wod<>c`~Jwic3x24~ENL9oEo98NZVsllx{HfyeLYBul>V^4?eWEq^IuEYHG zr+z0ak@&mVKmt;(_)7o%YY@ zTYzQ&bsP)6enDi?bf?wrDvOkKc}B_ws-MlPzneSy{5yw{SLQ=Gh9(;Ja8p-Rh@IO# zDIpVi=p?&eamN4_T-jSDH=DzBru09%z08Z9`wM-UMB-{725LKKqIxjcesm5K9ta-)f`b8 zXWajG3l6(?Sm5N1(_rjPor5eoMXobh<;xT@K^R`zVPT=0a$}3}z$v?FZv_Q~4&@)4 z9=^YydzQ?7HD%Y>`=8(~2Lxn?gji2%YGEo+5f27Lk6~Is2HRs=2oaTm?9(5RneK*a zxtp7&E|Bkj^^joRgr|m|iY-ezG-Rd_M%VSj^=0<& zVIMLdi1xNS$*0QfUNls8f^}IttphbyEsOxER4iH1$lwqN@oX)ZTIeZ`ugV`9_`*|Ytl-*797dulY%SDuG``L0vz{q^YdY&T@) ztwy-PG9@EpwoB#Hrw|M!xpyc=*lVN>?m)oXqR)uCby3SB3MVTTTPgk85e7G(#pdyW z#^+?GqOq=H+ORu<^y4R)G z!;?>=@hG0=Pn%zw`C>f8B{RvjQ!&54Ipnbi63UgIPaYgYml@i1kYYShO=@R^jj{JRF65M-Iz>1cbldolT zm%usmbjdkhW46_;JRI)48k$?Tc4R23m-4DZ+>99Wv8yL{?i%{W^>P<=8BF1_QKVm@ zq%gWdeKNl0Qp~4PYD{o-M>Nf@ci$gw_uc8;k<`A_rv0A8q+^Mo*d}=uFfk3}bFWQ6 zzt8%&sVKXr*KOH{6kYJLDz9wZ@aToCY5&D)&5Gp<(X66L72cO?#UE?w|6b%ekm4F!Q-DJ$!RAV1xy7^lv<3Y>2lk0)g=+V{E%w>(~(IMB0gezszme@FHJ3qv?>lh#*FX3$B;b@sL3o-Cb8Q@8#MJ0s^n z?f{PR(8x$B=ic8j#Ug;)e1$kPRtIe36RBKY#zlrnSK{JkUM*s*5JSgLNi&9DZUPWE zt1amJrf)9a4l17z6D^VZvzP487z1#TGJXdiNsE>)<%N&cZ?3KW$n&j* zV;*7;mG5Ie#_JV2Lx4kn9>3!m@M^m7-D&-_!8?AGv9asIN8gh!Ru5m>#C}p$7BY7a zQ6vUSmtM8d8c<#QntI%eRu*q9O#19!)N<2)N$9^`<`$=zY8PD?wDMmw>GHs!9G>=6D3@N(;27IeEY80 zdfT^uHi3+4KB-S7VrA8}w0NqkgOKqr8N@j8Xj^C!bwg{Yg2>{c+53px(15d;j(f2M zH*~?>E1bM60O2^4mTP;^XXW~Veb#Ibd4IC&&PVz{n}xy$|TYnN#=Oatp4D%*~pe>t?%w zluYey)%!hL?R%hc^!Dki4_)>!Acp!mapJv*IiNQO0?`$oNitHV&i$T&DcRaL zY*pudD?F+7s7|^FI)cD}VS=z=?|yb=c^=$K?^J$lbIrY#`!<^p%~fC)J*?RU}uCd0^%m3n#aPZB|+~G~Z3A+mFjh1n(xaocDVJj7lpYlEU0rXFb&_>ZByQV83G>xv>DlZm^ii z39S?;_)U_@M&kODr6$|%?ru5D`&u6%i%pR|Ik^YJk00j@K79i|YB;h4C<%jfHMkEk zZtSR~h}SZn4gaUIp<|W|N!E9A+Zde{B1+Y8uSHL;W%R8JWQDP0xL1{pzE?>ALcJyR zdn<>+i+RF&fCxQ1m@OmblkUb!>XNhCkv|SAd{?&nO+G8)o8>@IIj7OIw*`S$-=GrYek6qd;XK+! zb_W)(R#snCQK&qbIV&oiZ*LTzk4!(3o$Kldtz-91S!pq6$h1mxb!=!!~&w4HWYNCrPd!io_{Yr zu&#V4WU-_|^!ec5a(_oF@4Q{m{&1ex(N8gq%QY%RDbUso6F=L-k3E{YyA5F;$$S|0 zT#KyS;JTvJBhJIM&}u7{W8brHnHLO>&t{2c;RYw*qE=Vao_)@wZR$4Zq5@8F>*94D zn}0%lSemy5>P*8aLb69zoe9thV3VAo&ZO-uFY zVpdPR$A#cA_5a|zzq?srU&zx2fUTB-f7&Sj8`-pD0NfrTNOb#qM*Y_(q5`L#O10TS z|N7+bfH_hJ0KYP8rGo#$c>ZRP&!#{DK(s001D$JRv>4@aPQ_(Y^j@tmOJ>&8>gU#} z|9t29FqzG8Uv{{K>(fB-Gjft1Yjamx)e_}+znU{$JNpEK>;fN}IlwFw3PeeiLVh)Xe)}iGVOu}LkIgb(8PJ8cjFYv+TLnz`=tI7a6 zTBC6T0Py8BkSucb-_bE3M|_7=%v!ysL+2VOVDMg>@Sd-KxAT8LIjRVxv-v$u=6}z0 z|9cHGTV{5yzYsM){vZIbkCe)jju#t-orQ%bJ%+j^VRf~&wb9hWEYs$@GJ84_Aic50 z1PMZr#|I6-tl)~U!`YsCzMyj|`PV>mBSU+myfY#B`$h^W*>wRX>E zRb}g#H8`81HM51CN=t1~#1bu4kAHtXpyTB1I|<9~H0Bw3zMVM*)X)S3K2%?k3&e_W z@9z?18nb9jZfThY^I(~r;Sa~ECSgMQVLUMGfk?mu9A9@T1D1G|x z3X>5#YJO1&Bt?#}iBv@ktf_!K*Gr1$D>R#!z2b^n8Dk~NwGe1&>%e z1_Z2>jN$$co&4Z-@9t0%lp>`GZw;t$|F&to7^%Yp+W+)%!rnpqdORTNIWuiu=wXIi zX`*3mnuR(}(mg17;Peg?!|>&S82jem^HsLVA1(aDL%AzRLwENuCaji=_jlMQuoKIs z;@_1L@O-58L>A6RkFS_uSElr-WO6Q&s?uvv-t=wcjkM(04+%O?k4`k>7&vZk6Na$KCV-@`V4dLb5-jqj= zG;8O-(Hqdy)O{sZy|}dpwhf&VU1qHudXJBEKH=b)>Bu?B$r+w|v8h?UjS!*>Q5RmV zTL8$S)6T$1in=1Q`%H2_!8 zt#>%9^BbeGiY;EgvwY zCEE+V?K?iMM42*eMF59Mk<83Y;ESJOfEF)6!H`@Ks+gNvW)tKPcU(B56w0BFrflcsUmZYZW~)`}gTiO8 z0^%7!JLuhh#FF7%A3*6?3kKVcR3D;^LC7XaHrTCF?Rt&O-bs_Gq!iJ6gaJOWueq0X zEBiGs(V3VBi|)m_v1Lfvl<=7SKr(u8mORImz*i2%KBn(`FZ=#lS%49rnZmkauHNdupJE;(e4 zoi4GNFOA2PhbRYBc?toVEoF&StP&Ag6?xiP|Mwu`#Ct@2EKHoWbw^mj4aHOpUSI2% zWU^>nD_%>_%w>swwX5{-HzMvMEi*gY#!ZpwUmZ2j*yYUN=meC7hHvqmf<2xa_GRW~ z6;ce#eVu(u|N8U-XpSdayV$*DsX$|_ZtkSi31NEyF)@$1oO2mgR+{0theVFm1(s81 zn^YvJ-^^>|4P|c8R3BHG+Kk(ed@yk<7xxIn3yNMg-pd!j$*G%2XSbD!6WE8`{M>xz zC8H7Ef;|Q6QezPU9C(-C#eFU5igkv6&t-__$wr_Q^L8%BzsIjSu6kFcX){9v8V*}# zI56%P+lP8@|FARV@C2fmP(4{*{bH++sw+zGa3q;H|9t=m-fQn3c$FU+=5kJ?NlUa+ zj`*e__f>35U6z5t@oWR_l1(6)M2NTyRr59p2t>{bWQgJfb&DmsR|w(kf%uHuHNGL@ zks@!-vxd0aG>V8aKBGfIlzHO6TTSdm1PecA15=S2+{}6x>4F=N@yCd~? zv$rktsJ4R-gOCn6#qrX##sOd-GK;yfIG)S>d&__bV=D;{>b~>ArUh!V2%MCQZ>M3| zI7!vNN5|WsE2MSjZvEG%|HBX7J$sLya}qOd|9r)Jbf3R&q+AkwlFvcb5Di;1KX+M- zPf}RQNPFh3uWw3-aOtdYS(?QO+p6VTg_`OquoIU1*_q5WNpv$L%0A!*>?NpGQY3kC z(2b{gJ*j{2q?qT~P+$j)&wIAm+4qT;x5x{sjc3)C&vp$C5XbHNq>#Ln~@~F zB4c$^p{Pf0i^tK(ksj1phan4dwTlnn8-WM}R$gi5ZGiyXOCz=4z3cgBY{?B38`=?-WNx%>nqF1H<)hAhXDB$@LWsj8=;jnk zYrec5fO#S}sm(xh46q;!)Jm>iINCoa$fn$%Rt4ZCua`vynBvtV$kUbuT_7 zOEU3GjE%o(dGTk-^dCdjzDwTBLl@cl-NFF1VEZEt4GQtsc*{4kyO|;}2}(LliVEec zo0+XQ;`wFQI?<^&*ZYKXt3*W33C>q2@EI&8lJ0P8-N+m6)zZJ2b{d_KacwS;v7sDy zZ+^?qV0-$tEDOUf2Y+_CYCtd7c6&bbz?`t*DzX?rYI^*0(a|wsOEvyz@x{ECvN8Zt zGi-`KFpru7d2QhqUcY1XT$y2K0}0}mg^g$n1RgRWviEZ5-%;+rR)lxCBQkRM?jBCn^nIYq*-(+vvrO&$2?#49OClke>eb4 za3}k$y@uHP)1Us7)5?qjkP|PJ{sCa6I~gilllf6Pqxc2{&~n%5pOA*TecEYl4mg+L z?1fu98JN;;f3{{8JOIhq0d);KJ3BvedQB@^o@KP)pxZWpuN2N##ANGC^*iggX=X25 zOQOuIdi$%RJJ1@0!1|%O$WD@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + + + + + ttg: Related Pages + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec-ext_8h.html b/dox-master/parsec-ext_8h.html new file mode 100644 index 000000000..decb12300 --- /dev/null +++ b/dox-master/parsec-ext_8h.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/parsec-ext.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    parsec-ext.h File Reference
    +
    +
    + + + + +

    +Macros

    #define TTG_PARSEC_DATA_FLAG_REGISTERED   ((parsec_data_flag_t)1<<2)
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_PARSEC_DATA_FLAG_REGISTERED

    + +
    +
    + + + + +
    #define TTG_PARSEC_DATA_FLAG_REGISTERED   ((parsec_data_flag_t)1<<2)
    +
    + +

    Definition at line 5 of file parsec-ext.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec-ext_8h_source.html b/dox-master/parsec-ext_8h_source.html new file mode 100644 index 000000000..8aefa6a05 --- /dev/null +++ b/dox-master/parsec-ext_8h_source.html @@ -0,0 +1,133 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/parsec-ext.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    parsec-ext.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_EXT_H
    +
    2 #define TTG_PARSEC_EXT_H
    +
    3 
    +
    4 /* HACK: we need this flag on a data copy to indicate whether it has been registered */
    +
    5 #define TTG_PARSEC_DATA_FLAG_REGISTERED ((parsec_data_flag_t)1<<2)
    +
    6 
    +
    7 #endif // TTG_PARSEC_EXT_H
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2buffer_8h.html b/dox-master/parsec_2buffer_8h.html new file mode 100644 index 000000000..27a8231f1 --- /dev/null +++ b/dox-master/parsec_2buffer_8h.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/buffer.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    buffer.h File Reference
    +
    +
    +
    #include <array>
    +#include <vector>
    +#include <parsec.h>
    +#include <parsec/data_internal.h>
    +#include <parsec/mca/device/device.h>
    +#include "ttg/parsec/ttg_data_copy.h"
    +#include "ttg/parsec/parsec-ext.h"
    +#include "ttg/util/iovec.h"
    +#include "ttg/device/device.h"
    +#include "ttg/parsec/device.h"
    +
    + + + +

    +Classes

    struct  ttg_parsec::Buffer< T, Allocator >
     
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + + +

    +Functions

    template<typename T , typename A >
    parsec_data_t * ttg_parsec::detail::get_parsec_data (const ttg_parsec::Buffer< T, A > &db)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2buffer_8h_source.html b/dox-master/parsec_2buffer_8h_source.html new file mode 100644 index 000000000..66b2889cc --- /dev/null +++ b/dox-master/parsec_2buffer_8h_source.html @@ -0,0 +1,571 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/buffer.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    buffer.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_BUFFER_H
    +
    2 #define TTG_PARSEC_BUFFER_H
    +
    3 
    +
    4 #include <array>
    +
    5 #include <vector>
    +
    6 #include <parsec.h>
    +
    7 #include <parsec/data_internal.h>
    +
    8 #include <parsec/mca/device/device.h>
    + +
    10 #include "ttg/parsec/parsec-ext.h"
    +
    11 #include "ttg/util/iovec.h"
    +
    12 #include "ttg/device/device.h"
    +
    13 #include "ttg/parsec/device.h"
    +
    14 
    +
    15 #if defined(PARSEC_HAVE_DEV_CUDA_SUPPORT)
    +
    16 #include <cuda_runtime.h>
    +
    17 #endif // PARSEC_HAVE_DEV_CUDA_SUPPORT
    +
    18 
    +
    19 namespace ttg_parsec {
    +
    20 
    +
    21 
    +
    22 namespace detail {
    +
    23  // fwd decl
    +
    24  template<typename T, typename A>
    +
    25  parsec_data_t* get_parsec_data(const ttg_parsec::Buffer<T, A>& db);
    +
    26 } // namespace detail
    +
    27 
    +
    39 template<typename T, typename Allocator>
    + +
    41  , private Allocator {
    +
    42 
    +
    43  using element_type = std::decay_t<T>;
    +
    44 
    +
    45  using allocator_traits = std::allocator_traits<Allocator>;
    +
    46  using allocator_type = typename allocator_traits::allocator_type;
    +
    47 
    +
    48  static_assert(std::is_trivially_copyable_v<element_type>,
    +
    49  "Only trivially copyable types are supported for devices.");
    +
    50  static_assert(std::is_default_constructible_v<element_type>,
    +
    51  "Only default constructible types are supported for devices.");
    +
    52 
    +
    53 private:
    +
    54  using delete_fn_t = std::function<void(element_type*)>;
    +
    55 
    +
    56  using host_data_ptr = std::add_pointer_t<element_type>;
    +
    57  host_data_ptr m_host_data = nullptr;
    +
    58  std::size_t m_count = 0;
    +
    59  bool m_owned= false;
    +
    60 
    +
    61  static void delete_non_owned(element_type *ptr) {
    +
    62  // nothing to be done, we don't own the memory
    +
    63  }
    +
    64 
    +
    65  friend parsec_data_t* detail::get_parsec_data<T, Allocator>(const ttg_parsec::Buffer<T, Allocator>&);
    +
    66 
    +
    67  allocator_type& get_allocator_reference() { return static_cast<allocator_type&>(*this); }
    +
    68 
    +
    69  element_type* allocate(std::size_t n) {
    +
    70  return allocator_traits::allocate(get_allocator_reference(), n);
    +
    71  }
    +
    72 
    +
    73  void deallocate() {
    +
    74  allocator_traits::deallocate(get_allocator_reference(), m_host_data, m_count);
    +
    75  }
    +
    76 
    +
    77 public:
    +
    78 
    +
    79  Buffer() : Buffer(nullptr, 0)
    +
    80  { }
    +
    81 
    +
    82  Buffer(std::size_t n)
    + +
    84  , allocator_type()
    +
    85  , m_host_data(allocate(n))
    +
    86  , m_count(n)
    +
    87  , m_owned(true)
    +
    88  {
    +
    89  //std::cout << "buffer " << this << " ctor count "
    +
    90  // << m_count << "(" << m_host_data << ") ttg_copy "
    +
    91  // << m_ttg_copy
    +
    92  // << " parsec_data " << m_data.get() << std::endl;
    +
    93  this->reset_parsec_data(m_host_data, n*sizeof(element_type));
    +
    94  }
    +
    95 
    +
    96  /* Constructing a buffer using application-managed memory.
    +
    97  * The memory pointed to by ptr must be accessible during
    +
    98  * the life-time of the buffer. */
    +
    99  Buffer(element_type* ptr, std::size_t n = 1)
    + +
    101  , allocator_type()
    +
    102  , m_host_data(ptr)
    +
    103  , m_count(n)
    +
    104  , m_owned(false)
    +
    105  {
    +
    106  //std::cout << "buffer " << this << " ctor ptr " << ptr << "count "
    +
    107  // << m_count << "(" << m_host_data << ") ttg_copy "
    +
    108  // << m_ttg_copy
    +
    109  // << " parsec_data " << m_data.get() << std::endl;
    +
    110  this->reset_parsec_data(m_host_data, n*sizeof(element_type));
    +
    111  }
    +
    112 
    +
    113  virtual ~Buffer() {
    +
    114  if (m_owned) {
    +
    115  deallocate();
    +
    116  m_owned = false;
    +
    117  }
    +
    118  unpin(); // make sure the copies are not pinned
    +
    119  }
    +
    120 
    +
    121  /* allow moving device buffers */
    + +
    123  : ttg_parsec_data_wrapper_t(std::move(db))
    +
    124  , allocator_type(std::move(db))
    +
    125  , m_host_data(db.m_host_data)
    +
    126  , m_count(db.m_count)
    +
    127  , m_owned(db.m_owned)
    +
    128  {
    +
    129  db.m_host_data = nullptr;
    +
    130  db.m_count = 0;
    +
    131  db.m_owned = false;
    +
    132  }
    +
    133 
    +
    134  /* explicitly disable copying of buffers
    +
    135  * TODO: should we allow this? What data to use?
    +
    136  */
    +
    137  Buffer(const Buffer& db) = delete;
    +
    138 
    +
    139  /* allow moving device buffers */
    + +
    141  ttg_parsec_data_wrapper_t::operator=(std::move(db));
    +
    142  allocator_type::operator=(std::move(db));
    +
    143  std::swap(m_host_data, db.m_host_data);
    +
    144  std::swap(m_count, db.m_count);
    +
    145  std::swap(m_owned, db.m_owned);
    +
    146  //std::cout << "buffer " << this << " other " << &db << " mv op ttg_copy " << m_ttg_copy << std::endl;
    +
    147  //std::cout << "buffer::move-assign from " << &db << " ttg-copy " << db.m_ttg_copy
    +
    148  // << " to " << this << " ttg-copy " << m_ttg_copy
    +
    149  // << " parsec-data " << m_data.get()
    +
    150  // << std::endl;
    +
    151  /* don't update the ttg_copy, we keep the connection */
    +
    152  return *this;
    +
    153  }
    +
    154 
    +
    155  /* explicitly disable copying of buffers
    +
    156  * TODO: should we allow this? What data to use?
    +
    157  */
    +
    158  Buffer& operator=(const Buffer& db) = delete;
    +
    159 
    +
    160  /* set the current device, useful when a device
    +
    161  * buffer was modified outside of a TTG */
    + +
    163  assert(is_valid());
    +
    164  int parsec_id = detail::ttg_device_to_parsec_device(device);
    +
    165  /* make sure it's a valid device */
    +
    166  assert(parsec_nb_devices > parsec_id);
    +
    167  /* make sure it's a valid copy */
    +
    168  assert(m_data->device_copies[parsec_id] != nullptr);
    +
    169  m_data->owner_device = parsec_id;
    +
    170  }
    +
    171 
    +
    172  /* Get the owner device ID, i.e., the last updated
    +
    173  * device buffer. */
    + +
    175  assert(is_valid());
    +
    176  return detail::parsec_device_to_ttg_device(m_data->owner_device);
    +
    177  }
    +
    178 
    +
    179  /* Get the pointer on the currently active device. */
    + +
    181  assert(is_valid());
    + +
    183  return static_cast<element_type*>(m_data->device_copies[device_id]->device_private);
    +
    184  }
    +
    185 
    +
    186  /* Get the pointer on the currently active device. */
    + +
    188  assert(is_valid());
    + +
    190  return static_cast<element_type*>(m_data->device_copies[device_id]->device_private);
    +
    191  }
    +
    192 
    +
    193  /* Get the pointer on the owning device.
    +
    194  * @note: This may not be the device assigned to the currently executing task.
    +
    195  * See \ref ttg::device::current_device for that. */
    + +
    197  assert(is_valid());
    +
    198  return static_cast<element_type*>(m_data->device_copies[m_data->owner_device]->device_private);
    +
    199  }
    +
    200 
    +
    201  /* get the current device pointer */
    + +
    203  assert(is_valid());
    +
    204  return static_cast<element_type*>(m_data->device_copies[m_data->owner_device]->device_private);
    +
    205  }
    +
    206 
    +
    207  /* get the device pointer at the given device
    +
    208  */
    + +
    210  assert(is_valid());
    +
    211  int device_id = detail::ttg_device_to_parsec_device(device);
    +
    212  return static_cast<element_type*>(parsec_data_get_ptr(m_data.get(), device_id));
    +
    213  }
    +
    214 
    +
    215  /* get the device pointer at the given device
    +
    216  */
    +
    217  const element_type* device_ptr_on(const ttg::device::Device& device) const {
    +
    218  assert(is_valid());
    +
    219  int device_id = detail::ttg_device_to_parsec_device(device);
    +
    220  return static_cast<element_type*>(parsec_data_get_ptr(m_data.get(), device_id));
    +
    221  }
    +
    222 
    + +
    224  return static_cast<element_type*>(parsec_data_get_ptr(m_data.get(), 0));
    +
    225  }
    +
    226 
    +
    227  const element_type* host_ptr() const {
    +
    228  return static_cast<element_type*>(parsec_data_get_ptr(m_data.get(), 0));
    +
    229  }
    +
    230 
    +
    231  bool is_valid_on(const ttg::device::Device& device) const {
    +
    232  assert(is_valid());
    +
    233  int device_id = detail::ttg_device_to_parsec_device(device);
    +
    234  return (parsec_data_get_ptr(m_data.get(), device_id) != nullptr);
    +
    235  }
    +
    236 
    +
    237  void allocate_on(const ttg::device::Device& device_id) {
    +
    238  /* TODO: need exposed PaRSEC memory allocator */
    +
    239  throw std::runtime_error("not implemented yet");
    +
    240  }
    +
    241 
    +
    242  /* TODO: can we do this automatically?
    +
    243  * Pin the memory on all devices we currently track.
    +
    244  * Pinned memory won't be released by PaRSEC and can be used
    +
    245  * at any time.
    +
    246  */
    +
    247  void pin() {
    +
    248  for (int i = 1; i < parsec_nb_devices; ++i) {
    +
    249  pin_on(i);
    +
    250  }
    +
    251  }
    +
    252 
    +
    253  /* Unpin the memory on all devices we currently track. */
    +
    254  void unpin() {
    +
    255  if (!is_valid()) return;
    +
    256  for (int i = 0; i < parsec_nb_devices-detail::first_device_id; ++i) {
    +
    257  unpin_on(i);
    +
    258  }
    +
    259  }
    +
    260 
    +
    261  /* Pin the memory on a given device */
    +
    262  void pin_on(int device_id) {
    +
    263  /* TODO: how can we pin memory on a device? */
    +
    264  }
    +
    265 
    +
    266  /* Pin the memory on a given device */
    +
    267  void unpin_on(int device_id) {
    +
    268  /* TODO: how can we unpin memory on a device? */
    +
    269  }
    +
    270 
    +
    271  bool is_valid() const {
    +
    272  return !!m_data;
    +
    273  }
    +
    274 
    +
    275  operator bool() const {
    +
    276  return is_valid();
    +
    277  }
    +
    278 
    +
    279  std::size_t size() const {
    +
    280  return m_count;
    +
    281  }
    +
    282 
    +
    283  /* Reallocate the buffer with count elements */
    +
    284  void reset(std::size_t n) {
    +
    285  /* TODO: can we resize if count is smaller than m_count? */
    +
    286 
    +
    287  if (m_owned) {
    +
    288  deallocate();
    +
    289  m_owned = false;
    +
    290  }
    +
    291 
    +
    292  if (n == 0) {
    +
    293  m_host_data = nullptr;
    +
    294  m_owned = false;
    +
    295  } else {
    +
    296  m_host_data = allocate(n);
    +
    297  m_owned = true;
    +
    298  }
    +
    299  reset_parsec_data(m_host_data, n*sizeof(element_type));
    +
    300  //std::cout << "buffer::reset(" << count << ") ptr " << m_host_data.get()
    +
    301  // << " ttg_copy " << m_ttg_copy
    +
    302  // << " parsec_data " << m_data.get() << std::endl;
    +
    303  m_count = n;
    +
    304  }
    +
    305 
    +
    306  /* Reset the buffer to use the ptr to count elements */
    +
    307  void reset(T* ptr, std::size_t n = 1) {
    +
    308  /* TODO: can we resize if count is smaller than m_count? */
    +
    309  if (n == m_count) {
    +
    310  return;
    +
    311  }
    +
    312 
    +
    313  if (m_owned) {
    +
    314  deallocate();
    +
    315  }
    +
    316 
    +
    317  if (nullptr == ptr) {
    +
    318  m_host_data = nullptr;
    +
    319  m_count = 0;
    +
    320  m_owned = false;
    +
    321  } else {
    +
    322  m_host_data = ptr;
    +
    323  m_count = n;
    +
    324  m_owned = false;
    +
    325  }
    +
    326  reset_parsec_data(m_host_data, n*sizeof(element_type));
    +
    327  //std::cout << "buffer::reset(" << ptr << ", " << count << ") ptr " << m_host_data.get()
    +
    328  // << " ttg_copy " << m_ttg_copy
    +
    329  // << " parsec_data " << m_data.get() << std::endl;
    +
    330  }
    +
    331 
    + +
    333  /* only set device if the host has the latest copy as otherwise we might end up with a stale copy */
    +
    334  if (dev.is_device() && this->parsec_data()->owner_device == 0) {
    +
    335  parsec_advise_data_on_device(this->parsec_data(), detail::ttg_device_to_parsec_device(dev),
    +
    336  PARSEC_DEV_DATA_ADVICE_PREFERRED_DEVICE);
    +
    337  }
    +
    338  }
    +
    339 
    +
    340  /* serialization support */
    +
    341 
    +
    342 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    343  template <typename Archive>
    +
    344  void serialize(Archive& ar, const unsigned int version) {
    +
    345  if constexpr (ttg::detail::is_output_archive_v<Archive>) {
    +
    346  std::size_t s = size();
    +
    347  ar& s;
    +
    348  assert(m_ttg_copy != nullptr); // only tracked objects allowed
    + +
    350  } else {
    +
    351  std::size_t s;
    +
    352  ar & s;
    +
    353  /* initialize internal pointers and then reset */
    +
    354  reset(s);
    +
    355  assert(m_ttg_copy != nullptr); // only tracked objects allowed
    + +
    357  }
    +
    358  }
    +
    359 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    360 
    +
    361 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    362  template <typename Archive>
    +
    363  std::enable_if_t<std::is_base_of_v<madness::archive::BufferInputArchive, Archive> ||
    +
    364  std::is_base_of_v<madness::archive::BufferOutputArchive, Archive>>
    +
    365  serialize(Archive& ar) {
    +
    366  if constexpr (ttg::detail::is_output_archive_v<Archive>) {
    +
    367  std::size_t s = size();
    +
    368  ar& s;
    +
    369  assert(m_ttg_copy != nullptr); // only tracked objects allowed
    +
    370  /* transfer from the current device
    +
    371  * note: if the transport layer (MPI) does not support device transfers
    +
    372  * the data will have been pushed out */
    + +
    374  } else {
    +
    375  std::size_t s;
    +
    376  ar & s;
    +
    377  //std::cout << "serialize(IN) buffer " << this << " size " << s << std::endl;
    +
    378  /* initialize internal pointers and then reset */
    +
    379  reset(s);
    +
    380  assert(m_ttg_copy != nullptr); // only tracked objects allowed
    +
    381  /* transfer to the current device
    +
    382  * TODO: how can we make sure the device copy is not evicted? */
    + +
    384  }
    +
    385  }
    +
    386 #endif // TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    387 
    +
    388 
    +
    389 };
    +
    390 
    +
    391 namespace detail {
    +
    392  template<typename T, typename A>
    +
    393  parsec_data_t* get_parsec_data(const ttg_parsec::Buffer<T, A>& db) {
    +
    394  return const_cast<parsec_data_t*>(db.m_data.get());
    +
    395  }
    +
    396 } // namespace detail
    +
    397 
    +
    398 } // namespace ttg_parsec
    +
    399 
    +
    400 #endif // TTG_PARSEC_BUFFER_H
    +
    Represents a device in a specific execution space.
    Definition: device.h:23
    +
    bool is_device() const
    Definition: device.h:52
    + + +
    Device current_device()
    Definition: device.h:173
    +
    ttg::device::Device parsec_device_to_ttg_device(int parsec_id)
    Definition: device.h:30
    +
    int first_device_id
    Definition: device.h:12
    +
    int ttg_device_to_parsec_device(const ttg::device::Device &device)
    Definition: device.h:18
    +
    parsec_data_t * get_parsec_data(const ttg_parsec::Buffer< T, A > &db)
    Definition: buffer.h:393
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    std::array< int, 3 > version()
    Definition: version.cc:4
    + + + + +
    std::decay_t< T > element_type
    Definition: buffer.h:43
    +
    element_type * current_device_ptr()
    Definition: buffer.h:180
    +
    Buffer(element_type *ptr, std::size_t n=1)
    Definition: buffer.h:99
    +
    element_type * owner_device_ptr()
    Definition: buffer.h:196
    +
    Buffer(Buffer &&db)
    Definition: buffer.h:122
    +
    void prefer_device(ttg::device::Device dev)
    Definition: buffer.h:332
    +
    void set_current_device(const ttg::device::Device &device)
    Definition: buffer.h:162
    +
    std::size_t size() const
    Definition: buffer.h:279
    +
    bool is_valid() const
    Definition: buffer.h:271
    +
    virtual ~Buffer()
    Definition: buffer.h:113
    +
    void reset(T *ptr, std::size_t n=1)
    Definition: buffer.h:307
    +
    Buffer(std::size_t n)
    Definition: buffer.h:82
    +
    bool is_valid_on(const ttg::device::Device &device) const
    Definition: buffer.h:231
    +
    element_type * device_ptr_on(const ttg::device::Device &device)
    Definition: buffer.h:209
    +
    Buffer(const Buffer &db)=delete
    +
    ttg::device::Device get_owner_device() const
    Definition: buffer.h:174
    +
    Buffer & operator=(const Buffer &db)=delete
    + +
    std::allocator_traits< Allocator > allocator_traits
    Definition: buffer.h:45
    +
    element_type * host_ptr()
    Definition: buffer.h:223
    + +
    const element_type * host_ptr() const
    Definition: buffer.h:227
    +
    void reset(std::size_t n)
    Definition: buffer.h:284
    + +
    void pin_on(int device_id)
    Definition: buffer.h:262
    +
    void allocate_on(const ttg::device::Device &device_id)
    Definition: buffer.h:237
    +
    typename allocator_traits::allocator_type allocator_type
    Definition: buffer.h:46
    +
    const element_type * device_ptr_on(const ttg::device::Device &device) const
    Definition: buffer.h:217
    +
    const element_type * owner_device_ptr() const
    Definition: buffer.h:202
    +
    const element_type * current_device_ptr() const
    Definition: buffer.h:187
    +
    void unpin_on(int device_id)
    Definition: buffer.h:267
    +
    Buffer & operator=(Buffer &&db)
    Definition: buffer.h:140
    +
    void iovec_add(const ttg::iovec &iov)
    + +
    void reset_parsec_data(void *ptr, size_t size)
    + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2device_8h.html b/dox-master/parsec_2device_8h.html new file mode 100644 index 000000000..64e4ada9f --- /dev/null +++ b/dox-master/parsec_2device_8h.html @@ -0,0 +1,155 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/device.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    device.h File Reference
    +
    +
    +
    #include "ttg/device/device.h"
    +#include <parsec/mca/device/device.h>
    +
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + + + + + +

    +Functions

    int ttg_parsec::detail::ttg_device_to_parsec_device (const ttg::device::Device &device)
     
    ttg::device::Device ttg_parsec::detail::parsec_device_to_ttg_device (int parsec_id)
     
    int ttg_parsec::num_devices ()
     
    + + + +

    +Variables

    int ttg_parsec::detail::first_device_id = -1
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2device_8h_source.html b/dox-master/parsec_2device_8h_source.html new file mode 100644 index 000000000..bd3041f66 --- /dev/null +++ b/dox-master/parsec_2device_8h_source.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/device.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    device.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_DEVICE_H
    +
    2 #define TTG_PARSEC_DEVICE_H
    +
    3 
    +
    4 #include "ttg/device/device.h"
    +
    5 #include <parsec/mca/device/device.h>
    +
    6 
    +
    7 namespace ttg_parsec {
    +
    8 
    +
    9  namespace detail {
    +
    10 
    +
    11  // the first ID of an accelerator in the parsec ID-space
    +
    12  inline int first_device_id = -1;
    +
    13 
    +
    17  inline
    + +
    19  if (device.is_host()) {
    +
    20  return 0;
    +
    21  } else {
    +
    22  return device.id() + first_device_id;
    +
    23  }
    +
    24  }
    +
    25 
    +
    29  inline
    + +
    31  if (parsec_id < first_device_id) {
    + +
    33  }
    +
    34  return ttg::device::Device(parsec_id - first_device_id,
    + +
    36  }
    +
    37  } // namespace detail
    +
    38 
    +
    39 
    +
    40  inline
    +
    41  int num_devices() {
    +
    42  return parsec_nb_devices - detail::first_device_id;
    +
    43  }
    +
    44 
    +
    45 } // namespace ttg_parsec
    +
    46 
    +
    47 #endif // TTG_PARSEC_DEVICE_H
    +
    Represents a device in a specific execution space.
    Definition: device.h:23
    +
    bool is_host() const
    Definition: device.h:56
    +
    int id() const
    Definition: device.h:34
    + +
    constexpr ttg::ExecutionSpace available_execution_space
    Definition: device.h:19
    +
    ttg::device::Device parsec_device_to_ttg_device(int parsec_id)
    Definition: device.h:30
    +
    int first_device_id
    Definition: device.h:12
    +
    int ttg_device_to_parsec_device(const ttg::device::Device &device)
    Definition: device.h:18
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    int num_devices()
    Definition: device.h:41
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2devicescratch_8h.html b/dox-master/parsec_2devicescratch_8h.html new file mode 100644 index 000000000..4e740cfa1 --- /dev/null +++ b/dox-master/parsec_2devicescratch_8h.html @@ -0,0 +1,180 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/devicescratch.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    devicescratch.h File Reference
    +
    +
    +
    #include <array>
    +#include <parsec.h>
    +#include <parsec/data_internal.h>
    +#include <parsec/mca/device/device.h>
    +#include <parsec/mca/device/device_gpu.h>
    +#include <ttg/devicescope.h>
    +#include "ttg/parsec/task.h"
    +
    + + + +

    +Classes

    struct  ttg_parsec::devicescratch< T >
     
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + +

    +Macros

    #define TTG_PARSEC_MAX_NUM_DEVICES   4
     
    + + + + +

    +Functions

    template<typename T >
    parsec_data_t * ttg_parsec::detail::get_parsec_data (const ttg_parsec::devicescratch< T > &)
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_PARSEC_MAX_NUM_DEVICES

    + +
    +
    + + + + +
    #define TTG_PARSEC_MAX_NUM_DEVICES   4
    +
    + +

    Definition at line 5 of file devicescratch.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2devicescratch_8h_source.html b/dox-master/parsec_2devicescratch_8h_source.html new file mode 100644 index 000000000..d323b4c0b --- /dev/null +++ b/dox-master/parsec_2devicescratch_8h_source.html @@ -0,0 +1,291 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/devicescratch.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    devicescratch.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_DEVICESCRATCH_H
    +
    2 #define TTG_PARSEC_DEVICESCRATCH_H
    +
    3 
    +
    4 // TODO: replace with short vector
    +
    5 #define TTG_PARSEC_MAX_NUM_DEVICES 4
    +
    6 
    +
    7 #include <array>
    +
    8 #include <parsec.h>
    +
    9 #include <parsec/data_internal.h>
    +
    10 #include <parsec/mca/device/device.h>
    +
    11 #include <parsec/mca/device/device_gpu.h>
    +
    12 #include <ttg/devicescope.h>
    +
    13 #include "ttg/parsec/task.h"
    +
    14 
    +
    15 namespace ttg_parsec {
    +
    16 
    +
    17 namespace detail {
    +
    18  // fwd decl
    +
    19  template<typename T>
    +
    20  parsec_data_t* get_parsec_data(const ttg_parsec::devicescratch<T>&);
    +
    21 } // namespace detail
    +
    22 
    +
    28 template<typename T>
    +
    29 struct devicescratch {
    +
    30 
    +
    31  using element_type = std::decay_t<T>;
    +
    32 
    +
    33  static_assert(std::is_trivially_copyable_v<element_type>,
    +
    34  "Only trivially copyable types are supported for devices.");
    +
    35  static_assert(std::is_default_constructible_v<element_type>,
    +
    36  "Only default constructible types are supported for devices.");
    +
    37 
    +
    38 private:
    +
    39 
    +
    40  parsec_data_t* m_data = nullptr;
    +
    41  ttg::scope m_scope;
    +
    42 
    +
    43  static parsec_data_t* create_parsec_data(void *ptr, size_t count) {
    +
    44 
    +
    45  parsec_data_t *data = parsec_data_create_with_type(nullptr, 0, ptr,
    +
    46  sizeof(element_type)*count,
    +
    47  parsec_datatype_int8_t);
    +
    48  data->device_copies[0]->flags |= PARSEC_DATA_FLAG_PARSEC_MANAGED;
    +
    49  data->device_copies[0]->coherency_state = PARSEC_DATA_COHERENCY_SHARED;
    +
    50  return data;
    +
    51  }
    +
    52 
    +
    53  void remove_from_flow() {
    +
    54  /* remove the scratch from the gpu-task flow */
    +
    55  assert(nullptr != detail::parsec_ttg_caller);
    +
    56  parsec_task_t *parsec_task = &detail::parsec_ttg_caller->parsec_task;
    +
    57  parsec_flow_t *flows = detail::parsec_ttg_caller->dev_ptr->flows;
    +
    58  for (int i = 0; i < MAX_PARAM_COUNT; ++i) {
    +
    59  if (nullptr != parsec_task->data[i].data_in && parsec_task->data[i].data_in->original == m_data) {
    +
    60  flows[i].flow_flags = PARSEC_FLOW_ACCESS_NONE; // disable this flow
    +
    61  break;
    +
    62  }
    +
    63  }
    +
    64  }
    +
    65 
    +
    66  friend parsec_data_t* detail::get_parsec_data<T>(const ttg_parsec::devicescratch<T>&);
    +
    67 
    +
    68 public:
    +
    69 
    +
    70  /* Constructing a devicescratch using application-managed memory.
    +
    71  * The memory pointed to by ptr must be accessible during
    +
    72  * the life-time of the devicescratch. */
    + +
    74  : m_data(create_parsec_data(ptr, count))
    +
    75  , m_scope(scope)
    +
    76  {
    +
    77  if (ttg::scope::SyncIn == scope) {
    +
    78  /* increment the version to force the first initial transfer */
    +
    79  m_data->device_copies[0]->version = 1;
    +
    80  }
    +
    81  }
    +
    82 
    +
    83  /* don't allow moving */
    + +
    85 
    +
    86  /* don't allow copying */
    +
    87  devicescratch(const devicescratch& db) = delete;
    +
    88 
    +
    89  /* don't allow moving */
    + +
    91 
    +
    92  /* don't allow copying */
    +
    93  devicescratch& operator=(const devicescratch& db) = delete;
    +
    94 
    + +
    96  /* remove data from flow */
    +
    97  //remove_from_flow();
    +
    98  if (nullptr != m_data) {
    +
    99  //parsec_data_destroy(m_data);
    +
    100  //parsec_data_copy_detach(m_data, parsec_data_get_copy(m_data, 0), 0);
    +
    101  //auto *copy = parsec_data_get_copy(m_data, 0);
    +
    102  //PARSEC_OBJ_RELEASE(copy);
    +
    103  }
    +
    104  //parsec_data_destroy(m_data);
    +
    105  m_data = nullptr;
    +
    106  }
    +
    107 
    +
    108  /* get the current device pointer */
    + +
    110  assert(is_valid());
    +
    111  return static_cast<element_type*>(m_data->device_copies[m_data->owner_device]->device_private);
    +
    112  }
    +
    113 
    +
    114  /* get the current device pointer */
    +
    115  const element_type* device_ptr() const {
    +
    116  assert(is_valid());
    +
    117  return static_cast<element_type*>(m_data->device_copies[m_data->owner_device]->device_private);
    +
    118  }
    +
    119 
    +
    120  bool is_valid() const {
    +
    121  // TODO: how to get the current device
    +
    122  // return (m_data->owner_device == parsec_current_device);
    +
    123  return true;
    +
    124  }
    +
    125 
    +
    126  ttg::scope scope() const {
    +
    127  return m_scope;
    +
    128  }
    +
    129 
    +
    130  std::size_t size() const {
    +
    131  return (m_data->nb_elts / sizeof(element_type));
    +
    132  }
    +
    133 
    +
    134 };
    +
    135 
    +
    136 namespace detail {
    +
    137  template<typename T>
    +
    138  parsec_data_t* get_parsec_data(const ttg_parsec::devicescratch<T>& scratch) {
    +
    139  return const_cast<parsec_data_t*>(scratch.m_data);
    +
    140  }
    +
    141 } // namespace detail
    +
    142 
    +
    143 } // namespace ttg_parsec
    +
    144 
    +
    145 #endif // TTG_PARSEC_DEVICESCRATCH_H
    + +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    +
    parsec_data_t * get_parsec_data(const ttg_parsec::Buffer< T, A > &db)
    Definition: buffer.h:393
    +
    thread_local parsec_ttg_task_base_t * parsec_ttg_caller
    Definition: thread_local.h:12
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    scope
    Definition: devicescope.h:5
    + + +
    parsec_flow_t * flows
    Definition: task.h:15
    + + + +
    std::decay_t< T > element_type
    Definition: devicescratch.h:31
    + +
    devicescratch & operator=(devicescratch &&)=delete
    +
    devicescratch(devicescratch &&)=delete
    +
    ttg::scope scope() const
    +
    devicescratch(const devicescratch &db)=delete
    +
    devicescratch(element_type *ptr, ttg::scope scope=ttg::scope::SyncIn, std::size_t count=1)
    Definition: devicescratch.h:73
    + +
    devicescratch & operator=(const devicescratch &db)=delete
    +
    element_type * device_ptr()
    +
    const element_type * device_ptr() const
    +
    std::size_t size() const
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2fwd_8h.html b/dox-master/parsec_2fwd_8h.html new file mode 100644 index 000000000..0e4e2de95 --- /dev/null +++ b/dox-master/parsec_2fwd_8h.html @@ -0,0 +1,193 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/fwd.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    fwd.h File Reference
    +
    +
    +
    #include "ttg/fwd.h"
    +#include "ttg/util/typelist.h"
    +#include <future>
    +
    + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
    + + + + + + + +

    +Typedefs

    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using ttg_parsec::Op = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    template<typename keyT , typename output_terminalsT , typename derivedT , typename... input_valueTs>
    using ttg_parsec::TemplateTask = TT< keyT, output_terminalsT, derivedT, ttg::typelist< input_valueTs... > >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void ttg_parsec::make_executable_hook (ttg::World &)
     
    void ttg_parsec::ttg_initialize (int argc, char **argv, int num_threads=-1, parsec_context_s *=nullptr)
     
    void ttg_parsec::ttg_finalize ()
     
    ttg::World ttg_parsec::ttg_default_execution_context ()
     
    void ttg_parsec::ttg_execute (ttg::World world)
     
    void ttg_parsec::ttg_fence (ttg::World world)
     
    template<typename T >
    void ttg_parsec::ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr)
     
    void ttg_parsec::ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
     
    template<typename Callback >
    void ttg_parsec::ttg_register_callback (ttg::World world, Callback &&callback)
     
    ttg::Edgettg_parsec::ttg_ctl_edge (ttg::World world)
     
    void ttg_parsec::ttg_sum (ttg::World world, double &value)
     
    template<typename T , typename... Args>
    Ptr< T > ttg_parsec::make_ptr (Args &&... args)
     
    template<typename T >
    Ptr< std::decay_t< T > > ttg_parsec::get_ptr (T &&obj)
     
    template<typename... Views>
    bool ttg_parsec::register_device_memory (std::tuple< Views &... > &views)
     
    template<typename... Buffer>
    void ttg_parsec::post_device_out (std::tuple< Buffer &... > &b)
     
    template<typename... Buffer>
    void ttg_parsec::mark_device_out (std::tuple< Buffer &... > &b)
     
    int ttg_parsec::num_devices ()
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2fwd_8h_source.html b/dox-master/parsec_2fwd_8h_source.html new file mode 100644 index 000000000..f19cec1f7 --- /dev/null +++ b/dox-master/parsec_2fwd_8h_source.html @@ -0,0 +1,248 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/fwd.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    fwd.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_FWD_H
    +
    2 #define TTG_PARSEC_FWD_H
    +
    3 
    +
    4 #include "ttg/fwd.h"
    +
    5 #include "ttg/util/typelist.h"
    +
    6 
    +
    7 #include <future>
    +
    8 
    +
    9 extern "C" struct parsec_context_s;
    +
    10 
    +
    11 namespace ttg_parsec {
    +
    12 
    +
    13  template <typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs = ttg::typelist<>>
    +
    14  class TT;
    +
    15 
    +
    17  template <typename keyT, typename output_terminalsT, typename derivedT, typename... input_valueTs>
    +
    18  using Op [[deprecated("use TT instead")]] = TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...>>;
    +
    20  template <typename keyT, typename output_terminalsT, typename derivedT, typename... input_valueTs>
    +
    21  using TemplateTask = TT<keyT, output_terminalsT, derivedT, ttg::typelist<input_valueTs...>>;
    +
    22 
    +
    23  class WorldImpl;
    +
    24 
    +
    25  inline void make_executable_hook(ttg::World&);
    +
    26 
    +
    27  inline void ttg_initialize(int argc, char **argv, int num_threads = -1, parsec_context_s * = nullptr);
    +
    28 
    +
    29  inline void ttg_finalize();
    +
    30 
    +
    31  [[noreturn]]
    +
    32  static inline void ttg_abort();
    +
    33 
    + +
    35 
    +
    36  inline void ttg_execute(ttg::World world);
    +
    37 
    +
    38  inline void ttg_fence(ttg::World world);
    +
    39 
    +
    40  template <typename T>
    +
    41  inline void ttg_register_ptr(ttg::World world, const std::shared_ptr<T> &ptr);
    +
    42 
    +
    43  inline void ttg_register_status(ttg::World world, const std::shared_ptr<std::promise<void>> &status_ptr);
    +
    44 
    +
    45  template <typename Callback>
    +
    46  inline void ttg_register_callback(ttg::World world, Callback &&callback);
    +
    47 
    +
    48  inline ttg::Edge<> &ttg_ctl_edge(ttg::World world);
    +
    49 
    +
    50  inline void ttg_sum(ttg::World world, double &value);
    +
    51 
    +
    54  template <typename T>
    +
    55  static void ttg_broadcast(ttg::World world, T &data, int source_rank);
    +
    56 
    +
    57  /* device definitions */
    +
    58  template<typename T, typename Allocator = std::allocator<T>>
    +
    59  struct Buffer;
    +
    60 
    +
    61  template<typename T>
    +
    62  struct Ptr;
    +
    63 
    +
    64  template<typename T>
    +
    65  struct devicescratch;
    +
    66 
    +
    67  template<typename T>
    +
    68  struct TTValue;
    +
    69 
    +
    70  template<typename T, typename... Args>
    +
    71  inline Ptr<T> make_ptr(Args&&... args);
    +
    72 
    +
    73  template<typename T>
    +
    74  inline Ptr<std::decay_t<T>> get_ptr(T&& obj);
    +
    75 
    +
    76  template<typename... Views>
    +
    77  inline bool register_device_memory(std::tuple<Views&...> &views);
    +
    78 
    +
    79  template<typename... Buffer>
    +
    80  inline void post_device_out(std::tuple<Buffer&...> &b);
    +
    81 
    +
    82  template<typename... Buffer>
    +
    83  inline void mark_device_out(std::tuple<Buffer&...> &b);
    +
    84 
    +
    85  inline int num_devices();
    +
    86 
    +
    87 #if 0
    +
    88  template<typename... Args>
    +
    89  inline std::pair<bool, std::tuple<ptr<std::decay_t<Args>>...>> get_ptr(Args&&... args);
    +
    90 #endif
    +
    91 
    +
    92 } // namespace ttg_parsec
    +
    93 
    +
    94 #endif // TTG_PARSEC_FWD_H
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + + + + +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    void ttg_fence(ttg::World world)
    Definition: ttg.h:1085
    +
    void ttg_finalize()
    Definition: ttg.h:1071
    +
    void ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)
    Definition: ttg.h:1088
    +
    Ptr< std::decay_t< T > > get_ptr(T &&obj)
    Definition: ptr.h:252
    +
    int num_devices()
    Definition: device.h:41
    +
    Ptr< T > make_ptr(Args &&... args)
    Definition: ptr.h:270
    +
    void ttg_register_callback(ttg::World world, Callback &&callback)
    Definition: ttg.h:1102
    +
    ttg::Edge & ttg_ctl_edge(ttg::World world)
    Definition: ttg.h:1106
    +
    void make_executable_hook(ttg::World &)
    Definition: ttg.h:1114
    +
    void post_device_out(std::tuple< Buffer &... > &b)
    Definition: devicefunc.h:171
    +
    void ttg_initialize(int argc, char **argv, int num_threads=-1, parsec_context_s *=nullptr)
    +
    void ttg_register_status(ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
    Definition: ttg.h:1097
    +
    ttg::World ttg_default_execution_context()
    Definition: ttg.h:1081
    +
    void ttg_execute(ttg::World world)
    Definition: ttg.h:1084
    +
    bool register_device_memory(std::tuple< Views &... > &views)
    Definition: devicefunc.h:82
    +
    void mark_device_out(std::tuple< Buffer &... > &b)
    Definition: devicefunc.h:135
    +
    void ttg_sum(ttg::World world, double &value)
    Definition: ttg.h:1108
    +
    A container for types.
    Definition: typelist.h:24
    + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2import_8h.html b/dox-master/parsec_2import_8h.html new file mode 100644 index 000000000..4ce5d1228 --- /dev/null +++ b/dox-master/parsec_2import_8h.html @@ -0,0 +1,216 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/import.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    import.h File Reference
    +
    +
    +
    #include "ttg/runtimes.h"
    +
    + + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + + + + + + +

    +Macros

    #define TTG_SELECTED_DEFAULT_IMPL   parsec
     
    #define TTG_PARSEC_IMPORTED   1
     
    #define TTG_IMPL_NS   ttg_parsec
     
    #define TTG_IMPL_DEVICE_SUPPORT   1
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_IMPL_DEVICE_SUPPORT

    + +
    +
    + + + + +
    #define TTG_IMPL_DEVICE_SUPPORT   1
    +
    + +

    Definition at line 13 of file import.h.

    + +
    +
    + +

    ◆ TTG_IMPL_NS

    + +
    +
    + + + + +
    #define TTG_IMPL_NS   ttg_parsec
    +
    + +

    Definition at line 12 of file import.h.

    + +
    +
    + +

    ◆ TTG_PARSEC_IMPORTED

    + +
    +
    + + + + +
    #define TTG_PARSEC_IMPORTED   1
    +
    + +

    Definition at line 11 of file import.h.

    + +
    +
    + +

    ◆ TTG_SELECTED_DEFAULT_IMPL

    + +
    +
    + + + + +
    #define TTG_SELECTED_DEFAULT_IMPL   parsec
    +
    + +

    Definition at line 10 of file import.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2import_8h_source.html b/dox-master/parsec_2import_8h_source.html new file mode 100644 index 000000000..d12f5ee31 --- /dev/null +++ b/dox-master/parsec_2import_8h_source.html @@ -0,0 +1,158 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/import.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    import.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_IMPORT_H
    +
    2 #define TTG_PARSEC_IMPORT_H
    +
    3 
    +
    4 #include "ttg/runtimes.h"
    +
    5 
    +
    6 #if defined(TTG_SELECTED_DEFAULT_IMPL)
    +
    7 #error "A default TTG implementation has already been selected"
    +
    8 #endif // defined(TTG_SELECTED_DEFAULT_IMPL)
    +
    9 
    +
    10 #define TTG_SELECTED_DEFAULT_IMPL parsec
    +
    11 #define TTG_PARSEC_IMPORTED 1
    +
    12 #define TTG_IMPL_NS ttg_parsec
    +
    13 #define TTG_IMPL_DEVICE_SUPPORT 1
    +
    14 
    +
    15 namespace ttg_parsec {}
    +
    16 
    +
    17 namespace ttg {
    +
    18 
    +
    19  /* Mark the ttg_parsec namespace as the default */
    +
    20  using namespace ttg_parsec;
    +
    21 
    + +
    23 
    +
    24 } // namespace ttg
    +
    25 
    +
    26 #endif // TTG_PARSEC_IMPORT_H
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    constexpr const ttg::Runtime ttg_runtime
    Definition: import.h:20
    +
    Runtime
    Definition: runtimes.h:15
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2ptr_8h.html b/dox-master/parsec_2ptr_8h.html new file mode 100644 index 000000000..348ea0ed3 --- /dev/null +++ b/dox-master/parsec_2ptr_8h.html @@ -0,0 +1,169 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ptr.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ptr.h File Reference
    +
    +
    +
    #include <unordered_map>
    +#include <mutex>
    +#include "ttg/parsec/ttg_data_copy.h"
    +#include "ttg/parsec/thread_local.h"
    +#include "ttg/parsec/task.h"
    +
    + + + + + +

    +Classes

    struct  ttg_parsec::detail::ptr_impl
     
    struct  ttg_parsec::Ptr< T >
     
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + + + + + + + + + + + + + + +

    +Functions

    template<typename Value >
    ttg_data_copy_t * ttg_parsec::detail::create_new_datacopy (Value &&value)
     
    template<typename T >
    ttg_parsec::detail::ttg_data_copy_tttg_parsec::detail::get_copy (ttg_parsec::Ptr< T > &p)
     
    template<typename T , typename... Args>
    Ptr< T > ttg_parsec::make_ptr (Args &&... args)
     
    template<typename T >
    Ptr< std::decay_t< T > > ttg_parsec::get_ptr (T &&obj)
     
    template<typename T >
    detail::ttg_data_copy_t * ttg_parsec::detail::get_copy (ttg_parsec::Ptr< T > &p)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2ptr_8h_source.html b/dox-master/parsec_2ptr_8h_source.html new file mode 100644 index 000000000..9312ec03d --- /dev/null +++ b/dox-master/parsec_2ptr_8h_source.html @@ -0,0 +1,455 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ptr.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ptr.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_PTR_H
    +
    2 #define TTG_PARSEC_PTR_H
    +
    3 
    +
    4 #include <unordered_map>
    +
    5 #include <mutex>
    +
    6 
    + + +
    9 #include "ttg/parsec/task.h"
    +
    10 
    +
    11 namespace ttg_parsec {
    +
    12 
    +
    13  // fwd decl
    +
    14  template<typename T>
    +
    15  struct ptr;
    +
    16 
    +
    17  namespace detail {
    +
    18  /* fwd decl */
    +
    19  template <typename Value>
    +
    20  inline ttg_data_copy_t *create_new_datacopy(Value &&value);
    +
    21 
    +
    22  struct ptr_impl {
    + +
    24 
    +
    25  private:
    +
    26  static inline std::unordered_map<ptr_impl*, bool> m_ptr_map;
    +
    27  static inline std::mutex m_ptr_map_mtx;
    +
    28 
    +
    29  copy_type *m_copy = nullptr;
    +
    30 
    +
    31  void drop_copy() {
    +
    32  std::cout << "ptr drop_copy " << m_copy << " ref " << m_copy->num_ref() << std::endl;
    +
    33  if (nullptr != m_copy && 1 == m_copy->drop_ref()) {
    +
    34  delete m_copy;
    +
    35  }
    +
    36  m_copy = nullptr;
    +
    37  }
    +
    38 
    +
    39  void register_self() {
    +
    40  /* insert ourselves from the list of ptr */
    +
    41  std::lock_guard _{m_ptr_map_mtx};
    +
    42  m_ptr_map.insert(std::pair{this, true});
    +
    43  }
    +
    44 
    +
    45  void deregister_self() {
    +
    46  /* remove ourselves from the list of ptr */
    +
    47  std::lock_guard _{m_ptr_map_mtx};
    +
    48  if (m_ptr_map.contains(this)) {
    +
    49  m_ptr_map.erase(this);
    +
    50  }
    +
    51  }
    +
    52 
    +
    53  public:
    + +
    55  : m_copy(copy)
    +
    56  {
    +
    57  register_self();
    +
    58  m_copy->add_ref();
    +
    59  std::cout << "ptr copy_obj ref " << m_copy->num_ref() << std::endl;
    +
    60  }
    +
    61 
    +
    62  copy_type* get_copy() const {
    +
    63  return m_copy;
    +
    64  }
    +
    65 
    +
    66  ptr_impl(const ptr_impl& p)
    +
    67  : m_copy(p.m_copy)
    +
    68  {
    +
    69  register_self();
    +
    70  m_copy->add_ref();
    +
    71  std::cout << "ptr cpy " << m_copy << " ref " << m_copy->num_ref() << std::endl;
    +
    72  }
    +
    73 
    + +
    75  : m_copy(p.m_copy)
    +
    76  {
    +
    77  register_self();
    +
    78  p.m_copy = nullptr;
    +
    79  std::cout << "ptr mov " << m_copy << " ref " << m_copy->num_ref() << std::endl;
    +
    80  }
    +
    81 
    + +
    83  deregister_self();
    +
    84  drop_copy();
    +
    85  }
    +
    86 
    + +
    88  {
    +
    89  drop_copy();
    +
    90  m_copy = p.m_copy;
    +
    91  m_copy->add_ref();
    +
    92  std::cout << "ptr cpy " << m_copy << " ref " << m_copy->num_ref() << std::endl;
    +
    93  return *this;
    +
    94  }
    +
    95 
    + +
    97  drop_copy();
    +
    98  m_copy = p.m_copy;
    +
    99  p.m_copy = nullptr;
    +
    100  std::cout << "ptr mov " << m_copy << " ref " << m_copy->num_ref() << std::endl;
    +
    101  return *this;
    +
    102  }
    +
    103 
    +
    104  bool is_valid() const {
    +
    105  return (nullptr != m_copy);
    +
    106  }
    +
    107 
    +
    108  void reset() {
    +
    109  drop_copy();
    +
    110  }
    +
    111 
    +
    112  /* drop all currently registered ptr
    +
    113  * \note this function is not thread-safe
    +
    114  * and should only be called at the
    +
    115  * end of the execution, e.g., during finalize.
    +
    116  */
    +
    117  static void drop_all_ptr() {
    +
    118  for(auto it : m_ptr_map) {
    +
    119  it.first->drop_copy();
    +
    120  }
    +
    121  }
    +
    122  };
    +
    123 
    +
    124 
    +
    125  template<typename T>
    + +
    127  } // namespace detail
    +
    128 
    +
    129  // fwd decl
    +
    130  template<typename T, typename... Args>
    +
    131  Ptr<T> make_ptr(Args&&... args);
    +
    132 
    +
    133  // fwd decl
    +
    134  template<typename T>
    +
    135  inline Ptr<std::decay_t<T>> get_ptr(T&& obj);
    +
    136 
    +
    137  template<typename T>
    +
    138  struct Ptr {
    +
    139 
    +
    140  using value_type = std::decay_t<T>;
    +
    141 
    +
    142  private:
    + +
    144 
    +
    145  std::unique_ptr<detail::ptr_impl> m_ptr;
    +
    146 
    +
    147  /* only PaRSEC backend functions are allowed to touch our private parts */
    +
    148  template<typename... Args>
    +
    149  friend Ptr<T> make_ptr(Args&&... args);
    +
    150  template<typename S>
    +
    151  friend Ptr<std::decay_t<S>> get_ptr(S&& obj);
    +
    152  template<typename S>
    + + +
    155 
    +
    156  /* only accessible by get_ptr and make_ptr */
    + +
    158  : m_ptr(new detail::ptr_impl(copy))
    +
    159  { }
    +
    160 
    +
    161  copy_type* get_copy() const {
    +
    162  return static_cast<copy_type*>(m_ptr->get_copy());
    +
    163  }
    +
    164 
    +
    165  public:
    +
    166 
    +
    167  Ptr() = default;
    +
    168 
    +
    169  Ptr(const Ptr& p)
    +
    170  : Ptr(p.get_copy())
    +
    171  { }
    +
    172 
    +
    173  Ptr(Ptr&& p) = default;
    +
    174 
    +
    175  ~Ptr() = default;
    +
    176 
    +
    177  Ptr& operator=(const Ptr& p) {
    +
    178  m_ptr.reset(new detail::ptr_impl(p.get_copy()));
    +
    179  return *this;
    +
    180  }
    +
    181 
    +
    182  Ptr& operator=(Ptr&& p) = default;
    +
    183 
    + +
    185  return **static_cast<copy_type*>(m_ptr->get_copy());
    +
    186  }
    +
    187 
    + +
    189  return **static_cast<copy_type*>(m_ptr->get_copy());
    +
    190  }
    +
    191 
    +
    192  bool is_valid() const {
    +
    193  return m_ptr && m_ptr->is_valid();
    +
    194  }
    +
    195 
    +
    196  void reset() {
    +
    197  m_ptr.reset();
    +
    198  }
    +
    199  };
    +
    200 
    +
    201 #if 0
    +
    202  namespace detail {
    +
    203  template<typename Arg>
    +
    204  inline auto get_ptr(Arg&& obj) {
    +
    205 
    +
    206  for (int i = 0; i < detail::parsec_ttg_caller->data_count; ++i) {
    +
    207  detail::ttg_data_copy_t *copy = detail::parsec_ttg_caller->copies[i];
    +
    208  if (nullptr != copy) {
    +
    209  if (copy->get_ptr() == &obj) {
    +
    210  bool is_ready = true;
    +
    211  /* TODO: how can we force-sync host and device? Current data could be on either. */
    +
    212 #if 0
    +
    213  /* check all tracked device data for validity */
    +
    214  for (auto it : copy) {
    +
    215  parsec_data_t *data = *it;
    +
    216  for (int i = 0; i < parsec_nb_devices; ++i) {
    +
    217  if (nullptr != data->device_copies[i]) {
    +
    218 
    +
    219  } else {
    +
    220  is_ready = false;
    +
    221  }
    +
    222  }
    +
    223  }
    +
    224 #endif // 0
    +
    225  return std::make_pair(is_ready, std::tuple{ttg_parsec::ptr<std::decay_t<Arg>>(copy)});
    +
    226  }
    +
    227  }
    +
    228  }
    +
    229 
    +
    230  throw std::runtime_error("ttg::get_ptr called on an unknown object!");
    +
    231  }
    +
    232  }
    +
    233 
    +
    234  template<typename... Args>
    +
    235  inline std::pair<bool, std::tuple<ptr<std::decay_t<Args>>...>> get_ptr(Args&&... args) {
    +
    236  if (nullptr == detail::parsec_ttg_caller) {
    +
    237  throw std::runtime_error("ttg::get_ptr called outside of a task!");
    +
    238  }
    +
    239 
    +
    240  bool ready = true;
    +
    241  auto fn = [&](auto&& arg){
    +
    242  auto pair = get_ptr(std::forward<decltype(arg)>(arg));
    +
    243  ready &= pair.first;
    +
    244  return std::move(pair.second);
    +
    245  };
    +
    246  std::tuple<ptr<std::decay_t<Args>>...> tpl = {(fn(std::forward<Args>(args)))...};
    +
    247  return {ready, std::move(tpl)};
    +
    248  }
    +
    249 #endif // 0
    +
    250 
    +
    251  template<typename T>
    +
    252  inline Ptr<std::decay_t<T>> get_ptr(T&& obj) {
    +
    253  using ptr_type = Ptr<std::decay_t<T>>;
    +
    254  if (nullptr != detail::parsec_ttg_caller) {
    +
    255  for (int i = 0; i < detail::parsec_ttg_caller->data_count; ++i) {
    + +
    257  if (nullptr != copy) {
    +
    258  if (copy->get_ptr() == &obj) {
    +
    259  return ptr_type(copy);
    +
    260  }
    +
    261  }
    +
    262  }
    +
    263  }
    +
    264  /* object not tracked, make a new ptr that is now tracked */
    + +
    266  return ptr_type(copy);
    +
    267  }
    +
    268 
    +
    269  template<typename T, typename... Args>
    +
    270  inline Ptr<T> make_ptr(Args&&... args) {
    +
    271  detail::ttg_data_copy_t *copy = detail::create_new_datacopy(T(std::forward<Args>(args)...));
    +
    272  return Ptr<T>(copy);
    +
    273  }
    +
    274 
    +
    275  namespace detail {
    +
    276  template<typename T>
    + +
    278  return p.get_copy();
    +
    279  }
    +
    280  } // namespace detail
    +
    281 
    +
    282 } // namespace ttg_parsec
    +
    283 
    +
    284 #endif // TTG_PARSEC_PTR_H
    +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    +
    ttg_parsec::detail::ttg_data_copy_t * get_copy(ttg_parsec::Ptr< T > &p)
    Definition: ptr.h:277
    +
    ttg_data_copy_t * create_new_datacopy(Value &&value)
    Definition: ttg.h:699
    +
    thread_local parsec_ttg_task_base_t * parsec_ttg_caller
    Definition: thread_local.h:12
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    Ptr< std::decay_t< T > > get_ptr(T &&obj)
    Definition: ptr.h:252
    +
    Ptr< T > make_ptr(Args &&... args)
    Definition: ptr.h:270
    + + + +
    value_type & operator*() const
    Definition: ptr.h:184
    +
    bool is_valid() const
    Definition: ptr.h:192
    + +
    Ptr(Ptr &&p)=default
    +
    friend Ptr< std::decay_t< S > > get_ptr(S &&obj)
    +
    ~Ptr()=default
    +
    value_type & operator->() const
    Definition: ptr.h:188
    +
    Ptr & operator=(const Ptr &p)
    Definition: ptr.h:177
    +
    void reset()
    Definition: ptr.h:196
    +
    Ptr & operator=(Ptr &&p)=default
    +
    Ptr(const Ptr &p)
    Definition: ptr.h:169
    +
    friend Ptr< T > make_ptr(Args &&... args)
    Definition: ptr.h:270
    +
    std::decay_t< T > value_type
    Definition: ptr.h:140
    + + + +
    static void drop_all_ptr()
    Definition: ptr.h:117
    +
    bool is_valid() const
    Definition: ptr.h:104
    +
    ptr_impl(ptr_impl &&p)
    Definition: ptr.h:74
    +
    ptr_impl(copy_type *copy)
    Definition: ptr.h:54
    +
    ptr_impl(const ptr_impl &p)
    Definition: ptr.h:66
    +
    ptr_impl & operator=(const ptr_impl &p)
    Definition: ptr.h:87
    + + +
    copy_type * get_copy() const
    Definition: ptr.h:62
    +
    ptr_impl & operator=(ptr_impl &&p)
    Definition: ptr.h:96
    + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2task_8h.html b/dox-master/parsec_2task_8h.html new file mode 100644 index 000000000..69348fd8b --- /dev/null +++ b/dox-master/parsec_2task_8h.html @@ -0,0 +1,196 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/task.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    task.h File Reference
    +
    +
    +
    #include "ttg/parsec/ttg_data_copy.h"
    +#include <parsec/parsec_internal.h>
    +#include <parsec/mca/device/device_gpu.h>
    +
    + + + + + + + + + + + + + + + + + +

    +Classes

    struct  ttg_parsec::detail::device_ptr_t
     
    struct  ttg_parsec::detail::device_state_t< SupportDevice >
     
    struct  ttg_parsec::detail::device_state_t< true >
     
    struct  ttg_parsec::detail::parsec_ttg_task_base_t
     
    struct  ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t
     
    struct  ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >
     
    struct  ttg_parsec::detail::parsec_ttg_task_t< TT, true >
     
    struct  ttg_parsec::detail::reducer_task_t
     
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + +

    +Typedefs

    typedef parsec_hook_return_t(* ttg_parsec::detail::parsec_static_op_t) (void *)
     
    + + + +

    +Enumerations

    enum class  ttg_parsec::detail::ttg_parsec_data_flags : uint8_t {
    +  ttg_parsec::detail::NONE = 0 +, ttg_parsec::detail::SINGLE_READER = 1 << 0 +, ttg_parsec::detail::MULTIPLE_READER = 1 << 1 +, ttg_parsec::detail::SINGLE_WRITER = 1 << 2 +,
    +  ttg_parsec::detail::MULTIPLE_WRITER = 1 << 3 +, ttg_parsec::detail::IS_MODIFIED = 1 << 4 +, ttg_parsec::detail::MARKED_PUSHOUT = 1 << 5 +
    + }
     
    + + + + + + + + + + + +

    +Functions

    ttg_parsec_data_flags ttg_parsec::detail::operator| (ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
     
    ttg_parsec_data_flags ttg_parsec::detail::operator|= (ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
     
    uint8_t ttg_parsec::detail::operator& (ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
     
    ttg_parsec_data_flags ttg_parsec::detail::operator&= (ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
     
    bool ttg_parsec::detail::operator! (ttg_parsec_data_flags lhs)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2task_8h_source.html b/dox-master/parsec_2task_8h_source.html new file mode 100644 index 000000000..ce2b67f9d --- /dev/null +++ b/dox-master/parsec_2task_8h_source.html @@ -0,0 +1,558 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/task.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    task.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_TASK_H
    +
    2 #define TTG_PARSEC_TASK_H
    +
    3 
    + +
    5 
    +
    6 #include <parsec/parsec_internal.h>
    +
    7 #include <parsec/mca/device/device_gpu.h>
    +
    8 
    +
    9 namespace ttg_parsec {
    +
    10 
    +
    11  namespace detail {
    +
    12 
    +
    13  struct device_ptr_t {
    +
    14  parsec_gpu_task_t* gpu_task = nullptr;
    +
    15  parsec_flow_t* flows = nullptr;
    +
    16  parsec_gpu_exec_stream_t* stream = nullptr;
    +
    17  parsec_device_gpu_module_t* device = nullptr;
    +
    18  parsec_task_class_t task_class; // copy of the taskclass
    +
    19  };
    +
    20 
    +
    21  template<bool SupportDevice>
    + +
    23  {
    +
    24  static constexpr bool support_device = false;
    +
    25  static constexpr size_t num_flows = 0;
    + +
    27  { }
    +
    28  static constexpr device_ptr_t* dev_ptr() {
    +
    29  return nullptr;
    +
    30  }
    +
    31  };
    +
    32 
    +
    33  template<>
    +
    34  struct device_state_t<true> {
    +
    35  static constexpr bool support_device = false;
    +
    36  static constexpr size_t num_flows = MAX_PARAM_COUNT;
    +
    37  parsec_flow_t m_flows[num_flows];
    +
    38  device_ptr_t m_dev_ptr = {nullptr, &m_flows[0], nullptr, nullptr}; // gpu_task will be allocated in each task
    + +
    40  return &m_dev_ptr;
    +
    41  }
    +
    42  };
    +
    43 
    +
    44  enum class ttg_parsec_data_flags : uint8_t {
    +
    45  NONE = 0,
    +
    46  SINGLE_READER = 1 << 0,
    +
    47  MULTIPLE_READER = 1 << 1,
    +
    48  SINGLE_WRITER = 1 << 2,
    +
    49  MULTIPLE_WRITER = 1 << 3,
    +
    50  IS_MODIFIED = 1 << 4,
    +
    51  MARKED_PUSHOUT = 1 << 5
    +
    52  };
    +
    53 
    +
    54  inline
    + +
    56  using flags_type = std::underlying_type<ttg_parsec_data_flags>::type;
    +
    57  return ttg_parsec_data_flags(static_cast<flags_type>(lhs) | static_cast<flags_type>(rhs));
    +
    58  }
    +
    59 
    +
    60  inline
    + +
    62  using flags_type = std::underlying_type<ttg_parsec_data_flags>::type;
    +
    63  lhs = ttg_parsec_data_flags(static_cast<flags_type>(lhs) | static_cast<flags_type>(rhs));
    +
    64  return lhs;
    +
    65  }
    +
    66 
    +
    67  inline
    + +
    69  using flags_type = std::underlying_type<ttg_parsec_data_flags>::type;
    +
    70  return static_cast<flags_type>(lhs) & static_cast<flags_type>(rhs);
    +
    71  }
    +
    72 
    +
    73  inline
    + +
    75  using flags_type = std::underlying_type<ttg_parsec_data_flags>::type;
    +
    76  lhs = ttg_parsec_data_flags(static_cast<flags_type>(lhs) & static_cast<flags_type>(rhs));
    +
    77  return lhs;
    +
    78  }
    +
    79 
    +
    80  inline
    + +
    82  using flags_type = std::underlying_type<ttg_parsec_data_flags>::type;
    +
    83  return lhs == ttg_parsec_data_flags::NONE;
    +
    84  }
    +
    85 
    +
    86 
    +
    87  typedef parsec_hook_return_t (*parsec_static_op_t)(void *); // static_op will be cast to this type
    +
    88 
    + +
    90  parsec_task_t parsec_task;
    +
    91  int32_t in_data_count = 0; //< number of satisfied inputs
    +
    92  int32_t data_count = 0; //< number of data elements in the copies array
    +
    93  ttg_data_copy_t **copies; //< pointer to the fixed copies array of the derived task
    +
    94  parsec_hash_table_item_t tt_ht_item = {};
    +
    95 
    +
    96  struct stream_info_t {
    +
    97  std::size_t goal;
    +
    98  std::size_t size;
    +
    99  parsec_lifo_t reduce_copies;
    +
    100  std::atomic<std::size_t> reduce_count;
    +
    101  };
    +
    102 
    +
    103  protected:
    +
    104  template<std::size_t i = 0, typename TT>
    +
    105  void init_stream_info_impl(TT *tt, std::array<stream_info_t, TT::numins>& streams) {
    +
    106  if constexpr (TT::numins > i) {
    +
    107  if (std::get<i>(tt->input_reducers)) {
    +
    108  streams[i].goal = tt->static_stream_goal[i];
    +
    109  streams[i].size = 0;
    +
    110  PARSEC_OBJ_CONSTRUCT(&streams[i].reduce_copies, parsec_lifo_t);
    +
    111  streams[i].reduce_count.store(0, std::memory_order_relaxed);
    +
    112  }
    +
    113  /* recursion */
    +
    114  if constexpr((i + 1) < TT::numins) {
    +
    115  init_stream_info_impl<i+1>(tt, streams);
    +
    116  }
    +
    117  }
    +
    118  }
    +
    119 
    +
    120  template<typename TT>
    +
    121  void init_stream_info(TT *tt, std::array<stream_info_t, TT::numins>& streams) {
    +
    122  init_stream_info_impl<0>(tt, streams);
    +
    123  }
    +
    124 
    +
    125  public:
    + +
    127  /* Poor-mans virtual function
    +
    128  * We cannot use virtual inheritance or private visibility because we
    +
    129  * need offsetof for the mempool and scheduling.
    +
    130  */
    + +
    132  device_ptr_t* dev_ptr = nullptr;
    +
    133  bool remove_from_hash = true;
    +
    134  bool dummy = false;
    +
    135  bool defer_writer = TTG_PARSEC_DEFER_WRITER; // whether to defer writer instead of creating a new copy
    +
    136  ttg_parsec_data_flags data_flags; // HACKY: flags set by prepare_send and reset by the copy_handler
    +
    137 
    +
    138  /*
    +
    139  virtual void release_task() = 0;
    +
    140  */
    +
    141  //public:
    +
    142  void release_task() {
    +
    143  release_task_cb(this);
    +
    144  }
    +
    145 
    +
    146  protected:
    +
    152  parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class,
    + + + +
    156  , copies(copies)
    + +
    158  PARSEC_OBJ_CONSTRUCT(&parsec_task, parsec_task_t);
    +
    159  PARSEC_LIST_ITEM_SINGLETON(&parsec_task.super);
    +
    160  parsec_task.mempool_owner = mempool;
    +
    161  parsec_task.task_class = task_class;
    +
    162  parsec_task.priority = 0;
    +
    163 
    +
    164  // TODO: can we avoid this?
    +
    165  for (int i = 0; i < MAX_PARAM_COUNT; ++i) { this->parsec_task.data[i].data_in = nullptr; }
    +
    166  }
    +
    167 
    +
    168  parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class,
    +
    169  parsec_taskpool_t *taskpool, int32_t priority,
    + +
    171  release_task_fn *release_fn,
    + + +
    174  , copies(copies)
    +
    175  , release_task_cb(release_fn)
    + +
    177  PARSEC_OBJ_CONSTRUCT(&parsec_task, parsec_task_t);
    +
    178  PARSEC_LIST_ITEM_SINGLETON(&parsec_task.super);
    +
    179  parsec_task.mempool_owner = mempool;
    +
    180  parsec_task.task_class = task_class;
    +
    181  parsec_task.status = PARSEC_TASK_STATUS_HOOK;
    +
    182  parsec_task.taskpool = taskpool;
    +
    183  parsec_task.priority = priority;
    +
    184  parsec_task.chore_mask = 1<<0;
    +
    185 
    +
    186  // TODO: can we avoid this?
    +
    187  for (int i = 0; i < MAX_PARAM_COUNT; ++i) { this->parsec_task.data[i].data_in = nullptr; }
    +
    188  }
    +
    189 
    +
    190  public:
    +
    191  void set_dummy(bool d) { dummy = d; }
    +
    192  bool is_dummy() { return dummy; }
    +
    193  };
    +
    194 
    +
    195  template <typename TT, bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + +
    197  using key_type = typename TT::key_type;
    +
    198  static constexpr size_t num_streams = TT::numins;
    +
    199  /* device tasks may have to store more copies than it's inputs as their sends are aggregated */
    +
    200  static constexpr size_t num_copies = TT::derived_has_device_op() ? static_cast<size_t>(MAX_PARAM_COUNT)
    +
    201  : (num_streams+1);
    +
    202  TT* tt = nullptr;
    + +
    204  std::array<stream_info_t, num_streams> streams;
    +
    205 #ifdef TTG_HAVE_COROUTINE
    +
    206  void* suspended_task_address = nullptr; // if not null the function is suspended
    + +
    208 #endif
    + +
    210  ttg_data_copy_t *copies[num_copies] = { nullptr }; // the data copies tracked by this task
    +
    211 
    +
    212  parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)
    +
    213  : parsec_ttg_task_base_t(mempool, task_class, num_streams, copies) {
    +
    214  tt_ht_item.key = pkey();
    +
    215  this->dev_ptr = this->dev_state.dev_ptr();
    +
    216  // We store the hash of the key and the address where it can be found in locals considered as a scratchpad
    +
    217  *(uintptr_t*)&(parsec_task.locals[0]) = 0; //there is no key
    +
    218  *(uintptr_t*)&(parsec_task.locals[2]) = 0; //there is no key
    +
    219  }
    +
    220 
    +
    221  parsec_ttg_task_t(const key_type& key, parsec_thread_mempool_t *mempool,
    +
    222  parsec_task_class_t *task_class, parsec_taskpool_t *taskpool,
    +
    223  TT *tt_ptr, int32_t priority)
    +
    224  : parsec_ttg_task_base_t(mempool, task_class, taskpool, priority,
    + +
    226  &release_task, tt_ptr->m_defer_writer)
    +
    227  , tt(tt_ptr), key(key) {
    +
    228  tt_ht_item.key = pkey();
    +
    229  this->dev_ptr = this->dev_state.dev_ptr();
    +
    230 
    +
    231  // We store the hash of the key and the address where it can be found in locals considered as a scratchpad
    +
    232  uint64_t hv = ttg::hash<std::decay_t<decltype(key)>>{}(key);
    +
    233  *(uintptr_t*)&(parsec_task.locals[0]) = hv;
    +
    234  *(uintptr_t*)&(parsec_task.locals[2]) = reinterpret_cast<uintptr_t>(&this->key);
    +
    235 
    + +
    237  }
    +
    238 
    +
    239  static void release_task(parsec_ttg_task_base_t* task_base) {
    +
    240  parsec_ttg_task_t *task = static_cast<parsec_ttg_task_t*>(task_base);
    +
    241  TT *tt = task->tt;
    +
    242  tt->release_task(task);
    +
    243  }
    +
    244 
    +
    245  template<ttg::ExecutionSpace Space>
    +
    246  parsec_hook_return_t invoke_op() {
    +
    247  if constexpr (Space == ttg::ExecutionSpace::Host) {
    +
    248  return TT::template static_op<Space>(&this->parsec_task);
    +
    249  } else {
    +
    250  return TT::template device_static_op<Space>(&this->parsec_task);
    +
    251  }
    +
    252  }
    +
    253 
    +
    254  template<ttg::ExecutionSpace Space>
    +
    255  parsec_hook_return_t invoke_evaluate() {
    +
    256  if constexpr (Space == ttg::ExecutionSpace::Host) {
    +
    257  return PARSEC_HOOK_RETURN_DONE;
    +
    258  } else {
    +
    259  return TT::template device_static_evaluate<Space>(&this->parsec_task);
    +
    260  }
    +
    261  }
    +
    262 
    +
    263  parsec_key_t pkey() { return reinterpret_cast<parsec_key_t>(&key); }
    +
    264  };
    +
    265 
    +
    266  template <typename TT>
    +
    267  struct parsec_ttg_task_t<TT, true> : public parsec_ttg_task_base_t {
    +
    268  static constexpr size_t num_streams = TT::numins;
    +
    269  TT* tt = nullptr;
    +
    270  std::array<stream_info_t, num_streams> streams;
    +
    271 #ifdef TTG_HAVE_COROUTINE
    +
    272  void* suspended_task_address = nullptr; // if not null the function is suspended
    + +
    274 #endif
    + +
    276  ttg_data_copy_t *copies[num_streams+1] = { nullptr }; // the data copies tracked by this task
    +
    277  // +1 for the copy needed during send/bcast
    +
    278 
    +
    279  parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)
    +
    280  : parsec_ttg_task_base_t(mempool, task_class, num_streams, copies) {
    +
    281  tt_ht_item.key = pkey();
    +
    282  this->dev_ptr = this->dev_state.dev_ptr();
    +
    283  }
    +
    284 
    +
    285  parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class,
    +
    286  parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)
    +
    287  : parsec_ttg_task_base_t(mempool, task_class, taskpool, priority,
    + +
    289  &release_task, tt_ptr->m_defer_writer)
    +
    290  , tt(tt_ptr) {
    +
    291  tt_ht_item.key = pkey();
    +
    292  this->dev_ptr = this->dev_state.dev_ptr();
    + +
    294  }
    +
    295 
    +
    296  static void release_task(parsec_ttg_task_base_t* task_base) {
    +
    297  parsec_ttg_task_t *task = static_cast<parsec_ttg_task_t*>(task_base);
    +
    298  TT *tt = task->tt;
    +
    299  tt->release_task(task);
    +
    300  }
    +
    301 
    +
    302  template<ttg::ExecutionSpace Space>
    +
    303  parsec_hook_return_t invoke_op() {
    +
    304  if constexpr (Space == ttg::ExecutionSpace::Host) {
    +
    305  return TT::template static_op<Space>(&this->parsec_task);
    +
    306  } else {
    +
    307  return TT::template device_static_op<Space>(&this->parsec_task);
    +
    308  }
    +
    309  }
    +
    310 
    +
    311  parsec_key_t pkey() { return 0; }
    +
    312  };
    +
    313 
    +
    314 
    + + +
    324  bool is_first;
    +
    325 
    +
    326  reducer_task_t(parsec_ttg_task_base_t* task, parsec_thread_mempool_t *mempool,
    +
    327  parsec_task_class_t *task_class, parsec_taskpool_t *taskpool,
    +
    328  int32_t priority, bool is_first)
    +
    329  : parsec_ttg_task_base_t(mempool, task_class, taskpool, priority,
    +
    330  0, nullptr,
    +
    331  &release_task,
    +
    332  true /* deferred until other readers have completed */)
    +
    333  , parent_task(task)
    +
    334  , is_first(is_first)
    +
    335  {
    +
    336  /* store the first 4 integers from the parent task (needed for profiling) */
    +
    337  for (int i = 0; i < 4; ++i) {
    +
    338  parsec_task.locals[i] = task->parsec_task.locals[i];
    +
    339  }
    +
    340  }
    +
    341 
    +
    342  static void release_task(parsec_ttg_task_base_t* task_base) {
    +
    343  /* reducer tasks have one mutable input so the task can be submitted on the first release */
    +
    344  parsec_task_t *vp_task_rings[1] = { &task_base->parsec_task };
    +
    345  parsec_execution_stream_t *es = parsec_my_execution_stream();
    +
    346  __parsec_schedule_vp(es, vp_task_rings, 0);
    +
    347  }
    +
    348  };
    +
    349 
    +
    350  } // namespace detail
    +
    351 
    +
    352 } // namespace ttg_parsec
    +
    353 
    +
    354 #endif // TTG_PARSEC_TASK_H
    + +
    keyT key_type
    Definition: ttg.h:1218
    +
    void release_task(task_t *task, parsec_task_t **task_ring=nullptr)
    Definition: ttg.h:2553
    +
    static constexpr bool derived_has_device_op()
    Definition: ttg.h:1213
    +
    uint8_t operator&(ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
    Definition: task.h:68
    +
    parsec_hook_return_t(* parsec_static_op_t)(void *)
    Definition: task.h:87
    +
    ttg_parsec_data_flags operator|=(ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
    Definition: task.h:61
    +
    ttg_parsec_data_flags operator&=(ttg_parsec_data_flags &lhs, ttg_parsec_data_flags rhs)
    Definition: task.h:74
    + + + + + + + + +
    bool operator!(ttg_parsec_data_flags lhs)
    Definition: task.h:81
    +
    ttg_parsec_data_flags operator|(ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)
    Definition: task.h:55
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    + +
    TaskCoroutineID
    Definition: coroutine.h:222
    +
    @ Invalid
    not a coroutine, i.e. a standard task function, -> void
    +
    Computes hash values for objects of type T.
    Definition: hash.h:81
    + +
    parsec_gpu_task_t * gpu_task
    Definition: task.h:14
    +
    parsec_task_class_t task_class
    Definition: task.h:18
    +
    parsec_gpu_exec_stream_t * stream
    Definition: task.h:16
    +
    parsec_flow_t * flows
    Definition: task.h:15
    +
    parsec_device_gpu_module_t * device
    Definition: task.h:17
    + + + +
    static constexpr size_t num_flows
    Definition: task.h:25
    +
    static constexpr bool support_device
    Definition: task.h:24
    +
    static constexpr device_ptr_t * dev_ptr()
    Definition: task.h:28
    + + + + + + + + + + + + +
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
    Definition: task.h:152
    + + +
    void() release_task_fn(parsec_ttg_task_base_t *)
    Definition: task.h:126
    +
    void init_stream_info(TT *tt, std::array< stream_info_t, TT::numins > &streams)
    Definition: task.h:121
    +
    void init_stream_info_impl(TT *tt, std::array< stream_info_t, TT::numins > &streams)
    Definition: task.h:105
    + +
    ttg_parsec_data_flags data_flags
    Definition: task.h:136
    + + +
    parsec_hash_table_item_t tt_ht_item
    Definition: task.h:94
    + +
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
    Definition: task.h:168
    + +
    parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)
    Definition: task.h:279
    +
    parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)
    Definition: task.h:285
    +
    device_state_t< TT::derived_has_device_op()> dev_state
    Definition: task.h:275
    + +
    std::array< stream_info_t, num_streams > streams
    Definition: task.h:270
    +
    static void release_task(parsec_ttg_task_base_t *task_base)
    Definition: task.h:296
    + +
    static constexpr size_t num_copies
    Definition: task.h:200
    +
    parsec_hook_return_t invoke_op()
    Definition: task.h:246
    +
    std::array< stream_info_t, num_streams > streams
    Definition: task.h:204
    + +
    typename TT::key_type key_type
    Definition: task.h:197
    +
    parsec_ttg_task_t(const key_type &key, parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)
    Definition: task.h:221
    +
    parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)
    Definition: task.h:212
    +
    static constexpr size_t num_streams
    Definition: task.h:198
    +
    parsec_hook_return_t invoke_evaluate()
    Definition: task.h:255
    + + +
    device_state_t< TT::derived_has_device_op()> dev_state
    Definition: task.h:209
    +
    static void release_task(parsec_ttg_task_base_t *task_base)
    Definition: task.h:239
    +
    ttg_data_copy_t * copies[num_copies]
    Definition: task.h:210
    + +
    parsec_ttg_task_base_t * parent_task
    Definition: task.h:323
    +
    reducer_task_t(parsec_ttg_task_base_t *task, parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, bool is_first)
    Definition: task.h:326
    + +
    static void release_task(parsec_ttg_task_base_t *task_base)
    Definition: task.h:342
    + +
    #define TTG_PARSEC_DEFER_WRITER
    Definition: ttg.h:13
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2ttvalue_8h.html b/dox-master/parsec_2ttvalue_8h.html new file mode 100644 index 000000000..c53be56e8 --- /dev/null +++ b/dox-master/parsec_2ttvalue_8h.html @@ -0,0 +1,158 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ttvalue.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttvalue.h File Reference
    +
    +
    +
    #include <type_traits>
    +#include "ttg/parsec/ttg_data_copy.h"
    +
    + + + + + + + + + +

    +Classes

    struct  ttg_parsec::TTValue< DerivedT >
     
    struct  ttg_parsec::detail::is_ttvalue_base< T, Enabler >
     
    struct  ttg_parsec::detail::is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >
     
    struct  ttg_parsec::detail::persistent_value_ref< ValueT >
     
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + + +

    +Functions

    template<typename ValueT >
    auto ttg_parsec::persistent (ValueT &&value)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/parsec_2ttvalue_8h_source.html b/dox-master/parsec_2ttvalue_8h_source.html new file mode 100644 index 000000000..d3cf18711 --- /dev/null +++ b/dox-master/parsec_2ttvalue_8h_source.html @@ -0,0 +1,246 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ttvalue.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttvalue.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_TTVALUE_H
    +
    2 #define TTG_PARSEC_TTVALUE_H
    +
    3 
    +
    4 #include <type_traits>
    +
    5 
    + +
    7 
    +
    8 namespace ttg_parsec {
    +
    9 
    +
    16  template<typename DerivedT>
    +
    17  struct TTValue : private ttg_parsec::detail::ttg_data_copy_container_setter<ttg_parsec::detail::ttg_data_copy_t>
    + +
    19 
    +
    20  using derived_type = std::decay_t<DerivedT>;
    +
    21 
    +
    22  /* Constructor called with a pointer to the derived class object */
    + + +
    25  , ttg_data_copy_t()
    +
    26  { }
    +
    27 
    +
    28  /* default copy ctor */
    +
    29  TTValue(const TTValue& v)
    + +
    31  , ttg_data_copy_t(v)
    +
    32  { }
    +
    33 
    +
    34  /* default move ctor */
    + + +
    37  , ttg_data_copy_t(std::move(v))
    +
    38  { }
    +
    39 
    +
    40  /* virtual mark destructor */
    +
    41  virtual ~TTValue() = default;
    +
    42 
    +
    43  /* default copy operator */
    +
    44  TTValue& operator=(const TTValue& v) {
    + +
    46  ttg_data_copy_t::operator=(v);
    +
    47  return *this;
    +
    48  }
    +
    49 
    +
    50  /* default move operator */
    + + +
    53  ttg_data_copy_t::operator=(std::move(v));
    +
    54  return *this;
    +
    55  }
    +
    56 
    +
    57  virtual void* get_ptr() override final {
    +
    58  return static_cast<DerivedT*>(this);
    +
    59  }
    +
    60 
    + +
    62  return *static_cast<DerivedT*>(this);
    +
    63  }
    +
    64 
    +
    65  const derived_type& get_derived() const {
    +
    66  return *static_cast<DerivedT*>(this);
    +
    67  }
    +
    68  };
    +
    69 
    +
    70  namespace detail {
    +
    71 
    +
    72  template<typename T, typename Enabler = void>
    +
    73  struct is_ttvalue_base : std::false_type {};
    +
    74 
    +
    75  template<typename T>
    +
    76  struct is_ttvalue_base<T, std::is_base_of<TTValue<std::decay_t<T>>, std::decay_t<T>>>
    +
    77  : std::true_type
    +
    78  { };
    +
    79 
    +
    80  template<typename T>
    +
    81  static constexpr const bool is_ttvalue_base_v = is_ttvalue_base<T>::value;
    +
    82 
    +
    83  template<typename ValueT>
    + +
    85  using reference_type = ValueT;
    +
    86  using value_type = std::decay_t<ValueT>;
    +
    87  using lvalue_reference_type = std::add_lvalue_reference_t<std::remove_reference_t<ValueT>>;
    + +
    89  };
    +
    90  } // namespace detail
    +
    91 
    +
    92  template<typename ValueT>
    +
    93  inline auto persistent(ValueT&& value) {
    +
    94  static_assert(std::is_base_of_v<TTValue<std::decay_t<ValueT>>, std::decay_t<ValueT>>,
    +
    95  "ttg::persistent can only be used on types derived from ttg::TTValue");
    + +
    97  }
    +
    98 
    +
    99 } // namespace ttg_parsec
    +
    100 
    +
    101 #endif // TTG_PARSEC_TTVALUE_H
    +
    ttg_data_copy_t *& ttg_data_copy_container()
    Definition: thread_local.h:14
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    auto persistent(ValueT &&value)
    Definition: ttvalue.h:93
    + +
    TTValue(TTValue &&v)
    Definition: ttvalue.h:35
    +
    virtual void * get_ptr() override final
    Definition: ttvalue.h:57
    +
    std::decay_t< DerivedT > derived_type
    Definition: ttvalue.h:20
    +
    derived_type & get_derived()
    Definition: ttvalue.h:61
    +
    TTValue & operator=(TTValue &&v)
    Definition: ttvalue.h:51
    +
    const derived_type & get_derived() const
    Definition: ttvalue.h:65
    +
    virtual ~TTValue()=default
    + +
    TTValue & operator=(const TTValue &v)
    Definition: ttvalue.h:44
    +
    TTValue(const TTValue &v)
    Definition: ttvalue.h:29
    + + + +
    std::add_lvalue_reference_t< std::remove_reference_t< ValueT > > lvalue_reference_type
    Definition: ttvalue.h:87
    +
    lvalue_reference_type value_ref
    Definition: ttvalue.h:88
    +
    std::decay_t< ValueT > value_type
    Definition: ttvalue.h:86
    + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmd_8hpp.html b/dox-master/pmd_8hpp.html new file mode 100644 index 000000000..b7f9ca7d2 --- /dev/null +++ b/dox-master/pmd_8hpp.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/pmd.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmd.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmd_8hpp_source.html b/dox-master/pmd_8hpp_source.html new file mode 100644 index 000000000..7ca7afea7 --- /dev/null +++ b/dox-master/pmd_8hpp_source.html @@ -0,0 +1,200 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/pmd.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmd.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_DETAIL_PMD_HPP
    +
    10 #define BOOST_CLBL_TRTS_DETAIL_PMD_HPP
    +
    11 
    + + + + + +
    17 
    +
    18 namespace boost { namespace callable_traits { namespace detail {
    +
    19 
    +
    20 template<typename T>
    + +
    22 
    +
    23 template<typename D, typename T>
    +
    24 struct pmd<D T::*> : default_callable_traits<> {
    +
    25 
    +
    26  static constexpr bool value = true;
    +
    27 
    +
    28  using traits = pmd;
    +
    29  using class_type = T;
    +
    30  using invoke_type = T const &;
    +
    31  using type = D T::*;
    +
    32  using function_type = typename std::add_lvalue_reference<D>::type(invoke_type);
    + +
    34  using arg_types = std::tuple<invoke_type>;
    +
    35  using non_invoke_arg_types = std::tuple<>;
    +
    36 
    +
    37  using return_type = typename std::add_lvalue_reference<D>::type;
    +
    38 
    +
    39  template<typename C>
    +
    40  using apply_member_pointer = D C::*;
    +
    41 
    +
    42  template<typename R>
    +
    43  using apply_return = R T::*;
    +
    44 
    +
    45  template<template<class...> class Container>
    +
    46  using expand_args = Container<invoke_type>;
    +
    47 
    +
    48  using is_member_pointer = std::true_type;
    +
    49 };
    +
    50 
    +
    51 }}} // namespace boost::callable_traits::detail
    +
    52 
    +
    53 #endif
    + + + + + + + + +
    typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type apply_member_pointer
    + + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf_8hpp.html b/dox-master/pmf_8hpp.html new file mode 100644 index 000000000..d65a320ca --- /dev/null +++ b/dox-master/pmf_8hpp.html @@ -0,0 +1,274 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/pmf.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf.hpp File Reference
    +
    +
    + + + + +

    +Classes

    struct  boost::callable_traits::detail::pmf< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + + + + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_CC_TAG   dummy
     
    #define BOOST_CLBL_TRTS_VARARGS_CC   BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
     
    #define BOOST_CLBL_TRTS_CC
     
    #define BOOST_CLBL_TRTS_CC_TAG   dummy
     
    #define BOOST_CLBL_TRTS_VARARGS_CC   BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
     
    #define BOOST_CLBL_TRTS_CC
     
    + + + + + + + +

    +Typedefs

    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using boost::callable_traits::detail::set_member_function_qualifiers = typename set_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using boost::callable_traits::detail::set_varargs_member_function_qualifiers = typename set_varargs_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_CC [1/2]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_CC
    +
    + +

    Definition at line 55 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_CC [2/2]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_CC
    +
    + +

    Definition at line 55 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_CC_TAG [1/2]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_CC_TAG   dummy
    +
    + +

    Definition at line 53 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_CC_TAG [2/2]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_CC_TAG   dummy
    +
    + +

    Definition at line 53 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_VARARGS_CC [1/2]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_VARARGS_CC   BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    + +

    Definition at line 54 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_VARARGS_CC [2/2]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_VARARGS_CC   BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    + +

    Definition at line 54 of file pmf.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf_8hpp_source.html b/dox-master/pmf_8hpp_source.html new file mode 100644 index 000000000..775b6e1a7 --- /dev/null +++ b/dox-master/pmf_8hpp_source.html @@ -0,0 +1,238 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/pmf.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_DETAIL_PMF_HPP
    +
    10 #define BOOST_CLBL_TRTS_DETAIL_PMF_HPP
    +
    11 
    + + + + + +
    17 
    +
    18 namespace boost { namespace callable_traits { namespace detail {
    +
    19 
    +
    20 template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoExcept,
    +
    21  typename CallingConvention, typename T, typename Return,
    +
    22  typename... Args>
    + +
    24 
    +
    25 template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept,
    +
    26  typename CallingConvention, typename T, typename Return,
    +
    27  typename... Args>
    + +
    29 
    +
    30 template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
    +
    31  typename... Ts>
    + +
    33  typename set_member_function_qualifiers_t<Flags, IsTransactionSafe,
    +
    34  IsNoexcept, Ts...>::type;
    +
    35 
    +
    36 template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
    +
    37  typename... Ts>
    + + +
    40  IsTransactionSafe, IsNoexcept, Ts...>::type;
    +
    41 
    +
    42 template<typename T>
    + +
    44 
    +
    45 #define BOOST_CLBL_TRTS_CC_TAG dummy
    +
    46 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    47 #define BOOST_CLBL_TRTS_CC
    + +
    49 #undef BOOST_CLBL_TRTS_CC
    +
    50 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    51 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    52 
    +
    53 #define BOOST_CLBL_TRTS_CC_TAG dummy
    +
    54 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    55 #define BOOST_CLBL_TRTS_CC
    + +
    57 #undef BOOST_CLBL_TRTS_CC
    +
    58 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    59 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    60 
    +
    61 #ifdef BOOST_CLBL_TRTS_ENABLE_CDECL
    +
    62 #define BOOST_CLBL_TRTS_CC_TAG cdecl_tag
    +
    63 #define BOOST_CLBL_TRTS_VARARGS_CC __cdecl
    +
    64 #define BOOST_CLBL_TRTS_CC __cdecl
    + +
    66 #undef BOOST_CLBL_TRTS_CC
    +
    67 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    68 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    69 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_CDECL
    +
    70 
    +
    71 // Defining this macro enables undocumented features, likely broken.
    +
    72 // Too much work to maintain, but knock yourself out
    +
    73 #ifdef BOOST_CLBL_TRTS_ENABLE_STDCALL
    +
    74 #define BOOST_CLBL_TRTS_CC_TAG stdcall_tag
    +
    75 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    76 #define BOOST_CLBL_TRTS_CC __stdcall
    + +
    78 #undef BOOST_CLBL_TRTS_CC
    +
    79 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    80 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    81 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_STDCALL
    +
    82 
    +
    83 // Defining this macro enables undocumented features, likely broken.
    +
    84 // Too much work to officially maintain, but knock yourself out
    +
    85 #ifdef BOOST_CLBL_TRTS_ENABLE_FASTCALL
    +
    86 #define BOOST_CLBL_TRTS_CC_TAG fastcall_tag
    +
    87 #define BOOST_CLBL_TRTS_VARARGS_CC BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC
    +
    88 #define BOOST_CLBL_TRTS_CC __fastcall
    + +
    90 #undef BOOST_CLBL_TRTS_CC
    +
    91 #undef BOOST_CLBL_TRTS_CC_TAG
    +
    92 #undef BOOST_CLBL_TRTS_VARARGS_CC
    +
    93 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_FASTCALL
    +
    94 
    +
    95 }}} // namespace boost::callable_traits::detail
    +
    96 
    +
    97 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_PMF_HPP
    + + + +
    typename set_varargs_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_varargs_member_function_qualifiers
    Definition: pmf.hpp:40
    +
    typename set_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_member_function_qualifiers
    Definition: pmf.hpp:34
    + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__2_8hpp.html b/dox-master/pmf__2_8hpp.html new file mode 100644 index 000000000..452ae8a44 --- /dev/null +++ b/dox-master/pmf__2_8hpp.html @@ -0,0 +1,182 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_2.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf_2.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__2_8hpp_source.html b/dox-master/pmf__2_8hpp_source.html new file mode 100644 index 000000000..b461b2187 --- /dev/null +++ b/dox-master/pmf__2_8hpp_source.html @@ -0,0 +1,210 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_2.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf_2.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 */
    +
    11 
    +
    12 template<typename Return, typename T, typename... Args>
    +
    13 struct set_member_function_qualifiers_t<
    +
    14  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    15  false, // IsTransactionSafe
    +
    16  false, // IsNoexcept
    +
    17  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    18 
    +
    19  using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + +
    21 };
    +
    22 
    +
    23 template<typename Return, typename T, typename... Args>
    +
    24 struct set_member_function_qualifiers_t<
    +
    25  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    26  false,
    +
    27  true,
    +
    28  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    29 
    +
    30  using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + +
    33 };
    +
    34 
    +
    35 template<typename Return, typename T, typename... Args>
    +
    36 struct set_member_function_qualifiers_t<
    +
    37  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    38  true,
    +
    39  false,
    +
    40  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    41 
    +
    42  using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + +
    45 };
    +
    46 
    +
    47 template<typename Return, typename T, typename... Args>
    +
    48 struct set_member_function_qualifiers_t<
    +
    49  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    50  true,
    +
    51  true,
    +
    52  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    53 
    +
    54  using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + + +
    58 };
    +
    59 
    +
    60 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    61 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::false_type
    + +
    63 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    64 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    65 
    +
    66 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
    +
    67 
    +
    68 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::true_type
    +
    69 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE transaction_safe
    + +
    71 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    72 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    73 
    +
    74 #endif
    +
    #define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    Definition: config.hpp:37
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    Definition: config.hpp:106
    +
    #define BOOST_CLBL_TRTS_CC_TAG
    Definition: function.hpp:81
    +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    Definition: function.hpp:72
    +
    #define BOOST_CLBL_TRTS_CC
    Definition: function.hpp:83
    + + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER type
    Definition: pmf_2.hpp:32
    +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER type
    Definition: pmf_2.hpp:57
    +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER type
    Definition: pmf_2.hpp:44
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__3_8hpp.html b/dox-master/pmf__3_8hpp.html new file mode 100644 index 000000000..90359680f --- /dev/null +++ b/dox-master/pmf__3_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_3.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf_3.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_IS_NOEXCEPT

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
    +
    + +

    Definition at line 12 of file pmf_3.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_NOEXCEPT_SPEC

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 11 of file pmf_3.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__3_8hpp_source.html b/dox-master/pmf__3_8hpp_source.html new file mode 100644 index 000000000..d1f9a8d7f --- /dev/null +++ b/dox-master/pmf__3_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_3.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf_3.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    12 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::false_type
    + +
    14 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    15 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    16 
    +
    17 #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    +
    18 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC noexcept
    +
    19 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::true_type
    + +
    21 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    22 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    23 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__4_8hpp.html b/dox-master/pmf__4_8hpp.html new file mode 100644 index 000000000..36d0d59f4 --- /dev/null +++ b/dox-master/pmf__4_8hpp.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_4.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf_4.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__4_8hpp_source.html b/dox-master/pmf__4_8hpp_source.html new file mode 100644 index 000000000..8baa21b1f --- /dev/null +++ b/dox-master/pmf__4_8hpp_source.html @@ -0,0 +1,327 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_4.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf_4.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS - the function-level qualifiers for the
    +
    11  current inclusion (combinations of `const` `volatile` `&` `&&`, or nothing)
    +
    12 
    +
    13 BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE - the transaction_safe specifier for
    +
    14  the current include (`transaction_safe` or nothing)
    +
    15 
    +
    16 BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE - `std::true_type` or `std::false_type`,
    +
    17  tied on whether BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE is `transaction_safe`
    +
    18 
    +
    19 BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER - `transaction_safe` when
    +
    20  BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE is defined, otherwise nothing
    +
    21 
    +
    22 BOOST_CLBL_TRTS_NOEXCEPT_SPEC - the noexcept specifier for
    +
    23  the current include (`noexcept` or nothing)
    +
    24 
    +
    25 BOOST_CLBL_TRTS_IS_NOEXCEPT - `std::true_type` or `std::false_type`,
    +
    26  tied on whether BOOST_CLBL_TRTS_NOEXCEPT_SPEC is `noexcept`
    +
    27 
    +
    28 BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER - `noexcept` if
    +
    29  BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES is defined, otherwise nothing
    +
    30 */
    +
    31 
    +
    32 template<typename Return, typename T, typename... Args>
    +
    33 struct pmf<Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + + +
    37  : default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS> {
    +
    38 
    +
    39  static constexpr bool value = true;
    +
    40 
    +
    41  using traits = pmf;
    +
    42 
    +
    43  using return_type = Return;
    +
    44 
    +
    45  using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + + +
    49 
    +
    50  using invoke_type = typename std::conditional<
    +
    51  std::is_rvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    + +
    53  typename std::add_lvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::type
    +
    54  >::type;
    +
    55 
    +
    56  using arg_types = std::tuple<invoke_type, Args...>;
    +
    57  using non_invoke_arg_types = std::tuple<Args...>;
    +
    58 
    +
    59  using function_object_signature = Return(Args...);
    +
    60 
    +
    61  using function_type = Return(invoke_type, Args...);
    +
    62 
    +
    63  using qualified_function_type = Return(Args...)
    + + + +
    67 
    + +
    69 
    +
    70  using add_varargs =
    +
    71  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + + +
    75 
    + +
    77 
    +
    78  using remove_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + +
    81 
    +
    82  using add_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + + +
    86 
    + +
    88 
    +
    89  using remove_transaction_safe = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + +
    92 
    +
    93  using add_transaction_safe = Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + + +
    97 
    +
    98  using class_type = T;
    +
    99 
    +
    100  using qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>;
    +
    101 
    +
    102  template<qualifier_flags Flags>
    + +
    104  Flags, is_transaction_safe::value, is_noexcept::value,
    +
    105  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...>;
    +
    106 
    + +
    108 
    + +
    110  collapse_flags<qualifiers::q_flags, lref_>::value>;
    +
    111 
    + +
    113  collapse_flags<qualifiers::q_flags, rref_>::value>;
    +
    114 
    + +
    116 
    + +
    118 
    + +
    120 
    + +
    122  qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>;
    +
    123 
    + +
    125  qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>;
    +
    126 
    + +
    128 
    +
    129  template<typename U>
    + +
    131  Return(BOOST_CLBL_TRTS_CC U::*)(Args...)
    + + + +
    135 
    +
    136  template<typename NewReturn>
    +
    137  using apply_return =
    +
    138  NewReturn(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + + +
    142 
    +
    143  template<template<class...> class Container>
    +
    144  using expand_args = Container<invoke_type, Args...>;
    +
    145 
    +
    146  using is_member_pointer = std::true_type;
    +
    147 };
    +
    #define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    Definition: config.hpp:37
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    Definition: config.hpp:106
    +
    #define BOOST_CLBL_TRTS_CC_TAG
    Definition: function.hpp:81
    +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    Definition: function.hpp:72
    +
    #define BOOST_CLBL_TRTS_CC
    Definition: function.hpp:83
    +
    #define BOOST_CLBL_TRTS_VARARGS_CC
    Definition: function.hpp:82
    +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT
    Definition: function_2.hpp:12
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    Definition: function_2.hpp:11
    +
    constexpr qualifier_flags volatile_
    +
    constexpr qualifier_flags rref_
    +
    constexpr qualifier_flags const_
    +
    constexpr qualifier_flags cv_
    +
    std::integral_constant< qualifier_flags, Flags &~const_ > remove_const_flag
    +
    constexpr qualifier_flags lref_
    + +
    std::integral_constant< qualifier_flags, !AlreadyHasRef ?(Existing|Other) :(AlreadyHasLRef ?(Existing|(Other &~rref_)) :(IsAddingLRef ?((Existing &~rref_)|Other) :(Existing|Other)))> collapse_flags
    +
    std::integral_constant< qualifier_flags, Flags &~volatile_ > remove_volatile_flag
    +
    typename set_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_member_function_qualifiers
    Definition: pmf.hpp:34
    + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC type
    Definition: pmf_4.hpp:48
    +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER add_noexcept
    Definition: pmf_4.hpp:85
    + + + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_transaction_safe
    Definition: pmf_4.hpp:96
    + + + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC remove_transaction_safe
    Definition: pmf_4.hpp:91
    + +
    Return(Args...) BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC qualified_function_type
    Definition: pmf_4.hpp:66
    + +
    set_member_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > set_qualifiers
    Definition: pmf_4.hpp:105
    + +
    Return(BOOST_CLBL_TRTS_CC U::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_member_pointer
    Definition: pmf_4.hpp:134
    + + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE remove_noexcept
    Definition: pmf_4.hpp:80
    + + + +
    typename std::conditional< std::is_rvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS, typename std::add_lvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::type >::type invoke_type
    Definition: pmf_4.hpp:54
    + +
    Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_varargs
    Definition: pmf_4.hpp:74
    +
    NewReturn(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_return
    Definition: pmf_4.hpp:141
    + + + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    Definition: function.hpp:11
    +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    Definition: function.hpp:12
    +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    Definition: pmf.hpp:89
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs_8hpp.html b/dox-master/pmf__varargs_8hpp.html new file mode 100644 index 000000000..2a0792856 --- /dev/null +++ b/dox-master/pmf__varargs_8hpp.html @@ -0,0 +1,566 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf_varargs.hpp File Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &&
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [1/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [2/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [3/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [4/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [5/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [6/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &&
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [7/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [8/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [9/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [10/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &&
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [11/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &&
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [12/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &&
    +
    + +

    Definition at line 84 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [1/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [2/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [3/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [4/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [5/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [6/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &&
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [7/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [8/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [9/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [10/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &&
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [11/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &&
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [12/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &&
    +
    + +

    Definition at line 83 of file pmf_varargs.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs_8hpp_source.html b/dox-master/pmf__varargs_8hpp_source.html new file mode 100644 index 000000000..d155f758d --- /dev/null +++ b/dox-master/pmf__varargs_8hpp_source.html @@ -0,0 +1,216 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf_varargs.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 */
    +
    11 
    +
    12 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    13 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    + +
    15 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    16 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    17 
    +
    18 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const
    +
    19 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS \
    +
    20  BOOST_CLBL_TRTS_ABOMINABLE_CONST
    + +
    22 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    23 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    24 
    +
    25 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile
    +
    26 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS \
    +
    27  BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    + +
    29 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    30 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    31 
    +
    32 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile
    +
    33 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS \
    +
    34  BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    + +
    36 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    37 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    38 
    +
    39 #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    40 
    +
    41 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS &
    +
    42 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS &
    + +
    44 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    45 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    46 
    +
    47 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS &&
    +
    48 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS &&
    + +
    50 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    51 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    52 
    +
    53 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const &
    +
    54 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const &
    + +
    56 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    57 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    58 
    +
    59 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile &
    +
    60 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS volatile &
    + +
    62 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    63 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    64 
    +
    65 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile &
    +
    66 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const volatile &
    + +
    68 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    69 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    70 
    +
    71 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const &&
    +
    72 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const &&
    + +
    74 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    75 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    76 
    +
    77 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile &&
    +
    78 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS volatile &&
    + +
    80 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    81 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    82 
    +
    83 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile &&
    +
    84 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const volatile &&
    + +
    86 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    87 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    88 
    +
    89 #endif // #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs__2_8hpp.html b/dox-master/pmf__varargs__2_8hpp.html new file mode 100644 index 000000000..b4ab5b512 --- /dev/null +++ b/dox-master/pmf__varargs__2_8hpp.html @@ -0,0 +1,182 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs_2.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf_varargs_2.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs__2_8hpp_source.html b/dox-master/pmf__varargs__2_8hpp_source.html new file mode 100644 index 000000000..ba8310cc6 --- /dev/null +++ b/dox-master/pmf__varargs__2_8hpp_source.html @@ -0,0 +1,214 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs_2.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf_varargs_2.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 */
    +
    11 
    +
    12 template<typename T, typename Return, typename... Args>
    +
    13 struct set_varargs_member_function_qualifiers_t <
    +
    14  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    15  false, // IsTransactionSafe
    +
    16  false, // IsNoexcept
    +
    17  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    18 
    +
    19  using type =
    +
    20  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + +
    22 };
    +
    23 
    +
    24 template<typename T, typename Return, typename... Args>
    +
    25 struct set_varargs_member_function_qualifiers_t <
    +
    26  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    27  false,
    +
    28  true,
    +
    29  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    30 
    +
    31  using type =
    +
    32  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + +
    34 };
    +
    35 
    +
    36 template<typename T, typename Return, typename... Args>
    +
    37 struct set_varargs_member_function_qualifiers_t <
    +
    38  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    39  true,
    +
    40  false,
    +
    41  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    42 
    +
    43  using type =
    +
    44  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + +
    47 };
    +
    48 
    +
    49 template<typename T, typename Return, typename... Args>
    +
    50 struct set_varargs_member_function_qualifiers_t <
    +
    51  flag_map<int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    +
    52  true,
    +
    53  true,
    +
    54  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...> {
    +
    55 
    +
    56  using type =
    +
    57  Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + + +
    61 };
    +
    62 
    +
    63 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    64 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::false_type
    + +
    66 
    +
    67 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    68 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    69 
    +
    70 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
    +
    71 
    +
    72 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::true_type
    +
    73 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE transaction_safe
    + +
    75 #endif
    +
    76 
    +
    77 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    78 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    #define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    Definition: config.hpp:37
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    Definition: config.hpp:106
    +
    #define BOOST_CLBL_TRTS_CC_TAG
    Definition: function.hpp:81
    +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    Definition: function.hpp:72
    +
    #define BOOST_CLBL_TRTS_VARARGS_CC
    Definition: function.hpp:82
    + + +
    Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER type
    +
    Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER type
    +
    Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER type
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs__3_8hpp.html b/dox-master/pmf__varargs__3_8hpp.html new file mode 100644 index 000000000..cb476fb02 --- /dev/null +++ b/dox-master/pmf__varargs__3_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs_3.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf_varargs_3.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_IS_NOEXCEPT

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT   std::false_type
    +
    + +

    Definition at line 12 of file pmf_varargs_3.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_NOEXCEPT_SPEC

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 11 of file pmf_varargs_3.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs__3_8hpp_source.html b/dox-master/pmf__varargs__3_8hpp_source.html new file mode 100644 index 000000000..e73fdd1df --- /dev/null +++ b/dox-master/pmf__varargs__3_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs_3.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf_varargs_3.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    12 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::false_type
    + +
    14 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    15 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    16 
    +
    17 #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    +
    18 #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC noexcept
    +
    19 #define BOOST_CLBL_TRTS_IS_NOEXCEPT std::true_type
    + +
    21 #undef BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    22 #undef BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    23 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs__4_8hpp.html b/dox-master/pmf__varargs__4_8hpp.html new file mode 100644 index 000000000..c3550780c --- /dev/null +++ b/dox-master/pmf__varargs__4_8hpp.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs_4.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf_varargs_4.hpp File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/pmf__varargs__4_8hpp_source.html b/dox-master/pmf__varargs__4_8hpp_source.html new file mode 100644 index 000000000..b43a7842e --- /dev/null +++ b/dox-master/pmf__varargs__4_8hpp_source.html @@ -0,0 +1,330 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_varargs_4.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf_varargs_4.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 
    +
    10 BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS - the function-level qualifiers for the
    +
    11  current inclusion (combinations of `const` `volatile` `&` `&&`, or nothing)
    +
    12 
    +
    13 BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE - the transaction_safe specifier for
    +
    14  the current include (`transaction_safe` or nothing)
    +
    15 
    +
    16 BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE - `std::true_type` or `std::false_type`,
    +
    17  tied on whether BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE is `transaction_safe`
    +
    18 
    +
    19 BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER - `transaction_safe` when
    +
    20  BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE is enabled, otherwise nothing
    +
    21 
    +
    22 BOOST_CLBL_TRTS_NOEXCEPT_SPEC - the noexcept specifier for
    +
    23  the current include (`noexcept` or nothing)
    +
    24 
    +
    25 BOOST_CLBL_TRTS_IS_NOEXCEPT - `std::true_type` or `std::false_type`,
    +
    26  tied on whether BOOST_CLBL_TRTS_NOEXCEPT_SPEC is `noexcept`
    +
    27 
    +
    28 BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER - `noexcept` if
    +
    29  BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES is defined, otherwise nothing
    +
    30 */
    +
    31 
    +
    32 template<typename Return, typename T, typename... Args>
    +
    33 struct pmf<Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + + +
    37  : default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS> {
    +
    38 
    +
    39  static constexpr bool value = true;
    +
    40 
    +
    41  using has_varargs = std::true_type;
    +
    42 
    +
    43  using traits = pmf;
    +
    44 
    +
    45  using return_type = Return;
    +
    46 
    +
    47  using type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + + +
    51 
    +
    52  using invoke_type = typename std::conditional<
    +
    53  std::is_rvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value,
    + +
    55  typename std::add_lvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::type
    +
    56  >::type;
    +
    57 
    +
    58  using arg_types = std::tuple<invoke_type, Args...>;
    +
    59  using non_invoke_arg_types = std::tuple<Args...>;
    +
    60 
    +
    61  using function_object_signature = Return(Args..., ...);
    +
    62 
    +
    63  using function_type = Return(invoke_type, Args..., ...);
    +
    64 
    +
    65  using qualified_function_type = Return(Args..., ...)
    + + + +
    69 
    + +
    71  Return(BOOST_CLBL_TRTS_CC T::*)(Args...)
    + + + +
    75 
    +
    76  using add_varargs = type;
    +
    77 
    + +
    79 
    +
    80  using remove_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args..., ...)
    + + +
    83 
    +
    84  using add_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args..., ...)
    + + + +
    88 
    + +
    90 
    +
    91  using remove_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + +
    94 
    +
    95  using add_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + + +
    99 
    +
    100  using class_type = T;
    +
    101 
    +
    102  using qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>;
    +
    103 
    +
    104  template<qualifier_flags Flags>
    + +
    106  Flags, is_transaction_safe::value, is_noexcept::value,
    +
    107  BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...>;
    +
    108 
    + +
    110 
    + +
    112  collapse_flags<qualifiers::q_flags, lref_>::value>;
    +
    113 
    + +
    115  collapse_flags<qualifiers::q_flags, rref_>::value>;
    +
    116 
    + +
    118 
    + +
    120 
    + +
    122 
    + +
    124  qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>;
    +
    125 
    + +
    127  qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>;
    +
    128 
    + +
    130 
    +
    131  template<typename U>
    + +
    133  Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args..., ...)
    + + + +
    137 
    +
    138  template<typename NewReturn>
    +
    139  using apply_return =
    +
    140  NewReturn(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...)
    + + + +
    144 
    +
    145  template<template<class...> class Container>
    +
    146  using expand_args = Container<invoke_type, Args...>;
    +
    147 
    +
    148  using is_member_pointer = std::true_type;
    +
    149 };
    +
    #define BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    Definition: config.hpp:37
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    Definition: config.hpp:106
    +
    #define BOOST_CLBL_TRTS_CC_TAG
    Definition: function.hpp:81
    +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    Definition: function.hpp:72
    +
    #define BOOST_CLBL_TRTS_CC
    Definition: function.hpp:83
    +
    #define BOOST_CLBL_TRTS_VARARGS_CC
    Definition: function.hpp:82
    +
    #define BOOST_CLBL_TRTS_IS_NOEXCEPT
    Definition: function_2.hpp:12
    +
    #define BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    Definition: function_2.hpp:11
    +
    constexpr qualifier_flags volatile_
    +
    constexpr qualifier_flags rref_
    +
    constexpr qualifier_flags const_
    +
    constexpr qualifier_flags cv_
    +
    std::integral_constant< qualifier_flags, Flags &~const_ > remove_const_flag
    +
    constexpr qualifier_flags lref_
    + +
    std::integral_constant< qualifier_flags, !AlreadyHasRef ?(Existing|Other) :(AlreadyHasLRef ?(Existing|(Other &~rref_)) :(IsAddingLRef ?((Existing &~rref_)|Other) :(Existing|Other)))> collapse_flags
    +
    typename set_varargs_member_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_varargs_member_function_qualifiers
    Definition: pmf.hpp:40
    +
    std::integral_constant< qualifier_flags, Flags &~volatile_ > remove_volatile_flag
    + + + +
    NewReturn(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_return
    +
    Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC remove_transaction_safe
    + +
    set_varargs_member_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > set_qualifiers
    + +
    typename std::conditional< std::is_rvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS, typename std::add_lvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::type >::type invoke_type
    +
    Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC apply_member_pointer
    + + + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER add_noexcept
    + + + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC remove_varargs
    +
    Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC type
    + + + + + + + + + + + +
    Return(BOOST_CLBL_TRTS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE remove_noexcept
    +
    Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC add_transaction_safe
    + +
    Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC qualified_function_type
    +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    Definition: function.hpp:11
    +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    Definition: function.hpp:12
    +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    Definition: pmf.hpp:89
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/print_8h.html b/dox-master/print_8h.html new file mode 100644 index 000000000..175444f60 --- /dev/null +++ b/dox-master/print_8h.html @@ -0,0 +1,210 @@ + + + + + + + + + + + ttg: ttg/ttg/util/print.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    print.h File Reference
    +
    +
    +
    #include <iostream>
    +#include <mutex>
    +#include <complex>
    +#include <vector>
    +#include <array>
    +#include <utility>
    +
    + + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::iostream
     
     ttg::detail
     
    + + + +

    +Enumerations

    enum class  ttg::detail::StdOstreamTag { ttg::detail::Cout +, ttg::detail::Cerr + }
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    std::ostream & ttg::detail::print_helper (std::ostream &out)
     
    template<typename T , typename... Ts>
    std::ostream & ttg::detail::print_helper (std::ostream &out, const T &t, const Ts &... ts)
     
    template<StdOstreamTag >
    std::mutex & ttg::detail::print_mutex_accessor ()
     
    template<typename T , typename... Ts>
    void ttg::print (const T &t, const Ts &... ts)
     atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by std::endl More...
     
    template<typename T , typename... Ts>
    void ttg::print_error (const T &t, const Ts &... ts)
     atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by std::endl More...
     
    template<typename T , typename... Ts>
    void ttg::log (const T &t, const Ts &... ts)
     atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by std::endl More...
     
    I/O operators for standard types
    template<typename T >
    std::ostream & ttg::iostream::operator<< (std::ostream &s, const std::complex< T > &c)
     default printing of std::complex More...
     
    template<typename T , typename U >
    std::ostream & ttg::iostream::operator<< (std::ostream &s, const std::pair< T, U > &p)
     default printing of std::pair More...
     
    template<typename T >
    std::ostream & ttg::iostream::operator<< (std::ostream &s, const std::vector< T > &c)
     default printing of std::vector More...
     
    template<typename T , std::size_t N>
    std::enable_if<!std::is_same< T, char >::value, std::ostream & >::type ttg::iostream::operator<< (std::ostream &s, const std::array< T, N > &v)
     default printing of std::array More...
     
    template<typename T , std::size_t N>
    std::enable_if<!std::is_same< T, char >::value, std::ostream & >::type ttg::iostream::operator<< (std::ostream &s, const T(&v)[N])
     default printing of fixed dimension arrays. More...
     
    + + + + + + + + + +

    +Variables

    constexpr char ttg::print_separator = ' '
     
    constexpr char ttg::print_seq_separator = ','
     
    constexpr char ttg::print_seq_begin = '{'
     
    constexpr char ttg::print_seq_end = '}'
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/print_8h_source.html b/dox-master/print_8h_source.html new file mode 100644 index 000000000..c78d87c0a --- /dev/null +++ b/dox-master/print_8h_source.html @@ -0,0 +1,258 @@ + + + + + + + + + + + ttg: ttg/ttg/util/print.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    print.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PRINT_H
    +
    2 #define TTG_PRINT_H
    +
    3 
    +
    4 #include <iostream>
    +
    5 #include <mutex>
    +
    6 #include <complex>
    +
    7 #include <vector>
    +
    8 #include <array>
    +
    9 #include <utility>
    +
    10 
    +
    11 namespace ttg {
    +
    12  constexpr char print_separator = ' ';
    +
    13  constexpr char print_seq_separator = ',';
    +
    14  constexpr char print_seq_begin = '{';
    +
    15  constexpr char print_seq_end = '}';
    +
    16 
    +
    17  namespace iostream {
    +
    18 
    +
    21 
    +
    23 
    +
    28  template <typename T>
    +
    29  std::ostream &operator<<(std::ostream &s, const std::complex<T> &c) {
    +
    30  s << c.real() << (c.imag() >= 0 ? "+" : "") << c.imag() << "j";
    +
    31  return s;
    +
    32  }
    +
    33 
    +
    35 
    +
    41  template <typename T, typename U>
    +
    42  std::ostream &operator<<(std::ostream &s, const std::pair<T, U> &p) {
    +
    43  s << print_seq_begin << p.first << print_seq_separator << p.second << print_seq_end;
    +
    44  return s;
    +
    45  }
    +
    46 
    +
    48 
    +
    53  template <typename T>
    +
    54  std::ostream &operator<<(std::ostream &s, const std::vector<T> &c) {
    +
    55  s << print_seq_begin;
    +
    56  typename std::vector<T>::const_iterator it = c.begin();
    +
    57  while (it != c.end()) {
    +
    58  s << *it;
    +
    59  ++it;
    +
    60  if (it != c.end())
    + +
    62  };
    +
    63  s << print_seq_end;
    +
    64  return s;
    +
    65  }
    +
    66 
    +
    68 
    +
    75  template <typename T, std::size_t N>
    +
    76  typename std::enable_if<!std::is_same<T, char>::value, std::ostream &>::type
    +
    77  operator<<(std::ostream &s, const std::array<T,N>& v) {
    +
    78  s << print_seq_begin;
    +
    79  for (std::size_t i = 0; i < N; ++i) {
    +
    80  s << v[i];
    +
    81  if (i != (N - 1))
    + +
    83  }
    +
    84  s << print_seq_end;
    +
    85  return s;
    +
    86  }
    +
    87 
    +
    89 
    +
    96  template <typename T, std::size_t N>
    +
    97  typename std::enable_if<!std::is_same<T, char>::value, std::ostream &>::type
    +
    98  operator<<(std::ostream &s, const T (&v)[N]) {
    +
    99  s << print_seq_begin;
    +
    100  for (std::size_t i = 0; i < N; ++i) {
    +
    101  s << v[i];
    +
    102  if (i != (N - 1))
    +
    103  s << print_seq_separator;
    +
    104  }
    +
    105  s << print_seq_end;
    +
    106  return s;
    +
    107  }
    +
    108 
    +
    109  } // namespace operators
    +
    110 
    +
    111  namespace detail {
    +
    112  inline std::ostream &print_helper(std::ostream &out) { return out; }
    +
    113  template <typename T, typename... Ts>
    +
    114  inline std::ostream &print_helper(std::ostream &out, const T &t, const Ts &... ts) {
    +
    115  using ttg::iostream::operator<<;
    +
    116  out << print_separator << t;
    +
    117  return print_helper(out, ts...);
    +
    118  }
    +
    119  //
    +
    120  enum class StdOstreamTag { Cout, Cerr };
    +
    121  template <StdOstreamTag>
    +
    122  inline std::mutex &print_mutex_accessor() {
    +
    123  static std::mutex mutex;
    +
    124  return mutex;
    +
    125  }
    +
    126  } // namespace detail
    +
    127 
    +
    129  template <typename T, typename... Ts>
    +
    130  void print(const T &t, const Ts &... ts) {
    +
    131  std::lock_guard<std::mutex> lock(detail::print_mutex_accessor<detail::StdOstreamTag::Cout>());
    +
    132  std::cout << t;
    +
    133  detail::print_helper(std::cout, ts...) << std::endl;
    +
    134  }
    +
    135 
    +
    137  template <typename T, typename... Ts>
    +
    138  void print_error(const T &t, const Ts &... ts) {
    +
    139  std::lock_guard<std::mutex> lock(detail::print_mutex_accessor<detail::StdOstreamTag::Cout>());
    +
    140  std::cerr << t;
    +
    141  detail::print_helper(std::cerr, ts...) << std::endl;
    +
    142  }
    +
    143 
    +
    145  template <typename T, typename... Ts>
    +
    146  void log(const T &t, const Ts &... ts) {
    +
    147  std::lock_guard<std::mutex> lock(detail::print_mutex_accessor<detail::StdOstreamTag::Cout>());
    +
    148  std::clog << t;
    +
    149  detail::print_helper(std::clog, ts...) << std::endl;
    +
    150  }
    +
    151 } // namespace ttg
    +
    152 
    +
    153 #endif // TTG_PRINT_H
    +
    std::ostream & print_helper(std::ostream &out)
    Definition: print.h:112
    +
    std::mutex & print_mutex_accessor()
    Definition: print.h:122
    +
    StdOstreamTag
    Definition: print.h:120
    + + +
    std::ostream & operator<<(std::ostream &s, const std::complex< T > &c)
    default printing of std::complex
    Definition: print.h:29
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    constexpr char print_seq_separator
    Definition: print.h:13
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    constexpr char print_separator
    Definition: print.h:12
    +
    void log(const T &t, const Ts &... ts)
    atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:146
    +
    void print_error(const T &t, const Ts &... ts)
    atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:138
    +
    constexpr char print_seq_end
    Definition: print.h:15
    +
    constexpr char print_seq_begin
    Definition: print.h:14
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ptr_8h.html b/dox-master/ptr_8h.html new file mode 100644 index 000000000..1eb6e6482 --- /dev/null +++ b/dox-master/ptr_8h.html @@ -0,0 +1,153 @@ + + + + + + + + + + + ttg: ttg/ttg/ptr.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ptr.h File Reference
    +
    +
    +
    #include "ttg/fwd.h"
    +
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + +

    +Typedefs

    template<typename T >
    using ttg::Ptr = TTG_IMPL_NS::Ptr< T >
     
    + + + + + + + +

    +Functions

    template<typename T , typename... Args>
    Ptr< T > ttg::make_ptr (Args &&... args)
     
    template<typename T >
    Ptr< std::decay_t< T > > ttg::get_ptr (T &&obj)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ptr_8h_source.html b/dox-master/ptr_8h_source.html new file mode 100644 index 000000000..ee568b208 --- /dev/null +++ b/dox-master/ptr_8h_source.html @@ -0,0 +1,226 @@ + + + + + + + + + + + ttg: ttg/ttg/ptr.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ptr.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PTR_H
    +
    2 #define TTG_PTR_H
    +
    3 
    +
    4 #include "ttg/fwd.h"
    +
    5 
    +
    6 namespace ttg {
    +
    7 
    +
    8 template<typename T>
    +
    9 using Ptr = TTG_IMPL_NS::Ptr<T>;
    +
    10 
    +
    11 template<typename T, typename... Args>
    +
    12 inline Ptr<T> make_ptr(Args&&... args) {
    +
    13  return TTG_IMPL_NS::make_ptr(std::forward<Args>(args)...);
    +
    14 }
    +
    15 
    +
    16 template<typename T>
    +
    17 inline Ptr<std::decay_t<T>> get_ptr(T&& obj) {
    +
    18  return TTG_IMPL_NS::get_ptr(std::forward<T>(obj));
    +
    19 }
    +
    20 
    +
    21 #if 0
    +
    22 namespace detail {
    +
    23 
    +
    24  /* awaiter for ttg::get_ptr with multiple arguments
    +
    25  * operator co_wait will return the tuple of ttg::Ptr
    +
    26  */
    +
    27  template<typename... Ts>
    +
    28  struct get_ptr_tpl_t {
    +
    29  private:
    +
    30  std::tuple<ttg::Ptr<Ts>...> m_ptr_tuple;
    +
    31  bool m_is_ready = false;
    +
    32  public:
    +
    33  get_ptr_tpl_t(bool is_ready, std::tuple<ttg::ptr<Ts>...>&& ptrs)
    +
    34  : m_ptr_tuple(std::forward<std::tuple<ttg::Ptr<Ts>...>>(ptrs))
    +
    35  , m_is_ready(is_ready)
    +
    36  { }
    +
    37 
    +
    38  bool await_ready() const noexcept {
    +
    39  return m_is_ready;
    +
    40  }
    +
    41 
    +
    42  constexpr void await_suspend( std::coroutine_handle<> ) const noexcept {
    +
    43  /* TODO: anything to be done here? */
    +
    44  }
    +
    45 
    +
    46  auto await_resume() const noexcept {
    +
    47  return std::move(m_ptr_tuple);
    +
    48  }
    +
    49  };
    +
    50 
    +
    51 
    +
    52  /* awaiter for ttg::get_ptr for a single argument */
    +
    53  template<typename T>
    +
    54  struct get_ptr_t {
    +
    55  private:
    +
    56  ttg::Ptr<T> m_ptr;
    +
    57  bool m_is_ready = false;
    +
    58  public:
    +
    59  get_ptr_t(bool is_ready, ttg::Ptr<T>&& ptr)
    +
    60  : m_ptr(std::forward<ttg::Ptr<T>>(ptr))
    +
    61  , m_is_ready(is_ready)
    +
    62  { }
    +
    63 
    +
    64  bool await_ready() const noexcept {
    +
    65  return m_is_ready;
    +
    66  }
    +
    67 
    +
    68  constexpr void await_suspend( std::coroutine_handle<> ) const noexcept {
    +
    69  /* TODO: anything to be done here? */
    +
    70  }
    +
    71 
    +
    72  auto await_resume() const noexcept {
    +
    73  return std::move(m_ptr);
    +
    74  }
    +
    75  };
    +
    76  } // namespace detail
    +
    77 
    +
    89  template<typename Arg, typename... Args>
    +
    90  auto get_ptr(Arg&& arg, Args&&... args) {
    +
    91  bool is_ready;
    +
    92  using tpl_type = std::tuple<ttg::Ptr<std::decay_t<Arg>, std::decay<Args>...>>;
    +
    93  using result_type = std::pair<bool, tpl_type>;
    +
    94  result_type p = TTG_IMPL_NS::get_ptr(std::forward<Arg>(arg), std::forward<Args>(args)...);
    +
    95  if constexpr (sizeof...(Args) > 0) {
    +
    96  return detail::get_ptr_tpl_t<std::decay_t<Arg>, std::decay_t<Args>...>(p.first, std::move(p.second));
    +
    97  } else if constexpr (sizeof...(Args) == 0) {
    +
    98  return detail::get_ptr_t<std::decay_t<Arg>>(p.first, std::move(std::get<0>(p.second)));
    +
    99  }
    +
    100  }
    +
    101 #endif // 0
    +
    102 } // namespace ttg
    +
    103 
    +
    104 #endif // TTG_PTR_H
    + +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    Ptr< std::decay_t< T > > get_ptr(T &&obj)
    Definition: ptr.h:17
    +
    TTG_IMPL_NS::Ptr< T > Ptr
    Definition: ptr.h:9
    +
    Ptr< T > make_ptr(Args &&... args)
    Definition: ptr.h:12
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/qualified__class__of_8hpp.html b/dox-master/qualified__class__of_8hpp.html new file mode 100644 index 000000000..0ae8b2056 --- /dev/null +++ b/dox-master/qualified__class__of_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/qualified_class_of.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    qualified_class_of.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::qualified_class_of_impl< T, typename >
     
    struct  boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::qualified_class_of< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::qualified_class_of_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::invoke_type, type_is_not_a_member_pointer >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/qualified__class__of_8hpp_source.html b/dox-master/qualified__class__of_8hpp_source.html new file mode 100644 index 000000000..85cdf09e7 --- /dev/null +++ b/dox-master/qualified__class__of_8hpp_source.html @@ -0,0 +1,215 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/qualified_class_of.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    qualified_class_of.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_QUALIFIED_class_of_HPP
    +
    11 #define BOOST_CLBL_TRTS_QUALIFIED_class_of_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ qualified_class_of_hpp
    +
    18 /*`
    +
    19 [section:ref_qualified_class_of qualified_class_of]
    +
    20 [heading Header]
    +
    21 ``#include <boost/callable_traits/qualified_class_of.hpp>``
    +
    22 [heading Definition]
    +
    23 */
    +
    24 
    +
    25 template<typename T>
    +
    26 using qualified_class_of_t = //see below
    +
    27 //<-
    + +
    29  typename detail::traits<detail::shallow_decay<T>>::invoke_type,
    +
    30  type_is_not_a_member_pointer>;
    +
    31 
    +
    32 namespace detail {
    +
    33 
    +
    34  template<typename T, typename = std::false_type>
    + +
    36 
    +
    37  template<typename T>
    +
    38  struct qualified_class_of_impl <T, typename std::is_same<
    +
    39  qualified_class_of_t<T>, detail::dummy>::type>
    +
    40  {
    + +
    42  };
    +
    43 }
    +
    44 
    +
    45 //->
    +
    46 
    +
    47 template<typename T>
    + +
    49 
    +
    50 //<-
    +
    51 }} // namespace boost::callable_traits
    +
    52 //->
    +
    53 
    +
    54 /*`
    +
    55 [heading Constraints]
    +
    56 * `T` must be a member pointer
    +
    57 
    +
    58 [heading Behavior]
    +
    59 * A substitution failure occurs if the constraints are violated.
    +
    60 * If `T` is a member function pointer, the aliased type is the parent class of the member, qualified according to the member qualifiers on `T`. If `T` does not have a member reference qualifier, then the aliased type will be an lvalue reference.
    +
    61 * If `T` is a member data pointer, the aliased type is equivalent to `ct::class_of<T> const &`.
    +
    62 
    +
    63 [heading Input/Output Examples]
    +
    64 [table
    +
    65  [[`T`] [`qualified_class_of_t<T>`]]
    +
    66  [[`void(foo::*)()`] [`foo &`]]
    +
    67  [[`void(foo::* volatile)() const`] [`foo const &`]]
    +
    68  [[`void(foo::*)() &&`] [`foo &&`]]
    +
    69  [[`void(foo::*&)() volatile &&`] [`foo volatile &&`]]
    +
    70  [[`int foo::*`] [`foo const &`]]
    +
    71  [[`const int foo::*`] [`foo const &`]]
    +
    72 ]
    +
    73 
    +
    74 [heading Example Program]
    +
    75 [import ../example/qualified_class_of.cpp]
    +
    76 [qualified_class_of]
    +
    77 [endsect]
    +
    78 */
    +
    79 //]
    +
    80 
    +
    81 #endif // #ifndef BOOST_CLBL_TRTS_QUALIFIED_class_of_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::invoke_type, type_is_not_a_member_pointer > qualified_class_of_t
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/qualifier__flags_8hpp.html b/dox-master/qualifier__flags_8hpp.html new file mode 100644 index 000000000..a8092b6b2 --- /dev/null +++ b/dox-master/qualifier__flags_8hpp.html @@ -0,0 +1,207 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/qualifier_flags.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    qualifier_flags.hpp File Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::flag_map< T >
     
    struct  boost::callable_traits::detail::flag_map< T & >
     
    struct  boost::callable_traits::detail::flag_map< T && >
     
    struct  boost::callable_traits::detail::flag_map< T const >
     
    struct  boost::callable_traits::detail::flag_map< T const & >
     
    struct  boost::callable_traits::detail::flag_map< T const && >
     
    struct  boost::callable_traits::detail::flag_map< T volatile >
     
    struct  boost::callable_traits::detail::flag_map< T volatile & >
     
    struct  boost::callable_traits::detail::flag_map< T volatile && >
     
    struct  boost::callable_traits::detail::flag_map< T const volatile >
     
    struct  boost::callable_traits::detail::flag_map< T const volatile & >
     
    struct  boost::callable_traits::detail::flag_map< T const volatile && >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    using boost::callable_traits::detail::qualifier_flags = std::uint32_t
     
    template<qualifier_flags Flags>
    using boost::callable_traits::detail::remove_const_flag = std::integral_constant< qualifier_flags, Flags &~const_ >
     
    template<qualifier_flags Flags>
    using boost::callable_traits::detail::is_const = std::integral_constant< bool,(Flags &const_) !=0 >
     
    template<qualifier_flags Flags>
    using boost::callable_traits::detail::remove_volatile_flag = std::integral_constant< qualifier_flags, Flags &~volatile_ >
     
    template<typename U , typename T = typename std::remove_reference<U>::type>
    using boost::callable_traits::detail::cv_of = std::integral_constant< qualifier_flags,(std::is_const< T >::value ? const_ :default_)|(std::is_volatile< T >::value ? volatile_ :default_)>
     
    template<typename T >
    using boost::callable_traits::detail::ref_of = std::integral_constant< qualifier_flags, std::is_rvalue_reference< T >::value ? rref_ :(std::is_lvalue_reference< T >::value ? lref_ :default_)>
     
    template<qualifier_flags Existing, qualifier_flags Other, bool AlreadyHasRef = (Existing & (lref_ | rref_)) != 0, bool AlreadyHasLRef = (Existing & lref_) == lref_, bool IsAddingLRef = (Other & lref_) == lref_>
    using boost::callable_traits::detail::collapse_flags = std::integral_constant< qualifier_flags, !AlreadyHasRef ?(Existing|Other) :(AlreadyHasLRef ?(Existing|(Other &~rref_)) :(IsAddingLRef ?((Existing &~rref_)|Other) :(Existing|Other)))>
     
    + + + + + + + + + + + + + +

    +Variables

    constexpr qualifier_flags boost::callable_traits::detail::default_ = 0
     
    constexpr qualifier_flags boost::callable_traits::detail::const_ = 1
     
    constexpr qualifier_flags boost::callable_traits::detail::volatile_ = 2
     
    constexpr qualifier_flags boost::callable_traits::detail::lref_ = 4
     
    constexpr qualifier_flags boost::callable_traits::detail::rref_ = 8
     
    constexpr qualifier_flags boost::callable_traits::detail::cv_ = 3
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/qualifier__flags_8hpp_source.html b/dox-master/qualifier__flags_8hpp_source.html new file mode 100644 index 000000000..494b3919c --- /dev/null +++ b/dox-master/qualifier__flags_8hpp_source.html @@ -0,0 +1,266 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/qualifier_flags.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    qualifier_flags.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Defines `qualifier_flags`
    +
    3 
    +
    4 @Copyright Barrett Adair 2015-2017
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_QUALIFIER_FLAGS_HPP
    +
    11 #define BOOST_CLBL_TRTS_QUALIFIER_FLAGS_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits { namespace detail {
    +
    16 
    +
    17 //bit qualifier_flags used to signify cv/ref qualifiers
    +
    18 using qualifier_flags = std::uint32_t;
    +
    19 
    +
    20 /*
    +
    21  | && & V C |
    +
    22 --------------------------------------------
    +
    23 0 | 0 0 0 0 | default
    +
    24 1 | 0 0 0 1 | const
    +
    25 2 | 0 0 1 0 | volatile
    +
    26 3 | 0 0 1 1 | const volatile
    +
    27 --------------------------------------------
    +
    28 4 | 0 1 0 0 | &
    +
    29 5 | 0 1 0 1 | const &
    +
    30 6 | 0 1 1 0 | volatile &
    +
    31 7 | 0 1 1 1 | const volatile &
    +
    32 --------------------------------------------
    +
    33 8 | 1 0 0 0 | &&
    +
    34 9 | 1 0 0 1 | const &&
    +
    35 10 | 1 0 1 0 | volatile &&
    +
    36 11 | 1 0 1 1 | const volatile &&
    +
    37 
    +
    38 */
    +
    39 
    +
    40 // Flag representing the default qualifiers on a type
    +
    41 // or member function overload.
    +
    42 constexpr qualifier_flags default_ = 0;
    +
    43 
    +
    44 // Flag representing a const qualifier on a type or
    +
    45 // member function overload.
    +
    46 constexpr qualifier_flags const_ = 1;
    +
    47 
    +
    48 // Flag representing a volatile qualifier on a type
    +
    49 // or member function overload.
    +
    50 constexpr qualifier_flags volatile_ = 2;
    +
    51 
    +
    52 #ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    53 
    +
    54 constexpr qualifier_flags lref_ = default_;
    +
    55 constexpr qualifier_flags rref_ = default_;
    +
    56 #else
    +
    57 
    +
    58 // Flag representing an lvalue reference type, or
    +
    59 // an lvalue-reference-qualified member function
    +
    60 // overload.
    +
    61 constexpr qualifier_flags lref_ = 4;
    +
    62 
    +
    63 // Flag representing an lvalue reference type, or
    +
    64 // an rvalue-reference-qualified member function
    +
    65 // overload.
    +
    66 constexpr qualifier_flags rref_ = 8;
    +
    67 
    +
    68 #endif //#ifdef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    69 
    +
    70 constexpr qualifier_flags cv_ = 3;
    +
    71 
    +
    72 template<qualifier_flags Flags>
    +
    73 using remove_const_flag = std::integral_constant<
    +
    74  qualifier_flags, Flags & ~const_>;
    +
    75 
    +
    76 template<qualifier_flags Flags>
    +
    77 using is_const = std::integral_constant<bool,
    +
    78  (Flags & const_) != 0>;
    +
    79 
    +
    80 template<qualifier_flags Flags>
    +
    81 using remove_volatile_flag = std::integral_constant<
    +
    82  qualifier_flags, Flags & ~volatile_>;
    +
    83 
    +
    84 template<typename U, typename T = typename std::remove_reference<U>::type>
    +
    85 using cv_of = std::integral_constant<qualifier_flags,
    +
    86  (std::is_const<T>::value ? const_ : default_)
    +
    87  | (std::is_volatile<T>::value ? volatile_ : default_)>;
    +
    88 
    +
    89 template<typename T>
    +
    90 using ref_of = std::integral_constant<qualifier_flags,
    +
    91  std::is_rvalue_reference<T>::value ? rref_
    +
    92  : (std::is_lvalue_reference<T>::value ? lref_
    +
    93  : default_)>;
    +
    94 
    +
    95 //bit-flag implementation of C++11 reference collapsing rules
    +
    96 template<qualifier_flags Existing,
    +
    97  qualifier_flags Other,
    +
    98  bool AlreadyHasRef = (Existing & (lref_ | rref_)) != 0,
    +
    99  bool AlreadyHasLRef = (Existing & lref_) == lref_,
    +
    100  bool IsAddingLRef = (Other & lref_) == lref_
    +
    101 >
    +
    102 using collapse_flags = std::integral_constant<qualifier_flags,
    +
    103  !AlreadyHasRef ? (Existing | Other)
    +
    104  : (AlreadyHasLRef ? (Existing | (Other & ~rref_))
    +
    105  : (IsAddingLRef ? ((Existing & ~rref_) | Other )
    +
    106  : (Existing | Other)))>;
    +
    107 
    +
    108 template<typename T> struct flag_map { static constexpr qualifier_flags value = default_; };
    +
    109 template<typename T> struct flag_map<T &> { static constexpr qualifier_flags value = lref_; };
    +
    110 template<typename T> struct flag_map<T &&> { static constexpr qualifier_flags value = rref_; };
    +
    111 template<typename T> struct flag_map<T const> { static constexpr qualifier_flags value = const_; };
    +
    112 template<typename T> struct flag_map<T const &> { static constexpr qualifier_flags value = const_ | lref_; };
    +
    113 template<typename T> struct flag_map<T const &&> { static constexpr qualifier_flags value = const_ | rref_; };
    +
    114 template<typename T> struct flag_map<T volatile> { static constexpr qualifier_flags value = volatile_; };
    +
    115 template<typename T> struct flag_map<T volatile &> { static constexpr qualifier_flags value = volatile_ | lref_; };
    +
    116 template<typename T> struct flag_map<T volatile &&> { static constexpr qualifier_flags value = volatile_ | rref_; };
    +
    117 template<typename T> struct flag_map<T const volatile> { static constexpr qualifier_flags value = const_ | volatile_; };
    +
    118 template<typename T> struct flag_map<T const volatile &> { static constexpr qualifier_flags value = const_ | volatile_ | lref_; };
    +
    119 template<typename T> struct flag_map<T const volatile &&> { static constexpr qualifier_flags value = const_ | volatile_ | rref_; };
    +
    120 
    +
    121 }}} // namespace boost::callable_traits::detail
    +
    122 
    +
    123 #endif // #ifndef BOOST_CLBL_TRTS_QUALIFIER_FLAGS_HPP
    + +
    constexpr qualifier_flags volatile_
    +
    constexpr qualifier_flags rref_
    +
    constexpr qualifier_flags const_
    +
    std::integral_constant< qualifier_flags,(std::is_const< T >::value ? const_ :default_)|(std::is_volatile< T >::value ? volatile_ :default_)> cv_of
    +
    std::integral_constant< qualifier_flags, std::is_rvalue_reference< T >::value ? rref_ :(std::is_lvalue_reference< T >::value ? lref_ :default_)> ref_of
    +
    constexpr qualifier_flags cv_
    +
    std::integral_constant< qualifier_flags, Flags &~const_ > remove_const_flag
    +
    constexpr qualifier_flags lref_
    + +
    std::integral_constant< qualifier_flags, !AlreadyHasRef ?(Existing|Other) :(AlreadyHasLRef ?(Existing|(Other &~rref_)) :(IsAddingLRef ?((Existing &~rref_)|Other) :(Existing|Other)))> collapse_flags
    +
    constexpr qualifier_flags default_
    +
    std::integral_constant< qualifier_flags, Flags &~volatile_ > remove_volatile_flag
    +
    std::integral_constant< bool,(Flags &const_) !=0 > is_const
    + + +
    static constexpr qualifier_flags value
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/reduce_8h.html b/dox-master/reduce_8h.html new file mode 100644 index 000000000..1b655aa86 --- /dev/null +++ b/dox-master/reduce_8h.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: ttg/ttg/reduce.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    reduce.h File Reference
    +
    +
    +
    #include <cassert>
    +#include <cstdlib>
    +#include <mutex>
    +#include "ttg/util/tree.h"
    +
    + + + + +

    +Classes

    class  ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >
     generic binary reduction of a set of key-value pairs. More...
     
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/reduce_8h_source.html b/dox-master/reduce_8h_source.html new file mode 100644 index 000000000..5fb1a3972 --- /dev/null +++ b/dox-master/reduce_8h_source.html @@ -0,0 +1,273 @@ + + + + + + + + + + + ttg: ttg/ttg/reduce.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    reduce.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 12/22/17.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_REDUCE_H
    +
    6 #define TTG_REDUCE_H
    +
    7 
    +
    8 #include <cassert>
    +
    9 #include <cstdlib>
    +
    10 #include <mutex>
    +
    11 
    +
    12 #include "ttg/util/tree.h"
    +
    13 
    +
    14 namespace ttg {
    +
    15 
    +
    28  template <typename Value, typename BinaryOp, typename OutKey>
    + +
    30  : public TT<int, std::tuple<Out<int, Value>, Out<int, Value>, Out<int, Value>, Out<OutKey, Value>>,
    +
    31  BinaryTreeReduce<Value, BinaryOp, OutKey>, ttg::typelist<Value, Value, Value>> {
    +
    32  public:
    +
    33  using baseT = typename BinaryTreeReduce::ttT;
    +
    34 
    +
    35  BinaryTreeReduce(Edge<int, Value> &in, Edge<OutKey, Value> &out, int root = 0, OutKey dest_key = OutKey(),
    +
    36  BinaryOp op = BinaryOp{}, World world = ttg::default_execution_context(), int max_key = -1,
    +
    37  Edge<int, Value> inout = Edge<int, Value>{}, Edge<int, Value> inout_l = Edge<int, Value>{},
    +
    38  Edge<int, Value> inout_r = Edge<int, Value>{})
    +
    39  : baseT(edges(fuse(in, inout), inout_l, inout_r), edges(inout, inout_l, inout_r, out), "BinaryTreeReduce",
    +
    40  {"in|inout", "inout_l", "inout_r"}, {"inout", "inout_l", "inout_r", "out"}, world, [](int key) { return key; })
    +
    41  , tree_((max_key == -1 ? world.size() : max_key), root)
    +
    42  , dest_key_(dest_key)
    +
    43  , op_(std::move(op)) {
    +
    44  init();
    +
    45  }
    +
    46 
    +
    47  void op(const int &key, typename baseT::input_values_tuple_type &&indata,
    + +
    49  assert(key < tree_.size());
    +
    50  assert(key == this->get_world().rank());
    +
    52  auto children = tree_.child_keys(key);
    +
    53  Value result;
    +
    54  if (children.first != -1 && children.second != -1)
    +
    55  // left-associative in-order reduction: L op This op R = ((L op This) op R)
    +
    56  result = op_(op_(baseT::template get<1, Value &&>(indata), baseT::template get<0, Value &&>(indata)),
    +
    57  baseT::template get<2, Value &&>(indata));
    +
    58  else {
    +
    59  if (children.first != -1)
    +
    60  result = op_(baseT::template get<1, Value &&>(indata), baseT::template get<0, Value &&>(indata));
    +
    61  else if (children.second != -1)
    +
    62  result = op_(baseT::template get<0, Value &&>(indata), baseT::template get<2, Value &&>(indata));
    +
    63  else
    +
    64  result = baseT::template get<0, Value &&>(indata);
    +
    65  }
    +
    66  auto parent = tree_.parent_key(key);
    +
    67  if (parent != -1) {
    +
    68  // is this left or right child of the parent?
    +
    69  bool this_is_left_child;
    +
    70  {
    +
    71  auto parents_children = tree_.child_keys(parent);
    +
    72  assert(parents_children.first == key || parents_children.second == key);
    +
    73  this_is_left_child = (parents_children.first == key);
    +
    74  }
    +
    75  if (this_is_left_child)
    +
    76  send<1>(parent, std::move(result), outdata);
    +
    77  else
    +
    78  send<2>(parent, std::move(result), outdata);
    +
    79  } else
    +
    80  send<3>(dest_key_, std::move(result), outdata);
    +
    81  }
    +
    82 
    +
    83  private:
    +
    84  BinarySpanningTree tree_;
    +
    85  OutKey dest_key_;
    +
    86  BinaryOp op_;
    +
    87 
    +
    90  void init() {
    +
    91  // iterate over keys that map to me ... if keys are equivalent to ranks this can be made simpler
    +
    92  const auto my_rank = this->get_world().rank();
    +
    93  for (auto key = 0; key != tree_.size(); ++key) {
    +
    94  if (my_rank == this->get_keymap()(key)) {
    +
    95  auto keys = tree_.child_keys(key);
    +
    96  if (keys.first == -1) this->template set_arg<1>(key, Value());
    +
    97  if (keys.second == -1) this->template set_arg<2>(key, Value());
    +
    98  }
    +
    99  }
    +
    100  }
    +
    101  };
    +
    102 
    +
    103 #if 0
    +
    108 template <typename InKey, template Value, template Reducer, template OutKey>
    +
    109 class Reduce : public TT<InKey, std::tuple<Out<OutKey, Value>>, Reduce<InKey, Value, Reducer, OutKey>, Value> {
    +
    110  public:
    +
    111  using baseT = TT<InKey, std::tuple<Out<OutKey, Value>>, Reduce<InKey, Value, Reducer, OutKey>, Value>;
    +
    112 
    +
    113  Reduce(Edge<InKey, Value> &in, Edge<OutKey, Value> &out, OutKey dest_key = OutKey(), std::size_t nitems = 1,
    +
    114  World &world = default_execution_context())
    +
    115  : baseT(edges(in), edges(out, Edge<OutKey, Value>("reduce")), "Reduce", {"in"}, {"out"}, world)
    +
    116  , dest_key_(dest_key)
    +
    117  , nitems_(nitems) {}
    +
    118 
    +
    119  void op(const InKey &key, baseT::input_values_tuple_type &&indata, std::tuple<Out<OutKey, Value>> &outdata) {
    +
    120  std::lock_guard<std::mutex> lock(mutex_);
    +
    121  if (nitems_) {
    +
    122  reducer_(value_, baseT::get<0>(indata));
    +
    123  --nitems_;
    +
    124  }
    +
    125  if (nitems_ == 0) {
    +
    126  binary_tree_reduce_.set_arg<0>(world.rank(), std::move(value_));
    +
    127  }
    +
    128  }
    +
    129 
    +
    130  private:
    +
    131  OutKey dest_key_;
    +
    132  size_t nitems_;
    +
    133  std::mutex mutex_;
    +
    134  Value value_;
    +
    135  Reducer reducer_;
    +
    136 }; // class Reduce
    +
    137 #endif
    +
    138 
    +
    139 } // namespace ttg
    +
    140 
    +
    141 #endif // TTG_REDUCE_H
    +
    a binary spanning tree of integers in the [0,size) interval
    Definition: tree.h:17
    +
    int parent_key(const int child_key) const
    Definition: tree.h:32
    +
    const auto size() const
    Definition: tree.h:26
    +
    std::pair< int, int > child_keys(const int parent_key) const
    Definition: tree.h:40
    +
    generic binary reduction of a set of key-value pairs.
    Definition: reduce.h:31
    +
    void op(const int &key, typename baseT::input_values_tuple_type &&indata, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value >> &outdata)
    Definition: reduce.h:47
    +
    typename BinaryTreeReduce::ttT baseT
    Definition: reduce.h:33
    +
    BinaryTreeReduce(Edge< int, Value > &in, Edge< OutKey, Value > &out, int root=0, OutKey dest_key=OutKey(), BinaryOp op=BinaryOp{}, World world=ttg::default_execution_context(), int max_key=-1, Edge< int, Value > inout=Edge< int, Value >{}, Edge< int, Value > inout_l=Edge< int, Value >{}, Edge< int, Value > inout_r=Edge< int, Value >{})
    Definition: reduce.h:35
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + + +
    int size() const
    Definition: world.h:198
    +
    int rank() const
    Definition: world.h:204
    + + + + + + +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    auto fuse(const Edge< keyT, valuesT > &...args)
    Fuse edges into one This allows receiving one data from either of the combined edges.
    Definition: func.h:137
    +
    World default_execution_context()
    Accesses the default backend's default execution context.
    Definition: run.h:68
    +
    int rank(World world=default_execution_context())
    Definition: run.h:85
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/reducing_8cc-example.html b/dox-master/reducing_8cc-example.html new file mode 100644 index 000000000..72d740f24 --- /dev/null +++ b/dox-master/reducing_8cc-example.html @@ -0,0 +1,195 @@ + + + + + + + + + + + ttg: reducing.cc + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    reducing.cc
    +
    +
    +

    This is the iterative diamond DAG with variable number of inputs using the reducing terminals of Template Task Graph: iteratively, a reducing diamond of data-dependent width is run, until the amount of data gathered at the bottom of the diamond exceeds a given threshold.

    +
    #include <ttg.h>
    + + +
    +
    const double threshold = 100.0;
    +
    using Key2 = std::pair<int, int>;
    +
    +
    namespace std {
    +
    std::ostream &operator<<(std::ostream &os, const Key2 &key) {
    +
    os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
    +
    return os;
    +
    }
    +
    } // namespace std
    +
    +
    static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task B(", key, ") with input data ", input); ttg::send <0>(std::get<0>(key), input + 1.0, out);
    +
    }
    +
    +
    static void c(const int &k, const double &sum, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task C(", k, ") with input ", sum);
    +
    if (sum < threshold) {
    +
    ttg::print(" ", sum, "<", threshold, " so continuing to iterate"); ttg::send <0>(k + 1, sum, out);
    +
    } else {
    +
    ttg::print(" ", sum, ">=", threshold, " so stopping the iterations");
    +
    }
    +
    }
    +
    +
    int main(int argc, char **argv) {
    +
    ttg::initialize(argc, argv, -1);
    +
    +
    ttg::Edge<Key2, double> A_B("A(k)->B(k, i)");
    +
    ttg::Edge<int, double> B_C("B(k, i)->C(k)");
    +
    ttg::Edge<int, double> C_A("C(k)->A(k)");
    +
    +
    auto wc(ttg::make_tt(c, ttg::edges(B_C), ttg::edges(C_A), "C", {"From B"}, {"to A"}));
    +
    wc->set_input_reducer <0>(
    +
    [](double &a, const double &b) { a += b; });
    +
    +
    auto wa(ttg::make_tt(
    +
    [&](const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
    +
    ttg::print("Called task A(", k, ")");
    +
    wc->set_argstream_size<0>(k, k + 1);
    +
    for (int i = 0; i < k + 1; i++) {
    +
    ttg::send <0>(Key2{k, i}, 1.0 + k + input, out);
    +
    }
    +
    },
    +
    ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
    +
    +
    auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C), "B", {"from A"}, {"to C"}));
    +
    + +
    +
    if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
    +
    + + +
    + +
    return EXIT_SUCCESS;
    +
    }
    +
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    std::ostream & operator<<(std::ostream &os, ttg::device::Device device)
    Definition: device.h:68
    +
    std::pair< int, int > Key2
    Definition: distributed.cc:6
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    +
    const double threshold
    Definition: reducing.cc:5
    +
    int main(int argc, char **argv)
    Definition: reducing.cc:30
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/reducing_8cc.html b/dox-master/reducing_8cc.html new file mode 100644 index 000000000..730bb8786 --- /dev/null +++ b/dox-master/reducing_8cc.html @@ -0,0 +1,254 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/reducing.cc File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    reducing.cc File Reference
    +
    +
    +
    #include <ttg.h>
    +#include <ttg/serialization/std/pair.h>
    +#include <ttg/util/hash/std/pair.h>
    +
    + + + +

    +Typedefs

    using Key2 = std::pair< int, int >
     
    + + + + + +

    +Functions

    std::ostream & std::operator<< (std::ostream &os, const Key2 &key)
     
    int main (int argc, char **argv)
     
    + + + +

    +Variables

    const double threshold = 100.0
     
    +

    Typedef Documentation

    + +

    ◆ Key2

    + +
    +
    + + + + +
    using Key2 = std::pair<int, int>
    +
    + +

    Definition at line 6 of file reducing.cc.

    + +
    +
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int argc,
    char ** argv 
    )
    +
    +

    ! !

    +

    ! !

    +
    Examples
    reducing.cc.
    +
    + +

    Definition at line 30 of file reducing.cc.

    + +
    +
    + +

    ◆ operator<<()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    std::ostream & std::operator<< (std::ostream & os,
    const Key2key 
    )
    +
    +
    Examples
    distributed.cc.
    +
    + +

    Definition at line 9 of file distributed.cc.

    + +
    +
    +

    Variable Documentation

    + +

    ◆ threshold

    + +
    +
    + + + + +
    const double threshold = 100.0
    +
    +
    Examples
    reducing.cc.
    +
    + +

    Definition at line 5 of file reducing.cc.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/reducing_8cc_source.html b/dox-master/reducing_8cc_source.html new file mode 100644 index 000000000..98e7be538 --- /dev/null +++ b/dox-master/reducing_8cc_source.html @@ -0,0 +1,205 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/reducing.cc Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    reducing.cc
    +
    +
    +Go to the documentation of this file.
    1 #include <ttg.h>
    + + +
    4 
    +
    5 const double threshold = 100.0;
    +
    6 using Key2 = std::pair<int, int>;
    +
    7 
    +
    8 namespace std {
    +
    9  std::ostream &operator<<(std::ostream &os, const Key2 &key) {
    +
    10  os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
    +
    11  return os;
    +
    12  }
    +
    13 } // namespace std
    +
    14 
    +
    15 static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>> &out) {
    +
    16  ttg::print("Called task B(", key, ") with input data ", input); ttg::send <0>(std::get<0>(key), input + 1.0, out);
    +
    18 }
    +
    19 
    +
    20 static void c(const int &k, const double &sum, std::tuple<ttg::Out<int, double>> &out) {
    +
    21  ttg::print("Called task C(", k, ") with input ", sum);
    +
    22  if (sum < threshold) {
    +
    23  ttg::print(" ", sum, "<", threshold, " so continuing to iterate"); ttg::send <0>(k + 1, sum, out);
    +
    25  } else {
    +
    26  ttg::print(" ", sum, ">=", threshold, " so stopping the iterations");
    +
    27  }
    +
    28 }
    +
    29 
    +
    30 int main(int argc, char **argv) {
    +
    31  ttg::initialize(argc, argv, -1);
    +
    32 
    +
    33  ttg::Edge<Key2, double> A_B("A(k)->B(k, i)");
    +
    34  ttg::Edge<int, double> B_C("B(k, i)->C(k)");
    +
    35  ttg::Edge<int, double> C_A("C(k)->A(k)");
    +
    36 
    +
    37  auto wc(ttg::make_tt(c, ttg::edges(B_C), ttg::edges(C_A), "C", {"From B"}, {"to A"}));
    +
    38  wc->set_input_reducer <0>(
    +
    40  [](double &a, const double &b) { a += b; });
    +
    41 
    +
    42  auto wa(ttg::make_tt(
    +
    43  [&](const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
    +
    44  ttg::print("Called task A(", k, ")");
    +
    45  wc->set_argstream_size<0>(k, k + 1);
    +
    46  for (int i = 0; i < k + 1; i++) {
    +
    48  ttg::send <0>(Key2{k, i}, 1.0 + k + input, out);
    +
    49  }
    +
    50  },
    +
    51  ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
    +
    52 
    +
    53  auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C), "B", {"from A"}, {"to C"}));
    +
    54 
    + +
    56 
    +
    57  if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
    +
    58 
    +
    59  ttg::execute();
    + +
    61 
    +
    62  ttg::finalize();
    +
    63  return EXIT_SUCCESS;
    +
    64 }
    +
    65 
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    std::pair< int, int > Key2
    Definition: distributed.cc:6
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    +
    const double threshold
    Definition: reducing.cc:5
    +
    int main(int argc, char **argv)
    Definition: reducing.cc:30
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__const_8hpp.html b/dox-master/remove__member__const_8hpp.html new file mode 100644 index 000000000..ab19204a3 --- /dev/null +++ b/dox-master/remove__member__const_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_const.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    remove_member_const.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::remove_member_const_impl< T, typename >
     
    struct  boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::remove_member_const< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::remove_member_const_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_const, member_qualifiers_are_illegal_for_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__const_8hpp_source.html b/dox-master/remove__member__const_8hpp_source.html new file mode 100644 index 000000000..e911d07e4 --- /dev/null +++ b/dox-master/remove__member__const_8hpp_source.html @@ -0,0 +1,219 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_const.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    remove_member_const.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_CONST_HPP
    +
    10 #define BOOST_CLBL_TRTS_REMOVE_MEMBER_CONST_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ remove_member_const_hpp
    +
    17 /*`
    +
    18 [section:ref_remove_member_const remove_member_const]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/remove_member_const.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 template<typename T>
    +
    25 using remove_member_const_t = //see below
    +
    26 //<-
    + + +
    29  member_qualifiers_are_illegal_for_this_type>;
    +
    30 
    +
    31 namespace detail {
    +
    32 
    +
    33  template<typename T, typename = std::false_type>
    + +
    35 
    +
    36  template<typename T>
    +
    37  struct remove_member_const_impl <T, typename std::is_same<
    +
    38  remove_member_const_t<T>, detail::dummy>::type>
    +
    39  {
    + +
    41  };
    +
    42 }
    +
    43 
    +
    44 //->
    +
    45 
    +
    46 template<typename T>
    + +
    48 
    +
    49 //<-
    +
    50 }} // namespace boost::callable_traits
    +
    51 //->
    +
    52 
    +
    53 /*`
    +
    54 [heading Constraints]
    +
    55 * `T` must be a function type or a member function pointer type
    +
    56 * If `T` is a pointer, it may not be cv/ref qualified
    +
    57 
    +
    58 [heading Behavior]
    +
    59 * A substitution failure occurs if the constraints are violated.
    +
    60 * Removes the member `const` qualifier from `T`, if present.
    +
    61 
    +
    62 [heading Input/Output Examples]
    +
    63 [table
    +
    64  [[`T`] [`remove_member_const_t<T>`]]
    +
    65  [[`int() const`] [`int()`]]
    +
    66  [[`int(foo::*)() const`] [`int(foo::*)()`]]
    +
    67  [[`int(foo::*)() const &`] [`int(foo::*)() &`]]
    +
    68  [[`int(foo::*)() const &&`] [`int(foo::*)() &&`]]
    +
    69  [[`int(foo::*)() const`] [`int(foo::*)()`]]
    +
    70  [[`int(foo::*)() const volatile`] [`int(foo::*)() volatile`]]
    +
    71  [[`int`] [(substitution failure)]]
    +
    72  [[`int (&)()`] [(substitution failure)]]
    +
    73  [[`int (*)()`] [(substitution failure)]]
    +
    74  [[`int foo::*`] [(substitution failure)]]
    +
    75  [[`int (foo::* const)()`] [(substitution failure)]]
    +
    76 ]
    +
    77 
    +
    78 [heading Example Program]
    +
    79 [import ../example/remove_member_const.cpp]
    +
    80 [remove_member_const]
    +
    81 [endsect]
    +
    82 */
    +
    83 //]
    +
    84 
    +
    85 #endif // #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_CONST_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_const, member_qualifiers_are_illegal_for_this_type > remove_member_const_t
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__cv_8hpp.html b/dox-master/remove__member__cv_8hpp.html new file mode 100644 index 000000000..b95415f69 --- /dev/null +++ b/dox-master/remove__member__cv_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_cv.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    remove_member_cv.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::remove_member_cv_impl< T, typename >
     
    struct  boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::remove_member_cv< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::remove_member_cv_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_cv, member_qualifiers_are_illegal_for_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__cv_8hpp_source.html b/dox-master/remove__member__cv_8hpp_source.html new file mode 100644 index 000000000..3b06335e6 --- /dev/null +++ b/dox-master/remove__member__cv_8hpp_source.html @@ -0,0 +1,221 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_cv.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    remove_member_cv.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_CV_HPP
    +
    11 #define BOOST_CLBL_TRTS_REMOVE_MEMBER_CV_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ remove_member_cv_hpp
    +
    18 /*`
    +
    19 [section:ref_remove_member_cv remove_member_cv]
    +
    20 [heading Header]
    +
    21 ``#include <boost/callable_traits/remove_member_cv.hpp>``
    +
    22 [heading Definition]
    +
    23 */
    +
    24 
    +
    25 template<typename T>
    +
    26 using remove_member_cv_t = //see below
    +
    27 //<-
    + + +
    30  member_qualifiers_are_illegal_for_this_type>;
    +
    31 
    +
    32 namespace detail {
    +
    33 
    +
    34  template<typename T, typename = std::false_type>
    + +
    36 
    +
    37  template<typename T>
    +
    38  struct remove_member_cv_impl <T, typename std::is_same<
    +
    39  remove_member_cv_t<T>, detail::dummy>::type>
    +
    40  {
    + +
    42  };
    +
    43 }
    +
    44 
    +
    45 //->
    +
    46 
    +
    47 template<typename T>
    + +
    49 
    +
    50 //<-
    +
    51 }} // namespace boost::callable_traits
    +
    52 //->
    +
    53 
    +
    54 /*`
    +
    55 [heading Constraints]
    +
    56 * `T` must be a function type or a member function pointer type
    +
    57 * If `T` is a pointer, it may not be cv/ref qualified
    +
    58 
    +
    59 [heading Behavior]
    +
    60 * A substitution failure occurs if the constraints are violated.
    +
    61 * Removes member `const` and/or `volatile` qualifiers from `T`, if present.
    +
    62 
    +
    63 [heading Input/Output Examples]
    +
    64 [table
    +
    65  [[`T`] [`remove_member_cv_t<T>`]]
    +
    66  [[`int() const volatile`] [`int()`]]
    +
    67  [[`int(foo::*)() const volatile`] [`int(foo::*)()`]]
    +
    68  [[`int(foo::*)() volatile`] [`int(foo::*)()`]]
    +
    69  [[`int(foo::*)() const`] [`int(foo::*)()`]]
    +
    70  [[`int(foo::*)() const &`] [`int(foo::*)() &`]]
    +
    71  [[`int(foo::*)() const &&`] [`int(foo::*)() &&`]]
    +
    72  [[`int(foo::*)() const`] [`int(foo::*)()`]]
    +
    73  [[`int`] [(substitution failure)]]
    +
    74  [[`int (&)()`] [(substitution failure)]]
    +
    75  [[`int (*)()`] [(substitution failure)]]
    +
    76  [[`int foo::*`] [(substitution failure)]]
    +
    77  [[`int (foo::* const)()`] [(substitution failure)]]
    +
    78 ]
    +
    79 
    +
    80 [heading Example Program]
    +
    81 [import ../example/remove_member_cv.cpp]
    +
    82 [remove_member_cv]
    +
    83 [endsect]
    +
    84 */
    +
    85 //]
    +
    86 
    +
    87 #endif // #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_CV_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_cv, member_qualifiers_are_illegal_for_this_type > remove_member_cv_t
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__reference_8hpp.html b/dox-master/remove__member__reference_8hpp.html new file mode 100644 index 000000000..828430a02 --- /dev/null +++ b/dox-master/remove__member__reference_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_reference.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    remove_member_reference.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::remove_member_reference_impl< T, typename >
     
    struct  boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::remove_member_reference< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::remove_member_reference_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_reference, member_qualifiers_are_illegal_for_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__reference_8hpp_source.html b/dox-master/remove__member__reference_8hpp_source.html new file mode 100644 index 000000000..2e63479ad --- /dev/null +++ b/dox-master/remove__member__reference_8hpp_source.html @@ -0,0 +1,219 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_reference.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    remove_member_reference.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_REFERENCE_HPP
    +
    10 #define BOOST_CLBL_TRTS_REMOVE_MEMBER_REFERENCE_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ remove_member_reference_hpp
    +
    17 /*`
    +
    18 [section:ref_remove_member_reference remove_member_reference]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/remove_member_reference.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 template<typename T>
    +
    25 using remove_member_reference_t = //see below
    +
    26 //<-
    + + +
    29  member_qualifiers_are_illegal_for_this_type>;
    +
    30 
    +
    31 namespace detail {
    +
    32 
    +
    33  template<typename T, typename = std::false_type>
    + +
    35 
    +
    36  template<typename T>
    +
    37  struct remove_member_reference_impl <T, typename std::is_same<
    +
    38  remove_member_reference_t<T>, detail::dummy>::type>
    +
    39  {
    + +
    41  };
    +
    42 }
    +
    43 
    +
    44 //->
    +
    45 
    +
    46 template<typename T>
    + + +
    49 
    +
    50 //<-
    +
    51 }} // namespace boost::callable_traits
    +
    52 //->
    +
    53 
    +
    54 /*`
    +
    55 [heading Constraints]
    +
    56 * `T` must be a function type or a member function pointer type
    +
    57 * If `T` is a pointer, it may not be cv/ref qualified
    +
    58 
    +
    59 [heading Behavior]
    +
    60 * A substitution failure occuers if the constraints are violated.
    +
    61 * Removes member `&` or `&&` qualifiers from `T`, if present.
    +
    62 
    +
    63 [heading Input/Output Examples]
    +
    64 [table
    +
    65  [[`T`] [`remove_member_const_t<T>`]]
    +
    66  [[`int() &`] [`int()`]]
    +
    67  [[`int(foo::*)() &`] [`int(foo::*)()`]]
    +
    68  [[`int(foo::*)() const &`] [`int(foo::*)() const`]]
    +
    69  [[`int(foo::*)() const &&`] [`int(foo::*)() const`]]
    +
    70  [[`int(foo::*)()`] [`int(foo::*)()`]]
    +
    71  [[`int`] [(substitution failure)]]
    +
    72  [[`int (&)()`] [(substitution failure)]]
    +
    73  [[`int (*)()`] [(substitution failure)]]
    +
    74  [[`int foo::*`] [(substitution failure)]]
    +
    75  [[`int (foo::* const)()`] [(substitution failure)]]
    +
    76 ]
    +
    77 
    +
    78 [heading Example Program]
    +
    79 [import ../example/remove_member_reference.cpp]
    +
    80 [remove_member_reference]
    +
    81 [endsect]
    +
    82 */
    +
    83 //]
    +
    84 
    +
    85 #endif // #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_REFERENCE_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_reference, member_qualifiers_are_illegal_for_this_type > remove_member_reference_t
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__volatile_8hpp.html b/dox-master/remove__member__volatile_8hpp.html new file mode 100644 index 000000000..4f74ebdbf --- /dev/null +++ b/dox-master/remove__member__volatile_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_volatile.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    remove_member_volatile.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::remove_member_volatile_impl< T, typename >
     
    struct  boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::remove_member_volatile< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::remove_member_volatile_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_volatile, member_qualifiers_are_illegal_for_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__member__volatile_8hpp_source.html b/dox-master/remove__member__volatile_8hpp_source.html new file mode 100644 index 000000000..7e2685df0 --- /dev/null +++ b/dox-master/remove__member__volatile_8hpp_source.html @@ -0,0 +1,219 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_member_volatile.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    remove_member_volatile.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_VOLATILE_HPP
    +
    10 #define BOOST_CLBL_TRTS_REMOVE_MEMBER_VOLATILE_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits {
    +
    15 
    +
    16 //[ remove_member_volatile_hpp
    +
    17 /*`
    +
    18 [section:ref_remove_member_volatile remove_member_volatile]
    +
    19 [heading Header]
    +
    20 ``#include <boost/callable_traits/remove_member_volatile.hpp>``
    +
    21 [heading Definition]
    +
    22 */
    +
    23 
    +
    24 template<typename T>
    +
    25 using remove_member_volatile_t = //see below
    +
    26 //<-
    + + +
    29  member_qualifiers_are_illegal_for_this_type>;
    +
    30 
    +
    31 namespace detail {
    +
    32 
    +
    33  template<typename T, typename = std::false_type>
    + +
    35 
    +
    36  template<typename T>
    +
    37  struct remove_member_volatile_impl <T, typename std::is_same<
    +
    38  remove_member_volatile_t<T>, detail::dummy>::type>
    +
    39  {
    + +
    41  };
    +
    42 }
    +
    43 
    +
    44 //->
    +
    45 
    +
    46 template<typename T>
    + +
    48 
    +
    49 //<-
    +
    50 }} // namespace boost::callable_traits
    +
    51 //->
    +
    52 
    +
    53 /*`
    +
    54 [heading Constraints]
    +
    55 * `T` must be a function type or a member function pointer type
    +
    56 * If `T` is a pointer, it may not be cv/ref qualified
    +
    57 
    +
    58 [heading Behavior]
    +
    59 * A substitution failure occurs if the constraints are violated.
    +
    60 * Removes the member `volatile` qualifier from `T`, if present.
    +
    61 
    +
    62 [heading Input/Output Examples]
    +
    63 [table
    +
    64  [[`T`] [`remove_member_volatile_t<T>`]]
    +
    65  [[`int() volatile`] [`int()`]]
    +
    66  [[`int(foo::*)() volatile`] [`int(foo::*)()`]]
    +
    67  [[`int(foo::*)() volatile &`] [`int(foo::*)() &`]]
    +
    68  [[`int(foo::*)() volatile &&`] [`int(foo::*)() &&`]]
    +
    69  [[`int(foo::*)() volatile`] [`int(foo::*)()`]]
    +
    70  [[`int(foo::*)() const volatile`] [`int(foo::*)() const`]]
    +
    71  [[`int`] [(substitution failure)]]
    +
    72  [[`int (&)()`] [(substitution failure)]]
    +
    73  [[`int (*)()`] [(substitution failure)]]
    +
    74  [[`int foo::*`] [(substitution failure)]]
    +
    75  [[`int (foo::* const)()`] [(substitution failure)]]
    +
    76 ]
    +
    77 
    +
    78 [heading Example Program]
    +
    79 [import ../example/remove_member_volatile.cpp]
    +
    80 [remove_member_volatile]
    +
    81 [endsect]
    +
    82 */
    +
    83 //]
    +
    84 
    +
    85 #endif // #ifndef BOOST_CLBL_TRTS_REMOVE_MEMBER_VOLATILE_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_member_volatile, member_qualifiers_are_illegal_for_this_type > remove_member_volatile_t
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__noexcept_8hpp.html b/dox-master/remove__noexcept_8hpp.html new file mode 100644 index 000000000..34605efb9 --- /dev/null +++ b/dox-master/remove__noexcept_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_noexcept.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    remove_noexcept.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::remove_noexcept_impl< T, typename >
     
    struct  boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::remove_noexcept< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::remove_noexcept_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_noexcept, cannot_remove_noexcept_from_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__noexcept_8hpp_source.html b/dox-master/remove__noexcept_8hpp_source.html new file mode 100644 index 000000000..14d405445 --- /dev/null +++ b/dox-master/remove__noexcept_8hpp_source.html @@ -0,0 +1,229 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_noexcept.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    remove_noexcept.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 @file remove_noexcept
    +
    3 
    +
    4 @Copyright Barrett Adair 2015-2017
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_REMOVE_NOEXCEPT_HPP
    +
    11 #define BOOST_CLBL_TRTS_REMOVE_NOEXCEPT_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    + +
    18 BOOST_CLBL_TRTS_SFINAE_MSG(remove_noexcept, cannot_remove_noexcept_from_this_type)
    +
    19 
    +
    20 //[ remove_noexcept_hpp
    +
    21 /*`
    +
    22 [section:ref_remove_noexcept remove_noexcept]
    +
    23 [heading Header]
    +
    24 ``#include <boost/callable_traits/remove_noexcept.hpp>``
    +
    25 [heading Definition]
    +
    26 */
    +
    27 
    +
    28 template<typename T>
    +
    29 using remove_noexcept_t = //see below
    +
    30 //<-
    + + +
    33  cannot_remove_noexcept_from_this_type>;
    +
    34 
    +
    35 namespace detail {
    +
    36 
    +
    37  template<typename T, typename = std::false_type>
    + +
    39 
    +
    40  template<typename T>
    +
    41  struct remove_noexcept_impl <T, typename std::is_same<
    +
    42  remove_noexcept_t<T>, detail::dummy>::type>
    +
    43  {
    + +
    45  };
    +
    46 }
    +
    47 
    +
    48 //->
    +
    49 
    +
    50 template<typename T>
    + +
    52 
    +
    53 //<-
    +
    54 }} // namespace boost::callable_traits
    +
    55 //->
    +
    56 
    +
    57 /*`
    +
    58 
    +
    59 [heading Constraints]
    +
    60 * `T` must be one of the following:
    +
    61  * function type
    +
    62  * function pointer type
    +
    63  * function reference type
    +
    64  * member function pointer type
    +
    65 * If `T` is a pointer, it may not be cv/ref qualified
    +
    66 
    +
    67 [heading Behavior]
    +
    68 * A substitution failure occurs if the constraints are violated.
    +
    69 * Removes the `noexcept` specifier from `T`, if present.
    +
    70 
    +
    71 [heading Input/Output Examples]
    +
    72 [table
    +
    73  [[`T`] [`remove_noexcept_t<T>`]]
    +
    74  [[`int() const noexcept`] [`int() const`]]
    +
    75  [[`int(*)() noexcept`] [`int(*)()`]]
    +
    76  [[`int(&)() noexcept`] [`int(&)()`]]
    +
    77  [[`int(foo::*)() noexcept`] [`int(foo::*)()`]]
    +
    78  [[`int() const`] [`int() const`]]
    +
    79  [[`int(*)()`] [`int(*)()`]]
    +
    80  [[`int(&)()`] [`int(&)()`]]
    +
    81  [[`int`] [(substitution failure)]]
    +
    82  [[`int foo::*`] [(substitution failure)]]
    +
    83  [[`int (foo::* const)()`] [(substitution failure)]]
    +
    84 ]
    +
    85 
    +
    86 [heading Example Program]
    +
    87 [import ../example/remove_noexcept.cpp]
    +
    88 [remove_noexcept]
    +
    89 [endsect]
    +
    90 */
    +
    91 //]
    +
    92 
    +
    93 #endif // #ifndef BOOST_CLBL_TRTS_REMOVE_NOEXCEPT_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_noexcept, cannot_remove_noexcept_from_this_type > remove_noexcept_t
    + +
    #define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
    +
    #define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__transaction__safe_8hpp.html b/dox-master/remove__transaction__safe_8hpp.html new file mode 100644 index 000000000..833cea223 --- /dev/null +++ b/dox-master/remove__transaction__safe_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_transaction_safe.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    remove_transaction_safe.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::remove_transaction_safe_impl< T, typename >
     
    struct  boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::remove_transaction_safe< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::remove_transaction_safe_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_transaction_safe, cannot_remove_transaction_safe_from_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__transaction__safe_8hpp_source.html b/dox-master/remove__transaction__safe_8hpp_source.html new file mode 100644 index 000000000..bc1be7662 --- /dev/null +++ b/dox-master/remove__transaction__safe_8hpp_source.html @@ -0,0 +1,229 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_transaction_safe.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    remove_transaction_safe.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 @file remove_transaction_safe
    +
    3 
    +
    4 @Copyright Barrett Adair 2015-2017
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_REMOVE_TRANSACTION_SAFE_HPP
    +
    11 #define BOOST_CLBL_TRTS_REMOVE_TRANSACTION_SAFE_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(remove_transaction_safe)
    +
    18 BOOST_CLBL_TRTS_SFINAE_MSG(remove_transaction_safe, cannot_remove_transaction_safe_from_this_type)
    +
    19 
    +
    20 //[ remove_transaction_safe_hpp
    +
    21 /*`
    +
    22 [section:ref_remove_transaction_safe remove_transaction_safe]
    +
    23 [heading Header]
    +
    24 ``#include <boost/callable_traits/remove_transaction_safe.hpp>``
    +
    25 [heading Definition]
    +
    26 */
    +
    27 
    +
    28 template<typename T>
    +
    29 using remove_transaction_safe_t = //see below
    +
    30 //<-
    + + +
    33  cannot_remove_transaction_safe_from_this_type>;
    +
    34 
    +
    35 namespace detail {
    +
    36 
    +
    37  template<typename T, typename = std::false_type>
    + +
    39 
    +
    40  template<typename T>
    +
    41  struct remove_transaction_safe_impl <T, typename std::is_same<
    +
    42  remove_transaction_safe_t<T>, detail::dummy>::type>
    +
    43  {
    + +
    45  };
    +
    46 }
    +
    47 
    +
    48 //->
    +
    49 
    +
    50 template<typename T>
    + +
    52 
    +
    53 //<-
    +
    54 }} // namespace boost::callable_traits
    +
    55 //->
    +
    56 
    +
    57 /*`
    +
    58 
    +
    59 [heading Constraints]
    +
    60 * `T` must be one of the following:
    +
    61  * function type
    +
    62  * function pointer type
    +
    63  * function reference type
    +
    64  * member function pointer type
    +
    65 * If `T` is a pointer, it may not be cv/ref qualified
    +
    66 
    +
    67 [heading Behavior]
    +
    68 * A substitution failure occurs if the constraints are violated.
    +
    69 * Removes the member `transaction_safe` specifier from `T`, if present.
    +
    70 
    +
    71 [heading Input/Output Examples]
    +
    72 [table
    +
    73  [[`T`] [`remove_transaction_safe_t<T>`]]
    +
    74  [[`int() const transaction_safe`] [`int() const`]]
    +
    75  [[`int(*)() transaction_safe`] [`int(*)()`]]
    +
    76  [[`int(&)() transaction_safe`] [`int(&)()`]]
    +
    77  [[`int(foo::*)() transaction_safe`] [`int(foo::*)()`]]
    +
    78  [[`int() const`] [`int() const`]]
    +
    79  [[`int(*)()`] [`int(*)()`]]
    +
    80  [[`int(&)()`] [`int(&)()`]]
    +
    81  [[`int`] [(substitution failure)]]
    +
    82  [[`int foo::*`] [(substitution failure)]]
    +
    83  [[`int (foo::* const)()`] [(substitution failure)]]
    +
    84 ]
    +
    85 
    +
    86 [heading Example Program]
    +
    87 [import ../example/remove_transaction_safe.cpp]
    +
    88 [remove_transaction_safe]
    +
    89 [endsect]
    +
    90 */
    +
    91 //]
    +
    92 
    +
    93 #endif // #ifndef BOOST_CLBL_TRTS_REMOVE_TRANSACTION_SAFE_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_transaction_safe, cannot_remove_transaction_safe_from_this_type > remove_transaction_safe_t
    + +
    #define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
    +
    #define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__varargs_8hpp.html b/dox-master/remove__varargs_8hpp.html new file mode 100644 index 000000000..7289400e1 --- /dev/null +++ b/dox-master/remove__varargs_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_varargs.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    remove_varargs.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::remove_varargs_impl< T, typename >
     
    struct  boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::remove_varargs< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::remove_varargs_t = detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_varargs, varargs_are_illegal_for_this_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/remove__varargs_8hpp_source.html b/dox-master/remove__varargs_8hpp_source.html new file mode 100644 index 000000000..686a39c49 --- /dev/null +++ b/dox-master/remove__varargs_8hpp_source.html @@ -0,0 +1,225 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/remove_varargs.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    remove_varargs.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_REMOVE_VARARGS_HPP
    +
    11 #define BOOST_CLBL_TRTS_REMOVE_VARARGS_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    +
    17 //[ remove_varargs_hpp
    +
    18 /*`
    +
    19 [section:ref_remove_varargs remove_varargs]
    +
    20 [heading Header]
    +
    21 ``#include <boost/callable_traits/remove_varargs.hpp>``
    +
    22 [heading Definition]
    +
    23 */
    +
    24 
    +
    25 template<typename T>
    +
    26 using remove_varargs_t = //see below
    +
    27 //<-
    + + +
    30  varargs_are_illegal_for_this_type>;
    +
    31 
    +
    32 namespace detail {
    +
    33 
    +
    34  template<typename T, typename = std::false_type>
    + +
    36 
    +
    37  template<typename T>
    +
    38  struct remove_varargs_impl <T, typename std::is_same<
    +
    39  remove_varargs_t<T>, detail::dummy>::type>
    +
    40  {
    + +
    42  };
    +
    43 }
    +
    44 
    +
    45 //->
    +
    46 
    +
    47 template<typename T>
    + +
    49 
    +
    50 //<-
    +
    51 }} // namespace boost::callable_traits
    +
    52 //->
    +
    53 
    +
    54 /*`
    +
    55 [heading Constraints]
    +
    56 * `T` must be one of the following:
    +
    57  * function type
    +
    58  * function pointer type
    +
    59  * function reference type
    +
    60  * member function pointer type
    +
    61 * If `T` is a pointer, it may not be cv/ref qualified
    +
    62 
    +
    63 [heading Behavior]
    +
    64 * A substitution failure occurs if the constraints are violated.
    +
    65 * Removes C-style variadics (`...`) from the signature of `T`, if present.
    +
    66 
    +
    67 [heading Input/Output Examples]
    +
    68 [table
    +
    69  [[`T`] [`remove_varargs_t<T>`]]
    +
    70  [[`int(...)`] [`int()`]]
    +
    71  [[`int(int, ...)`] [`int(int)`]]
    +
    72  [[`int (&)(...)`] [`int(&)()`]]
    +
    73  [[`int (*)()`] [`int(*)()`]]
    +
    74  [[`int(foo::*)(...)`] [`int(foo::*)()`]]
    +
    75  [[`int(foo::*)(...) &`] [`int(foo::*)() &`]]
    +
    76  [[`int(foo::*)(...) &&`] [`int(foo::*)() &&`]]
    +
    77  [[`int(foo::*)(...) const`] [`int(foo::*)() const`]]
    +
    78  [[`int(foo::*)(...) transaction_safe`] [`int(foo::*)() transaction_safe`]]
    +
    79  [[`int`] [(substitution failure)]]
    +
    80  [[`int foo::*`] [(substitution failure)]]
    +
    81  [[`int (* const)()`] [(substitution failure)]]
    +
    82 ]
    +
    83 
    +
    84 [heading Example Program]
    +
    85 [import ../example/remove_varargs.cpp]
    +
    86 [remove_varargs]
    +
    87 [endsect]
    +
    88 */
    +
    89 //]
    +
    90 
    +
    91 #endif // #ifndef BOOST_CLBL_TRTS_REMOVE_VARARGS_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< T >::remove_varargs, varargs_are_illegal_for_this_type > remove_varargs_t
    + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/return__type_8hpp.html b/dox-master/return__type_8hpp.html new file mode 100644 index 000000000..7e0c037c5 --- /dev/null +++ b/dox-master/return__type_8hpp.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/return_type.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    return_type.hpp File Reference
    +
    +
    + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::return_type_impl< T, typename >
     
    struct  boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >
     
    struct  boost::callable_traits::return_type< T >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::return_type_t = detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::return_type, unable_to_determine_return_type >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/return__type_8hpp_source.html b/dox-master/return__type_8hpp_source.html new file mode 100644 index 000000000..4cb33782d --- /dev/null +++ b/dox-master/return__type_8hpp_source.html @@ -0,0 +1,226 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/return_type.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    return_type.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 */
    +
    9 
    +
    10 #ifndef BOOST_CLBL_TRTS_RESULT_OF_HPP
    +
    11 #define BOOST_CLBL_TRTS_RESULT_OF_HPP
    +
    12 
    + +
    14 
    +
    15 namespace boost { namespace callable_traits {
    +
    16 
    + +
    18 BOOST_CLBL_TRTS_SFINAE_MSG(return_type, unable_to_determine_return_type)
    +
    19 
    +
    20 //[ return_type_hpp
    +
    21 /*`
    +
    22 [section:ref_return_type return_type]
    +
    23 [heading Header]
    +
    24 ``#include <boost/callable_traits/return_type.hpp>``
    +
    25 [heading Definition]
    +
    26 */
    +
    27 
    +
    28 template<typename T>
    +
    29 using return_type_t = //see below
    +
    30 //<-
    + + +
    33  unable_to_determine_return_type>;
    +
    34 
    +
    35 namespace detail {
    +
    36 
    +
    37  template<typename T, typename = std::false_type>
    +
    38  struct return_type_impl {};
    +
    39 
    +
    40  template<typename T>
    +
    41  struct return_type_impl <T, typename std::is_same<
    +
    42  return_type_t<T>, detail::dummy>::type>
    +
    43  {
    + +
    45  };
    +
    46 }
    +
    47 
    +
    48 //->
    +
    49 
    +
    50 template<typename T>
    + +
    52 
    +
    53 //<-
    +
    54 }} // namespace boost::callable_traits
    +
    55 //->
    +
    56 
    +
    57 /*`
    +
    58 [heading Constraints]
    +
    59 * `T` must be one of the following:
    +
    60  * function
    +
    61  * function pointer
    +
    62  * function reference
    +
    63  * member function pointer
    +
    64  * member data pointer
    +
    65  * user-defined type with a non-overloaded `operator()`
    +
    66  * type of a non-generic lambda
    +
    67 
    +
    68 [heading Behavior]
    +
    69 * When the constraints are violated, a substitution failure occurs.
    +
    70 * The aliased type is the return type of `T`.
    +
    71 
    +
    72 [heading Input/Output Examples]
    +
    73 [table
    +
    74  [[`T`] [`return_type_t<T, std::tuple>`]]
    +
    75  [[`void()`] [`void`]]
    +
    76  [[`float(*)()`] [`float`]]
    +
    77  [[`const char*(&)()`] [`const char *`]]
    +
    78  [[`int(foo::*)() const`] [`int`]]
    +
    79  [[`int`] [(substitution failure)]]
    +
    80  [[`int (*const)()`] [(substitution failure)]]
    +
    81 ]
    +
    82 
    +
    83 [heading Example Program]
    +
    84 [import ../example/return_type.cpp]
    +
    85 [return_type]
    +
    86 [endsect]
    +
    87 */
    +
    88 //]
    +
    89 
    +
    90 #endif // #ifndef BOOST_CLBL_TRTS_RESULT_OF_HPP
    + +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    detail::try_but_fail_if_invalid< typename detail::traits< detail::shallow_decay< T > >::return_type, unable_to_determine_return_type > return_type_t
    Definition: return_type.hpp:33
    + +
    #define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
    +
    #define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/run_8h.html b/dox-master/run_8h.html new file mode 100644 index 000000000..dbf385fbc --- /dev/null +++ b/dox-master/run_8h.html @@ -0,0 +1,173 @@ + + + + + + + + + + + ttg: ttg/ttg/run.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    run.h File Reference
    +
    +
    +
    #include "ttg/fwd.h"
    +#include "ttg/util/bug.h"
    +#include "ttg/util/env.h"
    +#include "ttg/world.h"
    +
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename... RestOfArgs>
    void ttg::initialize (int argc, char **argv, int num_threads, RestOfArgs &&... args)
     Initializes the TTG runtime with the default backend. More...
     
    template<std::size_t i>
    void ttg::finalize ()
     Finalizes the TTG runtime. More...
     
    void ttg::abort ()
     Aborts the TTG program using the default backend's ttg_abort method. More...
     
    World ttg::default_execution_context ()
     Accesses the default backend's default execution context. More...
     
    void ttg::execute (World world=default_execution_context())
     Starts the execution in the given execution context. More...
     
    void ttg::fence (World world=default_execution_context())
     Returns when all tasks associated with the given execution context have finished on all ranks. More...
     
    int ttg::rank (World world=default_execution_context())
     
    int ttg::size (World world=default_execution_context())
     
    template<typename TT >
    void ttg::invoke_once (TT &tt)
     
    template<typename TT , typename Key >
    void ttg::invoke_once (TT &&tt, Key &&key)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/run_8h_source.html b/dox-master/run_8h_source.html new file mode 100644 index 000000000..9f83c871a --- /dev/null +++ b/dox-master/run_8h_source.html @@ -0,0 +1,226 @@ + + + + + + + + + + + ttg: ttg/ttg/run.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    run.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 11/5/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_RUN_H
    +
    6 #define TTG_RUN_H
    +
    7 
    +
    8 #include "ttg/fwd.h"
    +
    9 
    +
    10 #include "ttg/util/bug.h"
    +
    11 #include "ttg/util/env.h"
    +
    12 #include "ttg/world.h"
    +
    13 
    +
    14 namespace ttg {
    +
    15 
    +
    17 
    +
    30  template <typename... RestOfArgs>
    +
    31  inline void initialize(int argc, char** argv, int num_threads, RestOfArgs&&... args) {
    +
    32  // if requested by user, create a Debugger object
    +
    33  if (auto debugger_cstr = std::getenv("TTG_DEBUGGER")) {
    +
    34  using ttg::Debugger;
    +
    35  auto debugger = std::make_shared<Debugger>();
    + +
    37  debugger->set_exec(argv[0]);
    +
    38  debugger->set_cmd(debugger_cstr);
    +
    39  }
    +
    40 
    + +
    42  TTG_IMPL_NS::ttg_initialize(argc, argv, num_threads, std::forward<RestOfArgs>(args)...);
    +
    43 
    +
    44  // finish setting up the Debugger, if needed
    + + +
    47  }
    +
    48 
    +
    50 
    +
    58  inline void finalize() { TTG_IMPL_NS::ttg_finalize(); }
    +
    59 
    +
    61  [[noreturn]]
    +
    62  inline void abort() { TTG_IMPL_NS::ttg_abort(); }
    +
    63 
    +
    65 
    + +
    69 
    +
    71 
    + +
    75 
    +
    77 
    +
    81  inline void fence(World world = default_execution_context()) { TTG_IMPL_NS::ttg_fence(world); }
    +
    82 
    +
    85  inline int rank(World world = default_execution_context()) { return world.rank(); }
    +
    86 
    +
    89  inline int size(World world = default_execution_context()) { return world.size(); }
    +
    90 
    +
    96  template <typename TT>
    +
    97  inline void invoke_once(TT& tt) {
    +
    98  if (tt.keymap() == tt.get_world().rank()) {
    +
    99  tt.invoke();
    +
    100  }
    +
    101  }
    +
    102 
    +
    109  template <typename TT, typename Key>
    +
    110  inline void invoke_once(TT&& tt, Key&& key) {
    +
    111  if (tt.keymap(key) == tt.get_world().rank()) {
    +
    112  tt.invoke(std::forward<Key>(key));
    +
    113  }
    +
    114  }
    +
    115 
    +
    116 } // namespace ttg
    +
    117 
    +
    118 #endif // TTG_RUN_H
    + + +
    static void set_default_debugger(const std::shared_ptr< Debugger > &)
    Set the global default debugger. The initial value is null.
    Definition: bug.cpp:406
    +
    static std::shared_ptr< Debugger > default_debugger()
    Return the global default debugger.
    Definition: bug.cpp:408
    + +
    int rank() const
    Definition: world.h:204
    + +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const Key &key, const input_values_tuple_type &args)
    Definition: ttg.h:4091
    +
    ttg::World get_world() const override final
    Definition: ttg.h:1315
    + + +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    void ttg_initialize(int argc, char **argv, int num_threads=-1)
    Definition: ttg.h:123
    +
    void ttg_execute(ttg::World world)
    Definition: ttg.h:141
    +
    void ttg_fence(ttg::World world)
    Definition: ttg.h:144
    +
    void ttg_finalize()
    Definition: ttg.h:131
    +
    void ttg_abort()
    Definition: ttg.h:137
    +
    ttg::World ttg_default_execution_context()
    Definition: ttg.h:136
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    void invoke_once(TT &tt)
    Definition: run.h:97
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    void abort()
    Aborts the TTG program using the default backend's ttg_abort method.
    Definition: run.h:62
    +
    World default_execution_context()
    Accesses the default backend's default execution context.
    Definition: run.h:68
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    int rank(World world=default_execution_context())
    Definition: run.h:85
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/runtimes_8h.html b/dox-master/runtimes_8h.html new file mode 100644 index 000000000..28bb07141 --- /dev/null +++ b/dox-master/runtimes_8h.html @@ -0,0 +1,154 @@ + + + + + + + + + + + ttg: ttg/ttg/runtimes.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    runtimes.h File Reference
    +
    +
    +
    #include <cstddef>
    +#include <cstdint>
    +#include "ttg/execution.h"
    +
    + + + + + +

    +Classes

    struct  ttg::runtime_traits< Runtime::PaRSEC >
     
    struct  ttg::runtime_traits< Runtime::MADWorld >
     
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + +

    +Enumerations

    enum class  ttg::Runtime { ttg::PaRSEC +, ttg::MADWorld + }
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/runtimes_8h_source.html b/dox-master/runtimes_8h_source.html new file mode 100644 index 000000000..c7d8488e4 --- /dev/null +++ b/dox-master/runtimes_8h_source.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: ttg/ttg/runtimes.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    runtimes.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 8/28/18.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_TRAITS_H
    +
    6 #define TTG_TRAITS_H
    +
    7 
    +
    8 #include <cstddef>
    +
    9 #include <cstdint>
    +
    10 
    +
    11 #include "ttg/execution.h"
    +
    12 
    +
    13 namespace ttg {
    +
    14 
    +
    15  enum class Runtime { PaRSEC, MADWorld };
    +
    16 
    +
    17  template <Runtime R>
    + +
    19 
    +
    20  template <>
    + +
    22  static constexpr const bool supports_streaming_terminal = true;
    +
    23  static constexpr const bool supports_async_reduction = false;
    +
    24  using hash_t = unsigned long; // must be same as parsec_key_t
    +
    25  constexpr static ExecutionSpace execution_spaces[] = {ExecutionSpace::CUDA, ExecutionSpace::Host};
    +
    26  constexpr static std::size_t num_execution_spaces = sizeof(execution_spaces) / sizeof(ExecutionSpace);
    +
    27  };
    +
    28 
    +
    29  template <>
    + +
    31  static constexpr const bool supports_streaming_terminal = true;
    +
    32  static constexpr const bool supports_async_reduction = true;
    +
    33  using hash_t = uint64_t;
    +
    34  constexpr static ExecutionSpace execution_spaces[] = {ExecutionSpace::Host};
    +
    35  constexpr static std::size_t num_execution_spaces = sizeof(execution_spaces) / sizeof(ExecutionSpace);
    +
    36  };
    +
    37 
    +
    38 } // namespace ttg
    +
    39 
    +
    40 #endif // TTG_TRAITS_H
    + +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    ExecutionSpace
    denotes task execution space
    Definition: execution.h:17
    + + +
    Runtime
    Definition: runtimes.h:15
    + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/search/all_0.html b/dox-master/search/all_0.html new file mode 100644 index 000000000..1ec5b2d59 --- /dev/null +++ b/dox-master/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_0.js b/dox-master/search/all_0.js new file mode 100644 index 000000000..b7095fb87 --- /dev/null +++ b/dox-master/search/all_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['_5f_0',['_',['../structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html',1,'boost::callable_traits::detail::success']]], + ['_5f_5ftraceback_1',['__traceback',['../classttg_1_1_debugger.html#a3bded73e46b0fb03ec108818b1ef4b88',1,'ttg::Debugger']]] +]; diff --git a/dox-master/search/all_1.html b/dox-master/search/all_1.html new file mode 100644 index 000000000..9f80e9043 --- /dev/null +++ b/dox-master/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_1.js b/dox-master/search/all_1.js new file mode 100644 index 000000000..83b326ae5 --- /dev/null +++ b/dox-master/search/all_1.js @@ -0,0 +1,80 @@ +var searchData= +[ + ['abort_2',['abort',['../namespacettg.html#a408d84f3b0f9b79a3278a3eac949b207',1,'ttg']]], + ['add_5fcopy_5fto_5ftask_3',['add_copy_to_task',['../namespacettg__parsec_1_1detail.html#a67daa9dfcabd832631ca6f35ab363126',1,'ttg_parsec::detail']]], + ['add_5fdevice_5fdata_4',['add_device_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ab1588b2c983f8e843fdc11c9c2521e1d',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['add_5fmember_5fconst_5',['add_member_const',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aee9f73c7bf42c24b9cdaa360108ea827',1,'boost::callable_traits::detail::default_callable_traits::add_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#af61d7f649e93e66c6b5e6bc8bc56c426',1,'boost::callable_traits::detail::function< T & >::add_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a5892637b3dc2d3535f66d51062a2ec92',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a86dc38bf22b278e0d3ace8889ed77740',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a3f99793f7dd8ac95b26ea557c5907cc2',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a44c0a44c63f65d875548f4b9c0a93551',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a5807cb6d1d882a2b687c595ed92c5adf',1,'boost::callable_traits::detail::function_object::add_member_const()'],['../structboost_1_1callable__traits_1_1add__member__const.html',1,'boost::callable_traits::add_member_const< T >']]], + ['add_5fmember_5fconst_2ehpp_6',['add_member_const.hpp',['../add__member__const_8hpp.html',1,'']]], + ['add_5fmember_5fconst_5fimpl_7',['add_member_const_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fconst_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5fconst_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_8',['add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fconst_5ft_9',['add_member_const_t',['../namespaceboost_1_1callable__traits.html#a510d821234accb030b72c6fb41fe397b',1,'boost::callable_traits']]], + ['add_5fmember_5fcv_10',['add_member_cv',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a55e3bd70fc04e8f742203c23545c3eb8',1,'boost::callable_traits::detail::default_callable_traits::add_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a56a6df56ab93245a76ca0e5c6b2d6a41',1,'boost::callable_traits::detail::function< T & >::add_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a8be25ded7351525408ed8e50f61d306e',1,'boost::callable_traits::detail::function_object::add_member_cv()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a94219666bb46206600ad50dc27f3a368',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a425778f91b97c2d85174e793f4c7358a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#adb027d7f41d3de6921fbecfa675c541a',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a9f5fc103ab168929e16f5d24f4740c9a',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()'],['../structboost_1_1callable__traits_1_1add__member__cv.html',1,'boost::callable_traits::add_member_cv< T >']]], + ['add_5fmember_5fcv_2ehpp_11',['add_member_cv.hpp',['../add__member__cv_8hpp.html',1,'']]], + ['add_5fmember_5fcv_5fimpl_12',['add_member_cv_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fcv_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5fcv_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_13',['add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fcv_5ft_14',['add_member_cv_t',['../namespaceboost_1_1callable__traits.html#a0eef79a4b912c44edc5259cbcab0c224',1,'boost::callable_traits']]], + ['add_5fmember_5flvalue_5freference_15',['add_member_lvalue_reference',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a0bf4ede928ce5a18ea24f4892fa3912c',1,'boost::callable_traits::detail::default_callable_traits::add_member_lvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ac4e23444f731e21bc9d4cca507ba3c7b',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ad3747aaea91b228963f4a07179aa2257',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ae8db4853809f292c7a1fa6c875378d46',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a1321c982adc97645af0004a429760661',1,'boost::callable_traits::detail::function_object::add_member_lvalue_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#af2932fff8eff25bed07c20ce0f062afa',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ad31080343951e46f21d8c7058b20e15d',1,'boost::callable_traits::detail::function< T & >::add_member_lvalue_reference()'],['../structboost_1_1callable__traits_1_1add__member__lvalue__reference.html',1,'boost::callable_traits::add_member_lvalue_reference< T >']]], + ['add_5fmember_5flvalue_5freference_2ehpp_16',['add_member_lvalue_reference.hpp',['../add__member__lvalue__reference_8hpp.html',1,'']]], + ['add_5fmember_5flvalue_5freference_5fimpl_17',['add_member_lvalue_reference_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5flvalue_5freference_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5flvalue_5freference_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_18',['add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5flvalue_5freference_5ft_19',['add_member_lvalue_reference_t',['../namespaceboost_1_1callable__traits.html#a47d6c19c42264f7b845dc10344a3bb5c',1,'boost::callable_traits']]], + ['add_5fmember_5fpointer_20',['add_member_pointer',['../namespaceboost_1_1callable__traits_1_1detail.html#a82d421acaeffaaa1c19e665ee0bbbb90',1,'boost::callable_traits::detail']]], + ['add_5fmember_5frvalue_5freference_21',['add_member_rvalue_reference',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#afd60f9f9ea5ab0ecdee2c8955cbcc63b',1,'boost::callable_traits::detail::default_callable_traits::add_member_rvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ae6e8d2c59bcf0d87a555fab2601092a1',1,'boost::callable_traits::detail::function< T & >::add_member_rvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a8d746c9f01232e31b3d5248f2bfc3a83',1,'boost::callable_traits::detail::function_object::add_member_rvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a986bb604f624bfe5b5618c2e850458cc',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a629f608ffa11528a775a00f6c5cb4f19',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#aa503c33ae34c38464f1dcdc9d0daf8a2',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a76ccb6de57e45715b64f5d2bbd79760c',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()'],['../structboost_1_1callable__traits_1_1add__member__rvalue__reference.html',1,'boost::callable_traits::add_member_rvalue_reference< T >']]], + ['add_5fmember_5frvalue_5freference_2ehpp_22',['add_member_rvalue_reference.hpp',['../add__member__rvalue__reference_8hpp.html',1,'']]], + ['add_5fmember_5frvalue_5freference_5fimpl_23',['add_member_rvalue_reference_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5frvalue_5freference_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5frvalue_5freference_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_24',['add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5frvalue_5freference_5ft_25',['add_member_rvalue_reference_t',['../namespaceboost_1_1callable__traits.html#ad472511c3c8e9df8b35221d3d76db12e',1,'boost::callable_traits']]], + ['add_5fmember_5fvolatile_26',['add_member_volatile',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a508b68c75774316a67764d34b49f11b6',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a94c44f6590e17297993b1efe1950ae5f',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a4f5c101b4873abfa111bbedb97805fd0',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a2b14cb3cb48e9cf408b423023c985b81',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#adcfee3f4177fd663b084e3be0a2795fa',1,'boost::callable_traits::detail::default_callable_traits::add_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a96024fc6a4029d3c1ba6224a1b2f3fea',1,'boost::callable_traits::detail::function< T & >::add_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a124c7d0f9a36091767135ba90798b124',1,'boost::callable_traits::detail::function_object::add_member_volatile()'],['../structboost_1_1callable__traits_1_1add__member__volatile.html',1,'boost::callable_traits::add_member_volatile< T >']]], + ['add_5fmember_5fvolatile_2ehpp_27',['add_member_volatile.hpp',['../add__member__volatile_8hpp.html',1,'']]], + ['add_5fmember_5fvolatile_5fimpl_28',['add_member_volatile_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fvolatile_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5fvolatile_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_29',['add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fvolatile_5ft_30',['add_member_volatile_t',['../namespaceboost_1_1callable__traits.html#a9478887db0cc8648ed0a62520bef5ca4',1,'boost::callable_traits']]], + ['add_5fnoexcept_31',['add_noexcept',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a5e1afed9087377e45097e2a87a886967',1,'boost::callable_traits::detail::default_callable_traits::add_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a7235aca8de95c651857b06e3159fbb8d',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a1ce29260cde578799ee5a222ad5187f5',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a4d940d58e2a2c2e10a6a2b1f523ef440',1,'boost::callable_traits::detail::function_object::add_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a81877a00118e6aaa033d8dc10997f004',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a3e70da8a1085b1abe1ce4436f3d31743',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#acbbab87c8e1ec5daac725cd4977ed83c',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a35c990211070fd2f187a88271f968b07',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structboost_1_1callable__traits_1_1add__noexcept.html',1,'boost::callable_traits::add_noexcept< T >']]], + ['add_5fnoexcept_2ehpp_32',['add_noexcept.hpp',['../add__noexcept_8hpp.html',1,'']]], + ['add_5fnoexcept_5ft_33',['add_noexcept_t',['../structboost_1_1callable__traits_1_1add__noexcept__t.html',1,'boost::callable_traits']]], + ['add_5fref_34',['add_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ad1366b20ef9d7e3168239b887c258b99',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['add_5ftransaction_5fsafe_35',['add_transaction_safe',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3354ac19123de29076842aaf3306c174',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a45f0cd8783a2c5f419cd00e4f6c297f1',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a4f94dcb499cc19ed7071c28b4a7ee330',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a93ef06ee3d0b4fccdaa5696b3563dbd8',1,'boost::callable_traits::detail::default_callable_traits::add_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a644f443e2542e916279d204c47a7f26f',1,'boost::callable_traits::detail::function_object::add_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a1f5f7ff90e9dfdb3331cfa35640fed09',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a4c513359f41f7f35a59b9130746f1f3c',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#ae9c5a296889f3fa9682e0d18bacbb89f',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structboost_1_1callable__traits_1_1add__transaction__safe.html',1,'boost::callable_traits::add_transaction_safe< T >']]], + ['add_5ftransaction_5fsafe_2ehpp_36',['add_transaction_safe.hpp',['../add__transaction__safe_8hpp.html',1,'']]], + ['add_5ftransaction_5fsafe_5ft_37',['add_transaction_safe_t',['../structboost_1_1callable__traits_1_1add__transaction__safe__t.html',1,'boost::callable_traits']]], + ['add_5fvarargs_38',['add_varargs',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ac2c9ead0863ec2bf92b7a3f7b2a485eb',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa9c4d0942c8c1790cca47093a61877ce',1,'boost::callable_traits::detail::default_callable_traits::add_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a02e801723771ca97582def099fb81b0b',1,'boost::callable_traits::detail::function< T & >::add_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a93e056d3e7fc4f7fbdbae3878deb5341',1,'boost::callable_traits::detail::function_object::add_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad47be824570f42b64ad4491e083958b8',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a5ab6ecdcf9c53205ef4a3e96e7b4802a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#ae5c102b46975deb844ae5fa9adb1a29f',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a6527aa89d3b11082c9c7a6f0ede284fb',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a74a4809fc0e00cd199fdba310cca2751',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structboost_1_1callable__traits_1_1add__varargs.html',1,'boost::callable_traits::add_varargs< T >']]], + ['add_5fvarargs_2ehpp_39',['add_varargs.hpp',['../add__varargs_8hpp.html',1,'']]], + ['add_5fvarargs_5fimpl_40',['add_varargs_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fvarargs_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fvarargs_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_41',['add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isebb1b3f4b3764f1094c0ca20cf2ce92f.html',1,'boost::callable_traits::detail']]], + ['add_5fvarargs_5ft_42',['add_varargs_t',['../namespaceboost_1_1callable__traits.html#a243c65f9263dd23715bbe69b4d6fb366',1,'boost::callable_traits']]], + ['address_43',['address',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#af040d4c877116fcdb5957351727518ac',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['allocate_44',['Allocate',['../namespacettg.html#a2696750161ae2e0b5fb4ea1543305793ac9baacf6cca6c54626e594639081177f',1,'ttg']]], + ['allocate_5fon_45',['allocate_on',['../structttg__madness_1_1_buffer.html#abd8bb40f3ac23082c698652e315c01d8',1,'ttg_madness::Buffer::allocate_on()'],['../structttg__parsec_1_1_buffer.html#ac1452970fb4d8d5e6f79c013a8d043e9',1,'ttg_parsec::Buffer::allocate_on()']]], + ['allocator_2eh_46',['allocator.h',['../allocator_8h.html',1,'']]], + ['allocator_5ftraits_47',['allocator_traits',['../structttg__madness_1_1_buffer.html#adbc3aa77184257d236da7d3bf3a948f8',1,'ttg_madness::Buffer::allocator_traits()'],['../structttg__parsec_1_1_buffer.html#a90c207a227742311c5a57f7d72d83e1c',1,'ttg_parsec::Buffer::allocator_traits()']]], + ['allocator_5ftype_48',['allocator_type',['../structttg__madness_1_1_buffer.html#ac6157afc94c1721197eebc9a41cfbd08',1,'ttg_madness::Buffer::allocator_type()'],['../structttg__parsec_1_1_buffer.html#ac78074e7acb06deb18983336685e634a',1,'ttg_parsec::Buffer::allocator_type()']]], + ['apply_5fmember_5fpointer_49',['apply_member_pointer',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a439c23f5b4fd7a248c9c75c707cb8c53',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a6fa9ed7c27da793435d390dcf4e54845',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#aadec31c9e97b1a6933b1234845a769a8',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#aa908ecd6154470ef5dec500b7dc03242',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a7dd3722cff2c25c5021839160301cd8f',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a56edbd082309ff15aac2032039c47bfb',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a441194656e80691ecaf49cd2ccd958e6',1,'boost::callable_traits::detail::default_callable_traits::apply_member_pointer()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#ac79e46fff2b89f39f06dc728df1a90ee',1,'boost::callable_traits::detail::function_object::apply_member_pointer()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a2c59d6bf38c26df176d35721779c39f2',1,'boost::callable_traits::detail::pmd< D T::* >::apply_member_pointer()'],['../structboost_1_1callable__traits_1_1apply__member__pointer.html',1,'boost::callable_traits::apply_member_pointer< T, C >']]], + ['apply_5fmember_5fpointer_2ehpp_50',['apply_member_pointer.hpp',['../apply__member__pointer_8hpp.html',1,'']]], + ['apply_5fmember_5fpointer_5fimpl_51',['apply_member_pointer_impl',['../structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.html',1,'boost::callable_traits::detail']]], + ['apply_5fmember_5fpointer_5fimpl_3c_20t_2c_20c_2c_20typename_20std_3a_3ais_5fsame_3c_20apply_5fmember_5fpointer_5ft_3c_20t_2c_20c_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_52',['apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html',1,'boost::callable_traits::detail']]], + ['apply_5fmember_5fpointer_5ft_53',['apply_member_pointer_t',['../namespaceboost_1_1callable__traits.html#a099fce5bba16849f1bf6fb2944afc503',1,'boost::callable_traits']]], + ['apply_5freturn_54',['apply_return',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a1637fdb4b3cd0a82a35cd7500fd291ec',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a9c6cfa3bb30472aeac39ba29465848cf',1,'boost::callable_traits::detail::default_callable_traits::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a6943567528c3c68bf295605491cf7e3b',1,'boost::callable_traits::detail::function< T & >::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a87fea47d62138feae2ea7c02f55349fc',1,'boost::callable_traits::detail::function_object::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#ac54892e9f9f337ce24eb6615090856da',1,'boost::callable_traits::detail::pmd< D T::* >::apply_return()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a8899703851a94816d216135b504b1012',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#afab881fb91abb49142cad61d404ee054',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a1f744ff6bebde2baf0a7ddf8dd6cf2ed',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#ac15efdac2c3c858c0500514d732763d3',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ac9a43771f599896f7d6b71cbec2d7e72',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structboost_1_1callable__traits_1_1apply__return.html',1,'boost::callable_traits::apply_return< T, R >']]], + ['apply_5freturn_2ehpp_55',['apply_return.hpp',['../apply__return_8hpp.html',1,'']]], + ['apply_5freturn_5fhelper_56',['apply_return_helper',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_5fhelper_3c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_2c_20r_20_3e_57',['apply_return_helper< std::tuple< Args... >, R >',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_5fimpl_58',['apply_return_impl',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_5fimpl_3c_20t_2c_20r_2c_20typename_20std_3a_3ais_5fsame_3c_20apply_5freturn_5ft_3c_20t_2c_20r_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_59',['apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_5ft_60',['apply_return_t',['../namespaceboost_1_1callable__traits.html#a00dc15b18cd908bb659da05e3f255011',1,'boost::callable_traits']]], + ['archive_2eh_61',['archive.h',['../archive_8h.html',1,'']]], + ['arg_5ftypes_62',['arg_types',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a1f3b4ff5c8b867af4b7d942c1b99ccb1',1,'boost::callable_traits::detail::function_object::arg_types()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a990e34d335d9a7212d4cc3f5ef70c519',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ae7739d1643c1d5e71e230d8a3dbb8a52',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#af93311d1c5c15d08e7f8b62d4d18e634',1,'boost::callable_traits::detail::default_callable_traits::arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a070506cba0ace6da4115a36ca24dcaf6',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a4759f808ab350c518b45c0a1b359e923',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a4e79cb5d754b256e28c55ad2bc55fbd6',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#aa62af253fd1f1a1ae328053285417526',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#ab9e320a651b67046150e00ce6709bdba',1,'boost::callable_traits::detail::pmd< D T::* >::arg_types()']]], + ['args_63',['args',['../structboost_1_1callable__traits_1_1args.html',1,'boost::callable_traits']]], + ['args_2ehpp_64',['args.hpp',['../args_8hpp.html',1,'']]], + ['args_5fimpl_65',['args_impl',['../structboost_1_1callable__traits_1_1detail_1_1args__impl.html',1,'boost::callable_traits::detail']]], + ['args_5fimpl_3c_20t_2c_20container_2c_20typename_20std_3a_3ais_5fsame_3c_20args_5ft_3c_20t_2c_20container_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_66',['args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html',1,'boost::callable_traits::detail']]], + ['args_5fimpl_3c_20t_2c_20std_3a_3atuple_20_3e_67',['args_impl< T, std::tuple >',['../structboost_1_1callable__traits_1_1detail_1_1args__impl.html',1,'boost::callable_traits::detail']]], + ['args_5ft_68',['args_t',['../namespaceboost_1_1callable__traits.html#aa21006f2d853460db6c66f1e48e19e43',1,'boost::callable_traits']]], + ['argstream_5fset_5fsize_5ffrom_5fmsg_69',['argstream_set_size_from_msg',['../classttg__parsec_1_1_t_t.html#ae024ad0714e4438f7ab96c7abe0f28e4',1,'ttg_parsec::TT']]], + ['array_2eh_70',['array.h',['../array_8h.html',1,'']]], + ['as_5fbytes_71',['as_bytes',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a73c2f01ba8ad157c8451953eba209959',1,'TCB_SPAN_NAMESPACE_NAME']]], + ['as_5fwritable_5fbytes_72',['as_writable_bytes',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a27e28f425fb87e409fc5560e9b60b2d7',1,'TCB_SPAN_NAMESPACE_NAME']]], + ['async_73',['Async',['../namespacettg.html#ab019ae6d4974cd5dc8737ac1e0607128a24aa4117da86c41684ad25742832dfa6',1,'ttg']]], + ['at_74',['at',['../namespaceboost_1_1callable__traits_1_1detail.html#a21ec1beaf496ed9e2caee0badb19bf7d',1,'boost::callable_traits::detail']]], + ['available_5fexecution_5fspace_75',['available_execution_space',['../namespacettg_1_1device.html#aa2e4c3c192f4374d5fa02893df4cdf86',1,'ttg::device']]], + ['await_5fready_76',['await_ready',['../structttg_1_1resumable__task__events.html#a1438292220d63b7e36d66ea28b2e4eb1',1,'ttg::resumable_task_events']]], + ['await_5fresume_77',['await_resume',['../structttg_1_1resumable__task__events.html#a739e3ac598e349bc57fdb6c8384c35ef',1,'ttg::resumable_task_events']]], + ['await_5fsuspend_78',['await_suspend',['../structttg_1_1resumable__task__events.html#ad5b167132a1d36aedf3574b2c0425dc5',1,'ttg::resumable_task_events']]] +]; diff --git a/dox-master/search/all_10.html b/dox-master/search/all_10.html new file mode 100644 index 000000000..3bf11961f --- /dev/null +++ b/dox-master/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_10.js b/dox-master/search/all_10.js new file mode 100644 index 000000000..77cf6b4c1 --- /dev/null +++ b/dox-master/search/all_10.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['q_5fflags_1076',['q_flags',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#afac9c89ab616da0956d713f1a2ec73eb',1,'boost::callable_traits::detail::default_callable_traits']]], + ['qualified_5fclass_5fof_1077',['qualified_class_of',['../structboost_1_1callable__traits_1_1qualified__class__of.html',1,'boost::callable_traits']]], + ['qualified_5fclass_5fof_2ehpp_1078',['qualified_class_of.hpp',['../qualified__class__of_8hpp.html',1,'']]], + ['qualified_5fclass_5fof_5fimpl_1079',['qualified_class_of_impl',['../structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.html',1,'boost::callable_traits::detail']]], + ['qualified_5fclass_5fof_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20qualified_5fclass_5fof_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1080',['qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html',1,'boost::callable_traits::detail']]], + ['qualified_5fclass_5fof_5ft_1081',['qualified_class_of_t',['../namespaceboost_1_1callable__traits.html#a675fe6525973e89843ba9f476d34bce0',1,'boost::callable_traits']]], + ['qualified_5ffunction_5ftype_1082',['qualified_function_type',['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a47d8140394a1fbd79751c9359ea2bdaf',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#afc5d1499fcb21f642a1fdcc12327e7ec',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a4f79e7f0e44d8921db695e45c77d6a4c',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a073afd7caea8cbc426dd8e4c996a0c3e',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#adfecd50ae3766bc6c50339767ce99d04',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a40455b30f33540b5bcca8d5742ba7b28',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a4a4886eb52f3e247b2b683bb2ac5707e',1,'boost::callable_traits::detail::pmd< D T::* >::qualified_function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a60387302212ecf701aae83c1e694d87d',1,'boost::callable_traits::detail::default_callable_traits::qualified_function_type()']]], + ['qualifier_5fflags_1083',['qualifier_flags',['../namespaceboost_1_1callable__traits_1_1detail.html#a72b911342c19b5cf050a04843f8d4247',1,'boost::callable_traits::detail']]], + ['qualifier_5fflags_2ehpp_1084',['qualifier_flags.hpp',['../qualifier__flags_8hpp.html',1,'']]], + ['qualifiers_1085',['qualifiers',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a8cb93ce50f0a1f43747d81401901dd8b',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a87f3b4f5b26a78a11aa52b6a218e51f3',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a9689318d160c4c31cc6b4face0685ef8',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a3bf80cc5e5dae7e60275d1e5ab9bf649',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()']]] +]; diff --git a/dox-master/search/all_11.html b/dox-master/search/all_11.html new file mode 100644 index 000000000..c9f79d289 --- /dev/null +++ b/dox-master/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_11.js b/dox-master/search/all_11.js new file mode 100644 index 000000000..6a879e8b4 --- /dev/null +++ b/dox-master/search/all_11.js @@ -0,0 +1,112 @@ +var searchData= +[ + ['rank_1086',['rank',['../classttg_1_1base_1_1_world.html#a7c354d1e43268884cb3b947f44ce0f5e',1,'ttg::base::World::rank()'],['../classttg_1_1base_1_1_world_impl_base.html#a950c5b477177504efe894584a00e6056',1,'ttg::base::WorldImplBase::rank()'],['../namespacettg.html#ac0ad1dd3b87329e4acf9774df6dc8473',1,'ttg::rank()']]], + ['rbegin_1087',['rbegin',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a8006cedeefa1990a48aa7f5be347b917',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['read_1088',['Read',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8a7a1a5f3e79fdc91edf2f5ead9d66abb4',1,'ttg::TerminalBase']]], + ['readme_2emd_1089',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['ready_1090',['ready',['../structttg_1_1resumable__task__state.html#aa5af2ccc2791fd9eebb7e62106718613',1,'ttg::resumable_task_state::ready()'],['../group__resumable__task.html#ga211f762392058277a7f13313db2090ab',1,'ttg::resumable_task::ready()']]], + ['recommended_20workflow_20elements_1091',['Recommended Workflow Elements',['../_recommended-_workflow-_elements.html',1,'']]], + ['reduce_2eh_1092',['reduce.h',['../reduce_8h.html',1,'']]], + ['reduce_5fcopies_1093',['reduce_copies',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#afec6adea574334e3d21baf5800f0565d',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t']]], + ['reduce_5fcount_1094',['reduce_count',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#a02328acf5ab1285d4e41f01fd556f2e8',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t']]], + ['reducer_5ftask_5ft_1095',['reducer_task_t',['../structttg__parsec_1_1detail_1_1reducer__task__t.html#a3722937d2eca8884204ec8e41cbe8dff',1,'ttg_parsec::detail::reducer_task_t::reducer_task_t()'],['../structttg__parsec_1_1detail_1_1reducer__task__t.html',1,'ttg_parsec::detail::reducer_task_t']]], + ['reducing_2ecc_1096',['reducing.cc',['../reducing_8cc.html',1,'']]], + ['ref_5fflags_1097',['ref_flags',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a59c8dd2ebde46a20d234f6d2fdfe1022',1,'boost::callable_traits::detail::default_callable_traits']]], + ['ref_5fof_1098',['ref_of',['../namespaceboost_1_1callable__traits_1_1detail.html#a4830bc75e831dc6c22adc0ba8a6e65c1',1,'boost::callable_traits::detail']]], + ['reference_1099',['reference',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#ae20eed08efab872b4930d635b23cfc5f',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['reference_5ferror_1100',['reference_error',['../structboost_1_1callable__traits_1_1detail_1_1reference__error.html',1,'boost::callable_traits::detail::reference_error'],['../structboost_1_1callable__traits_1_1detail_1_1reference__error.html#adad9a090d8c23762c58ba89114661319',1,'boost::callable_traits::detail::reference_error::reference_error()']]], + ['reference_5ftype_1101',['reference_type',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#a733189db4494352f3bf0beacde4f8495',1,'ttg_parsec::detail::persistent_value_ref']]], + ['register_5fcallback_1102',['register_callback',['../classttg_1_1base_1_1_world_impl_base.html#ac632952b6643c1cbdde7a5259e873dae',1,'ttg::base::WorldImplBase']]], + ['register_5fdata_5fcopy_1103',['register_data_copy',['../namespacettg__parsec_1_1detail.html#a9c2cec25e19cda9be147f1deb0b32813',1,'ttg_parsec::detail']]], + ['register_5fdevice_5fmemory_1104',['register_device_memory',['../namespacettg__madness.html#add519a37bb1e28647aad37b57e2bc22d',1,'ttg_madness::register_device_memory()'],['../namespacettg__parsec_1_1detail.html#ab90903b036af1e96ad7028f89907f30a',1,'ttg_parsec::detail::register_device_memory()'],['../namespacettg__parsec.html#af8d611f46a2ca75cc727e1d84f1f9452',1,'ttg_parsec::register_device_memory()']]], + ['register_5finput_5fterminals_1105',['register_input_terminals',['../classttg_1_1_t_t_base.html#ad27fa3b380e1ccec338e7ce022a58150',1,'ttg::TTBase']]], + ['register_5fop_1106',['register_op',['../classttg_1_1base_1_1_world_impl_base.html#a6d5f2b8160f47b69a485756cdc3e9ed0',1,'ttg::base::WorldImplBase']]], + ['register_5foutput_5fterminals_1107',['register_output_terminals',['../classttg_1_1_t_t_base.html#afe6845510fba3a5fc90126c9a0257306',1,'ttg::TTBase']]], + ['register_5fptr_1108',['register_ptr',['../classttg_1_1base_1_1_world_impl_base.html#a8827844e807ab00fbb223a6bcfa79cba',1,'ttg::base::WorldImplBase::register_ptr(std::unique_ptr< T > &&ptr)'],['../classttg_1_1base_1_1_world_impl_base.html#af37c0711c2fd3d3fa4cd6ac01ec56d00',1,'ttg::base::WorldImplBase::register_ptr(const std::shared_ptr< T > &ptr)']]], + ['register_5fstatic_5fop_5ffunction_1109',['register_static_op_function',['../classttg__parsec_1_1_t_t.html#aad3506214d071b72b84a4f573a422f91',1,'ttg_parsec::TT']]], + ['register_5fstatus_1110',['register_status',['../classttg_1_1base_1_1_world_impl_base.html#aa4de0e778e33e84398b570320fc18ec1',1,'ttg::base::WorldImplBase']]], + ['register_5fterminal_1111',['register_terminal',['../classttg_1_1_t_t_base.html#a500de0f83bc473aee96f9156eced7842',1,'ttg::TTBase']]], + ['register_5fterminals_1112',['register_terminals',['../classttg_1_1_t_t_base.html#ad3e1b27e96a9a12f75204b2b7fced53c',1,'ttg::TTBase']]], + ['register_5ftt_5fprofiling_1113',['register_tt_profiling',['../classttg__parsec_1_1_world_impl.html#a4b4b51c4039f6049073f993af2346d6c',1,'ttg_parsec::WorldImpl']]], + ['register_5fworld_1114',['register_world',['../namespacettg_1_1detail.html#a99c009274b0a628be74a6d87c9255406',1,'ttg::detail::register_world(ttg::base::WorldImplBase &world)'],['../namespacettg_1_1detail.html#a42830b45dee1b85b51c028cd39bef3ba',1,'ttg::detail::register_world(WorldImplT &world)']]], + ['release_1115',['release',['../classttg_1_1_t_t_base.html#aaa5e3e652a4181ae402812c86db2a003',1,'ttg::TTBase::release()'],['../classttg__parsec_1_1_t_t.html#a9b8dd2de8d555fbac4b9167534680ed7',1,'ttg_parsec::TT::release()'],['../classttg_1_1_debugger.html#af18b7e16e97d1ce30cc2aa226a247a1b',1,'ttg::Debugger::release()']]], + ['release_5fdata_5fcopy_1116',['release_data_copy',['../namespacettg__parsec_1_1detail.html#ae5ff24305f6e31fcfd83447922cdb5d9',1,'ttg_parsec::detail']]], + ['release_5fops_1117',['release_ops',['../classttg_1_1base_1_1_world_impl_base.html#a4cf5efcd1c577c54c6634708a141230b',1,'ttg::base::WorldImplBase']]], + ['release_5ftask_1118',['release_task',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a004fccc34134e079736f510c618771b3',1,'ttg_parsec::detail::parsec_ttg_task_base_t::release_task()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#ad5cb0f91ede170fec5354d78f9b14797',1,'ttg_parsec::detail::parsec_ttg_task_t::release_task()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#af9246483d815a6eed3c3f5d108219fe7',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::release_task()'],['../structttg__parsec_1_1detail_1_1reducer__task__t.html#aeae458f02e712a3d51fabdc1bc218f4f',1,'ttg_parsec::detail::reducer_task_t::release_task()'],['../classttg__parsec_1_1_t_t.html#a99cbcab15f7af1b902da9d8d8a364aa9',1,'ttg_parsec::TT::release_task()']]], + ['release_5ftask_5fcb_1119',['release_task_cb',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a852cb153035b905964ffc61057e4f529',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['release_5ftask_5ffn_1120',['release_task_fn',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a6f89b3b9409beba55ba3ae1a9b121094',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['remove_5fargs_1121',['remove_args',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a229655e0c303b17222ab73f331eba8b6',1,'boost::callable_traits::detail::function_object::remove_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ab15232c99824afa6147bbd22cbbdc689',1,'boost::callable_traits::detail::function< T & >::remove_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aba9cbc151278aa7547397959eca6419e',1,'boost::callable_traits::detail::default_callable_traits::remove_args()']]], + ['remove_5fconst_5fflag_1122',['remove_const_flag',['../namespaceboost_1_1callable__traits_1_1detail.html#a496d5f7429beb89581abcfabec1a2485',1,'boost::callable_traits::detail']]], + ['remove_5fcvr_5ft_1123',['remove_cvr_t',['../namespacettg_1_1meta.html#a8ae5d2c1fa1373a399e7cf1a27dd696f',1,'ttg::meta']]], + ['remove_5fdata_5fcopy_1124',['remove_data_copy',['../namespacettg__parsec_1_1detail.html#a8381024dd9b3d2c47224254dcf19c581',1,'ttg_parsec::detail']]], + ['remove_5fdevice_5fdata_1125',['remove_device_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a4c47b34fb972b8e3ae31f7568adb732f',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['remove_5ffrom_5fhash_1126',['remove_from_hash',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a5e5cfff313e43d3d34343c0e9f6c15f1',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['remove_5ffrom_5fowner_1127',['remove_from_owner',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a047fc1589ed77409d11c5133c17fc2e1',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['remove_5fmember_5fconst_1128',['remove_member_const',['../structboost_1_1callable__traits_1_1remove__member__const.html',1,'boost::callable_traits::remove_member_const< T >'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#adde8a30479ebeb0b4508fbf12df22845',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#af053dabf80df3a1d07ae890c8332857a',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad1f2a3f35ba676bf84fd54193b15d1bb',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#aafc7dc66b4041b4a482b63a7e4aeba3e',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ad96f2a83a495369945def3c0b108268d',1,'boost::callable_traits::detail::default_callable_traits::remove_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a75fa5421eef1756b9ac6275d6fd7a596',1,'boost::callable_traits::detail::function< T & >::remove_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a0ef90d6cf52844e1a24d5623e1884f55',1,'boost::callable_traits::detail::function_object::remove_member_const()']]], + ['remove_5fmember_5fconst_2ehpp_1129',['remove_member_const.hpp',['../remove__member__const_8hpp.html',1,'']]], + ['remove_5fmember_5fconst_5fimpl_1130',['remove_member_const_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fconst_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5fconst_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1131',['remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fconst_5ft_1132',['remove_member_const_t',['../namespaceboost_1_1callable__traits.html#a0678a0b17002581632a7ffc55facc7a4',1,'boost::callable_traits']]], + ['remove_5fmember_5fcv_1133',['remove_member_cv',['../structboost_1_1callable__traits_1_1remove__member__cv.html',1,'boost::callable_traits::remove_member_cv< T >'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a0241926775b62e2dee9031e122e1588d',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a2a8dc046e1cd2b8e38fa8d4bb7a172e8',1,'boost::callable_traits::detail::default_callable_traits::remove_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#acc9510e2ad4f29ffd391c40bfaaae062',1,'boost::callable_traits::detail::function< T & >::remove_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a9db74e5234ce793477a22b662863a658',1,'boost::callable_traits::detail::function_object::remove_member_cv()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a3dd59cc3d63c18b2e58752c9ce25fea2',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a2d018156e1eb66fde5b4238dc801ac94',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#adce6273e25d46c4eba1b26444bad41f0',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()']]], + ['remove_5fmember_5fcv_2ehpp_1134',['remove_member_cv.hpp',['../remove__member__cv_8hpp.html',1,'']]], + ['remove_5fmember_5fcv_5fimpl_1135',['remove_member_cv_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fcv_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5fcv_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1136',['remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fcv_5ft_1137',['remove_member_cv_t',['../namespaceboost_1_1callable__traits.html#a0fb28df325d105d5179e024ce94901e5',1,'boost::callable_traits']]], + ['remove_5fmember_5fpointer_1138',['remove_member_pointer',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a54384b60b37da46a7127fcd1ded701dd',1,'boost::callable_traits::detail::default_callable_traits']]], + ['remove_5fmember_5freference_1139',['remove_member_reference',['../structboost_1_1callable__traits_1_1remove__member__reference.html',1,'boost::callable_traits::remove_member_reference< T >'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#af4afbd41f03d455fb7c9e893804a0f71',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#aeb501e39a154a7b6902cdd8c60aee85c',1,'boost::callable_traits::detail::function< T & >::remove_member_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a820899d10d2eb6c7d9a5990bac70115f',1,'boost::callable_traits::detail::function_object::remove_member_reference()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ae5bb7feb47e583ffbbd4b18866b0237b',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#aa51f65f9df036f0bd410688aac9f2c02',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a9907a8bfe83f9a66921be983cc6b6247',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()']]], + ['remove_5fmember_5freference_2ehpp_1140',['remove_member_reference.hpp',['../remove__member__reference_8hpp.html',1,'']]], + ['remove_5fmember_5freference_5fimpl_1141',['remove_member_reference_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5freference_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5freference_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1142',['remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typenamcb09f71f583ed9400b45e4d1a52d5e8f.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5freference_5ft_1143',['remove_member_reference_t',['../namespaceboost_1_1callable__traits.html#aa30ad0dfc36fc68c98032dd958dd8c50',1,'boost::callable_traits']]], + ['remove_5fmember_5fvolatile_1144',['remove_member_volatile',['../structboost_1_1callable__traits_1_1remove__member__volatile.html',1,'boost::callable_traits::remove_member_volatile< T >'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a8670eb56c77103d524331efe7b97e696',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#aefee0f0ab39c16bae4fa580a8265a3e9',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a9c7b26d5f3e14f4f11db43304b38b69c',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad07e9a337071e15c56d9760680ac6655',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a10979d7ab9f0662b0af712d5f0481c26',1,'boost::callable_traits::detail::function_object::remove_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a2fb3770d07326afcd6619929dacc1880',1,'boost::callable_traits::detail::default_callable_traits::remove_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#aa1ed8f23b8c21cd5a336204cca1ba421',1,'boost::callable_traits::detail::function< T & >::remove_member_volatile()']]], + ['remove_5fmember_5fvolatile_2ehpp_1145',['remove_member_volatile.hpp',['../remove__member__volatile_8hpp.html',1,'']]], + ['remove_5fmember_5fvolatile_5fimpl_1146',['remove_member_volatile_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fvolatile_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5fvolatile_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1147',['remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fvolatile_5ft_1148',['remove_member_volatile_t',['../namespaceboost_1_1callable__traits.html#a4f99984effef7c9d8b85a31c936da24d',1,'boost::callable_traits']]], + ['remove_5fnoexcept_1149',['remove_noexcept',['../structboost_1_1callable__traits_1_1remove__noexcept.html',1,'boost::callable_traits::remove_noexcept< T >'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a22d6b360b3cf3c7ede9d0f5198194264',1,'boost::callable_traits::detail::default_callable_traits::remove_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#ae31dc9306043283cfb9c7f69d2135fea',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a0f0360db490a81d06404276636fead76',1,'boost::callable_traits::detail::function_object::remove_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a44ee987ddc70d39abfa6eb7097e9b1ff',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a2278d0a660db701152adb402849db26a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#aa70bf8a8a36d463b33a31e76c5bf138a',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#aa57985d7908f77eb9f078dd7363070c8',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a94ce40fa72b8d7138add42b4a2574e17',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()']]], + ['remove_5fnoexcept_2ehpp_1150',['remove_noexcept.hpp',['../remove__noexcept_8hpp.html',1,'']]], + ['remove_5fnoexcept_5fimpl_1151',['remove_noexcept_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fnoexcept_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fnoexcept_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1152',['remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html',1,'boost::callable_traits::detail']]], + ['remove_5fnoexcept_5ft_1153',['remove_noexcept_t',['../namespaceboost_1_1callable__traits.html#aff772390c1cdf350ff5ae3a53f213cff',1,'boost::callable_traits']]], + ['remove_5fpointer_5ft_1154',['remove_pointer_t',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#ac3914c5ccaed380eacbac14729d7b0d0',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['remove_5freference_1155',['remove_reference',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a775ad7c4b9a9e4bcf7bfdc29abbca3bf',1,'boost::callable_traits::detail::default_callable_traits']]], + ['remove_5ftransaction_5fsafe_1156',['remove_transaction_safe',['../structboost_1_1callable__traits_1_1remove__transaction__safe.html',1,'boost::callable_traits::remove_transaction_safe< T >'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a85ba72bff11c5d007db20b3fb63faba9',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a1bc46e82efbd3cf93da372c77bd5f35a',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a40344adb2e26bc6cc291b65c0e3cfa22',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a422d6093367512ff9b5125e6c851e2a2',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#abf5d58d3b3be3be78ad6ece0e9567392',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1810ba29d844743fa77c9bdbaa699164',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#afa4708ce287553510864ab7a9853e539',1,'boost::callable_traits::detail::function_object::remove_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa00843b0a23cd3f45c73cb38a2811b2f',1,'boost::callable_traits::detail::default_callable_traits::remove_transaction_safe()']]], + ['remove_5ftransaction_5fsafe_2ehpp_1157',['remove_transaction_safe.hpp',['../remove__transaction__safe_8hpp.html',1,'']]], + ['remove_5ftransaction_5fsafe_5fimpl_1158',['remove_transaction_safe_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5ftransaction_5fsafe_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5ftransaction_5fsafe_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1159',['remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html',1,'boost::callable_traits::detail']]], + ['remove_5ftransaction_5fsafe_5ft_1160',['remove_transaction_safe_t',['../namespaceboost_1_1callable__traits.html#ae59ebcc4c2d8e0c453643baf810c8d62',1,'boost::callable_traits']]], + ['remove_5fvarargs_1161',['remove_varargs',['../structboost_1_1callable__traits_1_1remove__varargs.html',1,'boost::callable_traits::remove_varargs< T >'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ac23c30306dd842467149c4b72f071b9c',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a81223ff3e707b947edebc9a0cd4dfa89',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3de4fb1df2a368e231b3cb202efded58',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a0015b71c4f3d4942af9a27486e25a9ab',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a7c9a729e56d73f7c191371c1e155573a',1,'boost::callable_traits::detail::default_callable_traits::remove_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a6f3b474f668863e620665860dd56657a',1,'boost::callable_traits::detail::function< T & >::remove_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a21fc4f8e205ce2bd1adcc1563df37573',1,'boost::callable_traits::detail::function_object::remove_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#acf9103b5910fad1b8cf08ee8b7154e2a',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a7626216c23690e724a9c90ec6de7fb09',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()']]], + ['remove_5fvarargs_2ehpp_1162',['remove_varargs.hpp',['../remove__varargs_8hpp.html',1,'']]], + ['remove_5fvarargs_5fimpl_1163',['remove_varargs_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fvarargs_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fvarargs_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1164',['remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html',1,'boost::callable_traits::detail']]], + ['remove_5fvarargs_5ft_1165',['remove_varargs_t',['../namespaceboost_1_1callable__traits.html#a2f15db8b1952bcc4c302886edcdd9c22',1,'boost::callable_traits']]], + ['remove_5fvolatile_5fflag_1166',['remove_volatile_flag',['../namespaceboost_1_1callable__traits_1_1detail.html#adcc68e074d5a33012007a80ca4e3ece0',1,'boost::callable_traits::detail']]], + ['rend_1167',['rend',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#ac7dda7054167814e2b5f8877e805e7b6',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['replace_5fargs_1168',['replace_args',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#aedd6404b0a4f9c8873c6f37508cd9283',1,'boost::callable_traits::detail::function_object::replace_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1af34f6df2806866123a7942bc00646a',1,'boost::callable_traits::detail::function< T & >::replace_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aae39f949f83ae2cbffa7d24de1e78481',1,'boost::callable_traits::detail::default_callable_traits::replace_args()']]], + ['reset_1169',['reset',['../structttg__parsec_1_1_buffer.html#aadaad9445e633628314b086ce937bd74',1,'ttg_parsec::Buffer::reset(std::size_t n)'],['../structttg__parsec_1_1_buffer.html#a53652e3c91749e8000f4381b04eeeb3a',1,'ttg_parsec::Buffer::reset(T *ptr, std::size_t n=1)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#ac3a0cf2f50dc087ae3bd9abab25f2250',1,'ttg_parsec::detail::ptr_impl::reset()'],['../structttg__madness_1_1_buffer.html#a4f5a8b92e6f5f9f5ebafb626956b8476',1,'ttg_madness::Buffer::reset()'],['../structttg__parsec_1_1_ptr.html#a74bc158b282e380ed91962afe75a7d2f',1,'ttg_parsec::Ptr::reset()'],['../structttg__madness_1_1_buffer.html#aa7440faaf5d1dd71e046cb59f9766c9f',1,'ttg_madness::Buffer::reset()'],['../classttg_1_1detail_1_1_traverse.html#a22d05df03933ab48f7fd671213b8b9c1',1,'ttg::detail::Traverse::reset()']]], + ['reset_5fparsec_5fdata_1170',['reset_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a78b5cae1d1bb607847c95cfe50d4dfe4',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['reset_5freaders_1171',['reset_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3b04f6116bfe07ada540a0e36a516588',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['result_1172',['result',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#a62054bdb5b8c0ea6608703170278c5c0',1,'boost::callable_traits::detail::is_invocable_r_impl::result()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#a42fa8aa7da99acdf628301698c0a7b0b',1,'boost::callable_traits::detail::is_invocable_impl::result()']]], + ['resumable_5ftask_1173',['resumable_task',['../structttg_1_1resumable__task.html#a701b40392630bb526b9b820d436fe073',1,'ttg::resumable_task::resumable_task()'],['../structttg_1_1resumable__task.html',1,'ttg::resumable_task']]], + ['resumable_5ftask_20coroutine_1174',['resumable_task coroutine',['../group__resumable__task.html',1,'']]], + ['resumable_5ftask_5fevents_1175',['resumable_task_events',['../structttg_1_1resumable__task__events.html#a5c06d3d66a6c36b8ac1b904b38815126',1,'ttg::resumable_task_events::resumable_task_events()'],['../structttg_1_1resumable__task__state.html#a1c2c29df70177400e62f1c82de7cb8be',1,'ttg::resumable_task_state::resumable_task_events()'],['../group__resumable__task.html#gad2da4e87063e853786de5c879f00f49a',1,'ttg::resumable_task_events(Events &&...) -> resumable_task_events< sizeof...(Events)>'],['../structttg_1_1resumable__task__events.html',1,'ttg::resumable_task_events< N >']]], + ['resumable_5ftask_5fstate_1176',['resumable_task_state',['../structttg_1_1resumable__task__state.html#a2435a44fe942f6509d6df2df44017cc9',1,'ttg::resumable_task_state::resumable_task_state(resumable_task_state &&)=delete'],['../structttg_1_1resumable__task__state.html#aa48d5b8e410659042c28ce305a0ffb1a',1,'ttg::resumable_task_state::resumable_task_state(const resumable_task_state &)=delete'],['../structttg_1_1resumable__task__state.html#a657799f82f6f9aa8868ec71749e47188',1,'ttg::resumable_task_state::resumable_task_state() noexcept=default'],['../structttg_1_1resumable__task__state.html',1,'ttg::resumable_task_state']]], + ['resumabletask_1177',['ResumableTask',['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922a15330ec8fb4a55918f2e4162d2dbdb21',1,'ttg']]], + ['return_5ftype_1178',['return_type',['../structboost_1_1callable__traits_1_1return__type.html',1,'boost::callable_traits::return_type< T >'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#aa78339f8fd0679fd202021f4db4d9299',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a5116e8ed582c429b0714637641001a8c',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a37f827382efe0f9596d1a9dab1e2d58d',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#ab232aabd9f794840492ffb6bba1ac883',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#aba9f759d790b61c705a230e484994054',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#aa73d501e66d0011b271a16f28ca33671',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a5d327a72bbb91b52ca224c777316b48c',1,'boost::callable_traits::detail::pmd< D T::* >::return_type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aefb99865c2723e25bac30f2ec14cbc84',1,'boost::callable_traits::detail::default_callable_traits::return_type()']]], + ['return_5ftype_2ehpp_1179',['return_type.hpp',['../return__type_8hpp.html',1,'']]], + ['return_5ftype_5fimpl_1180',['return_type_impl',['../structboost_1_1callable__traits_1_1detail_1_1return__type__impl.html',1,'boost::callable_traits::detail']]], + ['return_5ftype_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20return_5ftype_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1181',['return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html',1,'boost::callable_traits::detail']]], + ['return_5ftype_5ft_1182',['return_type_t',['../namespaceboost_1_1callable__traits.html#a268167decdb5ef3722fad1ed1c374d4a',1,'boost::callable_traits']]], + ['return_5fvoid_1183',['return_void',['../structttg_1_1resumable__task__state.html#a8a92992d8037d8d1a60e77a77cbe9aec',1,'ttg::resumable_task_state']]], + ['reverse_5fiterator_1184',['reverse_iterator',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a5130a00ef3e5906087cc2fc2fe8d2734',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['rma_5fdelayed_5factivate_1185',['rma_delayed_activate',['../classttg__parsec_1_1detail_1_1rma__delayed__activate.html#aecefc63d0ab2e79c5eca008a55113277',1,'ttg_parsec::detail::rma_delayed_activate::rma_delayed_activate()'],['../classttg__parsec_1_1detail_1_1rma__delayed__activate.html',1,'ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >']]], + ['root_1186',['root',['../classttg_1_1_binary_spanning_tree.html#a60c79c0dfd1e45ccb6b9395ca2bbb5f6',1,'ttg::BinarySpanningTree']]], + ['rref_5f_1187',['rref_',['../namespaceboost_1_1callable__traits_1_1detail.html#a19ec0de1501c4010a1a2036f1d3e9b17',1,'boost::callable_traits::detail']]], + ['run_2eh_1188',['run.h',['../run_8h.html',1,'']]], + ['runtime_1189',['runtime',['../classttg__parsec_1_1_t_t.html#afd276832da510057edde64f8da369d79',1,'ttg_parsec::TT']]], + ['runtime_1190',['Runtime',['../namespacettg.html#a516aa15683e63c7039e8dbdd057bbff6',1,'ttg']]], + ['runtime_5ftraits_1191',['runtime_traits',['../structttg_1_1runtime__traits.html',1,'ttg']]], + ['runtime_5ftraits_3c_20runtime_3a_3amadworld_20_3e_1192',['runtime_traits< Runtime::MADWorld >',['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html',1,'ttg']]], + ['runtime_5ftraits_3c_20runtime_3a_3aparsec_20_3e_1193',['runtime_traits< Runtime::PaRSEC >',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html',1,'ttg']]], + ['runtimes_2eh_1194',['runtimes.h',['../runtimes_8h.html',1,'']]] +]; diff --git a/dox-master/search/all_12.html b/dox-master/search/all_12.html new file mode 100644 index 000000000..ab934722c --- /dev/null +++ b/dox-master/search/all_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_12.js b/dox-master/search/all_12.js new file mode 100644 index 000000000..728246e81 --- /dev/null +++ b/dox-master/search/all_12.js @@ -0,0 +1,130 @@ +var searchData= +[ + ['save_1195',['save',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a9d92c0e615c5a85798d8a2ba585583f0',1,'ttg::detail::boost_optimized_oarchive::save(const T &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a5f214e2de5e85d55fdb2bc78080d3b57',1,'ttg::detail::boost_optimized_oarchive::save(const bool t)']]], + ['save_5farray_1196',['save_array',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#ae4ff86a0d6b912a78f8da844c828332b',1,'ttg::detail::boost_optimized_oarchive']]], + ['save_5fbinary_1197',['save_binary',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a2e37ee13b62f880f890fae8811c80674',1,'ttg::detail::boost_optimized_oarchive']]], + ['save_5fobject_1198',['save_object',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#aaabd124d4141916057c0fd9c5df4098e',1,'ttg::detail::boost_optimized_oarchive']]], + ['save_5foverride_1199',['save_override',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a76c50d19bad3562ca67ef700e462b816',1,'ttg::detail::boost_optimized_oarchive::save_override(const T &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a9f31369cc9e4d4c27b66752a8e364c24',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::class_id_optional_type &)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a44be07e6001a2f536115ae20eae23cdb',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::version_type &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a6b8092cd3432cc9802ea430a2227d1a2',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::class_id_reference_type &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a8e3aa569eb2a0f5ce398d7bc08202ded',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::class_id_type &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a6d7cc2fded70cdce156983d50209a5a8',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::serialization::item_version_type &t)']]], + ['scope_1200',['scope',['../namespacettg.html#a2696750161ae2e0b5fb4ea1543305793',1,'ttg::scope()'],['../structttg__parsec_1_1devicescratch.html#a636bc7b22daefccf2054d829d3d54cf6',1,'ttg_parsec::devicescratch::scope()']]], + ['self_1201',['self',['../structttg__parsec_1_1detail_1_1_parsec_t_t_base.html#a4b3d6cbf2915257d3acf3e7890911af5',1,'ttg_parsec::detail::ParsecTTBase::self()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html#a844cbac41fc9fab964ad5535df09d02e',1,'ttg_parsec::detail::ttg_data_copy_self_t::self()']]], + ['send_1202',['send',['../namespacettg.html#a64fbfb8618ef226f6b3d49a7a46db0cb',1,'ttg::send(ttg::Out< void, void > &t)'],['../namespacettg.html#a195eb3c0d9b0118dd7c94c0463840734',1,'ttg::send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)'],['../classttg_1_1_out.html#af330f48bf60a9085904105144481a2ff',1,'ttg::Out::send()'],['../namespacettg.html#ae62640862cf2ee4d008e56be67da9ffb',1,'ttg::send(const keyT &key, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#a3562b651b97a40a970c2245a187895ae',1,'ttg::send(size_t i, const keyT &key, valueT &&value)'],['../namespacettg.html#a60aecde5e6a6db849be38f31b77071ce',1,'ttg::send(const keyT &key, valueT &&value)'],['../namespacettg.html#ad47fc5b77d9442fce70f4d0f973a2316',1,'ttg::send(std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#acc6fce7dd7d6a5973cee9ce7057ce691',1,'ttg::send(std::size_t i)'],['../namespacettg.html#a1b23b6cea5360627c9f1e1e9f421bcf3',1,'ttg::send()'],['../classttg_1_1_in.html#a4403235707cfd5a633155f492d3aae98',1,'ttg::In::send(const Key &key, const Value &value)'],['../classttg_1_1_in.html#ad09d91ead43692a117c45496403eef88',1,'ttg::In::send(const Key &key, Value &&value)'],['../classttg_1_1_in.html#a6e510bdea0a0a446210c39fe14d8d7b1',1,'ttg::In::send()'],['../classttg_1_1_out.html#aa5748221b8c7a9d18d6d5c6571d775d1',1,'ttg::Out::send(const Key &key, const Value &value)'],['../classttg_1_1_out.html#a625c7a0de23fcad2afc05f19c0113bf9',1,'ttg::Out::send()']]], + ['send_5fcallback_5ftype_1203',['send_callback_type',['../classttg_1_1_in.html#a82dce7a9a73863b6ce012cfc1bb62ec3',1,'ttg::In']]], + ['sender_1204',['sender',['../structttg__parsec_1_1msg__header__t.html#aa690428b845a1794618fa74fd8f104a0',1,'ttg_parsec::msg_header_t']]], + ['sendk_1205',['sendk',['../namespacettg.html#a83562836ce105890c0e32d75cad1e421',1,'ttg::sendk(const keyT &key, ttg::Out< keyT, void > &t)'],['../namespacettg.html#a2e3d4b3eacd3d7094f888c860933d295',1,'ttg::sendk(const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ac96c4002a2a1a7d69d5e55b36296f5a7',1,'ttg::sendk(std::size_t i, const keyT &key)'],['../namespacettg.html#abdc6fbc3d6cbbd012f57f6e2df31800d',1,'ttg::sendk(const keyT &key)'],['../classttg_1_1_in.html#ab75830f8933fc9ae8208212a86697cb1',1,'ttg::In::sendk()'],['../classttg_1_1_out.html#aed12ea58d091d3d704f70c2d53758876',1,'ttg::Out::sendk(const Key &key)']]], + ['sendv_1206',['sendv',['../classttg_1_1_out.html#a48580dea8368db22508dce4ad531c6f4',1,'ttg::Out::sendv()'],['../namespacettg.html#a8f6699133cf34d99b17a41af9834a272',1,'ttg::sendv(valueT &&value, ttg::Out< void, valueT > &t)'],['../namespacettg.html#afc0450c12df225eba0e9974b3702330d',1,'ttg::sendv(valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../classttg_1_1_in.html#a8d3f621c6e92e502dfdc3fb21713c8b4',1,'ttg::In::sendv()'],['../namespacettg.html#ab1580e76dfe4e40b0fd85cc15b985e87',1,'ttg::sendv(std::size_t i, valueT &&value)'],['../namespacettg.html#a840c55778c16434fb5c06576e8ad8631',1,'ttg::sendv(valueT &&value)'],['../classttg_1_1_in.html#a8c92ed6a1e66c429110f68d9aa7f8b39',1,'ttg::In::sendv()']]], + ['serialization_2eh_1207',['serialization.h',['../serialization_8h.html',1,'']]], + ['serialize_1208',['serialize',['../structttg_1_1_multi_index.html#a3fab142820c81bb85d286587eed3be7e',1,'ttg::MultiIndex']]], + ['serialize_5fsize_5fis_5fconst_1209',['serialize_size_is_const',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#a61849848e2901e6a12ebc76afc481b0b',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::serialize_size_is_const()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#ad82e5c2f338fab30789f4175700e5540',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::serialize_size_is_const()']]], + ['set_1210',['set',['../classttg_1_1_terminal_base.html#a64964f33a327a9c08708c706788662ca',1,'ttg::TerminalBase::set()'],['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a56668bcbba669892e2d7273a0f5aaba7',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool::set()']]], + ['set_5farg_1211',['set_arg',['../classttg__madness_1_1_t_t.html#a05d70ca8ff70c5ae296a00d0d227b663',1,'ttg_madness::TT::set_arg(const Key &key, Value &&value)'],['../classttg__madness_1_1_t_t.html#a38eb3800ac135105f25ea0891ecc9e6b',1,'ttg_madness::TT::set_arg(const Key &key)'],['../classttg__madness_1_1_t_t.html#a17e4e2dd038e22543aec73839ec330f7',1,'ttg_madness::TT::set_arg(Value &&value)'],['../classttg__madness_1_1_t_t.html#a5768a6cab82e3873316bff0f06db013f',1,'ttg_madness::TT::set_arg()'],['../classttg__parsec_1_1_t_t.html#a27f20ea83b11069c4ea56c42fccfe3b2',1,'ttg_parsec::TT::set_arg(const Key &key, Value &&value)'],['../classttg__parsec_1_1_t_t.html#af1f4229b3d84d71a48ece3f068365517',1,'ttg_parsec::TT::set_arg(Value &&value)'],['../classttg__parsec_1_1_t_t.html#a8696fc286d0a8248757920ddb598607a',1,'ttg_parsec::TT::set_arg()'],['../classttg__parsec_1_1_t_t.html#a1a8d8fe6d0664b0e206bfc72a11bb66c',1,'ttg_parsec::TT::set_arg(const Key &key)']]], + ['set_5farg_5ffrom_5fmsg_1212',['set_arg_from_msg',['../classttg__parsec_1_1_t_t.html#a173a54b3342739c9d6f1367a4fc9e04c',1,'ttg_parsec::TT']]], + ['set_5farg_5ffrom_5fmsg_5fkeylist_1213',['set_arg_from_msg_keylist',['../classttg__parsec_1_1_t_t.html#a4973cb13ab7db14536d2a634c6557508',1,'ttg_parsec::TT']]], + ['set_5farg_5fimpl_1214',['set_arg_impl',['../classttg__parsec_1_1_t_t.html#a39b792e18cfba77a3d94d318f1ce2bc2',1,'ttg_parsec::TT']]], + ['set_5farg_5flocal_1215',['set_arg_local',['../classttg__parsec_1_1_t_t.html#a546005174499288d1c2307067478b8fa',1,'ttg_parsec::TT::set_arg_local(const Key &key, Value &&value)'],['../classttg__parsec_1_1_t_t.html#ac196c42345c2a26553160fc7bced4276',1,'ttg_parsec::TT::set_arg_local(Value &&value)'],['../classttg__parsec_1_1_t_t.html#a072b9a2cc43432619f1a6c84ea1f3c25',1,'ttg_parsec::TT::set_arg_local(const Key &key, const Value &value)'],['../classttg__parsec_1_1_t_t.html#a5f2ebc27ac380856caeafe78f1b16621',1,'ttg_parsec::TT::set_arg_local(const Value &value)'],['../classttg__parsec_1_1_t_t.html#a969571b7f24346401592dabd18b0c106',1,'ttg_parsec::TT::set_arg_local(std::shared_ptr< const Value > &valueptr)']]], + ['set_5farg_5flocal_5fimpl_1216',['set_arg_local_impl',['../classttg__parsec_1_1_t_t.html#af4ed0d3a9174b04e79663fa6b6f0c3f9',1,'ttg_parsec::TT']]], + ['set_5fargs_1217',['set_args',['../classttg__madness_1_1_t_t.html#a6440cd232af69a10f31175e1b3934fd4',1,'ttg_madness::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)'],['../classttg__madness_1_1_t_t.html#a6916a9cc859e30a2ddeb82a4ce433d02',1,'ttg_madness::TT::set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)'],['../classttg__madness_1_1_t_t.html#a3f4b5f46891575e405c6b732af3978df',1,'ttg_madness::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)'],['../classttg__madness_1_1_t_t.html#a7f078f63516f6d193d4b96ab5b07931b',1,'ttg_madness::TT::set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)'],['../classttg__parsec_1_1_t_t.html#a77558a26126c0268b7de0fa952c2a011',1,'ttg_parsec::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)'],['../classttg__parsec_1_1_t_t.html#a55750f8b6571f5c0cef353765808971f',1,'ttg_parsec::TT::set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)'],['../classttg__parsec_1_1_t_t.html#afecc07a50f5bd72cea7ea61b7e11ffe9',1,'ttg_parsec::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)'],['../classttg__parsec_1_1_t_t.html#a286e463de184edf145d5db1d02b88fb7',1,'ttg_parsec::TT::set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)']]], + ['set_5fargstream_5fsize_1218',['set_argstream_size',['../classttg__madness_1_1_t_t.html#a0c4e54d1c1b6e32dd11e69ba63d5a3a4',1,'ttg_madness::TT::set_argstream_size(std::size_t size)'],['../classttg__madness_1_1_t_t.html#a8f075950048f558efb0157f8a09aa0e5',1,'ttg_madness::TT::set_argstream_size(const Key &key, std::size_t size)'],['../classttg__parsec_1_1_t_t.html#aa79eee0b447142b40ffac7f989993e26',1,'ttg_parsec::TT::set_argstream_size(const Key &key, std::size_t size)'],['../classttg__parsec_1_1_t_t.html#aac55d15cd535ca570489e0d7518132fd',1,'ttg_parsec::TT::set_argstream_size(std::size_t size)']]], + ['set_5fcallback_1219',['set_callback',['../classttg_1_1_in_terminal_base.html#a731636c093e72857d3f689800822785e',1,'ttg::InTerminalBase::set_callback()'],['../classttg_1_1_in.html#a262ec2a1b04c243cee6594ccf298c1e4',1,'ttg::In::set_callback()']]], + ['set_5fcmd_1220',['set_cmd',['../classttg_1_1_debugger.html#a0348965e839512d046e097894042aa6e',1,'ttg::Debugger']]], + ['set_5fcurrent_5fdevice_1221',['set_current_device',['../structttg__madness_1_1_buffer.html#af4997ff30c86321022cd5b89b4a7cd53',1,'ttg_madness::Buffer::set_current_device()'],['../structttg__parsec_1_1_buffer.html#a33e153c74427dbf044b7b64f545f188d',1,'ttg_parsec::Buffer::set_current_device()']]], + ['set_5fdebug_5fon_5fsignal_1222',['set_debug_on_signal',['../classttg_1_1_debugger.html#af68c458e2e2cf6faff79609896ef8faa',1,'ttg::Debugger']]], + ['set_5fdefault_5fdebugger_1223',['set_default_debugger',['../classttg_1_1_debugger.html#a348f33c40ae29063b35d22c7f7562c4f',1,'ttg::Debugger']]], + ['set_5fdefault_5fworld_1224',['set_default_world',['../namespacettg_1_1detail.html#a02d5a7382195e8d7f2d47769e075268f',1,'ttg::detail::set_default_world(WorldT &world)'],['../namespacettg_1_1detail.html#a0e1bc5524a35cf2f51665fbc49ca1013',1,'ttg::detail::set_default_world(WorldT &&world)']]], + ['set_5fdefer_5fwriter_1225',['set_defer_writer',['../classttg__madness_1_1_t_t.html#aa6580090536488ede8cb2ea2c7042e9a',1,'ttg_madness::TT::set_defer_writer()'],['../classttg__parsec_1_1_t_t.html#a8f85a26d646016bbaae37bb94b4097f0',1,'ttg_parsec::TT::set_defer_writer(bool value)']]], + ['set_5fdevicemap_1226',['set_devicemap',['../classttg__parsec_1_1_t_t.html#a9e1555c50d6b2dac3246b574345d9837',1,'ttg_parsec::TT']]], + ['set_5fdummy_1227',['set_dummy',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a2b31b3ad07ff4fafc60935e8cf11675c',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['set_5fexec_1228',['set_exec',['../classttg_1_1_debugger.html#afc1422f751270f66c54fd067c5195a64',1,'ttg::Debugger']]], + ['set_5fexit_5fon_5fsignal_1229',['set_exit_on_signal',['../classttg_1_1_debugger.html#aa42a248eb7057cc7aa6594e87dd85733',1,'ttg::Debugger']]], + ['set_5ffunction_5fqualifiers_1230',['set_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#af0cc12a89c80b776a3577b5c78038386',1,'boost::callable_traits::detail']]], + ['set_5ffunction_5fqualifiers_2ehpp_1231',['set_function_qualifiers.hpp',['../set__function__qualifiers_8hpp.html',1,'']]], + ['set_5ffunction_5fqualifiers_5ft_1232',['set_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fin_1233',['set_in',['../classttg_1_1_edge.html#a91e1e8540c48ae0b472204ed787da2c6',1,'ttg::Edge']]], + ['set_5finput_1234',['set_input',['../classttg_1_1_t_t_base.html#afddc3ce47d7d57b4d68f378d699e85d6',1,'ttg::TTBase']]], + ['set_5finput_5freducer_1235',['set_input_reducer',['../classttg__parsec_1_1_t_t.html#a588425d2ab4284e1903819c559e0ca44',1,'ttg_parsec::TT::set_input_reducer()'],['../classttg__madness_1_1_t_t.html#aa1e7f22664f6bb78b3ce9f2b376fdde0',1,'ttg_madness::TT::set_input_reducer(Reducer &&reducer)'],['../classttg__madness_1_1_t_t.html#a2355d192a719bd4843099c94d2421d7f',1,'ttg_madness::TT::set_input_reducer(Reducer &&reducer, std::size_t size)'],['../classttg__parsec_1_1_t_t.html#a71bb9d9d6ab0b1bf962245aa1f4c5bf2',1,'ttg_parsec::TT::set_input_reducer()']]], + ['set_5fkeymap_1236',['set_keymap',['../classttg__madness_1_1_t_t.html#a9efb6bb49123407acf8360b0daf1a624',1,'ttg_madness::TT::set_keymap()'],['../classttg__parsec_1_1_t_t.html#a0f55c24b206b8a9590c9a430e721417b',1,'ttg_parsec::TT::set_keymap()']]], + ['set_5flazy_5fpull_1237',['set_lazy_pull',['../classttg_1_1_t_t_base.html#a9f365364234f5aa49cec380f95f58dde',1,'ttg::TTBase']]], + ['set_5flazy_5fpull_5finstance_1238',['set_lazy_pull_instance',['../classttg_1_1_t_t_base.html#a7fad44ff0bcccf06190fd6ce47a69d74',1,'ttg::TTBase']]], + ['set_5fmember_5ffunction_5fqualifiers_1239',['set_member_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#adf595588ffe7220a87a1bfe648d3e850',1,'boost::callable_traits::detail']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_1240',['set_member_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__member__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1241',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html',1,'']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1242',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html',1,'']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1243',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html',1,'']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1244',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html',1,'']]], + ['set_5fname_1245',['set_name',['../classttg_1_1_t_t_base.html#a90b439df002bc5f19b7567e9a202fb9f',1,'ttg::TTBase']]], + ['set_5fnext_5ftask_1246',['set_next_task',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#af6d1189007c4cec4b1a6dcfc20cd6276',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['set_5fout_1247',['set_out',['../classttg_1_1_edge.html#afb836fe2f992244f19a395e6f6dd88fc',1,'ttg::Edge']]], + ['set_5foutput_1248',['set_output',['../classttg_1_1_t_t_base.html#a8df5f854fcc708a526c7d616be00d1a6',1,'ttg::TTBase']]], + ['set_5foutputs_5ftls_5fptr_1249',['set_outputs_tls_ptr',['../classttg_1_1_t_t_base.html#afe69f18e0c427bdb7fe86b1d9fde283e',1,'ttg::TTBase::set_outputs_tls_ptr()'],['../classttg_1_1_t_t_base.html#a1edef76017de6943b185341e88b3c535',1,'ttg::TTBase::set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)']]], + ['set_5fowner_1250',['set_owner',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a207f108c7fbaaeb13af6d137275bca46',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['set_5fprefix_1251',['set_prefix',['../classttg_1_1_debugger.html#a07a3706bb85cedfba290939231be57c6',1,'ttg::Debugger::set_prefix(const char *p)'],['../classttg_1_1_debugger.html#a67906019d5563628c7642d1d96318f75',1,'ttg::Debugger::set_prefix(int p)']]], + ['set_5fpriomap_1252',['set_priomap',['../classttg__madness_1_1_t_t.html#ad4fc5091ff9dc81dad0584d9a092dc52',1,'ttg_madness::TT::set_priomap()'],['../classttg__parsec_1_1_t_t.html#abd0b09e69b0668e090e44e43b3184825',1,'ttg_parsec::TT::set_priomap()']]], + ['set_5fqualifiers_1253',['set_qualifiers',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a3a4733aff57d3392676539d3a3ab80ad',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad987a0d4539b463384da57de623dd68b',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a575ccc55dd1f732f3a89baf3d021b815',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a3f8630ca31fe938820615cd64dbbadd3',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()']]], + ['set_5fsize_1254',['set_size',['../namespacettg.html#ae96ab8dfc75550533beda7e2644dc00f',1,'ttg::set_size(const std::size_t size)'],['../namespacettg.html#ae3212bd318de893c930ded0ad4256bbb',1,'ttg::set_size(std::size_t i, const std::size_t size)'],['../namespacettg.html#a110fa791266faf4d8dcf7708acdfa082',1,'ttg::set_size(const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#af31d31d8a37261b9f89f1852e9e3c10f',1,'ttg::set_size(const std::size_t size, ttg::Out< out_keyT, out_valueT > &t)'],['../namespacettg.html#a55109d6c20758997453c65a95f2a7ad5',1,'ttg::set_size(const keyT &key, const std::size_t size)'],['../namespacettg.html#ad67789c84b04279fa9a726df9851f19c',1,'ttg::set_size(std::size_t i, const keyT &key, const std::size_t size)'],['../namespacettg.html#a9e9e5ed6c31fc432ee2dc8ed817b49f1',1,'ttg::set_size(const keyT &key, const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#acc1a9858c19ed9d7235823874aa90f74',1,'ttg::set_size(const keyT &key, const std::size_t size, ttg::Out< keyT, out_valueT > &t)'],['../classttg_1_1_in_terminal_base.html#ab8533204744ab2554739efc51bc2fe49',1,'ttg::InTerminalBase::set_size(const Key &key, std::size_t size)'],['../classttg_1_1_in_terminal_base.html#a2160cff4be6f40e326c050f948f842a5',1,'ttg::InTerminalBase::set_size(std::size_t size)'],['../classttg_1_1_out_terminal_base.html#aa35f0490c2b11205ca84064449290fd8',1,'ttg::OutTerminalBase::set_size(const Key &key, std::size_t size)'],['../classttg_1_1_out_terminal_base.html#a5402bd38e5c88b881dfccc5be365c93c',1,'ttg::OutTerminalBase::set_size(std::size_t size)']]], + ['set_5fstatic_5fargstream_5fsize_1255',['set_static_argstream_size',['../classttg__parsec_1_1_t_t.html#af135ccb986000912700f3c1650f86928',1,'ttg_parsec::TT::set_static_argstream_size()'],['../classttg__madness_1_1_t_t.html#a72b1f09c71a8d73d67cfe323fcfb1adf',1,'ttg_madness::TT::set_static_argstream_size()']]], + ['set_5fterminals_1256',['set_terminals',['../classttg_1_1_t_t_base.html#a16448e36768017438ee633ffabd121ce',1,'ttg::TTBase::set_terminals(const terminalsT &terms, const setfuncT setfunc)'],['../classttg_1_1_t_t_base.html#a565b53d214490f993ee0f35052ed2319',1,'ttg::TTBase::set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)']]], + ['set_5ftrace_5fall_1257',['set_trace_all',['../classttg_1_1_t_t_base.html#acbd4aeb9e9d6d4a112a6c8e5fa5686f4',1,'ttg::TTBase']]], + ['set_5ftrace_5finstance_1258',['set_trace_instance',['../classttg_1_1_t_t_base.html#a5cc88ad1f0c950e6c41908730c60f338',1,'ttg::TTBase']]], + ['set_5ftraceback_5fon_5fsignal_1259',['set_traceback_on_signal',['../classttg_1_1_debugger.html#afc17873fd71c79682271efdf13c90b56',1,'ttg::Debugger']]], + ['set_5fvarargs_5ffunction_5fqualifiers_1260',['set_varargs_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#a2c393b02f3818fa85bf4cab2bc700319',1,'boost::callable_traits::detail']]], + ['set_5fvarargs_5ffunction_5fqualifiers_5ft_1261',['set_varargs_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_1262',['set_varargs_member_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#a894f88a8d042850adfba402e1730859c',1,'boost::callable_traits::detail']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_1263',['set_varargs_member_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__varargs__member__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1264',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html',1,'']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1265',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html',1,'']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1266',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html',1,'']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1267',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html',1,'']]], + ['set_5fwait_5ffor_5fdebugger_1268',['set_wait_for_debugger',['../classttg_1_1_debugger.html#a4520f97c7678af82ad4f5ea5a8290eac',1,'ttg::Debugger']]], + ['setsize_5fcallback_1269',['setsize_callback',['../classttg_1_1_in_terminal_base.html#a6624aa2fb8ccc73351e513d0b0ef4b61',1,'ttg::InTerminalBase']]], + ['setsize_5fcallback_5ftype_1270',['setsize_callback_type',['../classttg_1_1_in.html#a0e8cd123deeb7d26e6747eb34c2fd855',1,'ttg::In::setsize_callback_type()'],['../classttg_1_1_in_terminal_base.html#a83efdcf37551fb69454688a20418e544',1,'ttg::InTerminalBase::setsize_callback_type()']]], + ['sfinae_5ferror_1271',['sfinae_error',['../structboost_1_1callable__traits_1_1detail_1_1sfinae__error.html',1,'boost::callable_traits::detail']]], + ['sfinae_5ferrors_2ehpp_1272',['sfinae_errors.hpp',['../sfinae__errors_8hpp.html',1,'']]], + ['sfinae_5ftry_1273',['sfinae_try',['../namespaceboost_1_1callable__traits_1_1detail.html#af375cb06d2ed9ac7cb236174eed72f6a',1,'boost::callable_traits::detail']]], + ['sgetn_1274',['sgetn',['../classttg_1_1detail_1_1byte__istreambuf.html#a39808f7bda60de733611d1568a659824',1,'ttg::detail::byte_istreambuf']]], + ['shallow_5fdecay_1275',['shallow_decay',['../namespaceboost_1_1callable__traits_1_1detail.html#a6b8b5c8a9ea54f78d39e2094198ab85b',1,'boost::callable_traits::detail']]], + ['simple_2ecc_1276',['simple.cc',['../simple_8cc.html',1,'']]], + ['simple_5fstack_1277',['SIMPLE_STACK',['../bug_8cpp.html#a8570fe9fd85d96571f868e04f9a6971e',1,'bug.cpp']]], + ['single_5freader_1278',['SINGLE_READER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44affba7cdf47794b02ac48629f11972c43',1,'ttg_parsec::detail']]], + ['single_5fwriter_1279',['SINGLE_WRITER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a525422239d95636635b831c35d28dd75',1,'ttg_parsec::detail']]], + ['sinktt_1280',['SinkTT',['../classttg_1_1_sink_t_t.html#a0a361b75c6d7edc3645fc3784a5f6543',1,'ttg::SinkTT::SinkTT(const std::string &inname="junk")'],['../classttg_1_1_sink_t_t.html#ac77b4fb1c7c674a85220f862397ff797',1,'ttg::SinkTT::SinkTT(const input_edges_type &inedges, const std::string &inname="junk")'],['../classttg_1_1_sink_t_t.html',1,'ttg::SinkTT< keyT, input_valueT >']]], + ['size_1281',['size',['../classttg_1_1base_1_1_world_impl_base.html#afd134bac63c8ce9e2c570570a1b8a0a2',1,'ttg::base::WorldImplBase::size()'],['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ac7a5f4811d005a23302ecfb74e41feaf',1,'ttg::detail::MemoryWatchpoint_x86_64::size()'],['../classttg_1_1detail_1_1byte__istreambuf.html#af57697a75e867251de3689c568f3b50c',1,'ttg::detail::byte_istreambuf::size()'],['../classttg_1_1detail_1_1byte__ostreambuf.html#af3c685fc754966f74363a2ea61cf13b1',1,'ttg::detail::byte_ostreambuf::size()'],['../classttg_1_1detail_1_1counting__streambuf.html#af062d4e657d9593fe85c55a36150756a',1,'ttg::detail::counting_streambuf::size()'],['../structttg__parsec_1_1devicescratch.html#afc21a26692b6c270b0cceba27b7d0a2c',1,'ttg_parsec::devicescratch::size()'],['../structttg__parsec_1_1_buffer.html#a33e71a5df3d0bb02d0f4c4e608174eed',1,'ttg_parsec::Buffer::size()'],['../structttg__madness_1_1_buffer.html#aae43cf8a7f9f0339ae5b847da74ac1dd',1,'ttg_madness::Buffer::size()'],['../classttg_1_1base_1_1_world.html#a70fde546a245480a3aae93b33bce813e',1,'ttg::base::World::size()']]], + ['size_1282',['Size',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['size_1283',['size',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#aef0c689be866d909927c501560eaf14d',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::size()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#a910543bb9f617d05749166a2fa6c3fdd',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::size()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a971d93a9b8c610c0aa3eba556976dcea',1,'TCB_SPAN_NAMESPACE_NAME::span::size()'],['../classttg_1_1_binary_spanning_tree.html#a50317fa104da9be95076c49adba9e842',1,'ttg::BinarySpanningTree::size()'],['../structttg_1_1meta_1_1typelist.html#a7537cd2df1bc17c358d2fd516ce7e825',1,'ttg::meta::typelist::size()'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a834a91a810cb058282fffc120d9fa8ab',1,'TCB_SPAN_NAMESPACE_NAME::detail::size(const T(&)[N]) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a876af6f91231ae4e7e7316f5402682dc',1,'TCB_SPAN_NAMESPACE_NAME::detail::size(const C &c) -> decltype(c.size())'],['../namespacettg.html#a293bb7226707f202e735a9b3e4c76fab',1,'ttg::size()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#a2bf2a92e19c664e2f4ee53f0d8e73780',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t::size()']]], + ['size_5fbytes_1284',['size_bytes',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a9d1f1c8befff85fac9c73ac5ea83019f',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['size_5ftype_1285',['size_type',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a4868a27d2e98194918ad6dc31c543129',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['sleep_5f_1286',['sleep_',['../classttg_1_1_debugger.html#ad9bdfa6f8668a2b8a73d74d2efb67c0d',1,'ttg::Debugger']]], + ['space_1287',['space',['../classttg_1_1device_1_1_device.html#a8e2ead1c9ad53416b9fb21fec10087ef',1,'ttg::device::Device']]], + ['span_1288',['span',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#acbfef865d1c41299b35dc23de44808d7',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const span< OtherElementType, OtherExtent > &other) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a72badb933c7daf84985d9d5289858a00',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const span &other) noexcept=default'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a4c69c0137a4d3fb694e46c79c44de77a',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const Container &cont)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a174b0d1054824a3be51552bbc252d344',1,'TCB_SPAN_NAMESPACE_NAME::span::span(Container &cont)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a411b2ffa144c11ec2e285547d1a365e5',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const std::array< value_type, N > &arr) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a6aab775354a4a44766a1efeb43ba537c',1,'TCB_SPAN_NAMESPACE_NAME::span::span(std::array< value_type, N > &arr) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#aa27909bb735d366f815fff3abad16ef6',1,'TCB_SPAN_NAMESPACE_NAME::span::span(element_type(&arr)[N]) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a6cbb255fba48cdd60d1ec999afed2efa',1,'TCB_SPAN_NAMESPACE_NAME::span::span(pointer first_elem, pointer last_elem)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#abc6382e77270f22b5ff8db7bfbc17fb3',1,'TCB_SPAN_NAMESPACE_NAME::span::span(pointer ptr, size_type count)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a3631337a467ff21e1d5467b489ffa6ca',1,'TCB_SPAN_NAMESPACE_NAME::span::span() noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html',1,'TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >']]], + ['span_2eh_1289',['span.h',['../span_8h.html',1,'']]], + ['span_5fstorage_1290',['span_storage',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#a62f42edc81ec41745e1a14e6861a835b',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::span_storage()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#a48f7c2ac0fed3b78c6e5afa48d062584',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::span_storage(E *p_ptr, std::size_t p_size) noexcept'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#a62e1fa5efdcd3734fa60a86f6ab9e908',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::span_storage() noexcept=default'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#afd8aa6a1a7d82e6668bed57cd2279c94',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::span_storage()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >']]], + ['span_5fstorage_3c_20e_2c_20dynamic_5fextent_20_3e_1291',['span_storage< E, dynamic_extent >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['span_5fstorage_3c_20elementtype_2c_20extent_20_3e_1292',['span_storage< ElementType, Extent >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['splitmd_5fdata_5fdescriptor_2eh_1293',['splitmd_data_descriptor.h',['../splitmd__data__descriptor_8h.html',1,'']]], + ['splitmetadatadescriptor_1294',['SplitMetadataDescriptor',['../structttg_1_1_split_metadata_descriptor.html',1,'ttg']]], + ['sputn_1295',['sputn',['../classttg_1_1detail_1_1byte__ostreambuf.html#a4b757a53b6c0c626f0099573ee0c8d38',1,'ttg::detail::byte_ostreambuf']]], + ['static_5fid_5fto_5fop_5fmap_1296',['static_id_to_op_map',['../namespacettg__parsec.html#a22b8eb86f34e2d830353962d5a207cfd',1,'ttg_parsec']]], + ['static_5fmap_5fmutex_1297',['static_map_mutex',['../namespacettg__parsec.html#a7ca6da9af9be7a00e953eb19f5a09812',1,'ttg_parsec']]], + ['static_5fset_5farg_1298',['static_set_arg',['../classttg__parsec_1_1_t_t.html#a57f5629d5c5ce7e8b2732eab66ab35c9',1,'ttg_parsec::TT']]], + ['static_5fset_5farg_5ffct_5farg_5ft_1299',['static_set_arg_fct_arg_t',['../namespacettg__parsec.html#a1075e0fbf418d1d1f2d081cf969197cf',1,'ttg_parsec']]], + ['static_5fset_5farg_5ffct_5fcall_5ft_1300',['static_set_arg_fct_call_t',['../namespacettg__parsec.html#af29efae902d2ec162d15b946a8b69f07',1,'ttg_parsec']]], + ['static_5fset_5farg_5ffct_5ftype_1301',['static_set_arg_fct_type',['../namespacettg__parsec.html#ab3a42fadc53625d83072fb469f0669f7',1,'ttg_parsec']]], + ['stdcall_5ftag_1302',['stdcall_tag',['../structboost_1_1callable__traits_1_1detail_1_1stdcall__tag.html',1,'boost::callable_traits::detail']]], + ['stdostreamtag_1303',['StdOstreamTag',['../namespacettg_1_1detail.html#a56bab461a0cd4193a3ee5a76a7d3c813',1,'ttg::detail']]], + ['str_1304',['str',['../classttg_1_1detail_1_1_backtrace.html#adb582a944775b8221ac0502217f80e5f',1,'ttg::detail::Backtrace']]], + ['stream_1305',['stream',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a68db7b7ec605af429fa4d57e96d262e4',1,'ttg_parsec::detail::device_ptr_t::stream()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a5a10006415a5939137e342856e4e2433',1,'ttg::detail::boost_optimized_oarchive::stream()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a6658301ec903c8057803785a9bf65904',1,'ttg::detail::boost_optimized_iarchive::stream()']]], + ['stream_2eh_1306',['stream.h',['../stream_8h.html',1,'']]], + ['stream_5finfo_5ft_1307',['stream_info_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['streambuf_1308',['streambuf',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aec3ddc9343c08b46ebce2b8a9b8ced48',1,'ttg::detail::boost_optimized_iarchive::streambuf()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a26f36c1c9d554903889927cddb0e9e81',1,'ttg::detail::boost_optimized_oarchive::streambuf()']]], + ['streams_1309',['streams',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a4d9f15127f1b8b0abd2e0ef767442d66',1,'ttg_parsec::detail::parsec_ttg_task_t::streams()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#abf1c3f21f73794576635a50b2f9cf74e',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::streams()']]], + ['subspan_1310',['subspan',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a2aa7fec15728a2ac2b6f66f4ad49085e',1,'TCB_SPAN_NAMESPACE_NAME::span::subspan() const'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#ad80e39fbc8defe79880d5e24b93dcbec',1,'TCB_SPAN_NAMESPACE_NAME::span::subspan(size_type offset, size_type count=dynamic_extent) const']]], + ['subspan_5freturn_5ft_1311',['subspan_return_t',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a5453b44d03e0d5a845afac8844a26051',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['substitution_5ffailure_1312',['substitution_failure',['../structboost_1_1callable__traits_1_1detail_1_1substitution__failure.html',1,'boost::callable_traits::detail']]], + ['success_1313',['success',['../structboost_1_1callable__traits_1_1detail_1_1success.html',1,'boost::callable_traits::detail']]], + ['successors_1314',['successors',['../classttg_1_1_out_terminal_base.html#aefd00a0b4c1a24bf277b408fbe9d841b',1,'ttg::OutTerminalBase']]], + ['super_1315',['super',['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html#ae2242be24c58af2c3cc5f5b48e7dae4d',1,'ttg_parsec::detail::ttg_data_copy_self_t']]], + ['support_5fdevice_1316',['support_device',['../structttg__parsec_1_1detail_1_1device__state__t.html#abdcb4504fdd00c16c37914ddce93d640',1,'ttg_parsec::detail::device_state_t::support_device()'],['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#ac54f9673b32f68afcb1b4c5be63f2da6',1,'ttg_parsec::detail::device_state_t< true >::support_device()']]], + ['supports_5fasync_5freduction_1317',['supports_async_reduction',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#aeb731d096f19145437217fe79697e4b8',1,'ttg::runtime_traits< Runtime::PaRSEC >::supports_async_reduction()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#ae573378b7760dc8619db23717c665a9d',1,'ttg::runtime_traits< Runtime::MADWorld >::supports_async_reduction()']]], + ['supports_5fstreaming_5fterminal_1318',['supports_streaming_terminal',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#a09a57da3029cd2bef387ecad74fa893a',1,'ttg::runtime_traits< Runtime::PaRSEC >::supports_streaming_terminal()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#ae23df26b21c3635cacea38b7c2935242',1,'ttg::runtime_traits< Runtime::MADWorld >::supports_streaming_terminal()']]], + ['suspend_5falways_1319',['suspend_always',['../namespacettg.html#a114e1b4adc6d820448a181d716bd2d09',1,'ttg']]], + ['suspend_5fnever_1320',['suspend_never',['../namespacettg.html#a7c52f21c6bca6712b18466e695ce0c3b',1,'ttg']]], + ['syncin_1321',['SyncIn',['../namespacettg.html#a2696750161ae2e0b5fb4ea1543305793a7123d7880075371aabefd3ba9f18a92c',1,'ttg']]] +]; diff --git a/dox-master/search/all_13.html b/dox-master/search/all_13.html new file mode 100644 index 000000000..51172c2f3 --- /dev/null +++ b/dox-master/search/all_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_13.js b/dox-master/search/all_13.js new file mode 100644 index 000000000..398e0f113 --- /dev/null +++ b/dox-master/search/all_13.js @@ -0,0 +1,170 @@ +var searchData= +[ + ['base_1322',['base',['../namespacettg_1_1base.html',1,'ttg']]], + ['detail_1323',['detail',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html',1,'TCB_SPAN_NAMESPACE_NAME::detail'],['../namespacettg_1_1detail.html',1,'ttg::detail'],['../namespacettg_1_1device_1_1detail.html',1,'ttg::device::detail'],['../namespacettg_1_1meta_1_1detail.html',1,'ttg::meta::detail'],['../namespacettg__madness_1_1detail.html',1,'ttg_madness::detail'],['../namespacettg__parsec_1_1detail.html',1,'ttg_parsec::detail']]], + ['device_1324',['device',['../namespacettg_1_1device.html',1,'ttg']]], + ['iostream_1325',['iostream',['../namespacettg_1_1iostream.html',1,'ttg']]], + ['meta_1326',['meta',['../namespacettg_1_1meta.html',1,'ttg']]], + ['overload_1327',['overload',['../namespacettg_1_1overload.html',1,'ttg']]], + ['take_5ffirst_5fn_1328',['take_first_n',['../structttg_1_1meta_1_1take__first__n.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20n_20_3e_1329',['take_first_n< std::tuple< Ts... >, N >',['../structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20n_20_3e_1330',['take_first_n< typelist< Ts... >, N >',['../structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_1331',['take_first_n_helper',['../structttg_1_1meta_1_1take__first__n__helper.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3atuple_3c_20u_2c_20us_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_1332',['take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3atuple_3c_20us_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_1333',['take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>',['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20typelist_3c_20u_2c_20us_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_1334',['take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20typelist_3c_20us_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_1335',['take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>',['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html',1,'ttg::meta']]], + ['task_2eh_1336',['task.h',['../device_2task_8h.html',1,'(Global Namespace)'],['../parsec_2task_8h.html',1,'(Global Namespace)']]], + ['task_5fclass_1337',['task_class',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a6595ab943fb458be9d3722c2cb5d9764',1,'ttg_parsec::detail::device_ptr_t']]], + ['taskcoroutineid_1338',['TaskCoroutineID',['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922',1,'ttg']]], + ['taskpool_1339',['taskpool',['../classttg__parsec_1_1_world_impl.html#acc58d282d3788039eeb11d5e98421cf0',1,'ttg_parsec::WorldImpl']]], + ['taskpool_5fid_1340',['taskpool_id',['../structttg__parsec_1_1msg__header__t.html#a67324e3fa282cedf4a6efeec7605d219',1,'ttg_parsec::msg_header_t']]], + ['tasks_5ftable_1341',['tasks_table',['../structttg__parsec_1_1detail_1_1_parsec_t_t_base.html#acdff3aa5a369ee1110832574c622dd9e',1,'ttg_parsec::detail::ParsecTTBase']]], + ['tcb_5fspan_5farray_5fconstexpr_1342',['TCB_SPAN_ARRAY_CONSTEXPR',['../span_8h.html#aea5140f0c5c8c761a6583edfd191c0f2',1,'span.h']]], + ['tcb_5fspan_5fconstexpr11_1343',['TCB_SPAN_CONSTEXPR11',['../span_8h.html#af82e0eef5fcecb21005e712341409ba9',1,'span.h']]], + ['tcb_5fspan_5fconstexpr14_1344',['TCB_SPAN_CONSTEXPR14',['../span_8h.html#a578f6490cc87aa6eaa8bdbf3e80c74ff',1,'span.h']]], + ['tcb_5fspan_5fconstexpr_5fassign_1345',['TCB_SPAN_CONSTEXPR_ASSIGN',['../span_8h.html#af00b49dd2229200ece8c0e88c92c3d33',1,'span.h']]], + ['tcb_5fspan_5fexpect_1346',['TCB_SPAN_EXPECT',['../span_8h.html#a28781fa90cfa7c5e239d05e0545e6a44',1,'span.h']]], + ['tcb_5fspan_5finline_5fvar_1347',['TCB_SPAN_INLINE_VAR',['../span_8h.html#a6df40b64e7c75e9d0887eeb067777194',1,'span.h']]], + ['tcb_5fspan_5fnamespace_5fname_1348',['TCB_SPAN_NAMESPACE_NAME',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html',1,'TCB_SPAN_NAMESPACE_NAME'],['../span_8h.html#a893f16c95652b225b401d579436731eb',1,'TCB_SPAN_NAMESPACE_NAME(): span.h']]], + ['tcb_5fspan_5fno_5fcontract_5fchecking_1349',['TCB_SPAN_NO_CONTRACT_CHECKING',['../span_8h.html#a83b0c07adbea88cc25187b8255ae066d',1,'span.h']]], + ['tcb_5fspan_5fno_5fexceptions_1350',['TCB_SPAN_NO_EXCEPTIONS',['../span_8h.html#a6a2ae24aa0d7904d39929121347be277',1,'span.h']]], + ['tcb_5fspan_5fnodiscard_1351',['TCB_SPAN_NODISCARD',['../span_8h.html#a7db49c8b34883c12c5c4b5341d75a710',1,'span.h']]], + ['template_20task_20graph_20user_20guide_1352',['Template Task Graph User Guide',['../userguide.html',1,'']]], + ['templatetask_1353',['TemplateTask',['../namespacettg__parsec.html#aca935deb06ab0acbe26b71bbd5403db9',1,'ttg_parsec::TemplateTask()'],['../namespacettg__madness.html#a06ada57fe807f14450cbec6cd678e1b6',1,'ttg_madness::TemplateTask()']]], + ['templatetaskbase_1354',['TemplateTaskBase',['../namespacettg.html#a7f224bde1b397dffa290aee99ac1aafb',1,'ttg']]], + ['templatetaskgraph_1355',['TemplateTaskGraph',['../namespacettg.html#acece4ffc004ce01117434b438d5eb2dc',1,'ttg']]], + ['terminal_2eh_1356',['terminal.h',['../base_2terminal_8h.html',1,'(Global Namespace)'],['../terminal_8h.html',1,'(Global Namespace)']]], + ['terminalbase_1357',['TerminalBase',['../classttg_1_1_terminal_base.html#a9d38685b126d113b774b85b39fcf7df3',1,'ttg::TerminalBase::TerminalBase()'],['../classttg_1_1_terminal_base.html',1,'ttg::TerminalBase']]], + ['terminals_5fto_5fedges_1358',['terminals_to_edges',['../structttg_1_1terminals__to__edges.html',1,'ttg']]], + ['terminals_5fto_5fedges_3c_20std_3a_3atuple_3c_20termst_2e_2e_2e_20_3e_20_3e_1359',['terminals_to_edges< std::tuple< termsT... > >',['../structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html',1,'ttg']]], + ['test_1360',['test',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#a2b094b206dabe03948ed14b169f012a5',1,'boost::callable_traits::detail::is_invocable_impl::test()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#a86e1a32482e2f4a570b8405b8a437c76',1,'boost::callable_traits::detail::is_invocable_r_impl::test()'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html#a20350e2805386f62619621f234177b75',1,'boost::callable_traits::detail::has_normal_call_operator::test(check< decltype(&U::operator()), &U::operator()>)'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html#aaf412dda1f2299d7100d97ef92f26f35',1,'boost::callable_traits::detail::has_normal_call_operator::test(...)'],['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html#a0eef52bac6e35168c06f01960cffda37',1,'boost::callable_traits::detail::can_dereference_t::test(check< typename std::remove_reference< decltype(*std::declval< U >())>::type > *)'],['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html#a364a1594e4019bc17fae39e39d03eb9f',1,'boost::callable_traits::detail::can_dereference_t::test(...)']]], + ['test_2ecpp_1361',['test.cpp',['../test_8cpp.html',1,'']]], + ['test_5finvoke_1362',['test_invoke',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke.html',1,'boost::callable_traits::detail']]], + ['test_5finvoke_3c_20function_3c_20f_20_3e_2c_20true_20_3e_1363',['test_invoke< function< F >, true >',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html',1,'boost::callable_traits::detail']]], + ['test_5finvoke_3c_20pmd_3c_20pmd_20_3e_2c_20ignored_20_3e_1364',['test_invoke< pmd< Pmd >, Ignored >',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html',1,'boost::callable_traits::detail']]], + ['test_5finvoke_3c_20pmf_3c_20pmf_20_3e_2c_20ignored_20_3e_1365',['test_invoke< pmf< Pmf >, Ignored >',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html',1,'boost::callable_traits::detail']]], + ['thread_5flocal_2eh_1366',['thread_local.h',['../thread__local_8h.html',1,'']]], + ['threaddata_1367',['threaddata',['../classttg__madness_1_1_t_t.html#a4ea41ba4be5baf6bee24848868fceadb',1,'ttg_madness::TT']]], + ['threshold_1368',['threshold',['../distributed_8cc.html#a1d82d181e6f77a3479faa6152c83b438',1,'threshold(): distributed.cc'],['../reducing_8cc.html#a1d82d181e6f77a3479faa6152c83b438',1,'threshold(): reducing.cc'],['../iterative_8cc.html#a1d82d181e6f77a3479faa6152c83b438',1,'threshold(): iterative.cc']]], + ['top_2emd_1369',['top.md',['../contrib_2top_8md.html',1,'(Global Namespace)'],['../dev_2top_8md.html',1,'(Global Namespace)'],['../user_2top_8md.html',1,'(Global Namespace)']]], + ['trace_1370',['trace',['../classttg_1_1_t_t_base.html#a30ce875b418c76f1d9cf54b3bf1fe52a',1,'ttg::TTBase::trace()'],['../namespacettg.html#af5e470229c1ddef41b83b6398a5dc583',1,'ttg::trace()']]], + ['trace_2eh_1371',['trace.h',['../trace_8h.html',1,'']]], + ['trace_5faccessor_1372',['trace_accessor',['../namespacettg_1_1detail.html#aad0b5ccd018513045d88983581fc6fc0',1,'ttg::detail']]], + ['trace_5fenabled_1373',['trace_enabled',['../namespacettg.html#afbdd9c742be395e0746fdbc26c7d55cc',1,'ttg']]], + ['trace_5foff_1374',['trace_off',['../namespacettg.html#a4901ccd088527a3cefe6e1f3e3abcb45',1,'ttg']]], + ['trace_5fon_1375',['trace_on',['../namespacettg.html#a6cec936cab8cf9b94bfacba41f859a30',1,'ttg']]], + ['traceback_1376',['traceback',['../classttg_1_1_debugger.html#a7081cd8a132843fdfb522704abec79af',1,'ttg::Debugger']]], + ['traceback_5f_1377',['traceback_',['../classttg_1_1_debugger.html#ac1fda6a36c601c3dce33e7bed8faaf4e',1,'ttg::Debugger']]], + ['tracing_1378',['tracing',['../classttg_1_1_t_t_base.html#a6e857d69adab89ba8841e4af29e0fc73',1,'ttg::TTBase::tracing()'],['../namespacettg.html#abfb8501d408a1ed918cc2a540865a2d8',1,'ttg::tracing()']]], + ['traits_1379',['traits',['../namespaceboost_1_1callable__traits_1_1detail.html#a8fd48269d0f16b39c44a579e362718a1',1,'boost::callable_traits::detail::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a28e7f262293463021815f3f3a6ede762',1,'boost::callable_traits::detail::function_object::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a384a6f28d8c1381fc0740d60025b3532',1,'boost::callable_traits::detail::function< T & >::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a247e2fa93d1dce773337ac59ba0b39e4',1,'boost::callable_traits::detail::default_callable_traits::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#a454b9a9cb0045d446e5f87c23794a3b8',1,'boost::callable_traits::detail::is_invocable_impl::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#ae5c099c6041e2680e5df169fe853cef2',1,'boost::callable_traits::detail::pmd< D T::* >::traits()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1273d420f855d65d064ac3f334ac66b7',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ac2d439c55b7ea915fb1467f740bbdd1d',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a0065365cea9262cd092cd6852543900e',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a0873fcdc413043bfd51c245cdad38fb5',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#a1ce8fd4d7cd2e24053142565527c2a39',1,'boost::callable_traits::detail::is_invocable_r_impl::traits()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a3113517e4d5c535eecfc27062c3d3abc',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#abbe4e4e42da47dca8640722ad5983374',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()']]], + ['traits_2eh_1380',['traits.h',['../traits_8h.html',1,'']]], + ['traits_2ehpp_1381',['traits.hpp',['../traits_8hpp.html',1,'']]], + ['transfer_5fownership_1382',['transfer_ownership',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a56169de0ee148ef2034d91890e09a1ca',1,'ttg_parsec::detail::ttg_data_copy_t::transfer_ownership()'],['../namespacettg__parsec_1_1detail.html#adf1ae177ef394ab5c807c1b5b8e4051c',1,'ttg_parsec::detail::transfer_ownership(parsec_ttg_task_t< TT > *me, int device, std::index_sequence< Is... >)']]], + ['transfer_5fownership_5fimpl_1383',['transfer_ownership_impl',['../namespacettg__parsec_1_1detail.html#aef535f01e16c593739fd34a0b4b0bde9',1,'ttg_parsec::detail']]], + ['traverse_1384',['traverse',['../classttg_1_1detail_1_1_traverse.html#a184ceb43af5aeb60317a853e1c764373',1,'ttg::detail::Traverse::traverse(const std::unique_ptr< TT, Deleter > &tt)'],['../classttg_1_1detail_1_1_traverse.html#a8f22396f983cd2b43113903985294410',1,'ttg::detail::Traverse::traverse(TTBase *tt)'],['../classttg_1_1detail_1_1_traverse.html#a7a0765e15d484ec5238c15dc9fc634d3',1,'ttg::detail::Traverse::traverse(TT *tt)'],['../classttg_1_1detail_1_1_traverse.html#a67abea3b78ac41aeba12c466dc6bbe63',1,'ttg::detail::Traverse::traverse(const std::shared_ptr< TTBase > &tt)']]], + ['traverse_1385',['Traverse',['../classttg_1_1_traverse.html#a9975a859b6687e897b2e9038694ffd06',1,'ttg::Traverse::Traverse()'],['../classttg_1_1detail_1_1_traverse.html',1,'ttg::detail::Traverse'],['../classttg_1_1_traverse.html',1,'ttg::Traverse< TTVisitor, InVisitor, OutVisitor >']]], + ['traverse_2eh_1386',['traverse.h',['../traverse_8h.html',1,'']]], + ['tree_2eh_1387',['tree.h',['../tree_8h.html',1,'']]], + ['tree_5fdown_1388',['tree_down',['../classttg_1_1_dot.html#a6e2c9e3186444ee3f28d18a28f0c65ea',1,'ttg::Dot']]], + ['try_5fbut_5ffail_5fif_5finvalid_1389',['try_but_fail_if_invalid',['../namespaceboost_1_1callable__traits_1_1detail.html#a43a2a235393faa4f7646f6939c920ba7',1,'boost::callable_traits::detail']]], + ['tt_1390',['TT',['../classttg__madness_1_1_t_t.html#ab8ef7509460d9d7e6f650565ebfc049b',1,'ttg_madness::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())'],['../classttg__madness_1_1_t_t.html#ae90df296d1baa7ee63e0c43b357f74fe',1,'ttg_madness::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())'],['../classttg__madness_1_1_t_t.html#a02446525b70607e06b579f8f3c2411b7',1,'ttg_madness::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())'],['../classttg__madness_1_1_t_t.html#a62faa61a5aed0648605bd54355deac1c',1,'ttg_madness::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())'],['../classttg__parsec_1_1_t_t.html#a87e1769a3eafdef7c310fe1963b4210d',1,'ttg_parsec::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())'],['../classttg__parsec_1_1_t_t.html#ae80e97c0025eeedb49ad122836be4fff',1,'ttg_parsec::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())'],['../classttg__parsec_1_1_t_t.html#a2df7a22e42aa4c8d791526c012e49336',1,'ttg_parsec::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())'],['../classttg__parsec_1_1_t_t.html#a47c2933f1a94279241d58edd72e56380',1,'ttg_parsec::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())']]], + ['tt_1391',['tt',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a5dde7ff744972748c5de9c7a3784f5c3',1,'ttg_parsec::detail::parsec_ttg_task_t::tt()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a148cc77e6b5cfbaba8d461902ffb9fba',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::tt()']]], + ['tt_1392',['TT',['../classttg__madness_1_1_t_t.html',1,'ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >'],['../classttg__parsec_1_1_t_t.html',1,'ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >']]], + ['tt_2eh_1393',['tt.h',['../base_2tt_8h.html',1,'(Global Namespace)'],['../tt_8h.html',1,'(Global Namespace)']]], + ['tt_3c_20int_2c_20std_3a_3atuple_3c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_20_3e_2c_20binarytreebroadcast_3c_20value_2c_20int_20_3e_2c_20ttg_3a_3atypelist_3c_20value_20_3e_20_3e_1394',['TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >',['../classttg__parsec_1_1_t_t.html',1,'ttg_parsec']]], + ['tt_3c_20int_2c_20std_3a_3atuple_3c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20outkey_2c_20value_20_3e_20_3e_2c_20binarytreereduce_3c_20value_2c_20binaryop_2c_20outkey_20_3e_2c_20ttg_3a_3atypelist_3c_20value_2c_20value_2c_20value_20_3e_20_3e_1395',['TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >',['../classttg__parsec_1_1_t_t.html',1,'ttg_parsec']]], + ['tt_5fbase_5ftrace_5faccessor_1396',['tt_base_trace_accessor',['../namespacettg_1_1detail.html#af68ad6a630c91d894b875ab3337fdcb6',1,'ttg::detail']]], + ['tt_5fht_5fitem_1397',['tt_ht_item',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#ad0463133c865927ee283b55ebcdd2e01',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['tt_5fid_1398',['tt_id',['../structttg__parsec_1_1detail_1_1msg__t.html#a37ee54388101271d25def1addda48188',1,'ttg_parsec::detail::msg_t']]], + ['tt_5fvisitor_1399',['tt_visitor',['../classttg_1_1_traverse.html#a94ccc49b8f4b418fb9a3154544207278',1,'ttg::Traverse']]], + ['ttbase_1400',['TTBase',['../classttg_1_1_t_t_base.html#a3f6ceee759ab12f1ce692b96e3e945dd',1,'ttg::TTBase::TTBase()'],['../classttg_1_1_terminal_base.html#aa770a1ae1e0135f15ad4bfec8b926f1c',1,'ttg::TerminalBase::TTBase()'],['../classttg_1_1_t_t_base.html#ab73a493ce89e68de0defc825f4747044',1,'ttg::TTBase::TTBase()'],['../classttg_1_1_t_t_base.html',1,'ttg::TTBase']]], + ['ttfunc_1401',['ttfunc',['../classttg_1_1detail_1_1_traverse.html#a5da2d82d0eb6f9216c6e23ef48c76ff0',1,'ttg::detail::Traverse::ttfunc()'],['../classttg_1_1_dot.html#a168203fd05265000a5fe12be79738a94',1,'ttg::Dot::ttfunc()']]], + ['ttg_1402',['TTG',['../classttg_1_1_t_t_base.html#aea1efe97b0fec6ceb97754ba21a4aae2',1,'ttg::TTBase::TTG()'],['../classttg_1_1_t_t_g.html#ae61806b158ca03ef105dedc7f1b1b615',1,'ttg::TTG::TTG()']]], + ['ttg_1403',['ttg',['../classttg_1_1_t_t_base.html#a62783b81e2d1de62ec047ebcd3c331f5',1,'ttg::TTBase::ttg()'],['../namespacettg.html',1,'ttg']]], + ['ttg_1404',['TTG',['../classttg_1_1_t_t_g.html',1,'ttg']]], + ['ttg_20build_20infrastructure_1405',['TTG Build Infrastructure',['../_t_t_g-_build-_infrastructure.html',1,'']]], + ['ttg_2dbuild_2dinfrastructure_2emd_1406',['TTG-Build-Infrastructure.md',['../_t_t_g-_build-_infrastructure_8md.html',1,'']]], + ['ttg_2eh_1407',['ttg.h',['../ttg_8h.html',1,'(Global Namespace)'],['../ttg_2parsec_2ttg_8h.html',1,'(Global Namespace)'],['../ttg_2madness_2ttg_8h.html',1,'(Global Namespace)']]], + ['ttg_5fabort_1408',['ttg_abort',['../namespacettg__madness.html#ae93a49f2423fc5eef1f4a60ab351f457',1,'ttg_madness']]], + ['ttg_5fbroadcast_1409',['ttg_broadcast',['../namespacettg__parsec.html#aa0dde9bdbe8109520fbd094fa980cf06',1,'ttg_parsec::ttg_broadcast()'],['../namespacettg__madness.html#ad760338470631d741f596b570dac59b0',1,'ttg_madness::ttg_broadcast()']]], + ['ttg_5fctl_5fedge_1410',['ttg_ctl_edge',['../namespacettg__parsec.html#aa4b5a7f255eee32c46ca8bde5e87ac62',1,'ttg_parsec::ttg_ctl_edge()'],['../namespacettg__madness.html#a3e4eecf0b46347ed8c0334ae84c3eb19',1,'ttg_madness::ttg_ctl_edge()']]], + ['ttg_5fcxx_5fcoroutine_5fheader_1411',['TTG_CXX_COROUTINE_HEADER',['../config_8in_8h.html#abd2e1db1483c756a3c6afc4be8d02326',1,'config.in.h']]], + ['ttg_5fcxx_5fcoroutine_5fnamespace_1412',['TTG_CXX_COROUTINE_NAMESPACE',['../config_8in_8h.html#ac45e996b9645a1c1305a873f43328796',1,'config.in.h']]], + ['ttg_5fdata_5fcopy_2eh_1413',['ttg_data_copy.h',['../ttg__data__copy_8h.html',1,'']]], + ['ttg_5fdata_5fcopy_5fcontainer_1414',['ttg_data_copy_container',['../namespacettg__parsec_1_1detail.html#a324e05ad6afd1a21dc7f90de0dd0cf24',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5fcontainer_5fsetter_1415',['ttg_data_copy_container_setter',['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html#a6eb8c4d47cf3815fad5b18362cc38fb2',1,'ttg_parsec::detail::ttg_data_copy_container_setter::ttg_data_copy_container_setter()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html',1,'ttg_parsec::detail::ttg_data_copy_container_setter< T >']]], + ['ttg_5fdata_5fcopy_5fcontainer_5fsetter_3c_20ttg_5fdata_5fcopy_5ft_20_3e_1416',['ttg_data_copy_container_setter< ttg_data_copy_t >',['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5fcontainer_5fsetter_3c_20ttg_5fparsec_3a_3adetail_3a_3attg_5fdata_5fcopy_5ft_20_3e_1417',['ttg_data_copy_container_setter< ttg_parsec::detail::ttg_data_copy_t >',['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5fself_5ft_1418',['ttg_data_copy_self_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html#a0416871d059b275148a510ca3cb4dcfd',1,'ttg_parsec::detail::ttg_data_copy_self_t::ttg_data_copy_self_t()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html',1,'ttg_parsec::detail::ttg_data_copy_self_t']]], + ['ttg_5fdata_5fcopy_5ft_1419',['ttg_data_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a1ab9aa816e19dd917b693e0960bb3b4f',1,'ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t()'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a7282b5b6befd31e4df2bf6b0d7c514c9',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_data_copy_t()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a57f761c4e5179951505d96e5b506d701',1,'ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t(ttg_data_copy_t &&c)'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a31fa201528838829c0f69b0beca0d21f',1,'ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t(const ttg_data_copy_t &c)'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['ttg_5fdata_5fdescriptor_1420',['ttg_data_descriptor',['../structttg__data__descriptor.html',1,'']]], + ['ttg_5fdata_5fvalue_5fcopy_5ft_1421',['ttg_data_value_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a95b010e353f7d5985e57e42aae13515b',1,'ttg_parsec::detail::ttg_data_value_copy_t::ttg_data_value_copy_t(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_constructible_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a1f3e762b244708746aa98be325a57889',1,'ttg_parsec::detail::ttg_data_value_copy_t::ttg_data_value_copy_t(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_constructible_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a885371f17e0767dd0300dc66d367988c',1,'ttg_parsec::detail::ttg_data_value_copy_t::ttg_data_value_copy_t(T &&value)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html',1,'ttg_parsec::detail::ttg_data_value_copy_t< ValueT >']]], + ['ttg_5fdefault_5fexecution_5fcontext_1422',['ttg_default_execution_context',['../namespacettg__parsec.html#ae1b91b1ff1edc3fbc1e7e07d6c659c17',1,'ttg_parsec::ttg_default_execution_context()'],['../namespacettg__madness.html#afdf4fa1d2bd497283e589f93d13047d7',1,'ttg_madness::ttg_default_execution_context()']]], + ['ttg_5fdevice_5fto_5fparsec_5fdevice_1423',['ttg_device_to_parsec_device',['../namespacettg__parsec_1_1detail.html#a4e193da802fd145fa18041dd40ad7df9',1,'ttg_parsec::detail']]], + ['ttg_5fexecute_1424',['ttg_execute',['../namespacettg__madness.html#a2f3b7dd6ad03e4de9b7dd265913a7d3c',1,'ttg_madness::ttg_execute()'],['../namespacettg__parsec.html#af487c13be90fbfe91c6789946e14e8fa',1,'ttg_parsec::ttg_execute()']]], + ['ttg_5ffence_1425',['ttg_fence',['../namespacettg__madness.html#a7170a1b75839c894aaeddebecb8d1eb7',1,'ttg_madness::ttg_fence()'],['../namespacettg__parsec.html#a00dccbf920472bed9cb0850eff7f4120',1,'ttg_parsec::ttg_fence()']]], + ['ttg_5ffinalize_1426',['ttg_finalize',['../namespacettg__madness.html#a78037075ad198f6530e53d32ae56e6b5',1,'ttg_madness::ttg_finalize()'],['../namespacettg__parsec.html#a5008389f3116aff76f4dc8d04e3fab3b',1,'ttg_parsec::ttg_finalize()']]], + ['ttg_5fhave_5fcoroutine_1427',['TTG_HAVE_COROUTINE',['../config_8in_8h.html#a2fc030c83de988addd8c7e79e9424b70',1,'config.in.h']]], + ['ttg_5fhave_5fcuda_1428',['TTG_HAVE_CUDA',['../config_8in_8h.html#a20af46c30069bb38dfa8afde72d5b522',1,'config.in.h']]], + ['ttg_5fhave_5fcudart_1429',['TTG_HAVE_CUDART',['../config_8in_8h.html#a921084119e832dfa5b7bcb296b3cc486',1,'config.in.h']]], + ['ttg_5fhave_5fdevice_1430',['TTG_HAVE_DEVICE',['../config_8in_8h.html#aaab44f5308324a87695963bde34593ba',1,'config.in.h']]], + ['ttg_5fhave_5fhip_1431',['TTG_HAVE_HIP',['../config_8in_8h.html#a3361d90d7ef3b17e2a240d0ae2fea595',1,'config.in.h']]], + ['ttg_5fhave_5fhipblas_1432',['TTG_HAVE_HIPBLAS',['../config_8in_8h.html#a49b0b9db519cd01659f7feb9bacbee90',1,'config.in.h']]], + ['ttg_5fhave_5flevel_5fzero_1433',['TTG_HAVE_LEVEL_ZERO',['../config_8in_8h.html#a001959647e06b8ad36e8831fc758d6ae',1,'config.in.h']]], + ['ttg_5fhave_5fmpi_1434',['TTG_HAVE_MPI',['../config_8in_8h.html#ae8e12ea67fb3234d4b080df140720899',1,'config.in.h']]], + ['ttg_5fhave_5fmpiext_1435',['TTG_HAVE_MPIEXT',['../config_8in_8h.html#a44bf1d4ff4664401b9a488ae95c91215',1,'config.in.h']]], + ['ttg_5fimpl_5fdevice_5fsupport_1436',['TTG_IMPL_DEVICE_SUPPORT',['../parsec_2import_8h.html#ad83cce030dc0322286182f555f5e711f',1,'import.h']]], + ['ttg_5fimpl_5fns_1437',['TTG_IMPL_NS',['../madness_2import_8h.html#ac193789909c8bf87dfc68cc38f37a231',1,'TTG_IMPL_NS(): import.h'],['../parsec_2import_8h.html#ac193789909c8bf87dfc68cc38f37a231',1,'TTG_IMPL_NS(): import.h']]], + ['ttg_5finitialize_1438',['ttg_initialize',['../namespacettg__parsec.html#ad75b8e1392b031ac583c6059103d8aec',1,'ttg_parsec::ttg_initialize()'],['../namespacettg__madness.html#a1e84e21cf6c33558d570bd866eea5e0b',1,'ttg_madness::ttg_initialize()'],['../namespacettg__parsec.html#ad17976fce1eab4b14198476fd3d470b6',1,'ttg_parsec::ttg_initialize()']]], + ['ttg_5fmadness_1439',['ttg_madness',['../namespacettg__madness.html',1,'']]], + ['ttg_5fmadness_5fimported_1440',['TTG_MADNESS_IMPORTED',['../madness_2import_8h.html#ab6b89872a8be5fa2706cdafc1a018aa9',1,'import.h']]], + ['ttg_5fop_5fassert_5fexecutable_1441',['TTG_OP_ASSERT_EXECUTABLE',['../base_2tt_8h.html#a39e6ff898f2a34b887064047088ba7cf',1,'tt.h']]], + ['ttg_5fparsec_1442',['ttg_parsec',['../namespacettg__parsec.html',1,'']]], + ['ttg_5fparsec_5fdata_5fflag_5fregistered_1443',['TTG_PARSEC_DATA_FLAG_REGISTERED',['../parsec-ext_8h.html#a618d49cd532c6dfdcf5c6f1f3954afc8',1,'parsec-ext.h']]], + ['ttg_5fparsec_5fdata_5fflags_1444',['ttg_parsec_data_flags',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44',1,'ttg_parsec::detail']]], + ['ttg_5fparsec_5fdata_5fwrapper_5ft_1445',['ttg_parsec_data_wrapper_t',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a9c0b001afe9db2dfb99155f9269cbace',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t()'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#aa3e6600b77f7c9e54d143b7a0d8d3d9e',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t(const ttg_parsec_data_wrapper_t &other)=delete'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a989df3b897711cfab928065f73c1a8cc',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t(ttg_parsec_data_wrapper_t &&other)']]], + ['ttg_5fparsec_5fdefer_5fwriter_1446',['TTG_PARSEC_DEFER_WRITER',['../ttg_2parsec_2ttg_8h.html#aba5ae8871cc40ffea6b58c73caccadb0',1,'ttg.h']]], + ['ttg_5fparsec_5fimported_1447',['TTG_PARSEC_IMPORTED',['../parsec_2import_8h.html#a79298852b6d5aea81a65a212e9c8f8bf',1,'import.h']]], + ['ttg_5fparsec_5fmax_5fnum_5fdevices_1448',['TTG_PARSEC_MAX_NUM_DEVICES',['../parsec_2devicescratch_8h.html#a9b402a6eb9914f1b90bad772d4115f16',1,'devicescratch.h']]], + ['ttg_5fprocess_5ftt_5fop_5freturn_1449',['TTG_PROCESS_TT_OP_RETURN',['../tt_8h.html#af328793b5f00c5e46d6369dac6bc8a86',1,'tt.h']]], + ['ttg_5fptr_1450',['ttg_ptr',['../classttg_1_1_t_t_base.html#aedeb6405b2520f9d59c37dd759003734',1,'ttg::TTBase']]], + ['ttg_5fregister_5fcallback_1451',['ttg_register_callback',['../namespacettg__parsec.html#a9adea5fc9a753510bb1aaa1a207036ec',1,'ttg_parsec::ttg_register_callback()'],['../namespacettg__madness.html#ac204e7982638f6d23f22365a73fc2795',1,'ttg_madness::ttg_register_callback(ttg::World world, Callback &&callback)']]], + ['ttg_5fregister_5fptr_1452',['ttg_register_ptr',['../namespacettg__madness.html#a08d62ebfdece9271a130890dceb5cf62',1,'ttg_madness::ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)'],['../namespacettg__madness.html#ada271902b7d62b26d1f981cb9090ad38',1,'ttg_madness::ttg_register_ptr(ttg::World world, std::unique_ptr< T > &&ptr)'],['../namespacettg__parsec.html#a58b02ce5076ebca5916db77288563ed8',1,'ttg_parsec::ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)'],['../namespacettg__parsec.html#a72c14794c9a6d19714037fb75d3b0bf3',1,'ttg_parsec::ttg_register_ptr(ttg::World world, std::unique_ptr< T > &&ptr)']]], + ['ttg_5fregister_5fstatus_1453',['ttg_register_status',['../namespacettg__parsec.html#ae08fd8e274b0b845e1c002956f4e1e50',1,'ttg_parsec::ttg_register_status()'],['../namespacettg__madness.html#afa02a5755c25e35fbbd21e03a6f55269',1,'ttg_madness::ttg_register_status()']]], + ['ttg_5fruntime_1454',['ttg_runtime',['../namespacettg.html#a249e13a71ad8438d69bb4bdd5b2809ac',1,'ttg']]], + ['ttg_5fselected_5fdefault_5fimpl_1455',['TTG_SELECTED_DEFAULT_IMPL',['../parsec_2import_8h.html#a3be7b102441b29daa9dca3bf17513e43',1,'TTG_SELECTED_DEFAULT_IMPL(): import.h'],['../madness_2import_8h.html#a3be7b102441b29daa9dca3bf17513e43',1,'TTG_SELECTED_DEFAULT_IMPL(): import.h']]], + ['ttg_5fsum_1456',['ttg_sum',['../namespacettg__parsec.html#afcb43c3d2d3c066d2c8c589914a27676',1,'ttg_parsec::ttg_sum()'],['../namespacettg__madness.html#a6d7ccf702d68f5173ac51b116a9a66ed',1,'ttg_madness::ttg_sum()']]], + ['ttg_5fuse_5fmadness_1457',['TTG_USE_MADNESS',['../ttg_2madness_2ttg_8h.html#a8550f4de0f61b912327f5b1d184130e0',1,'ttg.h']]], + ['ttg_5fuse_5fparsec_1458',['TTG_USE_PARSEC',['../ttg_2parsec_2ttg_8h.html#a4cf2d50c3ab6555c86d67200d13ddf7f',1,'ttg.h']]], + ['ttg_5futil_5falias_5ftemplate_5ffunction_1459',['TTG_UTIL_ALIAS_TEMPLATE_FUNCTION',['../macro_8h.html#a4b4c1f871d908fd62f874bd13645fd12',1,'macro.h']]], + ['ttgunused_1460',['TTGUNUSED',['../macro_8h.html#ad47efad235191ab8d78a3490457b2ed3',1,'macro.h']]], + ['ttt_1461',['ttT',['../classttg__parsec_1_1_t_t.html#a5506750c89f5d11176d205159b8e7dd1',1,'ttg_parsec::TT::ttT()'],['../classttg__madness_1_1_t_t.html#adba80859d8b5641e25bea8d7dc0c0ebc',1,'ttg_madness::TT::ttT()']]], + ['ttvalue_1462',['TTValue',['../structttg__madness_1_1_t_t_value.html',1,'ttg_madness::TTValue< DerivedT >'],['../structttg__parsec_1_1_t_t_value.html',1,'ttg_parsec::TTValue< DerivedT >'],['../structttg__parsec_1_1_t_t_value.html#af9a6d3d3bbd7d4138ba42554a9754a0f',1,'ttg_parsec::TTValue::TTValue(const TTValue &v)'],['../structttg__parsec_1_1_t_t_value.html#a3e066461d4d80f2195ea9761197158d1',1,'ttg_parsec::TTValue::TTValue(TTValue &&v)'],['../structttg__parsec_1_1_t_t_value.html#ad5b9809dcb2b705b0e2e2ee9368f95a5',1,'ttg_parsec::TTValue::TTValue()'],['../namespacettg.html#a3c462cef30045d5f18896ea9fe418fa5',1,'ttg::TTValue()']]], + ['ttvalue_2eh_1463',['ttvalue.h',['../parsec_2ttvalue_8h.html',1,'(Global Namespace)'],['../madness_2ttvalue_8h.html',1,'(Global Namespace)'],['../ttvalue_8h.html',1,'(Global Namespace)']]], + ['tuple_2eh_1464',['tuple.h',['../tuple_8h.html',1,'']]], + ['tuple_5fconcat_1465',['tuple_concat',['../structttg_1_1meta_1_1tuple__concat.html',1,'ttg::meta']]], + ['tuple_5fconcat_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1466',['tuple_concat< std::tuple< Ts... > >',['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['tuple_5fconcat_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3atuple_3c_20us_2e_2e_2e_20_3e_2c_20r_2e_2e_2e_20_3e_1467',['tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >',['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html',1,'ttg::meta']]], + ['tuple_5fconcat_5ft_1468',['tuple_concat_t',['../namespacettg_1_1meta.html#ac259ebad2e9815e6ad0c7ff70f4cc585',1,'ttg::meta']]], + ['tuple_5felement_3c_20i_2c_20tcb_5fspan_5fnamespace_5fname_3a_3aspan_3c_20elementtype_2c_20extent_20_3e_20_3e_1469',['tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >',['../classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html',1,'std']]], + ['tuple_5felement_3c_20i_2c_20ttg_3a_3ameta_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1470',['tuple_element< I, ttg::meta::typelist< Ts... > >',['../structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20tcb_5fspan_5fnamespace_5fname_3a_3aspan_3c_20elementtype_2c_20extent_20_3e_20_3e_1471',['tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >',['../classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20ttg_3a_3ameta_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1472',['tuple_size< ttg::meta::typelist< Ts... > >',['../structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'std']]], + ['type_1473',['type',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html#a133deffb63151f9fd61aedbb208ebef6',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html#a279f3dae28f296fb8ba4e9171dfb8a64',1,'boost::callable_traits::detail::index_sequence::type()'],['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html#a2bde628c2fd4fc60213202bbeffb83a1',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html#a51ff154d20922d01d2a3f9a41bb95e8c',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html#a058126c2ef1c8855b8b6636bc4034151',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a6142bd140cb79b7f0462ca99fba92934',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#adfb9d7f0f9290f59089f75d6c9bcc90a',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#aedeb7fe5b1341236705e3efbf77b2738',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ae57060b737e22530f0fea22b83a578fd',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1fail.html#a1c260c8ad5ef41ce2e3c516abf8c54a8',1,'boost::callable_traits::detail::fail::type()'],['../structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html#accb3fa64349ac9f1eb834d6ba467ece2',1,'boost::callable_traits::detail::success::_::type()'],['../structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html#a179fb41bb31ada5a5ff6761123dbfcbd',1,'boost::callable_traits::detail::set_varargs_function_qualifiers_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html#ad76f73f1673498341581d3e375d94dad',1,'boost::callable_traits::detail::set_function_qualifiers_t::type()'],['../structboost_1_1callable__traits_1_1has__varargs.html#a7d191145daba1f54c988eaee67c588f8',1,'boost::callable_traits::has_varargs::type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a0b511149bfbaf86b41c96a4378861486',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html#a6f159c64fa2a4b998687ae9d64a4c414',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html#ad39664cc8346ad87b1de5d3ad92b471e',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html#a3610b3ab772dbbb95bf31ab0baa5f363',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html#a5d0141e0899d5d56c1b12eb17f6534c7',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a84ce2ec5ba08001fee20eeb30ca2826f',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html#a1f15ac61b33ce0fe7ed0538129ad87a8',1,'boost::callable_traits::detail::force_sfinae::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html#a61ea9c7cd29c515d546382f61199f35f',1,'boost::callable_traits::detail::is_reference_wrapper_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html#a13877dc1d954d61ceab4cc8d1b2aa6bb',1,'boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html#a995ebd708a46ce3bff5408455358571a',1,'boost::callable_traits::detail::unwrap_reference_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html#a7ea88b69ddcab4973b6ebc57b3ea0921',1,'boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html#acd89d6338b13b19a21515fc61f82585e',1,'boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1has__member__qualifiers.html#ae1ec614cf11551e628c117a9578a5d4c',1,'boost::callable_traits::has_member_qualifiers::type()'],['../structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html#a333c1209d6c6bc36b3c0f2e9f47d7836',1,'ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html#a91c06f9afe1a0ec8c3cf62e0d0549b13',1,'boost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R >::type()'],['../structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html#a665cf7d9a14c935fd7ee840fef40bfeb',1,'ttg::terminals_to_edges< std::tuple< termsT... > >::type()'],['../structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html#a5b858a057236cfb905816540fe981f34',1,'ttg::edges_to_output_terminals< std::tuple< edgesT... > >::type()'],['../structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html#a84ce0679927744271af164e60475638b',1,'ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html#af4c1a566e83757cecdeedec6f01ac1c9',1,'boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html#a490c6354743820f391209d7f3d4eba8c',1,'boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html#a71d8c325d99d9cce2c09a03c662fc5b5',1,'boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html#a20ba9f2b148da20d23b14c72c7cd756d',1,'boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html#a87cfd4856c889e4404622aa4dee27dbf',1,'boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isebb1b3f4b3764f1094c0ca20cf2ce92f.html#a48a51c84f5944e429397b3ae3efbc016',1,'boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html#a11fc83cf5b254cce6f7f522144dbbee1',1,'boost::callable_traits::detail::make_member_pointer< T, C, true >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html#ac79b7b3524c1aa5541bab0e83837c125',1,'boost::callable_traits::detail::make_member_pointer< void, C, true >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html#a43aee39976e08eba5f0fd25a0a2ca223',1,'boost::callable_traits::detail::make_member_pointer< T, C, false >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html#ace97b78962992a164739487457f17181',1,'boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html#a357b13b76ccaa132dec442aa4b4d3a13',1,'boost::callable_traits::detail::apply_return_helper::type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#aa709f8bbad85f642309a3e52fff5713f',1,'boost::callable_traits::detail::pmd< D T::* >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html#a7b3de24a3b65094fd6a2af21fa54729e',1,'boost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html#ab6a0e2d867d7efb5646d7d470c54a57f',1,'boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html#a040ccadf87cdde4a9aac5a4cc19d9b36',1,'boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a5f42c782ad205eea1abf6c57a319276c',1,'boost::callable_traits::detail::default_callable_traits::type()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#af31f3335c2577952629dd3fdbefe5dfe',1,'boost::callable_traits::detail::function< T & >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#af299b92fc0e35091ab9571a0b216f12f',1,'boost::callable_traits::detail::function_object::type()'],['../structboost_1_1callable__traits_1_1detail_1_1generalize__t.html#a0a86cb418b0022d39c29abed5426e45e',1,'boost::callable_traits::detail::generalize_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html#a3661213dabafb2a4c8dbeef85c058d2f',1,'boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html#a5502aef3fa896118f2302f15c5c9cef5',1,'boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#ae6075d2a9f19887777b1c34163395eaf',1,'boost::callable_traits::detail::is_invocable_impl::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html#a975bd1d7d4c46a6dd585ebeed8dd36c7',1,'boost::callable_traits::detail::is_invocable_impl< void, Args... >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#aa865c0f5ad4c2b7b014e1c6f26c64ca2',1,'boost::callable_traits::detail::is_invocable_r_impl::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html#a53710fd282bd8155edd47b4d1966b2b8',1,'boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... >::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html#af790a231e72af4429c460a08230cfa51',1,'ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>::type()'],['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html#aa4ffd03f6ef06111fe38314adb217d27',1,'CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >::type()']]], + ['type_1474',['Type',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8',1,'ttg::TerminalBase']]], + ['type_1475',['type',['../structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html#a61d832961f498e9f0d9dc638bae5743e',1,'std::tuple_element< I, ttg::meta::typelist< Ts... > >::type()'],['../structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html#a1a7393df93685c1f296c43936e2ed288',1,'ttg::meta::typelist_to_tuple< typelist< T... > >::type()'],['../structttg_1_1meta_1_1type__identity.html#a35a804bf5ce9b989a47e3febf5ea7cf3',1,'ttg::meta::type_identity::type()'],['../classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html#ad528a0814927fbf53188b8915a8203de',1,'std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >::type()'],['../structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html#ae122639213546867713800b3d4cc70f3',1,'ttg::meta::take_first_n< typelist< Ts... >, N >::type()'],['../structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html#a8b3b1fe76f88d217d2e017b1aaa27159',1,'ttg::meta::take_first_n< std::tuple< Ts... >, N >::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html#a33455324e6a2daf99c4d1a442d59b591',1,'ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html#a5fe11c25dde4a28e6406582d9df8cdb3',1,'ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html#acaee8d4570b1525a7eb3f8e20a2a7d2b',1,'ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html#a5d8e8bb2e1b28433f2c1bcdf6cce5515',1,'ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html#a08fc2b0f437b94e514c8ca976126abf2',1,'ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html#af2dbe4ffc466cc3f24f4c0f1a9eec704',1,'ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >::type()'],['../structboost_1_1callable__traits_1_1is__invocable.html#a18d140840ff86ef2ced2464b5cb465b0',1,'boost::callable_traits::is_invocable::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html#aa67aefc5ac6367b569921e7826e2f42d',1,'ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>::type()'],['../structttg_1_1meta_1_1void__to___void_3_01void_01_4.html#aa733c4632539b0587f819793879f0b36',1,'ttg::meta::void_to_Void< void >::type()'],['../structttg_1_1meta_1_1void__to___void.html#a82227aef43276bf19b15b48158fd2c78',1,'ttg::meta::void_to_Void::type()'],['../structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html#a38d25f1aa7142589b27de3175c5892e9',1,'ttg::meta::filtered_tuple< std::tuple< Es... >, Pred >::type()'],['../structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html#ad232319bc662aaf652cb2e4a91d282e6',1,'ttg::meta::detail::keep_or_drop< false >::type()'],['../structttg_1_1meta_1_1detail_1_1keep__or__drop.html#a36887f912193b7645e57df87c03e7427',1,'ttg::meta::detail::keep_or_drop::type()'],['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html#a89b43872f257afebbab47e0bcd26a234',1,'ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >::type()'],['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html#a62c3772b4afbb8620da69a38e075c43a',1,'ttg::meta::tuple_concat< std::tuple< Ts... > >::type()'],['../structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html#a7c361466ddae0c851111008bef855a79',1,'ttg::meta::nonref_tuple< std::tuple< Ts... > >::type()'],['../structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html#abce4eb71a0d69a3da2d432069845f882',1,'ttg::meta::candidate_argument_bindings< const void, void >::type()'],['../structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html#a1adc19990f6bb1931d7c20f12f7d72a8',1,'ttg::meta::candidate_argument_bindings< void, void >::type()'],['../structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html#ab5a53343519526233dc6c6bddaf62669',1,'ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >::type()'],['../structttg_1_1detail_1_1input__terminals__tuple.html#ac6cb7a69f1352b2f58db7ba01815ab8a',1,'ttg::detail::input_terminals_tuple::type()'],['../structboost_1_1callable__traits_1_1is__volatile__member.html#a0c0398300ff70c218a179d27efef9147',1,'boost::callable_traits::is_volatile_member::type()'],['../structboost_1_1callable__traits_1_1is__reference__member.html#aa72992ebbff1e6f1b48e253db449d9ce',1,'boost::callable_traits::is_reference_member::type()'],['../structboost_1_1callable__traits_1_1is__noexcept.html#a9e022ea26028c0e20346afb7b6fdd685',1,'boost::callable_traits::is_noexcept::type()'],['../structboost_1_1callable__traits_1_1is__lvalue__reference__member.html#abababd9cc53c31eeb3440e7120e51a73',1,'boost::callable_traits::is_lvalue_reference_member::type()'],['../structboost_1_1callable__traits_1_1is__invocable__r.html#a3d30c749a235310800b2dc3e654ffc17',1,'boost::callable_traits::is_invocable_r::type()'],['../structboost_1_1callable__traits_1_1is__const__member.html#a5f335cb075653f0966fb306561cf993e',1,'boost::callable_traits::is_const_member::type()'],['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html#a0a24a472a350f3deb1e28289365471bd',1,'CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >::type()'],['../structboost_1_1callable__traits_1_1is__rvalue__reference__member.html#af0b394b238ba2e9a1dbc2875ca5e99f0',1,'boost::callable_traits::is_rvalue_reference_member::type()'],['../structboost_1_1callable__traits_1_1is__transaction__safe.html#a924e7ef7978245e20161ab75715fa5ba',1,'boost::callable_traits::is_transaction_safe::type()'],['../structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html#aaa2901e9fb82ff0e63950500f1e7c9d8',1,'boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html#a0424fbdf282810962d44efc71aff6278',1,'boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html#a07de3df2fb1d20ce5618a62f3281eb2c',1,'boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typenamcb09f71f583ed9400b45e4d1a52d5e8f.html#a8c9e91e95c51c885b55aadfb750d9987',1,'boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html#a231fa8ecec8c72124fd6c57b11007fbb',1,'boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html#afb77ffdba28d0f917cc2e5466f1f6e74',1,'boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html#a0358c94c312f34ac40e62555116fd9ad',1,'boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html#a7cc5281e12870089820b57770baac355',1,'boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html#aaf33f13c7c34b304aed15379e45b6c06',1,'boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >::type()'],['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html#af8ac620790b0879fcc00609dfd043c42',1,'CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >::type()'],['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html#a5689af2d3d7e975b410cc5538ad9c89d',1,'CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >::type()']]], + ['type_5fidentity_1476',['type_identity',['../structttg_1_1meta_1_1type__identity.html',1,'ttg::meta']]], + ['typelist_1477',['typelist',['../structttg_1_1meta_1_1typelist.html',1,'ttg::meta::typelist< Ts >'],['../namespacettg.html#a554f7017735b6f0fe5464f840bfa6a27',1,'ttg::typelist()']]], + ['typelist_2eh_1478',['typelist.h',['../typelist_8h.html',1,'']]], + ['typelist_5fis_5fempty_1479',['typelist_is_empty',['../structttg_1_1meta_1_1typelist__is__empty.html',1,'ttg::meta']]], + ['typelist_5fis_5fempty_5fv_1480',['typelist_is_empty_v',['../namespacettg_1_1meta.html#a58819bf430cd9581930c3b9e9c383f16',1,'ttg::meta']]], + ['typelist_5fis_5fnot_5fempty_1481',['typelist_is_not_empty',['../structttg_1_1meta_1_1typelist__is__not__empty.html',1,'ttg::meta']]], + ['typelist_5fis_5fnot_5fempty_5fv_1482',['typelist_is_not_empty_v',['../namespacettg_1_1meta.html#aeb96c42d4703d34893952cc9b45966c9',1,'ttg::meta']]], + ['typelist_5fsize_1483',['typelist_size',['../structttg_1_1meta_1_1typelist__size.html',1,'ttg::meta']]], + ['typelist_5fsize_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1484',['typelist_size< typelist< Ts... > >',['../structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['typelist_5fsize_5fv_1485',['typelist_size_v',['../namespacettg_1_1meta.html#ae7a61ae6ab8ec834784aa73d4f4c6ced',1,'ttg::meta']]], + ['typelist_5fto_5ftuple_1486',['typelist_to_tuple',['../structttg_1_1meta_1_1typelist__to__tuple.html',1,'ttg::meta']]], + ['typelist_5fto_5ftuple_3c_20typelist_3c_20t_2e_2e_2e_20_3e_20_3e_1487',['typelist_to_tuple< typelist< T... > >',['../structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['typelist_5fto_5ftuple_5ft_1488',['typelist_to_tuple_t',['../namespacettg_1_1meta.html#aed64ce194dc02ec4206991bd96ee7b6b',1,'ttg::meta']]] +]; diff --git a/dox-master/search/all_14.html b/dox-master/search/all_14.html new file mode 100644 index 000000000..afecf5634 --- /dev/null +++ b/dox-master/search/all_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_14.js b/dox-master/search/all_14.js new file mode 100644 index 000000000..6c68901bb --- /dev/null +++ b/dox-master/search/all_14.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['uncvref_5ft_1489',['uncvref_t',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a2ab5e5037d16dad0437e1192684bda59',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['unhandled_5fexception_1490',['unhandled_exception',['../structttg_1_1resumable__task__state.html#afde23bf72e8e76f644b57e718e8ebc31',1,'ttg::resumable_task_state']]], + ['unpack_1491',['unpack',['../classttg__parsec_1_1_t_t.html#a4678bd3dcb9fc0bda8e8d48e83f835b3',1,'ttg_parsec::TT']]], + ['unpack_5fpayload_1492',['unpack_payload',['../structttg__data__descriptor.html#abe695ce360ceccb2a906437a680a68e5',1,'ttg_data_descriptor::unpack_payload()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#a5436979fa6f718d5e2448c5e34fecb15',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::unpack_payload()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#a46fad1fc4c2879799c40afc915fc952a',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::unpack_payload()']]], + ['unpin_1493',['unpin',['../structttg__madness_1_1_buffer.html#aeec3da894770d7c83797663160f19f88',1,'ttg_madness::Buffer::unpin()'],['../structttg__parsec_1_1_buffer.html#aae442b3f2d8074b03be78bad70c2f9d1',1,'ttg_parsec::Buffer::unpin()']]], + ['unpin_5fon_1494',['unpin_on',['../structttg__madness_1_1_buffer.html#a459da60105d647708a2582b38ca03db0',1,'ttg_madness::Buffer::unpin_on()'],['../structttg__parsec_1_1_buffer.html#ae0b1b7c0ef36ddffc0a721fd86335c4e',1,'ttg_parsec::Buffer::unpin_on()']]], + ['unsigned_5fint_1495',['unsigned_int',['../structboost_1_1serialization_1_1unsigned__int.html',1,'boost::serialization::unsigned_int'],['../structboost_1_1serialization_1_1unsigned__int.html#a22bcd3f49ab19d6700670fc8b85438c7',1,'boost::serialization::unsigned_int::unsigned_int()']]], + ['unwrap_5freference_1496',['unwrap_reference',['../namespaceboost_1_1callable__traits_1_1detail.html#ae5f0e612ef80abfddfd49f0150501b49',1,'boost::callable_traits::detail']]], + ['unwrap_5freference_5ft_1497',['unwrap_reference_t',['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html',1,'boost::callable_traits::detail']]], + ['unwrap_5freference_5ft_3c_20t_2c_20is_5freference_5fwrapper_3c_20t_20_3e_20_3e_1498',['unwrap_reference_t< T, is_reference_wrapper< T > >',['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html',1,'boost::callable_traits::detail']]], + ['update_1499',['update',['../classttg_1_1detail_1_1_f_n_vhasher.html#adbf07ed352c7aecffa181e1a55f917cf',1,'ttg::detail::FNVhasher::update(std::byte byte) noexcept'],['../classttg_1_1detail_1_1_f_n_vhasher.html#a0e49d441a52fcdaebe8abeda54bab44e',1,'ttg::detail::FNVhasher::update(size_t n, const std::byte *bytes) noexcept']]], + ['utility_2ehpp_1500',['utility.hpp',['../utility_8hpp.html',1,'']]] +]; diff --git a/dox-master/search/all_15.html b/dox-master/search/all_15.html new file mode 100644 index 000000000..69f382b31 --- /dev/null +++ b/dox-master/search/all_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_15.js b/dox-master/search/all_15.js new file mode 100644 index 000000000..a0535efd3 --- /dev/null +++ b/dox-master/search/all_15.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['v_1501',['v',['../structboost_1_1serialization_1_1unsigned__int.html#a435b20f3a69d0e096ead40f1ad925c6f',1,'boost::serialization::unsigned_int']]], + ['value_1502',['value',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html#aeb01bd79e1014f6fc3f740f73608e753',1,'boost::callable_traits::detail::flag_map< T const >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html#ad4703b77348c60d464d1c736fc52ef08',1,'boost::callable_traits::detail::flag_map< T && >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html#aef77f03f7aa2a4b76a80e05be8491550',1,'boost::callable_traits::detail::flag_map< T const & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html#a59824c25cbd56eab3859fdf4b0c132b8',1,'boost::callable_traits::detail::flag_map< T const && >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html#a395d5d4556b57ffbebe143702618de4e',1,'boost::callable_traits::detail::flag_map< T volatile >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html#a02e99ebc504d58e14cc0dbc51327a3cb',1,'boost::callable_traits::detail::flag_map< T volatile & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html#adb10fd1f138d8f8a9525e6e0677efb28',1,'boost::callable_traits::detail::flag_map< T volatile && >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html#a975cc1421064a4c9cb7dc0f6bdc1546e',1,'boost::callable_traits::detail::flag_map< T const volatile >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html#ac0f207b1dff3549e2845dd863c76173d',1,'boost::callable_traits::detail::flag_map< T const volatile & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html#abc18179f32ce1de35de36c90a95b4cc5',1,'boost::callable_traits::detail::flag_map< T const volatile && >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1success.html#a278a3cb4e06a1e40e41593bd8622090a',1,'boost::callable_traits::detail::success::value()'],['../structboost_1_1callable__traits_1_1detail_1_1fail__if.html#a686c0e109f7685146eb8effd233067fa',1,'boost::callable_traits::detail::fail_if::value()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ab3deabe733c15998f76175d01ecc95ce',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#aa914d14e9c69e735cb8f122401dee6c3',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a03142bdd948b6b7ecf95e7a602a34572',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a4d5a14416a3264935a4f9111aa3c49fe',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a565c6fcd217cc8aba138d1a48ea31d31',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#abca7005ae47ce4ae2b1fb158b5419147',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html#a824a7e2a0cfacce148a30bc5c152196f',1,'boost::callable_traits::detail::flag_map< T & >::value()'],['../classttg_1_1detail_1_1_f_n_vhasher.html#ad4d3d8d283d7820fee4d50a4cd2d5f7e',1,'ttg::detail::FNVhasher::value()'],['../structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html#a69da59a0caeb3593a2c274c58847f3ae',1,'std::tuple_size< ttg::meta::typelist< Ts... > >::value()'],['../structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html#ae740ea466f33ecf72f7d11e4b048d720',1,'ttg::meta::typelist_size< typelist< Ts... > >::value()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html#a733b065b86c2bbbb3525ede53a813146',1,'TCB_SPAN_NAMESPACE_NAME::detail::is_container::value()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a683d8bf0b9666a9fb778f9ed09c5b33c',1,'boost::callable_traits::detail::default_callable_traits::value()'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html#a9d0f00493342813d4652158d56a458b7',1,'boost::callable_traits::detail::has_normal_call_operator::value()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1f110efe96e9d6b5ba6828c2a0594591',1,'boost::callable_traits::detail::function< T & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a6c8bd9f8d57bfdc11a382eee46c17411',1,'boost::callable_traits::detail::function_object::value()'],['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html#a116c8a0727889177adf23c439dae7405',1,'boost::callable_traits::detail::can_dereference_t::value()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#aaae822efbc6f695db2fb7a862dd1258b',1,'boost::callable_traits::detail::pmd< D T::* >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map.html#a14600da01bc4dab8ae3130a747b360a9',1,'boost::callable_traits::detail::flag_map::value()']]], + ['value_5fcopy_5fhandler_1503',['value_copy_handler',['../structttg_1_1detail_1_1value__copy__handler.html',1,'ttg::detail::value_copy_handler< Runtime >'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#afc947ca1880f0aed7e76c2b0f6be1804',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::value_copy_handler()=default'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a82b517dc08990aa568c054aeeb38ea0c',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::value_copy_handler(const value_copy_handler &h)=delete'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a2560b79f4d16b34dd0461a75b7fb800a',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::value_copy_handler(value_copy_handler &&h)']]], + ['value_5fcopy_5fhandler_3c_20ttg_3a_3aruntime_3a_3aparsec_20_3e_1504',['value_copy_handler< ttg::Runtime::PaRSEC >',['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html',1,'ttg::detail']]], + ['value_5fref_1505',['value_ref',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#aa9d708a4bf3b58680ce7daeb2cafb096',1,'ttg_parsec::detail::persistent_value_ref']]], + ['value_5ftype_1506',['value_type',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a7ac45b1bcd06d84d2774cc319ac3c645',1,'TCB_SPAN_NAMESPACE_NAME::span::value_type()'],['../classttg_1_1_out.html#a81c9c3bbabaed405c2496511136dd619',1,'ttg::Out::value_type()'],['../classttg_1_1_in.html#a5616aeacc1e54bb164d2a467da80b095',1,'ttg::In::value_type()'],['../classttg_1_1_edge.html#a9e5bedfb56285f66e7bb51a6c4384443',1,'ttg::Edge::value_type()'],['../structttg__parsec_1_1_ptr.html#afccdcd6f986580b3799a69ec8c62ecb2',1,'ttg_parsec::Ptr::value_type()'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#ab4869205597cd6adcc763961d88864d8',1,'ttg_parsec::detail::ttg_data_value_copy_t::value_type()'],['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#acb21b63f85d0e0dae046829f4c6d9a6d',1,'ttg_parsec::detail::persistent_value_ref::value_type()']]], + ['variant_2eh_1507',['variant.h',['../variant_8h.html',1,'']]], + ['vector_2eh_1508',['vector.h',['../vector_8h.html',1,'']]], + ['version_1509',['version',['../namespacettg.html#ab972c232155b2ee46097bb88d9121bcb',1,'ttg']]], + ['version_2ecc_1510',['version.cc',['../version_8cc.html',1,'']]], + ['version_5fas_5fadl_5ftag_1511',['version_as_adl_tag',['../namespaceboost_1_1serialization.html#ac82a78b86c62763c6a7c0c5a06477146',1,'boost::serialization']]], + ['void_1512',['Void',['../classttg_1_1_void.html',1,'ttg::Void'],['../classttg_1_1_void.html#a9d24650d7bd318140aeaf121cf7d9b37',1,'ttg::Void::Void()=default'],['../classttg_1_1_void.html#a9dde596d608a58d842362b51e2effa21',1,'ttg::Void::Void(T &&)']]], + ['void_2eh_1513',['void.h',['../void_8h.html',1,'']]], + ['void_5ft_1514',['void_t',['../namespacettg_1_1meta.html#a81921dc33d6c66f8223e648a5edd0c20',1,'ttg::meta::void_t()'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#aa2c107c07b9872908e80aa8e986072de',1,'TCB_SPAN_NAMESPACE_NAME::detail::void_t()']]], + ['void_5fto_5fvoid_1515',['void_to_Void',['../structttg_1_1meta_1_1void__to___void.html',1,'ttg::meta']]], + ['void_5fto_5fvoid_3c_20void_20_3e_1516',['void_to_Void< void >',['../structttg_1_1meta_1_1void__to___void_3_01void_01_4.html',1,'ttg::meta']]], + ['void_5fto_5fvoid_5ft_1517',['void_to_Void_t',['../namespacettg_1_1meta.html#a068f4b01f77baa848e84c2b07dd9f8ce',1,'ttg::meta']]], + ['volatile_5f_1518',['volatile_',['../namespaceboost_1_1callable__traits_1_1detail.html#a16f75165ffa631aa3018829b10248528',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/all_16.html b/dox-master/search/all_16.html new file mode 100644 index 000000000..b19867ad9 --- /dev/null +++ b/dox-master/search/all_16.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_16.js b/dox-master/search/all_16.js new file mode 100644 index 000000000..cafff3d68 --- /dev/null +++ b/dox-master/search/all_16.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['wait_5ffor_5fdebugger_5f_1519',['wait_for_debugger_',['../classttg_1_1_debugger.html#af796dbf4287e7c7df1bcce9d918d533a',1,'ttg::Debugger']]], + ['watch_2eh_1520',['watch.h',['../watch_8h.html',1,'']]], + ['watchpoint_5fclear_1521',['watchpoint_clear',['../namespacettg__madness.html#a410adda62f54efc8623cf0d50afdd53e',1,'ttg_madness']]], + ['watchpoint_5fset_1522',['watchpoint_set',['../namespacettg__madness.html#a8cabd7cfbc5aaead3712f4a8e505e94f',1,'ttg_madness']]], + ['watchpoints_5fthreads_1523',['watchpoints_threads',['../namespacettg__madness_1_1detail.html#a6499d424299d2050253878a435df316b',1,'ttg_madness::detail']]], + ['workflow_2emd_1524',['Workflow.md',['../_workflow_8md.html',1,'']]], + ['world_1525',['World',['../classttg_1_1base_1_1_world.html',1,'ttg::base::World< WorldImplT >'],['../classttg_1_1_world.html',1,'ttg::World'],['../classttg_1_1base_1_1_world.html#ac891aa2d46f45317cf46c37758ba8fda',1,'ttg::base::World::World(void)'],['../classttg_1_1base_1_1_world.html#a97c5374055ed1a6f0dbd75313636f6d8',1,'ttg::base::World::World(std::shared_ptr< ttg::base::WorldImplBase > world_impl)'],['../classttg_1_1base_1_1_world.html#ad41577d9fcb3b1c3de75eafb7fbde11b',1,'ttg::base::World::World(const World &other)=default'],['../classttg_1_1base_1_1_world.html#a9d32a4457b7d12232a3e58e21543fa6a',1,'ttg::base::World::World(World &&other)=default']]], + ['world_2eh_1526',['world.h',['../world_8h.html',1,'(Global Namespace)'],['../base_2world_8h.html',1,'(Global Namespace)']]], + ['world_3c_20ttg_5fimpl_5fns_3a_3aworldimpl_20_3e_1527',['World< TTG_IMPL_NS::WorldImpl >',['../classttg_1_1base_1_1_world.html',1,'ttg::base']]], + ['world_5fregistry_5faccessor_1528',['world_registry_accessor',['../namespacettg_1_1detail.html#a4479758f84174309debce5434a9f9c37',1,'ttg::detail']]], + ['worldimpl_1529',['WorldImpl',['../classttg__madness_1_1_world_impl.html',1,'ttg_madness::WorldImpl'],['../classttg__parsec_1_1_world_impl.html',1,'ttg_parsec::WorldImpl'],['../classttg__madness_1_1_world_impl.html#adc7819e07096559105db207f71e17b5e',1,'ttg_madness::WorldImpl::WorldImpl()'],['../classttg__parsec_1_1_world_impl.html#adf526d0d4c3c39cbccb1feadd90565e8',1,'ttg_parsec::WorldImpl::WorldImpl(WorldImpl &&other)=delete'],['../classttg__parsec_1_1_world_impl.html#a47703e6db181e1dba577f324b27c11e4',1,'ttg_parsec::WorldImpl::WorldImpl(const WorldImpl &other)=delete'],['../classttg__parsec_1_1_world_impl.html#a5dbc8b40e4d489a0d913efccfb7d0ae0',1,'ttg_parsec::WorldImpl::WorldImpl(int *argc, char **argv[], int ncores, parsec_context_t *c=nullptr)'],['../classttg__madness_1_1_world_impl.html#aa65ede33f5a7fac0ca1aff100a1ade38',1,'ttg_madness::WorldImpl::WorldImpl(WorldImpl &&other)=delete'],['../classttg__madness_1_1_world_impl.html#a40386228af06431a36a887aa317c0bf6',1,'ttg_madness::WorldImpl::WorldImpl(const WorldImpl &other)=delete'],['../classttg__madness_1_1_world_impl.html#aa79d932e923e680f5cc11fba332babdb',1,'ttg_madness::WorldImpl::WorldImpl(::madness::World &world)']]], + ['worldimplbase_1530',['WorldImplBase',['../classttg_1_1base_1_1_world_impl_base.html',1,'ttg::base::WorldImplBase'],['../classttg_1_1base_1_1_world_impl_base.html#a9ce5ae02fdf7d508a68f28e509637c22',1,'ttg::base::WorldImplBase::WorldImplBase()']]], + ['worldobjt_1531',['worldobjT',['../classttg__madness_1_1_t_t.html#acfa2e9ae795ec1ae645cc36c313fbdf1',1,'ttg_madness::TT']]], + ['wrap_1532',['wrap',['../make__tt_8h.html#a147a9574acc8f8a503ae6d0cfcf83e1b',1,'make_tt.h']]], + ['wrapt_1533',['wrapt',['../make__tt_8h.html#adba403e3316422e1befbf908bb6936b7',1,'make_tt.h']]], + ['write_1534',['Write',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8a1129c0e4d43f2d121652a7302712cff6',1,'ttg::TerminalBase']]] +]; diff --git a/dox-master/search/all_17.html b/dox-master/search/all_17.html new file mode 100644 index 000000000..1ad5d34b4 --- /dev/null +++ b/dox-master/search/all_17.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_17.js b/dox-master/search/all_17.js new file mode 100644 index 000000000..cd68714e7 --- /dev/null +++ b/dox-master/search/all_17.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['xsgetn_1535',['xsgetn',['../classttg_1_1detail_1_1iovec__istreambuf.html#a0288bd93f0f0f3965a4a6a16a6ba5af4',1,'ttg::detail::iovec_istreambuf::xsgetn()'],['../classttg_1_1detail_1_1byte__istreambuf.html#a1fe465fd5d7cba8515e69b4d9ab521bf',1,'ttg::detail::byte_istreambuf::xsgetn()']]], + ['xsputn_1536',['xsputn',['../classttg_1_1detail_1_1counting__streambuf.html#a5d7b252421e2c3526f8aef0b13bc18fe',1,'ttg::detail::counting_streambuf::xsputn()'],['../classttg_1_1detail_1_1iovec__ostreambuf.html#a5448012b840fdf7d78dceddc7f032c0b',1,'ttg::detail::iovec_ostreambuf::xsputn()'],['../classttg_1_1detail_1_1byte__ostreambuf.html#a22636e252f12f3c21d6da01d8c4167a4',1,'ttg::detail::byte_ostreambuf::xsputn()']]] +]; diff --git a/dox-master/search/all_18.html b/dox-master/search/all_18.html new file mode 100644 index 000000000..507d0f856 --- /dev/null +++ b/dox-master/search/all_18.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_18.js b/dox-master/search/all_18.js new file mode 100644 index 000000000..0487f2598 --- /dev/null +++ b/dox-master/search/all_18.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['_7ebinaryspanningtree_1537',['~BinarySpanningTree',['../classttg_1_1_binary_spanning_tree.html#a870c9afea6610fc1ff7a8a9f6227742e',1,'ttg::BinarySpanningTree']]], + ['_7ebuffer_1538',['~Buffer',['../structttg__madness_1_1_buffer.html#a3add0b842f6870bfdf6d004cdbcae7d8',1,'ttg_madness::Buffer::~Buffer()'],['../structttg__parsec_1_1_buffer.html#a436632d1ae4608b3e9747704bbf628a7',1,'ttg_parsec::Buffer::~Buffer()']]], + ['_7edebugger_1539',['~Debugger',['../classttg_1_1_debugger.html#a12f822c5d6749212d35a6ff006edcf31',1,'ttg::Debugger']]], + ['_7edevicescratch_1540',['~devicescratch',['../structttg__parsec_1_1devicescratch.html#a225d2d40e1d7d90141fc7a6c2b0f2d9e',1,'ttg_parsec::devicescratch']]], + ['_7ememorywatchpoint_5fx86_5f64_1541',['~MemoryWatchpoint_x86_64',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#acbf25253ee5689aa9c6a05aeb0be7160',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['_7epool_1542',['~Pool',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a6d5ff0c8c59ef95f3b3c999c5905ba6e',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['_7eptr_1543',['~Ptr',['../structttg__parsec_1_1_ptr.html#a3f2a1e5b3eab536e194a880b78fc683c',1,'ttg_parsec::Ptr']]], + ['_7eptr_5fimpl_1544',['~ptr_impl',['../structttg__parsec_1_1detail_1_1ptr__impl.html#ada08975b6634c347f4100825a01b958d',1,'ttg_parsec::detail::ptr_impl']]], + ['_7esinktt_1545',['~SinkTT',['../classttg_1_1_sink_t_t.html#ac2ef7a21b3039f54847d998a38a7df2c',1,'ttg::SinkTT']]], + ['_7espan_1546',['~span',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a4a50a6ad37201ef56395369e48e020ed',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['_7eterminalbase_1547',['~TerminalBase',['../classttg_1_1_terminal_base.html#a73bb2e26e0355b9b2f23ebd58e540d8f',1,'ttg::TerminalBase']]], + ['_7ett_1548',['~TT',['../classttg__madness_1_1_t_t.html#a5be38a8590787ec3bf87466208e1ac83',1,'ttg_madness::TT::~TT()'],['../classttg__parsec_1_1_t_t.html#a25b978cc241c81daeac89c8f5169730c',1,'ttg_parsec::TT::~TT()']]], + ['_7ettbase_1549',['~TTBase',['../classttg_1_1_t_t_base.html#a2476da9f50533b12b2edafa72f1e39db',1,'ttg::TTBase']]], + ['_7ettg_5fdata_5fcopy_5ft_1550',['~ttg_data_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a8ed69a631b0949afd590abc574f258c6',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['_7ettg_5fdata_5fvalue_5fcopy_5ft_1551',['~ttg_data_value_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a45fe5591f5a67a41d21f32fd90ad1169',1,'ttg_parsec::detail::ttg_data_value_copy_t']]], + ['_7ettg_5fparsec_5fdata_5fwrapper_5ft_1552',['~ttg_parsec_data_wrapper_t',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a87f02b4861ef5d716f2e89dd8e13e8c1',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['_7ettvalue_1553',['~TTValue',['../structttg__parsec_1_1_t_t_value.html#aca965177263b0903e779db8a7765019d',1,'ttg_parsec::TTValue']]], + ['_7evalue_5fcopy_5fhandler_1554',['~value_copy_handler',['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#afc9707d0a8baf9415f366fdd2e77ef79',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >']]], + ['_7eworld_1555',['~World',['../classttg_1_1base_1_1_world.html#a7c445d548dc24461b0e6c85ef3d7d00d',1,'ttg::base::World']]], + ['_7eworldimpl_1556',['~WorldImpl',['../classttg__madness_1_1_world_impl.html#aa5cb0ba86aed7a4e5a986d30c24d467f',1,'ttg_madness::WorldImpl::~WorldImpl()'],['../classttg__parsec_1_1_world_impl.html#a723d8ec0a2fdb24329edb5b3996f59e1',1,'ttg_parsec::WorldImpl::~WorldImpl()']]], + ['_7eworldimplbase_1557',['~WorldImplBase',['../classttg_1_1base_1_1_world_impl_base.html#a8fa81aef86187a27c065522b29b6f499',1,'ttg::base::WorldImplBase']]] +]; diff --git a/dox-master/search/all_2.html b/dox-master/search/all_2.html new file mode 100644 index 000000000..02cfffc2e --- /dev/null +++ b/dox-master/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_2.js b/dox-master/search/all_2.js new file mode 100644 index 000000000..7b12d054f --- /dev/null +++ b/dox-master/search/all_2.js @@ -0,0 +1,81 @@ +var searchData= +[ + ['archive_79',['archive',['../namespaceboost_1_1archive.html',1,'boost']]], + ['back_80',['back',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a94fa974191d3bfffb8bec306b19c08f7',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['backends_2eh_81',['backends.h',['../backends_8h.html',1,'']]], + ['backtrace_82',['Backtrace',['../classttg_1_1detail_1_1_backtrace.html#af13ee0e71c58e0573986efd6f1a0d882',1,'ttg::detail::Backtrace::Backtrace(const std::string &prefix=std::string(""))'],['../classttg_1_1detail_1_1_backtrace.html#a3f843a27f7ec7873b07fb323bbbb1397',1,'ttg::detail::Backtrace::Backtrace(const Backtrace &)'],['../classttg_1_1detail_1_1_backtrace.html',1,'ttg::detail::Backtrace']]], + ['backtrace_2ecpp_83',['backtrace.cpp',['../backtrace_8cpp.html',1,'']]], + ['backtrace_2eh_84',['backtrace.h',['../backtrace_8h.html',1,'']]], + ['base_85',['base',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#afa05200138c1aeef5e72cb6e31277648',1,'boost::callable_traits::detail::function< T & >']]], + ['base_5ftype_86',['base_type',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#abe8c9361eae4a4ec0783ad548cef13fd',1,'ttg::detail::boost_optimized_oarchive::base_type()'],['../structttg_1_1resumable__task.html#ad7844d7e4f11c6cffed6f48f989218b3',1,'ttg::resumable_task::base_type()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a278ae091297c069f26c2917a4920235e',1,'ttg::detail::boost_optimized_iarchive::base_type()'],['../classttg_1_1_in.html#ac6dbe0e0948196f1482d9f8b674aa110',1,'ttg::In::base_type()']]], + ['baset_87',['baseT',['../classttg_1_1_binary_tree_broadcast.html#a1c5fd3be73a5c27725e781191f744ed8',1,'ttg::BinaryTreeBroadcast::baseT()'],['../classttg_1_1_binary_tree_reduce.html#aaed10e587897475593547f798d961ae4',1,'ttg::BinaryTreeReduce::baseT()']]], + ['begin_88',['begin',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a664fb3dd58c2a8ee9c76ea881a7c1a31',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['binaryspanningtree_89',['BinarySpanningTree',['../classttg_1_1_binary_spanning_tree.html#ace575e2f7466b0b43b1b0b9925e92388',1,'ttg::BinarySpanningTree::BinarySpanningTree()'],['../classttg_1_1_binary_spanning_tree.html',1,'ttg::BinarySpanningTree']]], + ['binarytreebroadcast_90',['BinaryTreeBroadcast',['../classttg_1_1_binary_tree_broadcast.html#ade6e9136372de7b7865d8daef8e40604',1,'ttg::BinaryTreeBroadcast::BinaryTreeBroadcast()'],['../classttg_1_1_binary_tree_broadcast.html',1,'ttg::BinaryTreeBroadcast< Value, OutKey >']]], + ['binarytreereduce_91',['BinaryTreeReduce',['../classttg_1_1_binary_tree_reduce.html#ad872b649b9eee96d0245e3dcfe9eea54',1,'ttg::BinaryTreeReduce::BinaryTreeReduce()'],['../classttg_1_1_binary_tree_reduce.html',1,'ttg::BinaryTreeReduce< Value, BinaryOp, OutKey >']]], + ['bool_5ftype_92',['bool_type',['../namespaceboost_1_1callable__traits_1_1detail.html#ac252195c4b31b47988c6f284a8f9c603',1,'boost::callable_traits::detail']]], + ['boost_93',['boost',['../namespaceboost.html',1,'']]], + ['boost_2eh_94',['boost.h',['../boost_8h.html',1,'']]], + ['boost_5fbuffer_5fiarchive_95',['boost_buffer_iarchive',['../namespacettg_1_1detail.html#aa8fc928a58b618764c9034f5af7fd9f4',1,'ttg::detail']]], + ['boost_5fbuffer_5foarchive_96',['boost_buffer_oarchive',['../namespacettg_1_1detail.html#a01fe40f58997dde3df7cf6dce72602a3',1,'ttg::detail']]], + ['boost_5fbyte_5fiarchive_97',['boost_byte_iarchive',['../namespacettg_1_1detail.html#afc5638180f1ff92683a99d94916d55eb',1,'ttg::detail']]], + ['boost_5fbyte_5foarchive_98',['boost_byte_oarchive',['../namespacettg_1_1detail.html#aac3175d58ac6238adafd458000707294',1,'ttg::detail']]], + ['boost_5fclbl_5ftraits_5finline_5fvar_99',['BOOST_CLBL_TRAITS_INLINE_VAR',['../config_8hpp.html#a23e2de9c461b4befc43af671b8329585',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fabominable_5fconst_100',['BOOST_CLBL_TRTS_ABOMINABLE_CONST',['../config_8hpp.html#a8a960d7579cd59fcfb1e73a908018dae',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fabominable_5fvolatile_101',['BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE',['../config_8hpp.html#a70a4b2f4cb2fe2046e0dd5dedfbb13ca',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fcc_102',['BOOST_CLBL_TRTS_CC',['../function_8hpp.html#a9ffc32d24ae4fca9fbdc56a7a502aeb0',1,'BOOST_CLBL_TRTS_CC(): function.hpp'],['../pmf_8hpp.html#a9ffc32d24ae4fca9fbdc56a7a502aeb0',1,'BOOST_CLBL_TRTS_CC(): pmf.hpp'],['../pmf_8hpp.html#a9ffc32d24ae4fca9fbdc56a7a502aeb0',1,'BOOST_CLBL_TRTS_CC(): pmf.hpp']]], + ['boost_5fclbl_5ftrts_5fcc_5ftag_103',['BOOST_CLBL_TRTS_CC_TAG',['../function_8hpp.html#a5ba5f29e4805ba6bb736a37025803ed6',1,'BOOST_CLBL_TRTS_CC_TAG(): function.hpp'],['../pmf_8hpp.html#a5ba5f29e4805ba6bb736a37025803ed6',1,'BOOST_CLBL_TRTS_CC_TAG(): pmf.hpp'],['../pmf_8hpp.html#a5ba5f29e4805ba6bb736a37025803ed6',1,'BOOST_CLBL_TRTS_CC_TAG(): pmf.hpp']]], + ['boost_5fclbl_5ftrts_5fdefault_5fvarargs_5fcc_104',['BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC',['../config_8hpp.html#a3fc5a401bb741bbaf9c23b7c479e706b',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fdefine_5fsfinae_5ferror_5forigin_105',['BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN',['../sfinae__errors_8hpp.html#a9a0a48b9f40ebed4458d305b92957862',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fdisable_5fvariable_5ftemplates_106',['BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES',['../config_8hpp.html#ac43640cc449e295749a81b3d6d0db62a',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fdisjunction_107',['BOOST_CLBL_TRTS_DISJUNCTION',['../config_8hpp.html#aa00b1564751946408d2987ed973d5358',1,'BOOST_CLBL_TRTS_DISJUNCTION(): config.hpp'],['../disjunction_8hpp.html#aa00b1564751946408d2987ed973d5358',1,'BOOST_CLBL_TRTS_DISJUNCTION(): disjunction.hpp']]], + ['boost_5fclbl_5ftrts_5fempty_108',['BOOST_CLBL_TRTS_EMPTY',['../config_8hpp.html#a95c8416173c81667401febf3b027127e',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fempty_5f_109',['BOOST_CLBL_TRTS_EMPTY_',['../config_8hpp.html#ab9525908cede343313c93473a782ac75',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5finclude_5fabominable_5fqualifiers_110',['BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS',['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp']]], + ['boost_5fclbl_5ftrts_5finclude_5fqualifiers_111',['BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS',['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp']]], + ['boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_112',['BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE',['../unguarded_2function_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): function.hpp'],['../function__ptr_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): function_ptr.hpp'],['../function__ptr__varargs_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): function_ptr_varargs.hpp'],['../pmf__2_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): pmf_2.hpp'],['../pmf__varargs__2_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): pmf_varargs_2.hpp']]], + ['boost_5fclbl_5ftrts_5fis_5fnoexcept_113',['BOOST_CLBL_TRTS_IS_NOEXCEPT',['../function__ptr__2_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): function_ptr_2.hpp'],['../pmf__varargs__3_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): pmf_varargs_3.hpp'],['../pmf__3_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): pmf_3.hpp'],['../function__ptr__varargs__2_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): function_ptr_varargs_2.hpp'],['../function__2_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): function_2.hpp']]], + ['boost_5fclbl_5ftrts_5fis_5ftransaction_5fsafe_114',['BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE',['../unguarded_2function_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): function.hpp'],['../function__ptr_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): function_ptr.hpp'],['../function__ptr__varargs_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): function_ptr_varargs.hpp'],['../pmf__2_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): pmf_2.hpp'],['../pmf__varargs__2_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): pmf_varargs_2.hpp']]], + ['boost_5fclbl_5ftrts_5fix_5fseq_115',['BOOST_CLBL_TRTS_IX_SEQ',['../config_8hpp.html#a69cb1188b14c7c2486dc6d6ea8a8e624',1,'BOOST_CLBL_TRTS_IX_SEQ(): config.hpp'],['../make__index__sequence_8hpp.html#a69cb1188b14c7c2486dc6d6ea8a8e624',1,'BOOST_CLBL_TRTS_IX_SEQ(): make_index_sequence.hpp']]], + ['boost_5fclbl_5ftrts_5fmake_5fix_5fseq_116',['BOOST_CLBL_TRTS_MAKE_IX_SEQ',['../config_8hpp.html#a65600d22ba62c7498df2cad7a1bf14c0',1,'BOOST_CLBL_TRTS_MAKE_IX_SEQ(): config.hpp'],['../make__index__sequence_8hpp.html#a65600d22ba62c7498df2cad7a1bf14c0',1,'BOOST_CLBL_TRTS_MAKE_IX_SEQ(): make_index_sequence.hpp']]], + ['boost_5fclbl_5ftrts_5fnoexcept_5fspec_117',['BOOST_CLBL_TRTS_NOEXCEPT_SPEC',['../function__ptr__2_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): function_ptr_2.hpp'],['../function__2_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): function_2.hpp'],['../function__ptr__varargs__2_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): function_ptr_varargs_2.hpp'],['../pmf__3_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): pmf_3.hpp'],['../pmf__varargs__3_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): pmf_varargs_3.hpp']]], + ['boost_5fclbl_5ftrts_5fnoexcept_5fspecifier_118',['BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER',['../config_8hpp.html#ad9e7c37a540beade16d727cb6e432a3f',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fpp_5fcat_119',['BOOST_CLBL_TRTS_PP_CAT',['../sfinae__errors_8hpp.html#a7a896803a2641de2d71e1f0e96a46827',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fpp_5fcat_5f_120',['BOOST_CLBL_TRTS_PP_CAT_',['../sfinae__errors_8hpp.html#a6db92e28e8dbd7114d078bfcdb6f7c0c',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fset_5ffunction_5fqualifiers_121',['BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS',['../namespaceboost_1_1callable__traits_1_1detail.html#ab3bb0425c94b5e9b52fa531c7efce67d',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS()'],['../set__function__qualifiers_8hpp.html#a4681cb3ffe0c3e1b35cb3edd1bdc9d16',1,'BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(): set_function_qualifiers.hpp'],['../namespaceboost_1_1callable__traits_1_1detail.html#a832f306a4c79d650943ed5db25ab5f3c',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const)'],['../namespaceboost_1_1callable__traits_1_1detail.html#af6688767286e7858b374a5e92c9a49a4',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(&&);BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const &'],['../namespaceboost_1_1callable__traits_1_1detail.html#ae64c292bb6672887fad163deb2b53f4d',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const &&)'],['../namespaceboost_1_1callable__traits_1_1detail.html#ae032db5a667c168c43a35c338f552e67',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(volatile &)'],['../namespaceboost_1_1callable__traits_1_1detail.html#a16f05d50b6c012cb8698f0b29fc917e4',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(volatile &&)'],['../namespaceboost_1_1callable__traits_1_1detail.html#a30c5a7a0aa267af16a23a079f51efb12',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const volatile &)']]], + ['boost_5fclbl_5ftrts_5fsfinae_5fmsg_122',['BOOST_CLBL_TRTS_SFINAE_MSG',['../sfinae__errors_8hpp.html#a04d8f8f086033eef20c4768538e51244',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fst_123',['BOOST_CLBL_TRTS_ST',['../function_8hpp.html#a9d0f5fa0396b278b88057dfea67cf0f3',1,'function.hpp']]], + ['boost_5fclbl_5ftrts_5ftransaction_5fsafe_5fspecifier_124',['BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER',['../config_8hpp.html#a54f036cd5b78cef1aba2064bc2a17319',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fvarargs_5fcc_125',['BOOST_CLBL_TRTS_VARARGS_CC',['../pmf_8hpp.html#aefb0e3fc943176fb6f6320f90233494d',1,'BOOST_CLBL_TRTS_VARARGS_CC(): pmf.hpp'],['../pmf_8hpp.html#aefb0e3fc943176fb6f6320f90233494d',1,'BOOST_CLBL_TRTS_VARARGS_CC(): pmf.hpp'],['../function_8hpp.html#aefb0e3fc943176fb6f6320f90233494d',1,'BOOST_CLBL_TRTS_VARARGS_CC(): function.hpp']]], + ['boost_5fcounting_5foarchive_126',['boost_counting_oarchive',['../namespacettg_1_1detail.html#a2a4bd7d824c60862350521deb556d53d',1,'ttg::detail']]], + ['boost_5fiovec_5fiarchive_127',['boost_iovec_iarchive',['../namespacettg_1_1detail.html#acbc13605d5af04dfc675ff36e8e794fc',1,'ttg::detail']]], + ['boost_5fiovec_5foarchive_128',['boost_iovec_oarchive',['../namespacettg_1_1detail.html#ae3254ae5e52181621a71e2316a2af186',1,'ttg::detail']]], + ['boost_5foptimized_5fiarchive_129',['boost_optimized_iarchive',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a72e1bd3f3c846a526658bb10e4ffe69c',1,'ttg::detail::boost_optimized_iarchive::boost_optimized_iarchive(StreamOrStreambuf sbuf)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#abed932b2654903179829ebdefad4069e',1,'ttg::detail::boost_optimized_iarchive::boost_optimized_iarchive(Arg &&arg)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a862e1b2d3966cbdd20868903c0ef933c',1,'ttg::detail::boost_optimized_iarchive::boost_optimized_iarchive()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html',1,'ttg::detail::boost_optimized_iarchive< StreamOrStreambuf >']]], + ['boost_5foptimized_5foarchive_130',['boost_optimized_oarchive',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#afece61128314a9427b85bc23f34a403a',1,'ttg::detail::boost_optimized_oarchive::boost_optimized_oarchive()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#aa4312bc00c7fb27ebb57eedb3aab223d',1,'ttg::detail::boost_optimized_oarchive::boost_optimized_oarchive(StreamOrStreambuf sbuf)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a851170415a77b9db3c3153baba4e1c67',1,'ttg::detail::boost_optimized_oarchive::boost_optimized_oarchive(Arg &&arg)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html',1,'ttg::detail::boost_optimized_oarchive< StreamOrStreambuf >']]], + ['boost_5fserialization_5fregister_5farchive_131',['BOOST_SERIALIZATION_REGISTER_ARCHIVE',['../archive_8h.html#a7eb602768452e01cc34dccdd5758a9a8',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_counting_oarchive): archive.h'],['../archive_8h.html#a75456571b517431dbf12df9657134995',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_iovec_oarchive): archive.h'],['../archive_8h.html#ad28e1e8ae7103246794fd03b9cf1c200',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_buffer_oarchive): archive.h'],['../archive_8h.html#a22df2e45469561212b9f91172f5a6135',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_iovec_iarchive): archive.h'],['../archive_8h.html#aa917439211caaa95d94248d7c735b6ae',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_buffer_iarchive): archive.h'],['../archive_8h.html#ac2104400eac0746c05622250759dc25a',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_byte_oarchive): archive.h'],['../archive_8h.html#a4a039869c6873477b66ecf7b0db7f57f',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_byte_iarchive): archive.h']]], + ['boost_5fserialization_5fuse_5farray_5foptimization_5ffor_5fthis_5fand_5fbase_132',['BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE',['../archive_8h.html#a07dd046ac663adeeacf5e5f98e11aa38',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_counting_oarchive): archive.h'],['../archive_8h.html#ad0150ad931a031fda69afef61352a010',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_byte_iarchive): archive.h'],['../archive_8h.html#ae54dc59f428b29b6087d05fa60af80f3',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_byte_oarchive): archive.h'],['../archive_8h.html#a654cebcc1c010f8e9d06dd3b9a61a244',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_buffer_iarchive): archive.h'],['../archive_8h.html#acf586da475db535185be8fd20d814b5c',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_iovec_iarchive): archive.h'],['../archive_8h.html#a61e02e46204f9bfc5c91f592c4e6dce7',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_buffer_oarchive): archive.h'],['../archive_8h.html#a6018404aa2ae9ec290c7537bc3264b9c',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_iovec_oarchive): archive.h'],['../archive_8h.html#ae21d3fdb053a9569ee4e657f83d3734d',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(): archive.h']]], + ['breakstate_133',['BreakState',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['broadcast_134',['broadcast',['../namespacettg_1_1detail.html#adc8ad44fcad6d0781a817bfd5f7a9ce6',1,'ttg::detail::broadcast(const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg_1_1detail.html#adaaa172e6c45c0096b3b94b9c2df68bb',1,'ttg::detail::broadcast(const std::tuple< RangesT... > &keylists, valueT &&value)'],['../namespacettg_1_1detail.html#a9d591282fbb338459fafb4d2c1360d8c',1,'ttg::detail::broadcast(const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#acf908d9662cedac0bb46449fde7b1f2e',1,'ttg::broadcast()'],['../classttg_1_1_out.html#a7a6cb20da481d51ac25c7b73d95c5fce',1,'ttg::Out::broadcast(const rangeT &keylist)'],['../classttg_1_1_out.html#ab0f6c234342347abadd6641ac0e3186c',1,'ttg::Out::broadcast(const rangeT &keylist, const Value &value)'],['../classttg_1_1_in.html#ac0470d2a7979d0e6c73b72e831897e79',1,'ttg::In::broadcast(const rangeT &keylist)'],['../classttg_1_1_in.html#ade823ef11ad829eed8783c8a97efd4a6',1,'ttg::In::broadcast(const rangeT &keylist, Value &&value)'],['../classttg_1_1_in.html#ac1b67369418aeb32ae29e3adfbe25233',1,'ttg::In::broadcast(const rangeT &keylist, const Value &value)'],['../namespacettg.html#ac8e21a740dc51633bdb551ca9a15599c',1,'ttg::broadcast()'],['../namespacettg_1_1detail.html#af0cd55a640abd73c4760329260a09ba2',1,'ttg::detail::broadcast()'],['../namespacettg.html#a5d4ff5c0e881e2d20ae90ff2967b82a4',1,'ttg::broadcast(std::size_t i, const rangeT &keylist, valueT &&value)'],['../namespacettg.html#a737d42cdd65907cfa4f1b19d26f17a24',1,'ttg::broadcast(const rangeT &keylist, valueT &&value)'],['../namespacettg.html#a755e4e30482082d4e484cd9c339007a5',1,'ttg::broadcast(const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)']]], + ['broadcast_2eh_135',['broadcast.h',['../broadcast_8h.html',1,'']]], + ['broadcast_5farg_136',['broadcast_arg',['../classttg__parsec_1_1_t_t.html#a3f456550e2aa639e025908ef91889d80',1,'ttg_parsec::TT']]], + ['broadcast_5farg_5flocal_137',['broadcast_arg_local',['../classttg__parsec_1_1_t_t.html#abb317d30cac090a9d2fa0465955b4ae4',1,'ttg_parsec::TT']]], + ['broadcast_5fcallback_5ftype_138',['broadcast_callback_type',['../classttg_1_1_in.html#ab23cd191614c57a57670188b367d1ed1',1,'ttg::In']]], + ['broadcastk_139',['broadcastk',['../namespacettg.html#ad969e1e680fbdf6ae4ac7119198020ec',1,'ttg::broadcastk(const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#acd90a9ecb881d48728663b44d3935ff3',1,'ttg::broadcastk(const std::tuple< RangesT... > &keylists)'],['../namespacettg.html#adbcac853d026fe2c3badfeaeae37a273',1,'ttg::broadcastk(const rangeT &keylist, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ac803bd14ed65cffefb0c724cdd09e694',1,'ttg::broadcastk(std::size_t i, const rangeT &keylist)'],['../namespacettg.html#a9643b174824fbe0fe69a881791c074df',1,'ttg::broadcastk(const rangeT &keylist)']]], + ['buffer_140',['Buffer',['../structttg__parsec_1_1_buffer.html#a0e2c9c53346079277370ec5784117ab6',1,'ttg_parsec::Buffer::Buffer(Buffer &&db)'],['../structttg__parsec_1_1_buffer.html#a54f55f83d8e7711e287c4826a682d529',1,'ttg_parsec::Buffer::Buffer(std::size_t n)'],['../structttg__parsec_1_1_buffer.html#a9ed678a9c380abb1f0ee487bf3336f56',1,'ttg_parsec::Buffer::Buffer()'],['../structttg__madness_1_1_buffer.html#a75e579694f9635061208d7b625020f09',1,'ttg_madness::Buffer::Buffer(const Buffer &db)=delete'],['../structttg__madness_1_1_buffer.html#a4aa3b04cf70e640d45aafa7e6a204d96',1,'ttg_madness::Buffer::Buffer(Buffer &&db)'],['../structttg__madness_1_1_buffer.html#a7f4c69e9ac16570cd76143774446d86b',1,'ttg_madness::Buffer::Buffer(element_type *ptr, std::size_t n=1)'],['../structttg__madness_1_1_buffer.html#aa84aaccf2c45d3e66a9991fe7038348c',1,'ttg_madness::Buffer::Buffer(std::size_t n)'],['../structttg__madness_1_1_buffer.html#a5475bbb43c615eb9b1a8099630d92baa',1,'ttg_madness::Buffer::Buffer()'],['../structttg__parsec_1_1_buffer.html#a6d49cc006d387602fbd18e5743c1699e',1,'ttg_parsec::Buffer::Buffer()'],['../namespacettg.html#aca5897f2652ac83927eab5b2eda1c3b6',1,'ttg::Buffer()'],['../structttg__parsec_1_1_buffer.html#a0867464ccb529ac8fd66d2b39d386ba1',1,'ttg_parsec::Buffer::Buffer()'],['../structttg__madness_1_1_buffer.html',1,'ttg_madness::Buffer< T, Allocator >'],['../structttg__parsec_1_1_buffer.html',1,'ttg_parsec::Buffer< T, Allocator >']]], + ['buffer_2eh_141',['buffer.h',['../buffer_8h.html',1,'(Global Namespace)'],['../parsec_2buffer_8h.html',1,'(Global Namespace)'],['../madness_2buffer_8h.html',1,'(Global Namespace)']]], + ['buffer_5farchive_2ecpp_142',['buffer_archive.cpp',['../buffer__archive_8cpp.html',1,'']]], + ['buffer_5farchive_2eh_143',['buffer_archive.h',['../buffer__archive_8h.html',1,'']]], + ['bug_2ecpp_144',['bug.cpp',['../bug_8cpp.html',1,'']]], + ['bug_2eh_145',['bug.h',['../bug_8h.html',1,'']]], + ['build_5fttg_5fhierarchy_146',['build_ttg_hierarchy',['../classttg_1_1_dot.html#acf2006cfe81db46f057e9501d6c1531b',1,'ttg::Dot']]], + ['byte_147',['byte',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#add3514d658e15f203bfef6e0a614115b',1,'TCB_SPAN_NAMESPACE_NAME']]], + ['byte_5fistreambuf_148',['byte_istreambuf',['../classttg_1_1detail_1_1byte__istreambuf.html#a04ed16567575a182c2216270185a71de',1,'ttg::detail::byte_istreambuf::byte_istreambuf()'],['../classttg_1_1detail_1_1byte__istreambuf.html',1,'ttg::detail::byte_istreambuf']]], + ['byte_5fostreambuf_149',['byte_ostreambuf',['../classttg_1_1detail_1_1byte__ostreambuf.html#a56736d1dfe311e18fd9e856c6582ab47',1,'ttg::detail::byte_ostreambuf::byte_ostreambuf()'],['../classttg_1_1detail_1_1byte__ostreambuf.html',1,'ttg::detail::byte_ostreambuf']]], + ['bytes_150',['bytes',['../structttg__parsec_1_1detail_1_1msg__t.html#acf0f11603d21e743d98c110a99457a30',1,'ttg_parsec::detail::msg_t']]], + ['callable_5ftraits_151',['callable_traits',['../namespaceboost_1_1callable__traits.html',1,'boost']]], + ['common_5fiarchive_3c_20boost_5foptimized_5fiarchive_20_3e_152',['common_iarchive< boost_optimized_iarchive >',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#acee45cce02dd5b2e87818929e1adcac8',1,'ttg::detail::boost_optimized_iarchive']]], + ['common_5foarchive_3c_20streamorstreambuf_20_3e_153',['common_oarchive< StreamOrStreambuf >',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a8512a4b472dae63c618c6fa53c890d6e',1,'ttg::detail::boost_optimized_oarchive']]], + ['detail_154',['detail',['../namespaceboost_1_1callable__traits_1_1detail.html',1,'boost::callable_traits']]], + ['save_5faccess_155',['save_access',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#aaca003bb8a4fc59424e4025130da4edd',1,'ttg::detail::boost_optimized_oarchive::save_access()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aaca003bb8a4fc59424e4025130da4edd',1,'ttg::detail::boost_optimized_iarchive::save_access()']]], + ['serialization_156',['serialization',['../namespaceboost_1_1serialization.html',1,'boost']]] +]; diff --git a/dox-master/search/all_3.html b/dox-master/search/all_3.html new file mode 100644 index 000000000..39767b85b --- /dev/null +++ b/dox-master/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_3.js b/dox-master/search/all_3.js new file mode 100644 index 000000000..963b0e831 --- /dev/null +++ b/dox-master/search/all_3.js @@ -0,0 +1,94 @@ +var searchData= +[ + ['call_5fdepth_157',['call_depth',['../classttg__madness_1_1_t_t.html#af03939341c0d121f41bd884b88119968',1,'ttg_madness::TT']]], + ['call_5ffunc_158',['call_func',['../class_callable_wrap_t_t_args.html#afa308c4d588fe4791b559c19a74fc1ab',1,'CallableWrapTTArgs::call_func(Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)'],['../class_callable_wrap_t_t_args.html#aba079a5875d611bbaab3e7897819c24f',1,'CallableWrapTTArgs::call_func(Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)'],['../class_callable_wrap_t_t_args.html#af650061146cb615febea10fc8863975a',1,'CallableWrapTTArgs::call_func(Key &&key, output_terminalsT &out)'],['../class_callable_wrap_t_t_args.html#a8ccb6002106d46289740a8e2d763422a',1,'CallableWrapTTArgs::call_func(OutputTerminals &out)']]], + ['callable_2eh_159',['callable.h',['../callable_8h.html',1,'']]], + ['callable_5fargs_160',['callable_args',['../namespacettg_1_1meta.html#a78070067d8a45b11b6fed75dd2667efd',1,'ttg::meta']]], + ['callable_5fdummy_161',['callable_dummy',['../structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html',1,'boost::callable_traits::detail']]], + ['callable_5ftraits_2ehpp_162',['callable_traits.hpp',['../callable__traits_8hpp.html',1,'']]], + ['callablewraptt_163',['CallableWrapTT',['../class_callable_wrap_t_t.html',1,'CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_valuesT >'],['../class_callable_wrap_t_t.html#aa11e4ecd5f74a9083b38f7ab3d07b2ec',1,'CallableWrapTT::CallableWrapTT(funcT_ &&f, const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)'],['../class_callable_wrap_t_t.html#afce6864f3197ed6d3ceab13a672c9f5e',1,'CallableWrapTT::CallableWrapTT(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)']]], + ['callablewrapttargs_164',['CallableWrapTTArgs',['../class_callable_wrap_t_t_args.html#a5e185699e6ac46abf7285c2725dc7ba1',1,'CallableWrapTTArgs::CallableWrapTTArgs(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)'],['../class_callable_wrap_t_t_args.html#aee21daa315b066b16c7c6fa8aeefdb9c',1,'CallableWrapTTArgs::CallableWrapTTArgs(funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)'],['../class_callable_wrap_t_t_args.html',1,'CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_valuesT >']]], + ['callablewrapttargsastypelist_165',['CallableWrapTTArgsAsTypelist',['../struct_callable_wrap_t_t_args_as_typelist.html',1,'']]], + ['callablewrapttargsastypelist_3c_20funct_2c_20returnt_2c_20funct_5freceives_5foutterm_5ftuple_2c_20space_2c_20keyt_2c_20output_5fterminalst_2c_20std_3a_3atuple_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_166',['CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >',['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html',1,'']]], + ['callablewrapttargsastypelist_3c_20funct_2c_20returnt_2c_20funct_5freceives_5foutterm_5ftuple_2c_20space_2c_20keyt_2c_20output_5fterminalst_2c_20ttg_3a_3ameta_3a_3atypelist_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_167',['CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >',['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html',1,'']]], + ['callablewrapttunwraptypelist_168',['CallableWrapTTUnwrapTypelist',['../struct_callable_wrap_t_t_unwrap_typelist.html',1,'']]], + ['callablewrapttunwraptypelist_3c_20funct_2c_20funct_5freceives_5foutterm_5ftuple_2c_20keyt_2c_20output_5fterminalst_2c_20std_3a_3atuple_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_169',['CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >',['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html',1,'']]], + ['callablewrapttunwraptypelist_3c_20funct_2c_20funct_5freceives_5foutterm_5ftuple_2c_20keyt_2c_20output_5fterminalst_2c_20ttg_3a_3ameta_3a_3atypelist_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_170',['CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >',['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html',1,'']]], + ['can_5fdereference_171',['can_dereference',['../namespaceboost_1_1callable__traits_1_1detail.html#a0135d034f23718aaf26d3cd30536e13b',1,'boost::callable_traits::detail']]], + ['can_5fdereference_5ft_172',['can_dereference_t',['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html',1,'boost::callable_traits::detail']]], + ['can_5finline_5fdata_173',['can_inline_data',['../classttg__parsec_1_1_t_t.html#a77670c517aba65a358c0b3a248a8a675',1,'ttg_parsec::TT']]], + ['candidate_5fargument_5fbindings_174',['candidate_argument_bindings',['../structttg_1_1meta_1_1candidate__argument__bindings.html',1,'ttg::meta']]], + ['candidate_5fargument_5fbindings_3c_20const_20void_2c_20void_20_3e_175',['candidate_argument_bindings< const void, void >',['../structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html',1,'ttg::meta']]], + ['candidate_5fargument_5fbindings_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_21std_3a_3ais_5freference_5fv_3c_20t_20_3e_20_26_26_21std_3a_3ais_5fvoid_5fv_3c_20t_20_3e_20_3e_20_3e_176',['candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >',['../structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html',1,'ttg::meta']]], + ['candidate_5fargument_5fbindings_3c_20void_2c_20void_20_3e_177',['candidate_argument_bindings< void, void >',['../structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html',1,'ttg::meta']]], + ['candidate_5fargument_5fbindings_5ft_178',['candidate_argument_bindings_t',['../namespacettg_1_1meta.html#acae6e97823dc5fd776c435c77c323fd7',1,'ttg::meta']]], + ['cdecl_5ftag_179',['cdecl_tag',['../structboost_1_1callable__traits_1_1detail_1_1cdecl__tag.html',1,'boost::callable_traits::detail']]], + ['cerr_180',['Cerr',['../namespacettg_1_1detail.html#a56bab461a0cd4193a3ee5a76a7d3c813acc848f0ebe78353300a3863655cbccb0',1,'ttg::detail']]], + ['check_181',['check',['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t_1_1check.html',1,'boost::callable_traits::detail::can_dereference_t< T >::check< typename >'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html',1,'boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value >'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html#afa61cc32e565a687d6c28c8fc1daa270',1,'boost::callable_traits::detail::has_normal_call_operator::check::check()']]], + ['child_5fkeys_182',['child_keys',['../classttg_1_1_binary_spanning_tree.html#ad51a2f04edaf0a180f26e7b1dba57a7b',1,'ttg::BinarySpanningTree']]], + ['ci_2dadministration_2dnotes_2emd_183',['CI-Administration-Notes.md',['../_c_i-_administration-_notes_8md.html',1,'']]], + ['class_5fof_184',['class_of',['../structboost_1_1callable__traits_1_1class__of.html',1,'boost::callable_traits']]], + ['class_5fof_2ehpp_185',['class_of.hpp',['../class__of_8hpp.html',1,'']]], + ['class_5fof_5fimpl_186',['class_of_impl',['../structboost_1_1callable__traits_1_1detail_1_1class__of__impl.html',1,'boost::callable_traits::detail']]], + ['class_5fof_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20class_5fof_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_187',['class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html',1,'boost::callable_traits::detail']]], + ['class_5fof_5ft_188',['class_of_t',['../namespaceboost_1_1callable__traits.html#a581dffd13b67a6b72427e411aaa5da51',1,'boost::callable_traits']]], + ['class_5ft_189',['class_t',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html#a575ccdf957ee2025bbf7dd2e70d2bb12',1,'boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::class_t()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html#a2d87eb5e10f7c463b5fe40dcbcea041f',1,'boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::class_t()']]], + ['class_5ftype_190',['class_type',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a96aec3db26740c2d3c325f5a6e690987',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::class_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3325bc437f9c0c9cb80fc973f3aa2cd3',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::class_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a0a609526f141273706f8aa69f6d49b22',1,'boost::callable_traits::detail::pmd< D T::* >::class_type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a28df029060731a7d42cf1ecefc02b35e',1,'boost::callable_traits::detail::function_object::class_type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1d8cfd9bd30303ebbff39d980ec8d71e',1,'boost::callable_traits::detail::default_callable_traits::class_type()']]], + ['clear_191',['clear',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#affe1073ec1827fd2abdf4d9cac4babc8',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['clear_5fargs_192',['clear_args',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#adde9775b6101fc6512e5613d79a4a250',1,'boost::callable_traits::detail::function_object::clear_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#aa02985668f63fdeba742aeb54390ab53',1,'boost::callable_traits::detail::function< T & >::clear_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ab9606f74d4eda1f1592f35d061280c9b',1,'boost::callable_traits::detail::default_callable_traits::clear_args()']]], + ['cmd_5f_193',['cmd_',['../classttg_1_1_debugger.html#a4d6999b28ee5432aa8f4e3fe7f43a33f',1,'ttg::Debugger']]], + ['coding_20standards_194',['Coding Standards',['../_coding-_standards.html',1,'']]], + ['coding_2dstandards_2emd_195',['Coding-Standards.md',['../_coding-_standards_8md.html',1,'']]], + ['collapse_5fflags_196',['collapse_flags',['../namespaceboost_1_1callable__traits_1_1detail.html#a890a01102bf5f2b5f29f2897eeedce41',1,'boost::callable_traits::detail']]], + ['comm_197',['comm',['../classttg__parsec_1_1_world_impl.html#a672bd6f962d95538fca23d808336920d',1,'ttg_parsec::WorldImpl']]], + ['complete_5ftransfer_198',['complete_transfer',['../classttg__parsec_1_1detail_1_1rma__delayed__activate.html#af49eaa00eef276580dd515ab6d2fcc72',1,'ttg_parsec::detail::rma_delayed_activate']]], + ['completed_199',['completed',['../structttg_1_1resumable__task__state.html#a02e054cc80c816dbb28dcb47b3a047f7',1,'ttg::resumable_task_state::completed()'],['../group__resumable__task.html#ga9e08a534d90f87f33c5979267c908dd4',1,'ttg::resumable_task::completed()']]], + ['compositeop_200',['CompositeOp',['../namespacettg.html#a2e89c3e984c06c03b334020f27d90625',1,'ttg']]], + ['compute_5farg_5fbinding_5ftypes_201',['compute_arg_binding_types',['../namespacettg_1_1meta.html#a601aac1a6bf2282fdfedeefc2948ec3c',1,'ttg::meta']]], + ['compute_5farg_5fbinding_5ftypes_5fimpl_202',['compute_arg_binding_types_impl',['../namespacettg_1_1meta.html#a56df233c313fd365eff34d6df9e832a6',1,'ttg::meta']]], + ['compute_5farg_5fbinding_5ftypes_5fr_203',['compute_arg_binding_types_r',['../namespacettg_1_1meta.html#a1b1f6ae9f493795537eff2f5535dfb95',1,'ttg::meta']]], + ['compute_5farg_5fbinding_5ftypes_5fr_5fimpl_204',['compute_arg_binding_types_r_impl',['../namespacettg_1_1meta.html#ac53ac0a61b1b56fa9899501103a7cce5',1,'ttg::meta']]], + ['concat_205',['concat',['../structboost_1_1callable__traits_1_1detail_1_1concat.html',1,'boost::callable_traits::detail']]], + ['concat_3c_20index_5fsequence_3c_20i1_2e_2e_2e_20_3e_2c_20index_5fsequence_3c_20i2_2e_2e_2e_20_3e_20_3e_206',['concat< index_sequence< I1... >, index_sequence< I2... > >',['../structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.html',1,'boost::callable_traits::detail']]], + ['condition_207',['Condition',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['condition_208',['condition',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa083a6ce8012e8d81e9847f3c1f93977',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['config_2ehpp_209',['config.hpp',['../config_8hpp.html',1,'']]], + ['config_2ein_2eh_210',['config.in.h',['../config_8in_8h.html',1,'']]], + ['connect_211',['connect',['../namespacettg.html#ac31d3ffe687039e52a8179b0ffca7153',1,'ttg::connect(ttg::Out< keyT, valueT > *out, ttg::In< keyT, valueT > *in)'],['../namespacettg.html#a6bd17b47d03abb801110d8476191dde7',1,'ttg::connect(ttg::TerminalBase *out, ttg::TerminalBase *in)'],['../namespacettg.html#a5f5c90f59ffa4fddb4a2aa1afe4d3db3',1,'ttg::connect(producer_tt_ptr &p, successor_tt_ptr &c)'],['../namespacettg.html#aa1ae512e6c225e04ab2f19977d4dd310',1,'ttg::connect(producer_tt_ptr *p, successor_tt_ptr *c)'],['../classttg_1_1_out.html#a0dd09ce5a40514317b0677a68e08a4a8',1,'ttg::Out::connect()'],['../classttg_1_1_terminal_base.html#a3688d91930078d355a833312a32ef13a',1,'ttg::TerminalBase::connect()'],['../namespacettg.html#addc70370fc2c1bc2a58db5592cc6ec44',1,'ttg::connect()']]], + ['connect_5fbase_212',['connect_base',['../classttg_1_1_terminal_base.html#a40df40809acfc616d60c9377bf6cfa61',1,'ttg::TerminalBase']]], + ['connect_5fpull_213',['connect_pull',['../classttg_1_1_terminal_base.html#ab19aac249a137dbb8199e5d87dfefd5c',1,'ttg::TerminalBase']]], + ['connect_5fpull_5fnopred_214',['connect_pull_nopred',['../classttg_1_1_terminal_base.html#a5a2cded8467d1738986024d6ded3511d',1,'ttg::TerminalBase']]], + ['const_5f_215',['const_',['../namespaceboost_1_1callable__traits_1_1detail.html#a3f5ec2e02dd99b0c6b64962eaeeb5ee2',1,'boost::callable_traits::detail']]], + ['const_5fpointer_216',['const_pointer',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a70a6ee7ca957bfc9cde6e8dd8c81c7cc',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['const_5freference_217',['const_reference',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a81d1de0c99411401ae029828ce37d5b5',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['consume_218',['Consume',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8ad2e0379c3a30439bfc1b6869af4408cc',1,'ttg::TerminalBase']]], + ['container_219',['container',['../classttg_1_1_in.html#a50ab22cdf0e2298fddba1a0979f7fc3d',1,'ttg::In']]], + ['containerwrapper_220',['ContainerWrapper',['../structttg_1_1detail_1_1_container_wrapper.html#ad77f6e71e87f3b95346eae53d3a44f2d',1,'ttg::detail::ContainerWrapper::ContainerWrapper(ContainerWrapper &&)=default'],['../structttg_1_1detail_1_1_container_wrapper.html#a6737b6d26a76533b3c35c572cde01573',1,'ttg::detail::ContainerWrapper::ContainerWrapper(T &t, mapperT &&mapper, keymapT &&keymap)'],['../structttg_1_1detail_1_1_container_wrapper.html#a8cdbe86f5f91818a9bc317c591e542d2',1,'ttg::detail::ContainerWrapper::ContainerWrapper(const ContainerWrapper &)=default'],['../structttg_1_1detail_1_1_container_wrapper.html#a0bb72273549bd045fdc94cc226317ac4',1,'ttg::detail::ContainerWrapper::ContainerWrapper()=default'],['../structttg_1_1detail_1_1_container_wrapper.html',1,'ttg::detail::ContainerWrapper< keyT, valueT >']]], + ['containerwrapper_3c_20keyt_2c_20void_20_3e_221',['ContainerWrapper< keyT, void >',['../structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html',1,'ttg::detail']]], + ['containerwrapper_3c_20ttg_3a_3avoid_2c_20valuet_20_3e_222',['ContainerWrapper< ttg::Void, valueT >',['../structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html',1,'ttg::detail']]], + ['containerwrapper_3c_20void_2c_20valuet_20_3e_223',['ContainerWrapper< void, valueT >',['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html',1,'ttg::detail']]], + ['containerwrapper_3c_20void_2c_20void_20_3e_224',['ContainerWrapper< void, void >',['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html',1,'ttg::detail']]], + ['context_225',['context',['../classttg__parsec_1_1_world_impl.html#aeddef1aca7938157d7322c623e25a2f4',1,'ttg_parsec::WorldImpl']]], + ['contributor_20guide_226',['Contributor Guide',['../contribguide.html',1,'']]], + ['copies_227',['copies',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a2b63ab4d9a37979987fff61e341ba0b3',1,'ttg_parsec::detail::parsec_ttg_task_base_t::copies()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#adddb59904b8ba12da7d9affb3223ea77',1,'ttg_parsec::detail::parsec_ttg_task_t::copies()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a48d23ed3ffd3443ea4e36f771a9b98d9',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::copies()']]], + ['copy_5fmark_5fpushout_228',['copy_mark_pushout',['../classttg__parsec_1_1_t_t.html#a79befaf8202ffcb829828165b3dde39c',1,'ttg_parsec::TT']]], + ['copy_5ftype_229',['copy_type',['../structttg__parsec_1_1detail_1_1ptr__impl.html#a53e4c96336818852cd953bd534daf69f',1,'ttg_parsec::detail::ptr_impl']]], + ['core_2ehpp_230',['core.hpp',['../core_8hpp.html',1,'']]], + ['coroutine_2eh_231',['coroutine.h',['../coroutine_8h.html',1,'']]], + ['coroutine_5fhandle_232',['coroutine_handle',['../namespacettg.html#a7fb99b7ddb73d33bdb28104e17b93b05',1,'ttg']]], + ['counting_5fstreambuf_233',['counting_streambuf',['../classttg_1_1detail_1_1counting__streambuf.html',1,'ttg::detail']]], + ['cout_234',['Cout',['../namespacettg_1_1detail.html#a56bab461a0cd4193a3ee5a76a7d3c813a1a7b10301a039aa5c18753f916213581',1,'ttg::detail']]], + ['create_5fnew_5fdatacopy_235',['create_new_datacopy',['../namespacettg__parsec_1_1detail.html#abb5f8a2eb005a7dc66279a6decd9e8c5',1,'ttg_parsec::detail']]], + ['create_5fnew_5freducer_5ftask_236',['create_new_reducer_task',['../classttg__parsec_1_1_t_t.html#a5ae09e91d90c322b8cc529bb06b09ead',1,'ttg_parsec::TT']]], + ['create_5fnew_5ftask_237',['create_new_task',['../classttg__parsec_1_1_t_t.html#a413125ae4a0ca93f978207dd5f5d4fb5',1,'ttg_parsec::TT']]], + ['create_5fparsec_5fdata_238',['create_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a0da0ac69ee918af6003259e03100392c',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['create_5ftpool_239',['create_tpool',['../classttg__parsec_1_1_world_impl.html#a5db7008c862368d9a534848c66ae703e',1,'ttg_parsec::WorldImpl']]], + ['ctl_5fedge_240',['ctl_edge',['../classttg__madness_1_1_world_impl.html#a7b6badf072fa99b95b24b3e58778875e',1,'ttg_madness::WorldImpl::ctl_edge() const'],['../classttg__madness_1_1_world_impl.html#aa7d32882d63b7cbfc2be58cc7eac540b',1,'ttg_madness::WorldImpl::ctl_edge()'],['../classttg__parsec_1_1_world_impl.html#a3bba489b9fbac466039ac3ae923c5290',1,'ttg_parsec::WorldImpl::ctl_edge() const'],['../classttg__parsec_1_1_world_impl.html#a631ab6354ec159d35efefe7e0d0a002a',1,'ttg_parsec::WorldImpl::ctl_edge()']]], + ['cuda_241',['CUDA',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78aa33b7755e5f9b504d2d038eaca4ff28d',1,'ttg']]], + ['current_5fdevice_242',['current_device',['../namespacettg_1_1device.html#a5c5ca5f871db61a4e703ca6170582a5e',1,'ttg::device']]], + ['current_5fdevice_5fptr_243',['current_device_ptr',['../structttg__parsec_1_1_buffer.html#ad80cf24fd222b301c38aa343a5280e47',1,'ttg_parsec::Buffer::current_device_ptr() const'],['../structttg__parsec_1_1_buffer.html#a031b151e6793b432ab3b2425ea622823',1,'ttg_parsec::Buffer::current_device_ptr()'],['../structttg__madness_1_1_buffer.html#a2846618e09ad50820b050819655f5679',1,'ttg_madness::Buffer::current_device_ptr() const'],['../structttg__madness_1_1_buffer.html#aa1a93b637b0c912a49ca02e89652e9e5',1,'ttg_madness::Buffer::current_device_ptr()']]], + ['current_5fstream_244',['current_stream',['../namespacettg_1_1device.html#ac976145f9aee50b15ccf4988ddd462c2',1,'ttg::device']]], + ['cv_5f_245',['cv_',['../namespaceboost_1_1callable__traits_1_1detail.html#a488b6e04d3b1a7c42772c85b2725550f',1,'boost::callable_traits::detail']]], + ['cv_5fflags_246',['cv_flags',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa1ce660fb44d538fdd6c911b927c519f',1,'boost::callable_traits::detail::default_callable_traits']]], + ['cv_5fof_247',['cv_of',['../namespaceboost_1_1callable__traits_1_1detail.html#a451302ee26b5da224f9e376d187ef73a',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/all_4.html b/dox-master/search/all_4.html new file mode 100644 index 000000000..fc40463c8 --- /dev/null +++ b/dox-master/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_4.js b/dox-master/search/all_4.js new file mode 100644 index 000000000..1b3c99611 --- /dev/null +++ b/dox-master/search/all_4.js @@ -0,0 +1,101 @@ +var searchData= +[ + ['dag_5foff_248',['dag_off',['../classttg_1_1base_1_1_world_impl_base.html#a31d92cf6222cbc1f7502c5db19723873',1,'ttg::base::WorldImplBase::dag_off()'],['../classttg_1_1base_1_1_world.html#a7cf6505af9b2ef8a1036d0e2cc3efa72',1,'ttg::base::World::dag_off()'],['../classttg__parsec_1_1_world_impl.html#a817c5817053b79c7f38e1b24c2e81b1d',1,'ttg_parsec::WorldImpl::dag_off()']]], + ['dag_5fon_249',['dag_on',['../classttg_1_1base_1_1_world_impl_base.html#a4ec9238c853d881dac5e51582244e844',1,'ttg::base::WorldImplBase::dag_on()'],['../classttg_1_1base_1_1_world.html#a73bc974b34218ad1e014088129720b45',1,'ttg::base::World::dag_on()'],['../classttg__parsec_1_1_world_impl.html#a8486bd3e8dc829175f7ad0538e0dce4b',1,'ttg_parsec::WorldImpl::dag_on()']]], + ['dag_5fprofiling_250',['dag_profiling',['../classttg_1_1base_1_1_world_impl_base.html#ad45b6bac89f3a676a1661e63156ec21a',1,'ttg::base::WorldImplBase::dag_profiling()'],['../classttg_1_1base_1_1_world.html#aeca2d859a53a876de93c880af5180b1d',1,'ttg::base::World::dag_profiling()'],['../classttg__parsec_1_1_world_impl.html#ae9d5c0aea2b9acd21aff373ba5c7a2f5',1,'ttg_parsec::WorldImpl::dag_profiling()']]], + ['data_251',['data',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#ada90c89c458a0d53c483e767de7b7701',1,'TCB_SPAN_NAMESPACE_NAME::detail::data()'],['../structttg_1_1iovec.html#ad747a8f65880d58bcbb2451f0ea236bd',1,'ttg::iovec::data()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#abd99c234b244ec0fc785035ac9053f45',1,'TCB_SPAN_NAMESPACE_NAME::span::data()'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#acdb4feaf9a9b6863ca60072e51b4210f',1,'TCB_SPAN_NAMESPACE_NAME::detail::data(std::initializer_list< E > il) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a4a024aec4e35907a153ac2398db7f1a3',1,'TCB_SPAN_NAMESPACE_NAME::detail::data(T(&array)[N]) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#aa175cdddf002f8c0233d4c5d682cc819',1,'TCB_SPAN_NAMESPACE_NAME::detail::data(const C &c) -> decltype(c.data())']]], + ['data_5fcount_252',['data_count',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#ab96d7df65622a852c8137718e7fc83b9',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['data_5fdescriptor_2eh_253',['data_descriptor.h',['../data__descriptor_8h.html',1,'']]], + ['data_5fflags_254',['data_flags',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a9a31ef114346e939014dd3a91566b2a0',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['debug_255',['debug',['../classttg_1_1_debugger.html#af08e9080a2ff5de53bd54b9258dbcd7d',1,'ttg::Debugger']]], + ['debug_5f_256',['debug_',['../classttg_1_1_debugger.html#a4ab2bc0399844ae88458760b6c3510e8',1,'ttg::Debugger']]], + ['debug_5fregister_257',['debug_register',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ad724f70709b73cd4d498615780f3761e',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['debugger_258',['Debugger',['../classttg_1_1_debugger.html#aefd3fb0dcd8a59ab403fdb4587184e59',1,'ttg::Debugger::Debugger()'],['../classttg_1_1_debugger.html',1,'ttg::Debugger']]], + ['debugger_5fready_5f_259',['debugger_ready_',['../classttg_1_1_debugger.html#a3be6983006ced530b1eef1de1e667f08',1,'ttg::Debugger']]], + ['debugregister_260',['DebugRegister',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cb',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['decays_5fto_5foutput_5fterminal_5ftuple_261',['decays_to_output_terminal_tuple',['../structttg_1_1meta_1_1decays__to__output__terminal__tuple.html',1,'ttg::meta']]], + ['decays_5fto_5foutput_5fterminal_5ftuple_5fv_262',['decays_to_output_terminal_tuple_v',['../namespacettg_1_1meta.html#a2426e54cbcc1532ecbcf5df2d42f8ef7',1,'ttg::meta']]], + ['decrement_5finflight_5fmsg_263',['decrement_inflight_msg',['../classttg__parsec_1_1_world_impl.html#a256790017d859e8477adf7dffc44f500',1,'ttg_parsec::WorldImpl']]], + ['decrement_5freaders_264',['decrement_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a9ec5b25fe6707fa792b2d10d03974aa6',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['default_5f_265',['default_',['../namespaceboost_1_1callable__traits_1_1detail.html#abca1cb7f1b8cc2810f1a989c473d1e6d',1,'boost::callable_traits::detail']]], + ['default_5fcallable_5ftraits_266',['default_callable_traits',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html',1,'boost::callable_traits::detail']]], + ['default_5fcallable_5ftraits_2ehpp_267',['default_callable_traits.hpp',['../default__callable__traits_8hpp.html',1,'']]], + ['default_5fcallable_5ftraits_3c_20t_20_3e_268',['default_callable_traits< T >',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html',1,'boost::callable_traits::detail']]], + ['default_5fcmd_269',['default_cmd',['../classttg_1_1_debugger.html#a9d300701a1afd231052bc95bb9f7f027',1,'ttg::Debugger']]], + ['default_5fdata_5fdescriptor_270',['default_data_descriptor',['../structttg_1_1default__data__descriptor.html',1,'ttg']]], + ['default_5fdata_5fdescriptor_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20detail_3a_3ais_5fmemcpyable_5fv_3c_20t_20_3e_20_26_26_21detail_3a_3ais_5fuser_5fbuffer_5fserializable_5fv_3c_20t_20_3e_20_26_26_21ttg_3a_3ahas_5fsplit_5fmetadata_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_271',['default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html',1,'ttg']]], + ['default_5fdata_5fdescriptor_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20ttg_3a_3ahas_5fsplit_5fmetadata_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_272',['default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html',1,'ttg']]], + ['default_5fdebugger_273',['default_debugger',['../classttg_1_1_debugger.html#a754e9a1b50445936716c34856c26272d',1,'ttg::Debugger']]], + ['default_5fdebugger_5f_274',['default_debugger_',['../classttg_1_1_debugger.html#af4f9da9ae1385992bb40a383413bfe81',1,'ttg::Debugger']]], + ['default_5fexecution_5fcontext_275',['default_execution_context',['../namespacettg.html#a78c09561304884c05c8a8f25006b0ee6',1,'ttg']]], + ['default_5fkeymap_276',['default_keymap',['../structttg_1_1detail_1_1default__keymap.html#a6faf76870adbe687372124833d84b65f',1,'ttg::detail::default_keymap::default_keymap()=default'],['../structttg_1_1detail_1_1default__keymap.html#a60f7a07bd8da27c5f32ca2e5730c2551',1,'ttg::detail::default_keymap::default_keymap(const ttg::World &world)'],['../structttg_1_1detail_1_1default__keymap.html',1,'ttg::detail::default_keymap< keyT >']]], + ['default_5fkeymap_5fimpl_277',['default_keymap_impl',['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a34624a7dc40873d479f092193b329186',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::default_keymap_impl()=default'],['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a71e30d786180703a47144aa8a1a7496e',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::default_keymap_impl(int world_size)'],['../structttg_1_1detail_1_1default__keymap__impl.html',1,'ttg::detail::default_keymap_impl< keyT, Enabler >']]], + ['default_5fkeymap_5fimpl_3c_20keyt_2c_20std_3a_3aenable_5fif_5ft_3c_20meta_3a_3ahas_5fttg_5fhash_5fspecialization_5fv_3c_20keyt_20_3e_7c_7cmeta_3a_3ais_5fvoid_5fv_3c_20keyt_20_3e_20_3e_20_3e_278',['default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >',['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html',1,'ttg::detail']]], + ['default_5fpriomap_279',['default_priomap',['../structttg_1_1detail_1_1default__priomap.html#af3d1eb7d4fe2cbc4483d0894deb30eba',1,'ttg::detail::default_priomap::default_priomap()'],['../structttg_1_1detail_1_1default__priomap.html',1,'ttg::detail::default_priomap< keyT >']]], + ['default_5fpriomap_5fimpl_280',['default_priomap_impl',['../structttg_1_1detail_1_1default__priomap__impl.html#aceb485dea3196f735df78e90a5f64ab7',1,'ttg::detail::default_priomap_impl::default_priomap_impl()'],['../structttg_1_1detail_1_1default__priomap__impl.html',1,'ttg::detail::default_priomap_impl< keyT >']]], + ['default_5fto_5ffunction_5fobject_281',['default_to_function_object',['../namespaceboost_1_1callable__traits_1_1detail.html#a1e731c82ff220471f59438cbc4cce133',1,'boost::callable_traits::detail']]], + ['default_5fworld_5faccessor_282',['default_world_accessor',['../namespacettg_1_1detail.html#a1217c7fe9e73c5ac4fb8c9833e149261',1,'ttg::detail']]], + ['defer_5fwriter_283',['defer_writer',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a212d301656a65d79713b17519ee978d9',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['delayed_5funpack_5factions_284',['delayed_unpack_actions',['../namespacettg__parsec.html#a32a3b01d1073bb1e943c1c5253ee10bb',1,'ttg_parsec']]], + ['delete_5fnull_5fparsec_5fdata_285',['delete_null_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a202f3ddedec9e573410519a2637015ab',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['delete_5fparsec_5fdata_286',['delete_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a3d9d0054f2b850a29a1290cb95095d18',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['demangle_2eh_287',['demangle.h',['../demangle_8h.html',1,'']]], + ['deregister_5fop_288',['deregister_op',['../classttg_1_1base_1_1_world_impl_base.html#a869422b9140513505678058e78da2338',1,'ttg::base::WorldImplBase']]], + ['deregister_5fworld_289',['deregister_world',['../namespacettg_1_1detail.html#a0737a159633e6fbe20a71c7297ba3645',1,'ttg::detail::deregister_world(ttg::base::WorldImplBase &world)'],['../namespacettg_1_1detail.html#a0610fdbf14b53b8893cdad8fa5d9b243',1,'ttg::detail::deregister_world(WorldImplT &world)']]], + ['derived_5fhas_5fcuda_5fop_290',['derived_has_cuda_op',['../classttg__parsec_1_1_t_t.html#afdc5c7835411eac8c639dbd72b5ed087',1,'ttg_parsec::TT::derived_has_cuda_op()'],['../classttg__madness_1_1_t_t.html#a572e47fc4fc9827afd5f220f24266a60',1,'ttg_madness::TT::derived_has_cuda_op()']]], + ['derived_5fhas_5fdevice_5fop_291',['derived_has_device_op',['../classttg__parsec_1_1_t_t.html#afae2463fe117d61153413c34ae73205e',1,'ttg_parsec::TT::derived_has_device_op()'],['../classttg__madness_1_1_t_t.html#a52fad87dc28fd49e978310e2abb05df0',1,'ttg_madness::TT::derived_has_device_op()']]], + ['derived_5fhas_5fhip_5fop_292',['derived_has_hip_op',['../classttg__parsec_1_1_t_t.html#a0ebdb2beae101bdb27a32ef0acd8e3c1',1,'ttg_parsec::TT::derived_has_hip_op()'],['../classttg__madness_1_1_t_t.html#a3d4f24d463f25721228759bb90d80d65',1,'ttg_madness::TT::derived_has_hip_op()']]], + ['derived_5fhas_5flevel_5fzero_5fop_293',['derived_has_level_zero_op',['../classttg__parsec_1_1_t_t.html#a298db987dd672a22c64839d19066745f',1,'ttg_parsec::TT::derived_has_level_zero_op()'],['../classttg__madness_1_1_t_t.html#a539161d3508bf9f21e11d24dc3ee854b',1,'ttg_madness::TT::derived_has_level_zero_op()']]], + ['derived_5ftype_294',['derived_type',['../structttg__parsec_1_1_t_t_value.html#a55a1d5201292213de2151df948e9cbdc',1,'ttg_parsec::TTValue']]], + ['design_2ddevice_2emd_295',['Design-Device.md',['../_design-_device_8md.html',1,'']]], + ['destroy_296',['destroy',['../classttg_1_1base_1_1_world_impl_base.html#a2ba8822a9c65d31ae548391b60309e56',1,'ttg::base::WorldImplBase::destroy()'],['../classttg__parsec_1_1_world_impl.html#acdf3cf5cfb64ebfda9ab9fffd4b3e32d',1,'ttg_parsec::WorldImpl::destroy()'],['../classttg__madness_1_1_world_impl.html#acaed2630a3cc07893cff1f92032d56ce',1,'ttg_madness::WorldImpl::destroy()']]], + ['destroy_5ftpool_297',['destroy_tpool',['../classttg__parsec_1_1_world_impl.html#a30ad1ec1811c1dd7538448add28af497',1,'ttg_parsec::WorldImpl']]], + ['destroy_5fworlds_298',['destroy_worlds',['../namespacettg_1_1detail.html#ac780cc7278cca427205f79d10130adb2',1,'ttg::detail']]], + ['dev_5fptr_299',['dev_ptr',['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#af37151c262f13a425def5553bc5d1286',1,'ttg_parsec::detail::device_state_t< true >::dev_ptr()'],['../structttg__parsec_1_1detail_1_1device__state__t.html#ae8fb4dbc5bea961c340ba75fda716c43',1,'ttg_parsec::detail::device_state_t::dev_ptr()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#ae905905ebcde7a180b5f68f302c549d4',1,'ttg_parsec::detail::parsec_ttg_task_base_t::dev_ptr()']]], + ['dev_5fstate_300',['dev_state',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a61eeea7f1212b8b47876c80c45d3ff3c',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::dev_state()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#aca7fd7865d28f9fa5913d7f28d4092b9',1,'ttg_parsec::detail::parsec_ttg_task_t::dev_state()']]], + ['developer_20guide_301',['Developer Guide',['../devguide.html',1,'']]], + ['device_302',['device',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#ac8b782a6e24d74008fd5bf57fc20fac3',1,'ttg_parsec::detail::device_ptr_t']]], + ['device_303',['Device',['../classttg_1_1device_1_1_device.html#abea7bd83d6d9f6911c8706dd1f2da35f',1,'ttg::device::Device::Device(int id, ttg::ExecutionSpace space)'],['../classttg_1_1device_1_1_device.html#ab5d77b0fc1cfccd4190b70c4b63dc61b',1,'ttg::device::Device::Device()=default'],['../classttg_1_1device_1_1_device.html',1,'ttg::device::Device']]], + ['device_20task_20design_304',['Device Task Design',['../_design-_device.html',1,'']]], + ['device_2eh_305',['device.h',['../parsec_2device_8h.html',1,'(Global Namespace)'],['../madness_2device_8h.html',1,'(Global Namespace)'],['../device_2device_8h.html',1,'(Global Namespace)']]], + ['device_5fptr_306',['device_ptr',['../structttg__parsec_1_1devicescratch.html#ad2304d6966cf84df5a5923bf9e47901c',1,'ttg_parsec::devicescratch::device_ptr() const'],['../structttg__parsec_1_1devicescratch.html#ac654b90119aa137e1af815c0a356190e',1,'ttg_parsec::devicescratch::device_ptr()']]], + ['device_5fptr_5fon_307',['device_ptr_on',['../structttg__parsec_1_1_buffer.html#acb5b0d482d524f01d6b5ceda3f69f2b4',1,'ttg_parsec::Buffer::device_ptr_on(const ttg::device::Device &device) const'],['../structttg__parsec_1_1_buffer.html#a5f4c9066f4b9afab0ef995e898f7f01f',1,'ttg_parsec::Buffer::device_ptr_on(const ttg::device::Device &device)'],['../structttg__madness_1_1_buffer.html#a1bcd5cd0b81c441c6778f0fca96f75d2',1,'ttg_madness::Buffer::device_ptr_on(const ttg::device::Device &device) const'],['../structttg__madness_1_1_buffer.html#a5c06faaf1f439878d9db2284213d8db2',1,'ttg_madness::Buffer::device_ptr_on(const ttg::device::Device &device)']]], + ['device_5fptr_5ft_308',['device_ptr_t',['../structttg__parsec_1_1detail_1_1device__ptr__t.html',1,'ttg_parsec::detail']]], + ['device_5fstate_5ft_309',['device_state_t',['../structttg__parsec_1_1detail_1_1device__state__t.html#a5cdeecbb0e04354870ffbc47414835b5',1,'ttg_parsec::detail::device_state_t::device_state_t()'],['../structttg__parsec_1_1detail_1_1device__state__t.html',1,'ttg_parsec::detail::device_state_t< SupportDevice >']]], + ['device_5fstate_5ft_3c_20true_20_3e_310',['device_state_t< true >',['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html',1,'ttg_parsec::detail']]], + ['device_5fstate_5ft_3c_20tt_3a_3aderived_5fhas_5fdevice_5fop_28_29_3e_311',['device_state_t< TT::derived_has_device_op()>',['../structttg__parsec_1_1detail_1_1device__state__t.html',1,'ttg_parsec::detail']]], + ['devicefunc_2eh_312',['devicefunc.h',['../devicefunc_8h.html',1,'']]], + ['devicescope_2eh_313',['devicescope.h',['../devicescope_8h.html',1,'']]], + ['devicescratch_314',['devicescratch',['../namespacettg.html#a74965466bea01837d3a2728f70c21f5c',1,'ttg::devicescratch()'],['../structttg__parsec_1_1devicescratch.html#a6cddb2a8533456f0c3e08eea8976aa95',1,'ttg_parsec::devicescratch::devicescratch(const devicescratch &db)=delete'],['../structttg__parsec_1_1devicescratch.html#a7062bf067c702ef5f0afa7040005342a',1,'ttg_parsec::devicescratch::devicescratch(element_type *ptr, ttg::scope scope=ttg::scope::SyncIn, std::size_t count=1)'],['../structttg__parsec_1_1devicescratch.html#a635093e848e51710c216c21e51c972a2',1,'ttg_parsec::devicescratch::devicescratch(devicescratch &&)=delete'],['../structttg__madness_1_1devicescratch.html',1,'ttg_madness::devicescratch< T >'],['../structttg__parsec_1_1devicescratch.html',1,'ttg_parsec::devicescratch< T >']]], + ['devicescratch_2eh_315',['devicescratch.h',['../parsec_2devicescratch_8h.html',1,'(Global Namespace)'],['../devicescratch_8h.html',1,'(Global Namespace)']]], + ['devicetask_316',['DeviceTask',['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922ac81eda1ef27232cf58c0acc00bcd89cb',1,'ttg']]], + ['diagnose_317',['diagnose',['../namespacettg.html#a34d9ec9e8e0d0b0a11cb6df934247dfe',1,'ttg']]], + ['diagnose_2eh_318',['diagnose.h',['../diagnose_8h.html',1,'']]], + ['diagnose_5faccessor_319',['diagnose_accessor',['../namespacettg_1_1detail.html#a03748042845ed696dfc9f33148efe77a',1,'ttg::detail']]], + ['diagnose_5foff_320',['diagnose_off',['../namespacettg.html#aacf9cee7849bcfb0208794af9ee52941',1,'ttg']]], + ['diagnose_5fon_321',['diagnose_on',['../namespacettg.html#a0367b1d8f25df55737220b1eef1d19d8',1,'ttg']]], + ['difference_5ftype_322',['difference_type',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a81f6f8122fa759b28978a7deca3e8e6c',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['disjunction_323',['disjunction',['../structboost_1_1callable__traits_1_1detail_1_1disjunction.html',1,'boost::callable_traits::detail']]], + ['disjunction_2ehpp_324',['disjunction.hpp',['../disjunction_8hpp.html',1,'']]], + ['disjunction_3c_20t_20_3e_325',['disjunction< T >',['../structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.html',1,'boost::callable_traits::detail']]], + ['disjunction_3c_20t_2c_20ts_2e_2e_2e_20_3e_326',['disjunction< T, Ts... >',['../structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_00_01_ts_8_8_8_01_4.html',1,'boost::callable_traits::detail']]], + ['distributed_2ecc_327',['distributed.cc',['../distributed_8cc.html',1,'']]], + ['do_5fprepare_5fsend_328',['do_prepare_send',['../classttg__parsec_1_1_t_t.html#a310ccaad9bf8114ca27135ac97be78f7',1,'ttg_parsec::TT']]], + ['do_5frelease_329',['do_release',['../classttg__parsec_1_1_t_t.html#a43758ac82d6c0199dab7d0049fca8551',1,'ttg_parsec::TT']]], + ['documenting_20ttg_330',['Documenting TTG',['../_documenting-_t_t_g.html',1,'']]], + ['documenting_2dttg_2emd_331',['Documenting-TTG.md',['../_documenting-_t_t_g_8md.html',1,'']]], + ['dot_332',['Dot',['../classttg_1_1_dot.html#a81c31157d06bb8ddc5d6f00964697660',1,'ttg::Dot::Dot()'],['../classttg_1_1_dot.html',1,'ttg::Dot']]], + ['dot_2eh_333',['dot.h',['../dot_8h.html',1,'']]], + ['drop_5fall_5fptr_334',['drop_all_ptr',['../structttg__parsec_1_1detail_1_1ptr__impl.html#a19c7c72b0d727e864279957d3b4dc2ad',1,'ttg_parsec::detail::ptr_impl']]], + ['drop_5ffirst_5fn_335',['drop_first_n',['../structttg_1_1meta_1_1drop__first__n.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20std_3a_3atuple_3c_20t_2c_20ts_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_336',['drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_337',['drop_first_n< std::tuple< Ts... >, std::size_t(0)>',['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20typelist_3c_20t_2c_20ts_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_338',['drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_339',['drop_first_n< typelist< Ts... >, std::size_t(0)>',['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html',1,'ttg::meta']]], + ['drop_5flast_5fn_340',['drop_last_n',['../structttg_1_1meta_1_1drop__last__n.html',1,'ttg::meta']]], + ['drop_5fref_341',['drop_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a256cd72a298f3af43391d94316092f1b',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['dummy_342',['dummy',['../structboost_1_1callable__traits_1_1detail_1_1dummy.html',1,'boost::callable_traits::detail::dummy'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#acf6128e3a3068102f4d3f4cfa56989af',1,'ttg_parsec::detail::parsec_ttg_task_base_t::dummy()']]], + ['dynamic_5fextent_343',['dynamic_extent',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#ad3333be9a57e35aa367e546176beb477',1,'TCB_SPAN_NAMESPACE_NAME']]], + ['get_5fcopy_344',['get_copy',['../structttg__parsec_1_1_ptr.html#ae59ef36542ca029151d81b475e303102',1,'ttg_parsec::Ptr']]], + ['get_5fparsec_5fdata_345',['get_parsec_data',['../structttg__parsec_1_1devicescratch.html#ad664a59f532be69f663b7800df430062',1,'ttg_parsec::devicescratch::get_parsec_data()'],['../structttg__parsec_1_1_buffer.html#aba95d89bcef1705a7147cba25f78562e',1,'ttg_parsec::Buffer::get_parsec_data()']]] +]; diff --git a/dox-master/search/all_5.html b/dox-master/search/all_5.html new file mode 100644 index 000000000..9dd9344b0 --- /dev/null +++ b/dox-master/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_5.js b/dox-master/search/all_5.js new file mode 100644 index 000000000..08e3d60bd --- /dev/null +++ b/dox-master/search/all_5.js @@ -0,0 +1,40 @@ +var searchData= +[ + ['edge_346',['Edge',['../classttg_1_1_edge.html#adf1150d7ec9cf09a79fb13cbb77132b8',1,'ttg::Edge']]], + ['edge_347',['edge',['../classttg_1_1_edge.html#ab0c8c81dd14d0c899c542c47520a2462',1,'ttg::Edge']]], + ['edge_348',['Edge',['../classttg_1_1_edge.html#aa06fd1dbbdfbcd4ddeec7bddf6ea5c4d',1,'ttg::Edge::Edge(const std::string name="anonymous edge")'],['../classttg_1_1_edge.html#adc20292504034d67301fc684e01fd85b',1,'ttg::Edge::Edge(const std::string name, bool is_pull, ttg::detail::ContainerWrapper< keyT, valueT > c)'],['../classttg_1_1_edge.html',1,'ttg::Edge< keyT, valueT >']]], + ['edge_2eh_349',['edge.h',['../edge_8h.html',1,'']]], + ['edge_5ftype_350',['edge_type',['../classttg_1_1_out.html#abd2ce9580cb3e4501ad85dafa927449d',1,'ttg::Out::edge_type()'],['../classttg_1_1_in.html#a6369d76b9fc57468de3ca11b624948c2',1,'ttg::In::edge_type()']]], + ['edges_351',['edges',['../namespacettg.html#afbabcd9802bf1bbdd302e7a612459353',1,'ttg']]], + ['edges_5fto_5foutput_5fterminals_352',['edges_to_output_terminals',['../structttg_1_1edges__to__output__terminals.html',1,'ttg']]], + ['edges_5fto_5foutput_5fterminals_3c_20std_3a_3atuple_3c_20edgest_2e_2e_2e_20_3e_20_3e_353',['edges_to_output_terminals< std::tuple< edgesT... > >',['../structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html',1,'ttg']]], + ['edges_5ftuple_354',['edges_tuple',['../structttg_1_1detail_1_1edges__tuple.html',1,'ttg::detail']]], + ['edges_5ftuple_3c_20keyt_2c_20std_3a_3atuple_3c_20valuest_2e_2e_2e_20_3e_20_3e_355',['edges_tuple< keyT, std::tuple< valuesT... > >',['../structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html',1,'ttg::detail']]], + ['edges_5ftuple_5ft_356',['edges_tuple_t',['../namespacettg_1_1detail.html#acb7c8eae1b9a7f9ba6fc8416ea374480',1,'ttg::detail']]], + ['element_5ftype_357',['element_type',['../structttg__madness_1_1_buffer.html#a5504a8f88fb1177b80db0c20f4050a55',1,'ttg_madness::Buffer::element_type()'],['../structttg__parsec_1_1_buffer.html#a0106039b80ab92bfcea18d38d2b978b1',1,'ttg_parsec::Buffer::element_type()'],['../structttg__parsec_1_1devicescratch.html#a06e54fc603c81201a7410ad405e8ad4b',1,'ttg_parsec::devicescratch::element_type()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a53e1af56da83c7e1aa9d6f2d0539728c',1,'TCB_SPAN_NAMESPACE_NAME::span::element_type()']]], + ['empty_358',['empty',['../classttg_1_1detail_1_1_backtrace.html#aaab9437247fb8d0f7ecd701cb6c95ecd',1,'ttg::detail::Backtrace::empty()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a335ed7f7ebe765bfc9afaf3cb05cba01',1,'TCB_SPAN_NAMESPACE_NAME::span::empty() const noexcept']]], + ['end_359',['end',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a489018b5bee32947d4997c51cae6010b',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['env_2ecpp_360',['env.cpp',['../env_8cpp.html',1,'']]], + ['env_2eh_361',['env.h',['../env_8h.html',1,'']]], + ['error_5ft_362',['error_t',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a6cce3f6c7ffadcf4faf8f75d5b30d915',1,'boost::callable_traits::detail::function_object::error_t()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa0935b08ebeacf67602f5f1914b5a4d3',1,'boost::callable_traits::detail::default_callable_traits::error_t()']]], + ['error_5ftype_363',['error_type',['../namespaceboost_1_1callable__traits_1_1detail.html#a1e93f6425b6d3a010c3907f4e3937047',1,'boost::callable_traits::detail']]], + ['escape_364',['escape',['../classttg_1_1_dot.html#a3b85f343706fbdd92d04b2d1ce656cf0',1,'ttg::Dot']]], + ['evaluate_5fcuda_365',['evaluate_cuda',['../namespacettg__parsec_1_1detail.html#a58e63f1c4ae22d09b08bbd948f44fd45',1,'ttg_parsec::detail']]], + ['evaluate_5fhip_366',['evaluate_hip',['../namespacettg__parsec_1_1detail.html#aa3e50f118ca3fd0faba5f77d4c2a714b',1,'ttg_parsec::detail']]], + ['evaluate_5flevel_5fzero_367',['evaluate_level_zero',['../namespacettg__parsec_1_1detail.html#a0b08be8f9414209913fe205e9ee1704a',1,'ttg_parsec::detail']]], + ['event_368',['event',['../structttg_1_1event.html',1,'ttg']]], + ['events_369',['events',['../group__resumable__task.html#ga67fade8b624289b80842e239b2a31554',1,'ttg::resumable_task::events()'],['../structttg_1_1resumable__task__state.html#af426f899a982a13628e204c8304b84ff',1,'ttg::resumable_task_state::events()']]], + ['exec_5f_370',['exec_',['../classttg_1_1_debugger.html#a79e4d1603d582ca8bd825b5aa7cf19e0',1,'ttg::Debugger']]], + ['execute_371',['execute',['../namespacettg.html#a1261c57f70c978771f64af07d7f7d7cd',1,'ttg::execute()'],['../classttg_1_1base_1_1_world_impl_base.html#a9e7f0a95e4f208ec8b2f205a2e1896fe',1,'ttg::base::WorldImplBase::execute()'],['../classttg__parsec_1_1_world_impl.html#a19bae6483b9c80918800dd77a7b0b57f',1,'ttg_parsec::WorldImpl::execute()']]], + ['execution_372',['Execution',['../namespacettg.html#ab019ae6d4974cd5dc8737ac1e0607128',1,'ttg']]], + ['execution_2eh_373',['execution.h',['../execution_8h.html',1,'']]], + ['execution_5fspace_5fname_374',['execution_space_name',['../namespacettg_1_1detail.html#abe9a1e475158304c7a7233876b5f5ed3',1,'ttg::detail']]], + ['execution_5fspaces_375',['execution_spaces',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#a6c453fddf1be0282128f8a389e5505e5',1,'ttg::runtime_traits< Runtime::PaRSEC >::execution_spaces()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#a67107a706c1f0281e8ae9eeee590f4d1',1,'ttg::runtime_traits< Runtime::MADWorld >::execution_spaces()']]], + ['execution_5fstream_376',['execution_stream',['../classttg__parsec_1_1_world_impl.html#aeb4a61353f88c7fe2234e6d3ce2cc7c6',1,'ttg_parsec::WorldImpl']]], + ['executionspace_377',['ExecutionSpace',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78',1,'ttg']]], + ['exit_5fon_5fsignal_5f_378',['exit_on_signal_',['../classttg_1_1_debugger.html#a97ce3fe6e14152aab7f4011089437ad2',1,'ttg::Debugger']]], + ['expand_5fargs_379',['expand_args',['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a0701458b2c7d7aadec0c5105380bdeac',1,'boost::callable_traits::detail::pmd< D T::* >::expand_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ab475d4c0ea5c3edbaeea1ebdc5b9672c',1,'boost::callable_traits::detail::default_callable_traits::expand_args()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a6f6d06136fce2e163dfcda2faa46260d',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ae265f6e0725a69b9e0469830f718adf7',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a93cfb21804feece0948ee485b63a8540',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a0813c868f6f9ff6ddaf26c778eba439e',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a4dcf3890929c2dfd57495c61db5dc890',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1478c3608ebb882f71650ba629d4e865',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a10fc39bdd16b3fd659470aed2116ad8f',1,'boost::callable_traits::detail::function_object::expand_args()']]], + ['expand_5fargs_5fleft_380',['expand_args_left',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a8720118f895e1ac61bf036c726ee7f1c',1,'boost::callable_traits::detail::function_object::expand_args_left()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ac1265531b82a2f8351a6a867ecb07e2c',1,'boost::callable_traits::detail::default_callable_traits::expand_args_left()']]], + ['expand_5fargs_5fright_381',['expand_args_right',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#ab633be4db6080066eb033d834b751031',1,'boost::callable_traits::detail::function_object::expand_args_right()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#af4effa96560dcda7eb8ed980b684e9bf',1,'boost::callable_traits::detail::default_callable_traits::expand_args_right()']]], + ['extent_382',['extent',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a6e271f4e5012e85087a156603411bfd5',1,'TCB_SPAN_NAMESPACE_NAME::span']]] +]; diff --git a/dox-master/search/all_6.html b/dox-master/search/all_6.html new file mode 100644 index 000000000..f1e516d75 --- /dev/null +++ b/dox-master/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_6.js b/dox-master/search/all_6.js new file mode 100644 index 000000000..74b6e0708 --- /dev/null +++ b/dox-master/search/all_6.js @@ -0,0 +1,81 @@ +var searchData= +[ + ['fail_383',['fail',['../structboost_1_1callable__traits_1_1detail_1_1fail.html',1,'boost::callable_traits::detail']]], + ['fail_5fif_384',['fail_if',['../structboost_1_1callable__traits_1_1detail_1_1fail__if.html',1,'boost::callable_traits::detail']]], + ['fail_5fif_5finvalid_385',['fail_if_invalid',['../namespaceboost_1_1callable__traits_1_1detail.html#a81f9a0ce9b9f0178ba78aaed6e5342a1',1,'boost::callable_traits::detail']]], + ['fail_5fwhen_5fsame_386',['fail_when_same',['../namespaceboost_1_1callable__traits_1_1detail.html#a3efb9eda2686deb6d35700bc1c259a9f',1,'boost::callable_traits::detail']]], + ['fallback_5fif_5finvalid_387',['fallback_if_invalid',['../namespaceboost_1_1callable__traits_1_1detail.html#a88a02bdf21fbc70581e849c6a5e23e0b',1,'boost::callable_traits::detail']]], + ['fastcall_5ftag_388',['fastcall_tag',['../structboost_1_1callable__traits_1_1detail_1_1fastcall__tag.html',1,'boost::callable_traits::detail']]], + ['fence_389',['fence',['../classttg_1_1_t_t_base.html#ae968de0aa3ff0111f36d62c824fab7aa',1,'ttg::TTBase::fence()'],['../namespacettg.html#a807bf42719a82b1539603d477aa2a3fd',1,'ttg::fence()'],['../classttg_1_1base_1_1_world_impl_base.html#a1afc33f0e28ef2c3c20c9c94585a023b',1,'ttg::base::WorldImplBase::fence()'],['../classttg__madness_1_1_t_t.html#a2a239301de8d7df0fb5272b63bb95b3d',1,'ttg_madness::TT::fence()'],['../classttg_1_1_t_t_g.html#a1c2e236e45715dc0522e66199e863740',1,'ttg::TTG::fence()'],['../classttg_1_1_sink_t_t.html#a2127a653cca43a684abafb0526190aca',1,'ttg::SinkTT::fence()']]], + ['fence_5fimpl_390',['fence_impl',['../classttg__parsec_1_1_world_impl.html#a8342e0deb558e48f715a305581447062',1,'ttg_parsec::WorldImpl::fence_impl()'],['../classttg__madness_1_1_world_impl.html#a7311e902a97cdc602f07fb09a6bcd92f',1,'ttg_madness::WorldImpl::fence_impl()'],['../classttg_1_1base_1_1_world_impl_base.html#a5692ff8d1969076f9e8912e9e249fe83',1,'ttg::base::WorldImplBase::fence_impl()']]], + ['filtered_5ftuple_391',['filtered_tuple',['../structttg_1_1meta_1_1filtered__tuple.html',1,'ttg::meta']]], + ['filtered_5ftuple_3c_20std_3a_3atuple_3c_20es_2e_2e_2e_20_3e_2c_20pred_20_3e_392',['filtered_tuple< std::tuple< Es... >, Pred >',['../structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html',1,'ttg::meta']]], + ['filtered_5ftuple_5ft_393',['filtered_tuple_t',['../namespacettg_1_1meta.html#ab05bf89d70cd478221dfea07612012c1',1,'ttg::meta']]], + ['final_5fsuspend_394',['final_suspend',['../structttg_1_1resumable__task__state.html#ab1fc201e774bde0847890103c45a1b97',1,'ttg::resumable_task_state']]], + ['final_5ftask_395',['final_task',['../classttg_1_1base_1_1_world_impl_base.html#a456a7210813eba7bf12eb0137db18d24',1,'ttg::base::WorldImplBase::final_task()'],['../classttg_1_1base_1_1_world.html#a7b6c87e436deff447df9b2b7d16e5a2f',1,'ttg::base::World::final_task()'],['../classttg__parsec_1_1_world_impl.html#ab43f7e621545f329a56c1477c0f1f68b',1,'ttg_parsec::WorldImpl::final_task()']]], + ['finalize_396',['finalize',['../classttg_1_1_in_terminal_base.html#a0631126a6a3eb341ee7ccd6efe143cda',1,'ttg::InTerminalBase::finalize()'],['../classttg_1_1_out_terminal_base.html#ac6b2278db25fe6303706fc18296aee94',1,'ttg::OutTerminalBase::finalize()'],['../namespacettg.html#ace0e3ddae09ae3e344fabfa49c07cdfb',1,'ttg::finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)'],['../namespacettg.html#a9d733ef409cf104084e7d2d12c8a560c',1,'ttg::finalize(const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#a66b539e92577ce84fe029dbf85313483',1,'ttg::finalize(std::size_t i, const keyT &key)'],['../namespacettg.html#a5a922c897e6a76956732365b2c6c1f23',1,'ttg::finalize(const keyT &key)'],['../namespacettg.html#ac12ebacc01669eddae361b592e94188e',1,'ttg::finalize(ttg::Out< out_keyT, out_valueT > &t)'],['../namespacettg.html#a6780bc3a981e7bed08c85a48453f9345',1,'ttg::finalize(std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ae6ec738ff30ec39d8f47dd4880b7e74b',1,'ttg::finalize(std::size_t i)'],['../namespacettg.html#a96780ef3c553a2f45aa7ea881bdb6490',1,'ttg::finalize()'],['../classttg_1_1_out_terminal_base.html#a367175372cb6c6d1f305f12f146f467d',1,'ttg::OutTerminalBase::finalize()'],['../classttg_1_1_in_terminal_base.html#accb89216ff77e9e931608e2468b691cc',1,'ttg::InTerminalBase::finalize()']]], + ['finalize_5fargstream_397',['finalize_argstream',['../classttg__parsec_1_1_t_t.html#a2262c0c3ecbd9ad636437a1568ea529a',1,'ttg_parsec::TT::finalize_argstream()'],['../classttg__madness_1_1_t_t.html#a9c805d0d8955b57872a5843f2e05bb71',1,'ttg_madness::TT::finalize_argstream()'],['../classttg__madness_1_1_t_t.html#a3d7dfade58eeaabd0e8c47afcac83d06',1,'ttg_madness::TT::finalize_argstream(const Key &key)'],['../classttg__parsec_1_1_t_t.html#aa3522558396daa345965ebd6b3898f88',1,'ttg_parsec::TT::finalize_argstream()']]], + ['finalize_5fargstream_5ffrom_5fmsg_398',['finalize_argstream_from_msg',['../classttg__parsec_1_1_t_t.html#a0ae0b08b4ba21d5e00e689bda48c7cf3',1,'ttg_parsec::TT']]], + ['finalize_5fcallback_399',['finalize_callback',['../classttg_1_1_in_terminal_base.html#a5d571ee25683118a0a7531285a484dc2',1,'ttg::InTerminalBase']]], + ['finalize_5fcallback_5ftype_400',['finalize_callback_type',['../classttg_1_1_in_terminal_base.html#ab8108e6045f61b44d2a57c928c8d2cf9',1,'ttg::InTerminalBase::finalize_callback_type()'],['../classttg_1_1_in.html#a0b94b61075542d47bd3b5f659241c1b9',1,'ttg::In::finalize_callback_type()']]], + ['find_401',['find',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#ac87bc0853f03ac4724209837a9067ddc',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['find_5fcopy_5fin_5ftask_402',['find_copy_in_task',['../namespacettg__parsec_1_1detail.html#a00c1cc949951b48c7dc1d8dfe74eff07',1,'ttg_parsec::detail']]], + ['find_5findex_5fof_5fcopy_5fin_5ftask_403',['find_index_of_copy_in_task',['../namespacettg__parsec_1_1detail.html#a3e16f3209e6f3221be2edfbd18754729',1,'ttg_parsec::detail']]], + ['finish_404',['finish',['../structttg_1_1event.html#aa76fa87a100d6a3473a0ded959c14056',1,'ttg::event']]], + ['finished_405',['finished',['../structttg_1_1event.html#a6b4973014bf87af2d7eee7bee05ad349',1,'ttg::event']]], + ['fire_406',['fire',['../classttg_1_1_edge.html#a9821550df654c4ccff7e32e0aa46082f',1,'ttg::Edge']]], + ['first_407',['first',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a79eb7bbe7d6d30cf25992bc27ab7e646',1,'TCB_SPAN_NAMESPACE_NAME::span::first(size_type count) const'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a84d52f07d1df5382ad932aaf242f3a43',1,'TCB_SPAN_NAMESPACE_NAME::span::first() const']]], + ['first_5fdevice_5fid_408',['first_device_id',['../namespacettg__parsec_1_1detail.html#a31448390c01d60752410afc9d34e25eb',1,'ttg_parsec::detail']]], + ['flag_5fmap_409',['flag_map',['../structboost_1_1callable__traits_1_1detail_1_1flag__map.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20_26_20_3e_410',['flag_map< T & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20_26_26_20_3e_411',['flag_map< T && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20_26_20_3e_412',['flag_map< T const & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20_26_26_20_3e_413',['flag_map< T const && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20_3e_414',['flag_map< T const >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20volatile_20_26_20_3e_415',['flag_map< T const volatile & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20volatile_20_26_26_20_3e_416',['flag_map< T const volatile && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20volatile_20_3e_417',['flag_map< T const volatile >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20volatile_20_26_20_3e_418',['flag_map< T volatile & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20volatile_20_26_26_20_3e_419',['flag_map< T volatile && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20volatile_20_3e_420',['flag_map< T volatile >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html',1,'boost::callable_traits::detail']]], + ['flows_421',['flows',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a72f860d8669c2f8fbf7f3f6af5969584',1,'ttg_parsec::detail::device_ptr_t']]], + ['fn_422',['fn',['../structttg_1_1detail_1_1hash__combine__impl.html#a5bb30d6c7e6726da005e60c70f97b795',1,'ttg::detail::hash_combine_impl']]], + ['fn_5fid_423',['fn_id',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63',1,'ttg_parsec::msg_header_t::fn_id()'],['../structttg__parsec_1_1msg__header__t.html#a982d70820f975307a0930da4b027f1f6',1,'ttg_parsec::msg_header_t::fn_id()']]], + ['fn_5fid_5ft_424',['fn_id_t',['../structttg__parsec_1_1msg__header__t.html#a340b3487cf2ba7e41ba44930cd28a8c1',1,'ttg_parsec::msg_header_t']]], + ['fnvhasher_425',['FNVhasher',['../classttg_1_1detail_1_1_f_n_vhasher.html',1,'ttg::detail']]], + ['force_5fdevice_5fcomm_426',['force_device_comm',['../namespacettg_1_1detail.html#a8e25ccea71cb35fbaa031e9fcd5d34f8',1,'ttg::detail']]], + ['force_5fsfinae_427',['force_sfinae',['../structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html',1,'boost::callable_traits::detail']]], + ['foreach_5fparsec_5fdata_428',['foreach_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a7bf2e50a6331c883252cfc38f87ac7c9',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['foreach_5fwrapper_429',['foreach_wrapper',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3d5c8f89af5e7710d688bbee94f21208',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['forward_5fdeclarations_2ehpp_430',['forward_declarations.hpp',['../forward__declarations_8hpp.html',1,'']]], + ['front_431',['front',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a9ae7e805172bcde33a6d11557aa10ac8',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['func_2eh_432',['func.h',['../func_8h.html',1,'']]], + ['function_433',['function',['../structboost_1_1callable__traits_1_1detail_1_1function.html',1,'boost::callable_traits::detail']]], + ['function_2ehpp_434',['function.hpp',['../unguarded_2function_8hpp.html',1,'(Global Namespace)'],['../function_8hpp.html',1,'(Global Namespace)']]], + ['function_3c_20boost_5fclbl_5ftrts_5fst_20return_28boost_5fclbl_5ftrts_5fcc_20_2a_29_28args_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_435',['function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html',1,'']]], + ['function_3c_20boost_5fclbl_5ftrts_5fst_20return_28boost_5fclbl_5ftrts_5fvarargs_5fcc_20_2a_29_28args_2e_2e_2e_2c_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_436',['function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html',1,'']]], + ['function_3c_20return_28args_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_437',['function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html',1,'']]], + ['function_3c_20return_28args_2e_2e_2e_2c_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_438',['function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html',1,'']]], + ['function_3c_20t_20_26_20_3e_439',['function< T & >',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['function_5f2_2ehpp_440',['function_2.hpp',['../function__2_8hpp.html',1,'']]], + ['function_5f3_2ehpp_441',['function_3.hpp',['../function__3_8hpp.html',1,'']]], + ['function_5fobject_442',['function_object',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html',1,'boost::callable_traits::detail']]], + ['function_5fobject_2ehpp_443',['function_object.hpp',['../function__object_8hpp.html',1,'']]], + ['function_5fobject_3c_20t_20u_3a_3a_2a_2c_20base_20_3e_444',['function_object< T U::*, Base >',['../structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.html',1,'boost::callable_traits::detail']]], + ['function_5fobject_5fbase_445',['function_object_base',['../namespaceboost_1_1callable__traits_1_1detail.html#a2f0943ee5870fb225cc9e98c3f890c38',1,'boost::callable_traits::detail']]], + ['function_5fobject_5fsignature_446',['function_object_signature',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a7d72789269a02bd87e45b7123826b279',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_object_signature()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1faa6644ead1b6ee7be5c6427c563d8e',1,'boost::callable_traits::detail::default_callable_traits::function_object_signature()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a857b2535e4797e5ca7ead056710b75c4',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_object_signature()']]], + ['function_5fptr_2ehpp_447',['function_ptr.hpp',['../function__ptr_8hpp.html',1,'']]], + ['function_5fptr_5f2_2ehpp_448',['function_ptr_2.hpp',['../function__ptr__2_8hpp.html',1,'']]], + ['function_5fptr_5f3_2ehpp_449',['function_ptr_3.hpp',['../function__ptr__3_8hpp.html',1,'']]], + ['function_5fptr_5fvarargs_2ehpp_450',['function_ptr_varargs.hpp',['../function__ptr__varargs_8hpp.html',1,'']]], + ['function_5fptr_5fvarargs_5f2_2ehpp_451',['function_ptr_varargs_2.hpp',['../function__ptr__varargs__2_8hpp.html',1,'']]], + ['function_5fptr_5fvarargs_5f3_2ehpp_452',['function_ptr_varargs_3.hpp',['../function__ptr__varargs__3_8hpp.html',1,'']]], + ['function_5ftype_453',['function_type',['../structboost_1_1callable__traits_1_1function__type.html',1,'boost::callable_traits::function_type< T >'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a0904884055daa3be5945969d43ccdc3e',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a259249abef9f4629019e0b90f96795f9',1,'boost::callable_traits::detail::default_callable_traits::function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a155ba2175455de3cc484e62ab0867afb',1,'boost::callable_traits::detail::function_object::function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a9fa6728800840e3832f48d0bb23d8d24',1,'boost::callable_traits::detail::pmd< D T::* >::function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a148ef1ef9ada91c724fc0b9e36005525',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a308f4ffd47a8217c06d747868a6b38ce',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#afbc2ef09a432491409c610284f642566',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a3ee2e63bc45ae94fec20748030736826',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a3018f84b835563b92dc2dcde63fba540',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()']]], + ['function_5ftype_2ehpp_454',['function_type.hpp',['../function__type_8hpp.html',1,'']]], + ['function_5ftype_5fimpl_455',['function_type_impl',['../structboost_1_1callable__traits_1_1detail_1_1function__type__impl.html',1,'boost::callable_traits::detail']]], + ['function_5ftype_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20function_5ftype_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_456',['function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html',1,'boost::callable_traits::detail']]], + ['function_5ftype_5ft_457',['function_type_t',['../namespaceboost_1_1callable__traits.html#a6d8aba53db4009266ea86abc87d19dc9',1,'boost::callable_traits']]], + ['fuse_458',['fuse',['../namespacettg.html#a038fc4be656f584165ec14c4f8baf7f9',1,'ttg']]], + ['future_2eh_459',['future.h',['../future_8h.html',1,'']]], + ['fwd_2eh_460',['fwd.h',['../fwd_8h.html',1,'(Global Namespace)'],['../madness_2fwd_8h.html',1,'(Global Namespace)'],['../parsec_2fwd_8h.html',1,'(Global Namespace)']]] +]; diff --git a/dox-master/search/all_7.html b/dox-master/search/all_7.html new file mode 100644 index 000000000..8ddbf6c8e --- /dev/null +++ b/dox-master/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_7.js b/dox-master/search/all_7.js new file mode 100644 index 000000000..0542b09b4 --- /dev/null +++ b/dox-master/search/all_7.js @@ -0,0 +1,48 @@ +var searchData= +[ + ['generalize_461',['generalize',['../namespaceboost_1_1callable__traits_1_1detail.html#afcb72b22db7b9921c4acd2b91c874b0e',1,'boost::callable_traits::detail']]], + ['generalize_5fif_5fdissimilar_462',['generalize_if_dissimilar',['../namespaceboost_1_1callable__traits_1_1detail.html#a2dc8539c3eed3d38ba5d053e0036ed98',1,'boost::callable_traits::detail']]], + ['generalize_5ft_463',['generalize_t',['../structboost_1_1callable__traits_1_1detail_1_1generalize__t.html',1,'boost::callable_traits::detail']]], + ['generalize_5ft_3c_20t_2c_20is_5freference_5fwrapper_3c_20t_20_3e_20_3e_464',['generalize_t< T, is_reference_wrapper< T > >',['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html',1,'boost::callable_traits::detail']]], + ['generalize_5ft_3c_20t_2c_20std_3a_3aintegral_5fconstant_3c_20bool_2c_20can_5fdereference_3c_20t_20_3e_3a_3avalue_20_26_26_21is_5freference_5fwrapper_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_465',['generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >',['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html',1,'boost::callable_traits::detail']]], + ['get_466',['get',['../structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html#a9b2a30ff5f391cb82c754287455c57ee',1,'ttg::detail::ContainerWrapper< keyT, void >::get()'],['../structttg_1_1detail_1_1_container_wrapper.html#ad783636e739e3b08a25547d78238ad73',1,'ttg::detail::ContainerWrapper::get()'],['../namespacettg_1_1meta.html#affd90f350d054c6a5b4859644d834172',1,'ttg::meta::get()'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a68c06f1798040809feb6ef90fc110b70',1,'TCB_SPAN_NAMESPACE_NAME::get()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html#a7e109b0c09c512311e325eba0c53dbb9',1,'ttg::detail::ContainerWrapper< void, valueT >::get()'],['../structttg_1_1meta_1_1typelist.html#ae38a800132e96f3a4ce8d9e570bbe31c',1,'ttg::meta::typelist::get()'],['../classttg__parsec_1_1_t_t.html#ab3566b250a3ca97cc3158a2b0333615c',1,'ttg_parsec::TT::get()'],['../structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html#a48c6f6603da70ba03201bd24f90d63d7',1,'ttg::detail::ContainerWrapper< ttg::Void, valueT >::get()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html#a72a0bb5a9e83adff50f74aa07edfe1b3',1,'ttg::detail::ContainerWrapper< void, void >::get()'],['../classttg__madness_1_1_t_t.html#a92241f167b81fe2169c6d844c250a76e',1,'ttg_madness::TT::get(InTuple &&intuple)'],['../classttg__madness_1_1_t_t.html#a35601634e19ad7b8c6f4852b543f6617',1,'ttg_madness::TT::get(InTuple &&intuple)'],['../classttg__parsec_1_1_t_t.html#ab6466aa219f736801afdef024cfc6ecd',1,'ttg_parsec::TT::get()']]], + ['get_5fclass_5fname_467',['get_class_name',['../classttg_1_1_t_t_base.html#a7eda400c622206320177ca781efecdfd',1,'ttg::TTBase']]], + ['get_5fconnections_468',['get_connections',['../classttg_1_1_terminal_base.html#aa19b6ac719eca05c2b9bea906fc2f2ac',1,'ttg::TerminalBase']]], + ['get_5fcopy_469',['get_copy',['../namespacettg__parsec_1_1detail.html#a35952777c2109c0e48105bc6469d57c1',1,'ttg_parsec::detail::get_copy(ttg_parsec::Ptr< T > &p)'],['../namespacettg__parsec_1_1detail.html#a059e58e6aa35245387c15387411e22c5',1,'ttg_parsec::detail::get_copy(ttg_parsec::Ptr< T > &p)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#add442904f2072ccd2891ac9966823224',1,'ttg_parsec::detail::ptr_impl::get_copy()']]], + ['get_5fdata_5fdescriptor_470',['get_data_descriptor',['../namespacettg.html#a65f85fd10d284f4dafa914ea0d97d6bc',1,'ttg']]], + ['get_5fdefault_5fworld_471',['get_default_world',['../namespacettg.html#ad3d145fdde5e7484530e86075848dcee',1,'ttg']]], + ['get_5fdefer_5fwriter_472',['get_defer_writer',['../classttg__parsec_1_1_t_t.html#a47deb20513c97687bee226410f25ef06',1,'ttg_parsec::TT::get_defer_writer()'],['../classttg__madness_1_1_t_t.html#ab6c1c898ccc622fb94d2933505970744',1,'ttg_madness::TT::get_defer_writer()']]], + ['get_5fderived_473',['get_derived',['../structttg__parsec_1_1_t_t_value.html#abbf071ce052d0ff7e631b21ea3cda0e2',1,'ttg_parsec::TTValue::get_derived() const'],['../structttg__parsec_1_1_t_t_value.html#a80db007e765c7a616bac3ad6ed3b3a9a',1,'ttg_parsec::TTValue::get_derived()']]], + ['get_5fdevicemap_474',['get_devicemap',['../classttg__parsec_1_1_t_t.html#a3bf78dfa73d5b24963cc2585bf42c2fb',1,'ttg_parsec::TT']]], + ['get_5ffrom_5fpull_5fmsg_475',['get_from_pull_msg',['../classttg__parsec_1_1_t_t.html#a8402a826e876783d32d71b851382a434',1,'ttg_parsec::TT']]], + ['get_5findex_476',['get_index',['../classttg_1_1_terminal_base.html#a34867960f4cdc4b574b706ba3cda5d01',1,'ttg::TerminalBase']]], + ['get_5finputs_477',['get_inputs',['../classttg_1_1_t_t_base.html#a0c8af32aea388a9fd750c3ff484048e8',1,'ttg::TTBase']]], + ['get_5finstance_5fid_478',['get_instance_id',['../classttg_1_1_t_t_base.html#a48f582b0eab8579283383f8d4937db09',1,'ttg::TTBase']]], + ['get_5fkey_5ftype_5fstr_479',['get_key_type_str',['../classttg_1_1_terminal_base.html#a3180aefbeaf9040a94fb32849fc4c5df',1,'ttg::TerminalBase']]], + ['get_5fkeymap_480',['get_keymap',['../classttg__parsec_1_1_t_t.html#a11331324223680e375af1c8cf03800a1',1,'ttg_parsec::TT::get_keymap()'],['../classttg__madness_1_1_t_t.html#a7511516e7be569d096e185e73d0c68d4',1,'ttg_madness::TT::get_keymap()']]], + ['get_5fname_481',['get_name',['../classttg_1_1_t_t_base.html#a9b2aadf2a88531b2859de60d697c70c0',1,'ttg::TTBase::get_name()'],['../classttg_1_1_terminal_base.html#a98e0fb1f400ed77d657998ac371c647b',1,'ttg::TerminalBase::get_name()']]], + ['get_5fnext_5ftask_482',['get_next_task',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a2d312c9fa335faa821065e7211317076',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['get_5fop_483',['get_op',['../classttg_1_1_t_t_g.html#ac4eeacb14143de8e7ad1e5d1bdb7e9a8',1,'ttg::TTG']]], + ['get_5fout_5fbase_5fterminal_484',['get_out_base_terminal',['../namespacettg_1_1detail.html#ab74de3de588f49984ad9db137518478b',1,'ttg::detail']]], + ['get_5fout_5fterminal_485',['get_out_terminal',['../namespacettg_1_1detail.html#a34fe30520697b631fc025a97b54f88b9',1,'ttg::detail']]], + ['get_5foutput_5fterminals_486',['get_output_terminals',['../classttg__parsec_1_1_t_t.html#a4d2810424dee8724eb4ee61ffce74c02',1,'ttg_parsec::TT::get_output_terminals()'],['../classttg__madness_1_1_t_t.html#aa2ba9df4e2e659e610ccffd638b4ac9f',1,'ttg_madness::TT::get_output_terminals()']]], + ['get_5foutputs_487',['get_outputs',['../classttg_1_1_t_t_base.html#a2a0acf4d44d4eede04c7de5ad998131d',1,'ttg::TTBase']]], + ['get_5foutputs_5ftls_5fptr_488',['get_outputs_tls_ptr',['../classttg_1_1_t_t_base.html#a401d4b8c92ec6eefc3ab56ec9274bf0e',1,'ttg::TTBase']]], + ['get_5fowner_5fdevice_489',['get_owner_device',['../structttg__madness_1_1_buffer.html#a06f56c6e61ff9b5b75b2144797e3ce31',1,'ttg_madness::Buffer::get_owner_device()'],['../structttg__parsec_1_1_buffer.html#a6d94b7f71accdae0bfd9c708006d359e',1,'ttg_parsec::Buffer::get_owner_device()']]], + ['get_5fparsec_5fdata_490',['get_parsec_data',['../namespacettg__parsec_1_1detail.html#a869cbeeae27e8c623cff9623bffaba1a',1,'ttg_parsec::detail::get_parsec_data(const ttg_parsec::devicescratch< T > &)'],['../namespacettg__parsec_1_1detail.html#ad37e220fbc05d0a62b08a94964480f0a',1,'ttg_parsec::detail::get_parsec_data(const ttg_parsec::Buffer< T, A > &db)']]], + ['get_5fpredecessors_491',['get_predecessors',['../classttg_1_1_terminal_base.html#a3122d4c1636fed7bc41724db4ad4995f',1,'ttg::TerminalBase']]], + ['get_5fpriomap_492',['get_priomap',['../classttg__madness_1_1_t_t.html#adef3c3a55bbe2948b2fc94ecf38ba161',1,'ttg_madness::TT::get_priomap()'],['../classttg__parsec_1_1_t_t.html#a75b72cc12e31642ed1202b74992c63cf',1,'ttg_parsec::TT::get_priomap()']]], + ['get_5fptr_493',['get_ptr',['../namespacettg.html#a00bd375ae85865cdd863220c267aa028',1,'ttg::get_ptr()'],['../namespacettg__parsec.html#a6b4f435426a465bb5345e28f35a7ecca',1,'ttg_parsec::get_ptr()'],['../namespacettg__madness.html#a4566d643ea9a253a1b601801764d7758',1,'ttg_madness::get_ptr()'],['../structttg__parsec_1_1_ptr.html#a3c44d979e62ebbede2149f9cbc344a2b',1,'ttg_parsec::Ptr::get_ptr()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a4d720d1cbbde763d8e6321ab8c03c6ed',1,'ttg_parsec::detail::ttg_data_copy_t::get_ptr()'],['../structttg__parsec_1_1_t_t_value.html#a41aa3a6cb77394e51874c7ac030f62e8',1,'ttg_parsec::TTValue::get_ptr()'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a9c739a7d4814e2317884b47adc472817',1,'ttg_parsec::detail::ttg_data_value_copy_t::get_ptr()']]], + ['get_5freturn_5fobject_494',['get_return_object',['../structttg_1_1resumable__task__state.html#a1dc2eab857c34038b6f557d20d077be1',1,'ttg::resumable_task_state']]], + ['get_5ftask_5fmempool_495',['get_task_mempool',['../classttg__parsec_1_1_t_t.html#a2c67391e7c5f2d3de4581ea916697b71',1,'ttg_parsec::TT']]], + ['get_5fterminal_5fdata_496',['get_terminal_data',['../classttg__madness_1_1_t_t.html#a196ae0356a90eaa09a0f71d98eed24f8',1,'ttg_madness::TT']]], + ['get_5ftt_497',['get_tt',['../classttg_1_1_terminal_base.html#a0b908c8510a371160f58cd55a2014762',1,'ttg::TerminalBase']]], + ['get_5ftype_498',['get_type',['../classttg_1_1_terminal_base.html#a57202041203e7ed427c3f2fe28d39e7b',1,'ttg::TerminalBase']]], + ['get_5fvalue_5ftype_5fstr_499',['get_value_type_str',['../classttg_1_1_terminal_base.html#a0d160f11f6fa10854e0f452fe428f83a',1,'ttg::TerminalBase']]], + ['get_5fworld_500',['get_world',['../classttg__madness_1_1_t_t.html#adf61cd022f4590982342e9639a73822e',1,'ttg_madness::TT::get_world()'],['../classttg_1_1_sink_t_t.html#ac3e5c68b5dd8fe03b88db6fb60d5ccbe',1,'ttg::SinkTT::get_world()'],['../classttg_1_1_t_t_g.html#a78d7f2f6e4fa3165fcb2deba953014b4',1,'ttg::TTG::get_world()'],['../classttg__parsec_1_1_t_t.html#a8c804fec7e8545ae64e57f6b5c9cea0d',1,'ttg_parsec::TT::get_world()'],['../classttg_1_1_t_t_base.html#a747f6e5665d414223a3f94cb33d6e1af',1,'ttg::TTBase::get_world()']]], + ['git_5fdescription_501',['git_description',['../namespacettg.html#ab6d0599a74646b059ff4ad20853d8d4b',1,'ttg']]], + ['git_5frevision_502',['git_revision',['../namespacettg.html#ab983c30de9eb6418cadbd83fe1a2b9dd',1,'ttg']]], + ['goal_503',['goal',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#a98f2cd365ce06df8e171fc3b2bc72956',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t']]], + ['got_5fsignal_504',['got_signal',['../classttg_1_1_debugger.html#a14e7cc5aa0e16747eebf152e8f3abb25',1,'ttg::Debugger']]], + ['gpu_5ftask_505',['gpu_task',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a09836520cfe65fba3601e3a604d50020',1,'ttg_parsec::detail::device_ptr_t']]] +]; diff --git a/dox-master/search/all_8.html b/dox-master/search/all_8.html new file mode 100644 index 000000000..83c55ae22 --- /dev/null +++ b/dox-master/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_8.js b/dox-master/search/all_8.js new file mode 100644 index 000000000..63663a47d --- /dev/null +++ b/dox-master/search/all_8.js @@ -0,0 +1,67 @@ +var searchData= +[ + ['handle_506',['handle',['../structttg_1_1resumable__task.html#af61bae2da7896dcbd9cdab44bb012fbb',1,'ttg::resumable_task::handle()'],['../classttg_1_1_debugger.html#ad0d04b2f2ce3e296bd25478b0704bb4c',1,'ttg::Debugger::handle(int sig)']]], + ['handle_5fdefaults_507',['handle_defaults',['../classttg_1_1_debugger.html#a4498530be3e81d7355ab5e1a3b2d5e74',1,'ttg::Debugger']]], + ['handle_5fsigint_5f_508',['handle_sigint_',['../classttg_1_1_debugger.html#a72c43bd0013252744e64cd77d4ecbed4',1,'ttg::Debugger']]], + ['handle_5ftype_509',['handle_type',['../structttg_1_1resumable__task__state.html#af93568dbd723169578f630f69146f642',1,'ttg::resumable_task_state']]], + ['has_5ffreestanding_5fboost_5fserialize_5fwith_5fversion_5ft_510',['has_freestanding_boost_serialize_with_version_t',['../namespacettg_1_1detail.html#a0d4b3d58e7f125d2db00ffb0e0accc64',1,'ttg::detail']]], + ['has_5ffreestanding_5fboost_5fserialize_5fwith_5fversion_5fv_511',['has_freestanding_boost_serialize_with_version_v',['../namespacettg_1_1detail.html#aca0a6c553e20f672dedd33f5ae2dbea8',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5ft_512',['has_freestanding_serialize_t',['../namespacettg_1_1detail.html#a1e8ad0efa938cb3fac08d315bde69241',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5fv_513',['has_freestanding_serialize_v',['../namespacettg_1_1detail.html#af617582b4a28864a1712f6c07fa367fa',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5fwith_5fversion_5ft_514',['has_freestanding_serialize_with_version_t',['../namespacettg_1_1detail.html#ae65c05514498d34a1bc28de8f0edbdc4',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5fwith_5fversion_5fv_515',['has_freestanding_serialize_with_version_v',['../namespacettg_1_1detail.html#a8e4169ab044608413a424e6bd63fafe2',1,'ttg::detail']]], + ['has_5fmember_5ffunction_5fhash_516',['has_member_function_hash',['../structttg_1_1meta_1_1has__member__function__hash.html',1,'ttg::meta']]], + ['has_5fmember_5ffunction_5fhash_3c_20t_2c_20std_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20const_20t_20_26_20_3e_28_29_2ehash_28_29_29_3e_20_3e_517',['has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> >',['../structttg_1_1meta_1_1has__member__function__hash_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1f4964d2720bb5e0fa5e45d0cbc913910.html',1,'ttg::meta']]], + ['has_5fmember_5ffunction_5fhash_5fv_518',['has_member_function_hash_v',['../namespacettg_1_1meta.html#a45554104316cd10ac679432f96aa4eee',1,'ttg::meta']]], + ['has_5fmember_5fload_5ft_519',['has_member_load_t',['../namespacettg_1_1detail.html#a5cd3fdc36711ed8043a3e47e59048579',1,'ttg::detail']]], + ['has_5fmember_5fload_5fwith_5fversion_5ft_520',['has_member_load_with_version_t',['../namespacettg_1_1detail.html#aea9d89fde0632f309c09c532c77307a1',1,'ttg::detail']]], + ['has_5fmember_5fload_5fwith_5fversion_5fv_521',['has_member_load_with_version_v',['../namespacettg_1_1detail.html#a8b18bba953596d3d309deb142672fcf8',1,'ttg::detail']]], + ['has_5fmember_5fqualifiers_522',['has_member_qualifiers',['../structboost_1_1callable__traits_1_1has__member__qualifiers.html',1,'boost::callable_traits::has_member_qualifiers< T >'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ac20065371143b488aed4569eac58893d',1,'boost::callable_traits::detail::default_callable_traits::has_member_qualifiers()']]], + ['has_5fmember_5fqualifiers_2ehpp_523',['has_member_qualifiers.hpp',['../has__member__qualifiers_8hpp.html',1,'']]], + ['has_5fmember_5fqualifiers_5fv_524',['has_member_qualifiers_v',['../namespaceboost_1_1callable__traits.html#a5e5a45b0322da48a5ed3f484c903bfa6',1,'boost::callable_traits']]], + ['has_5fmember_5fsave_5ft_525',['has_member_save_t',['../namespacettg_1_1detail.html#a2845126dd4dbc662db1d3d0b2c0ed54b',1,'ttg::detail']]], + ['has_5fmember_5fsave_5fwith_5fversion_5ft_526',['has_member_save_with_version_t',['../namespacettg_1_1detail.html#a624e4e87491fad99ad9c92dd4412fac4',1,'ttg::detail']]], + ['has_5fmember_5fsave_5fwith_5fversion_5fv_527',['has_member_save_with_version_v',['../namespacettg_1_1detail.html#ad196693927e37fb7288ac1a78d9ebed7',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5ft_528',['has_member_serialize_t',['../namespacettg_1_1detail.html#a5682c49378d701b250aff519dcef42c6',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5fv_529',['has_member_serialize_v',['../namespacettg_1_1detail.html#a8e165b39ef30e8301e89e5bd1f6720c3',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5fwith_5fversion_5ft_530',['has_member_serialize_with_version_t',['../namespacettg_1_1detail.html#ab99d168530b97c5fbbe5870387dba508',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5fwith_5fversion_5fv_531',['has_member_serialize_with_version_v',['../namespacettg_1_1detail.html#a312ab9e00f4b3cd57301ff0aa244451c',1,'ttg::detail']]], + ['has_5fnormal_5fcall_5foperator_532',['has_normal_call_operator',['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html',1,'boost::callable_traits::detail']]], + ['has_5fref_533',['has_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a59d437f4715fee2c7779ef4fd2c02c53',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['has_5fsize_5fand_5fdata_534',['has_size_and_data',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['has_5fsize_5fand_5fdata_3c_20t_2c_20void_5ft_3c_20decltype_28detail_3a_3asize_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_2c_20decltype_28detail_3a_3adata_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_3e_20_3e_535',['has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['has_5fsplit_5fmetadata_536',['has_split_metadata',['../structttg_1_1has__split__metadata.html',1,'ttg']]], + ['has_5fsplit_5fmetadata_3c_20t_2c_20ttg_3a_3ameta_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20splitmetadatadescriptor_3c_20t_20_3e_3e_28_29_2eget_5fmetadata_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_3e_20_3e_537',['has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >',['../structttg_1_1has__split__metadata_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01decltype_07std_1_1declv04e799e75aff1843c5d29b807a5d2544.html',1,'ttg']]], + ['has_5fttg_5fhash_5fspecialization_538',['has_ttg_hash_specialization',['../structttg_1_1meta_1_1has__ttg__hash__specialization.html',1,'ttg::meta']]], + ['has_5fttg_5fhash_5fspecialization_3c_20t_2c_20ttg_3a_3ameta_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20ttg_3a_3ahash_3c_20t_20_3e_3e_28_29_28std_3a_3adeclval_3c_20const_20t_20_26_20_3e_28_29_29_29_3e_20_3e_539',['has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> >',['../structttg_1_1meta_1_1has__ttg__hash__specialization_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01declt91c1b3738036f1921f53ffe2f01abf5a.html',1,'ttg::meta']]], + ['has_5fttg_5fhash_5fspecialization_5fv_540',['has_ttg_hash_specialization_v',['../namespacettg_1_1meta.html#af1b06006615ea4bf69412c4db78dbb5e',1,'ttg::meta']]], + ['has_5fvalue_541',['has_value',['../namespacettg.html#a2d53a5b46c18e513736584a8321d45fc',1,'ttg::has_value(std::future< T > const &f)'],['../namespacettg.html#a08fb74d3ad3229d85905d670af0f47e3',1,'ttg::has_value(std::shared_future< T > const &f)']]], + ['has_5fvarargs_542',['has_varargs',['../structboost_1_1callable__traits_1_1has__varargs.html',1,'boost::callable_traits::has_varargs< T >'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#afa72a2143161365f10fecd79c3c46e5c',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a5e2a5186f302580ee57f9a138e375e52',1,'boost::callable_traits::detail::default_callable_traits::has_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a7b3cfd3f695454d53d21ee5e4437269b',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a952500ec36be3243d8f35192322c9054',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs()']]], + ['has_5fvarargs_2ehpp_543',['has_varargs.hpp',['../has__varargs_8hpp.html',1,'']]], + ['has_5fvarargs_5fv_544',['has_varargs_v',['../namespaceboost_1_1callable__traits.html#adaaaa79a0595f87564176fbf18d7d377',1,'boost::callable_traits']]], + ['has_5fvoid_5freturn_545',['has_void_return',['../structboost_1_1callable__traits_1_1has__void__return.html',1,'boost::callable_traits']]], + ['has_5fvoid_5freturn_2ehpp_546',['has_void_return.hpp',['../has__void__return_8hpp.html',1,'']]], + ['has_5fvoid_5freturn_5fv_547',['has_void_return_v',['../namespaceboost_1_1callable__traits.html#acdf7667c88ee53ac969a56c6c5989869',1,'boost::callable_traits']]], + ['hash_548',['hash',['../structttg_1_1_multi_index.html#a160db1f37d77a97596cfe3347df71d0e',1,'ttg::MultiIndex::hash()'],['../structttg_1_1overload_1_1hash.html',1,'ttg::overload::hash< T, Enabler >']]], + ['hash_2eh_549',['hash.h',['../hash_8h.html',1,'']]], + ['hash_3c_20std_3a_3apair_3c_20t1_2c_20t2_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_20meta_3a_3ahas_5fttg_5fhash_5fspecialization_5fv_3c_20t1_20_3e_20_26_26meta_3a_3ahas_5fttg_5fhash_5fspecialization_5fv_3c_20t2_20_3e_20_3e_20_3e_550',['hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >',['../structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html',1,'ttg::overload']]], + ['hash_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20meta_3a_3ahas_5fmember_5ffunction_5fhash_5fv_3c_20t_20_3e_20_3e_20_3e_551',['hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >',['../structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html',1,'ttg::overload']]], + ['hash_3c_20ttg_3a_3avoid_20_3e_552',['hash< ttg::Void >',['../structstd_1_1hash_3_01ttg_1_1_void_01_4.html',1,'std']]], + ['hash_3c_20void_2c_20void_20_3e_553',['hash< Void, void >',['../structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html',1,'ttg::overload']]], + ['hash_3c_20void_2c_20void_20_3e_554',['hash< void, void >',['../structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html',1,'ttg::overload']]], + ['hash_5fcombine_555',['hash_combine',['../namespacettg.html#a0e3bc8c46e846392662b4360c63f63bd',1,'ttg']]], + ['hash_5fcombine_5fimpl_556',['hash_combine_impl',['../structttg_1_1detail_1_1hash__combine__impl.html',1,'ttg::detail']]], + ['hash_5ft_557',['hash_t',['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#a7f9710af412c1bb19e8131c795fad36a',1,'ttg::runtime_traits< Runtime::MADWorld >::hash_t()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#a53a0b4b87a48030ad31efa2ba8c2c5f0',1,'ttg::runtime_traits< Runtime::PaRSEC >::hash_t()']]], + ['have_5fcuda_5fop_558',['have_cuda_op',['../class_callable_wrap_t_t_args.html#adf81238f0d5759577de355ea0406ab28',1,'CallableWrapTTArgs']]], + ['have_5fcxa_5fdemangle_559',['HAVE_CXA_DEMANGLE',['../demangle_8h.html#afe11ec2a5dfad74fa038aae3d490c635',1,'demangle.h']]], + ['have_5fhip_5fop_560',['have_hip_op',['../class_callable_wrap_t_t_args.html#ada357f9973761ab946e3abb32678cfe3',1,'CallableWrapTTArgs']]], + ['have_5flevel_5fzero_5fop_561',['have_level_zero_op',['../class_callable_wrap_t_t_args.html#a733f75c100b3bc1a04931a3d409d6bba',1,'CallableWrapTTArgs']]], + ['hip_562',['HIP',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78a5e4576beae2ab86d6ad1b8b1700d2e11',1,'ttg']]], + ['hook_563',['hook',['../namespacettg__parsec_1_1detail.html#a8979ef254b1c19c82d5813c313724723',1,'ttg_parsec::detail']]], + ['hook_5fcuda_564',['hook_cuda',['../namespacettg__parsec_1_1detail.html#abcd16312cec1a12ed36b188cd6fdc75d',1,'ttg_parsec::detail']]], + ['hook_5fhip_565',['hook_hip',['../namespacettg__parsec_1_1detail.html#aba4abd779a06416910d4140c2b6b5eb2',1,'ttg_parsec::detail']]], + ['hook_5flevel_5fzero_566',['hook_level_zero',['../namespacettg__parsec_1_1detail.html#a2da66ae20e7e976744d11f6a9ebe8663',1,'ttg_parsec::detail']]], + ['host_567',['Host',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78ac2ca16d048ec66e04bca283eab048ec2',1,'ttg']]], + ['host_5fptr_568',['host_ptr',['../structttg__parsec_1_1_buffer.html#aa7e84bbe6b3abfbd5d82f1c2dbce7a00',1,'ttg_parsec::Buffer::host_ptr() const'],['../structttg__parsec_1_1_buffer.html#a9e345448a5f367d8dec939e9125e5640',1,'ttg_parsec::Buffer::host_ptr()'],['../structttg__madness_1_1_buffer.html#a312fdd8d242f18601675100e76181910',1,'ttg_madness::Buffer::host_ptr() const'],['../structttg__madness_1_1_buffer.html#a69e8280f52ab887b6a8fb7982f4c8aa7',1,'ttg_madness::Buffer::host_ptr()']]], + ['ht_5fiter_5fcb_569',['ht_iter_cb',['../classttg__parsec_1_1_t_t.html#a4abca36c9d77f7d42341305176454d8b',1,'ttg_parsec::TT']]] +]; diff --git a/dox-master/search/all_9.html b/dox-master/search/all_9.html new file mode 100644 index 000000000..1e263c134 --- /dev/null +++ b/dox-master/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_9.js b/dox-master/search/all_9.js new file mode 100644 index 000000000..97a141700 --- /dev/null +++ b/dox-master/search/all_9.js @@ -0,0 +1,219 @@ +var searchData= +[ + ['iarchive_5fload_5foverride_5foptimized_5fdispatch_570',['iarchive_load_override_optimized_dispatch',['../namespacettg_1_1detail.html#adacb884462c630cdd18babd4a9b05a62',1,'ttg::detail']]], + ['id_571',['id',['../classttg_1_1device_1_1_device.html#acf0992ecbfbc2c91de0452122b06fe81',1,'ttg::device::Device']]], + ['impl_572',['impl',['../classttg__madness_1_1_world_impl.html#abef8f99f93ce392d21ec9f95978f94ee',1,'ttg_madness::WorldImpl::impl()'],['../classttg__madness_1_1_world_impl.html#af08c102d66502056f7558fc74a168c55',1,'ttg_madness::WorldImpl::impl() const'],['../classttg_1_1base_1_1_world.html#a8f574277f470ec55495f0e2f621e6505',1,'ttg::base::World::impl(void) const'],['../classttg_1_1base_1_1_world.html#a0cb2aee443a5fb238b5e4bd86b2f2e59',1,'ttg::base::World::impl(void)']]], + ['impl_5fselector_2eh_573',['impl_selector.h',['../impl__selector_8h.html',1,'']]], + ['import_2eh_574',['import.h',['../parsec_2import_8h.html',1,'(Global Namespace)'],['../madness_2import_8h.html',1,'(Global Namespace)']]], + ['in_575',['in',['../classttg_1_1_t_t_base.html#a52bb659f83034a88196677270cad18bd',1,'ttg::TTBase::in()'],['../classttg_1_1_t_t_base.html#a3e78739836dd1c9ccc3893c64a50f9d7',1,'ttg::TTBase::in(size_t i)']]], + ['in_576',['In',['../classttg_1_1_in.html#a38d3fc26621fbf1a0d172b9e10060b96',1,'ttg::In::In()'],['../classttg_1_1_terminal_base.html#ab0d4e2893c2652b04f29ce6365e5d74a',1,'ttg::TerminalBase::In()']]], + ['in_577',['in',['../classttg__madness_1_1_t_t.html#a12ad5ee0ecd046bfe5a3329be39e1149',1,'ttg_madness::TT::in()'],['../classttg__parsec_1_1_t_t.html#a0d60d2e5aa321a7a843734340602519c',1,'ttg_parsec::TT::in()'],['../classttg_1_1_sink_t_t.html#a65336cc11c05fb7192a10d0a40d13fa1',1,'ttg::SinkTT::in()'],['../classttg_1_1_t_t_g.html#a0946595e950140f8f99ff77849e80bcf',1,'ttg::TTG::in()']]], + ['in_578',['In',['../classttg_1_1_in.html',1,'ttg']]], + ['in_5fdata_5fcount_579',['in_data_count',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a5fd137a6889b7ab10e5cdb579b888169',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['in_5fvisitor_580',['in_visitor',['../classttg_1_1_traverse.html#a087fe3ef31debe88c9944e6e40eba719',1,'ttg::Traverse']]], + ['inc_5fcurrent_5fversion_581',['inc_current_version',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a699b712b534cc9a598af7966d6ae1a32',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['increment_5fcreated_582',['increment_created',['../classttg__parsec_1_1_world_impl.html#a08fd71d65d7505d6df8f3a2af3376906',1,'ttg_parsec::WorldImpl']]], + ['increment_5finflight_5fmsg_583',['increment_inflight_msg',['../classttg__parsec_1_1_world_impl.html#a3e59b58f4be9ead3aec971b0fc946081',1,'ttg_parsec::WorldImpl']]], + ['increment_5freaders_584',['increment_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a5ada8367b37c4c0e863c145311364efd',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['index_5fsequence_585',['index_sequence',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['index_5fsequence_3c_200_20_3e_586',['index_sequence< 0 >',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['index_5fsequence_3c_20i1_2e_2e_2e_2c_28sizeof_2e_2e_2e_28i1_29_2bi2_29_2e_2e_2e_20_3e_587',['index_sequence< I1...,(sizeof...(I1)+I2)... >',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['index_5fsequence_3c_3e_588',['index_sequence<>',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['infunc_589',['infunc',['../classttg_1_1detail_1_1_traverse.html#a6aa44d45713f8fecf27bd4c91f1be475',1,'ttg::detail::Traverse::infunc()'],['../classttg_1_1_dot.html#a1f6c1780536faae0306a1317801340b3',1,'ttg::Dot::infunc()']]], + ['init_590',['init',['../classttg_1_1_debugger.html#ab0b4815698da0db89c33d315392a5c10',1,'ttg::Debugger']]], + ['init_5fstream_5finfo_591',['init_stream_info',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a754ed8ebc4a0aa6b31e03aa5ae113214',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['init_5fstream_5finfo_5fimpl_592',['init_stream_info_impl',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a7d2c9ce80d11115e67821e64a738f1c5',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['initial_5fsuspend_593',['initial_suspend',['../structttg_1_1resumable__task__state.html#ad3141e30d117d9231c178e8d2226bf84',1,'ttg::resumable_task_state']]], + ['initial_5fvalue_594',['initial_value',['../classttg_1_1detail_1_1_f_n_vhasher.html#abc61a5f236f781259a77755957844d5b',1,'ttg::detail::FNVhasher']]], + ['initialize_595',['initialize',['../namespacettg.html#a557cbca5e1f34dcc87a43afd0d03c6e4',1,'ttg::initialize(int argc, char **argv, int num_threads, RestOfArgs &&... args)'],['../namespacettg.html#a19c06079af2c21be154b525ff21028d1',1,'ttg::initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)']]], + ['initialize_5ffpe_596',['initialize_fpe',['../namespacettg.html#aea8f3e1d513bfa7ddfd3bb3a4700428a',1,'ttg']]], + ['initialize_5finstance_597',['initialize_instance',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a6464e134549f9a04956913215b151e32',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['initialize_5fwatchpoints_598',['initialize_watchpoints',['../namespacettg__madness.html#a1d0750abcb4d3cb112ff1755f38798f1',1,'ttg_madness']]], + ['initialized_5fmpi_599',['initialized_mpi',['../namespacettg__parsec_1_1detail.html#a063cd018b82a8ebbe7925321a3253649',1,'ttg_parsec::detail']]], + ['inline_600',['Inline',['../namespacettg.html#ab019ae6d4974cd5dc8737ac1e0607128a0125cf5f3ca38b312ca5d3b511c45a13',1,'ttg']]], + ['inline_5fdata_601',['inline_data',['../structttg__parsec_1_1msg__header__t.html#aaafb324de862736857ded5fcd3260dc8',1,'ttg_parsec::msg_header_t']]], + ['input_5fargs_5ftype_602',['input_args_type',['../classttg__parsec_1_1_t_t.html#abb37c0f880512fa75a25d10842baefbe',1,'ttg_parsec::TT::input_args_type()'],['../classttg__madness_1_1_t_t.html#a444d5f2f75e1ecaa509e67b3e9092a9e',1,'ttg_madness::TT::input_args_type()']]], + ['input_5fedges_5ftype_603',['input_edges_type',['../classttg__parsec_1_1_t_t.html#a768a5a016ebe624b007484eea6dd7270',1,'ttg_parsec::TT::input_edges_type()'],['../classttg__madness_1_1_t_t.html#acee89d6e346a4668669cacab01a5cb26',1,'ttg_madness::TT::input_edges_type()']]], + ['input_5frefs_5ffull_5ftuple_5ftype_604',['input_refs_full_tuple_type',['../classttg__parsec_1_1_t_t.html#a0ca3828ff8520354b140d5815f5da1e3',1,'ttg_parsec::TT::input_refs_full_tuple_type()'],['../classttg__madness_1_1_t_t.html#aa6092619a00a046661c1f6c81c0fb540',1,'ttg_madness::TT::input_refs_full_tuple_type()']]], + ['input_5frefs_5ftuple_5ftype_605',['input_refs_tuple_type',['../classttg__parsec_1_1_t_t.html#a5449819f687ae3a1dfb52e62b06c73f5',1,'ttg_parsec::TT::input_refs_tuple_type()'],['../classttg__madness_1_1_t_t.html#a58a707b385dad6796ae2ece20f1f33a2',1,'ttg_madness::TT::input_refs_tuple_type()']]], + ['input_5fterminals_5ftuple_606',['input_terminals_tuple',['../structttg_1_1detail_1_1input__terminals__tuple.html',1,'ttg::detail']]], + ['input_5fterminals_5ftuple_3c_20keyt_2c_20std_3a_3atuple_3c_20valuest_2e_2e_2e_20_3e_20_3e_607',['input_terminals_tuple< keyT, std::tuple< valuesT... > >',['../structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html',1,'ttg::detail']]], + ['input_5fterminals_5ftuple_5ft_608',['input_terminals_tuple_t',['../namespacettg_1_1detail.html#a8f34a0bbca4a0c85a7d184e5cdf4c96b',1,'ttg::detail']]], + ['input_5fterminals_5ftype_609',['input_terminals_type',['../classttg__madness_1_1_t_t.html#af3c016c06ee6f46f1720ca64fc814522',1,'ttg_madness::TT::input_terminals_type()'],['../classttg__parsec_1_1_t_t.html#a5622a2630a9503c2c0cff35d8463c2b7',1,'ttg_parsec::TT::input_terminals_type()'],['../classttg_1_1_t_t_g.html#a5d1c01ea5a614099d16067f96a0cb1a7',1,'ttg::TTG::input_terminals_type()']]], + ['input_5fvalues_5ffull_5ftuple_5ftype_610',['input_values_full_tuple_type',['../classttg__madness_1_1_t_t.html#a18ddf951dd451d4cd205b2422d453c27',1,'ttg_madness::TT::input_values_full_tuple_type()'],['../classttg__parsec_1_1_t_t.html#aebc5a2e56108a8e73741d13665b6f3d9',1,'ttg_parsec::TT::input_values_full_tuple_type()']]], + ['input_5fvalues_5ftuple_5ftype_611',['input_values_tuple_type',['../classttg__madness_1_1_t_t.html#add2c1800d3faf8adbe771530ad5510a4',1,'ttg_madness::TT::input_values_tuple_type()'],['../classttg__parsec_1_1_t_t.html#ad13abd5cb3d2ce002f58d9f92ce80c49',1,'ttg_parsec::TT::input_values_tuple_type()']]], + ['insert_5fargs_612',['insert_args',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a4f2359dcac38c913693bb06e93651acf',1,'boost::callable_traits::detail::default_callable_traits::insert_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ac0c49da6f5b074bc08962ac92b2b17c1',1,'boost::callable_traits::detail::function< T & >::insert_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#aa852213f484d9c64fb81ab428e48d620',1,'boost::callable_traits::detail::function_object::insert_args()']]], + ['instance_613',['instance',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#ad24e8fff85afd3e567910a9978c0b0c9',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['interminalbase_614',['InTerminalBase',['../classttg_1_1_in_terminal_base.html#a3aa60efefe91dd13410a02589c472651',1,'ttg::InTerminalBase::InTerminalBase()'],['../classttg_1_1_in_terminal_base.html',1,'ttg::InTerminalBase< keyT >']]], + ['interminalbase_3c_20void_20_3e_615',['InTerminalBase< void >',['../classttg_1_1_in_terminal_base.html',1,'ttg']]], + ['invalid_616',['Invalid',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78a4bbb8f967da6d1a610596d7257179c2b',1,'ttg::Invalid()'],['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922a4bbb8f967da6d1a610596d7257179c2b',1,'ttg::Invalid()']]], + ['invalid_5ftype_617',['invalid_type',['../structboost_1_1callable__traits_1_1detail_1_1invalid__type.html',1,'boost::callable_traits::detail::invalid_type'],['../structboost_1_1callable__traits_1_1detail_1_1invalid__type.html#a50384bc09a34f68a6f671e99538aec25',1,'boost::callable_traits::detail::invalid_type::invalid_type()']]], + ['invoke_618',['invoke',['../classttg__parsec_1_1_t_t.html#a130caa6a4a811b76bd1551343b85e6c1',1,'ttg_parsec::TT::invoke(const Key &key, Arg &&arg, Args &&... args)'],['../classttg__parsec_1_1_t_t.html#a3f881fe11495a4ba4f87883911372510',1,'ttg_parsec::TT::invoke() override'],['../classttg__parsec_1_1_t_t.html#ac53c2d3cfd0ba4fc1ad4cbadbf7694c5',1,'ttg_parsec::TT::invoke()'],['../classttg__parsec_1_1_t_t.html#a5f7ea989b87631b158bd5ca913b08605',1,'ttg_parsec::TT::invoke(const input_values_tuple_type &args)'],['../classttg_1_1_t_t_base.html#a1c8161302cb6f3f8d7d7f80b00a56e03',1,'ttg::TTBase::invoke()'],['../classttg__parsec_1_1_t_t.html#a5492a010490444067ce27f387dead4ac',1,'ttg_parsec::TT::invoke()'],['../classttg__madness_1_1_t_t.html#a34db3ece2bbc7434401f420963cafd6b',1,'ttg_madness::TT::invoke() override'],['../classttg__madness_1_1_t_t.html#ace7bff77164a2fc8d03361889dd483f5',1,'ttg_madness::TT::invoke()'],['../classttg__madness_1_1_t_t.html#a79f5298371e3f9248f56d283eaf226a0',1,'ttg_madness::TT::invoke(const Key &key)'],['../classttg__madness_1_1_t_t.html#ab1e1bfc65a23e1afea928836894ba9f2',1,'ttg_madness::TT::invoke(const input_values_tuple_type &args)'],['../classttg__madness_1_1_t_t.html#a5b92d64f578a1c6a9f88fd84f138efcb',1,'ttg_madness::TT::invoke(const Key &key, const input_values_tuple_type &args)'],['../classttg__parsec_1_1_t_t.html#a31052326b1849a8bcdea5107375631e8',1,'ttg_parsec::TT::invoke()']]], + ['invoke_5fevaluate_619',['invoke_evaluate',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#aa93f941d685580705196282cef29dc89',1,'ttg_parsec::detail::parsec_ttg_task_t']]], + ['invoke_5fonce_620',['invoke_once',['../namespacettg.html#a0db3006a84c1ea69ab2401d3ed53df52',1,'ttg::invoke_once(TT &tt)'],['../namespacettg.html#a96e44a4e786ccf29fc8c262051cfc2b0',1,'ttg::invoke_once(TT &&tt, Key &&key)']]], + ['invoke_5fop_621',['invoke_op',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#aab4b94fc3b649f66bfad4a864685e018',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::invoke_op()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a2a88ea24c00d58557d8e1a508b1d8502',1,'ttg_parsec::detail::parsec_ttg_task_t::invoke_op()']]], + ['invoke_5fpull_5fterminal_622',['invoke_pull_terminal',['../classttg__madness_1_1_t_t.html#a1f534e3174989c17afb2ae4dee51a330',1,'ttg_madness::TT']]], + ['invoke_5fpull_5fterminals_623',['invoke_pull_terminals',['../classttg__madness_1_1_t_t.html#acaf2c70b41806368ad1d54e808fb3f07',1,'ttg_madness::TT']]], + ['invoke_5ftype_624',['invoke_type',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1904b711f335d21b0a59e602445cbf12',1,'boost::callable_traits::detail::default_callable_traits::invoke_type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a2f51e3618229a0e560b62376a81112be',1,'boost::callable_traits::detail::function_object::invoke_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a37522426867bf6b5c1d41abd64557bdf',1,'boost::callable_traits::detail::pmd< D T::* >::invoke_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#abc15c7b1f1e5ba4d2f7c77e2dc0bdeb3',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::invoke_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a41acdb31365f8b05b15c2f15e8e2ea86',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::invoke_type()']]], + ['iovec_625',['iovec',['../classttg_1_1detail_1_1iovec__ostreambuf.html#af4b5cb64259f49b47c8ce84ceb56ac7f',1,'ttg::detail::iovec_ostreambuf::iovec()'],['../structttg_1_1iovec.html',1,'ttg::iovec']]], + ['iovec_2eh_626',['iovec.h',['../iovec_8h.html',1,'']]], + ['iovec_5fadd_627',['iovec_add',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a8e326ad2ee8ac367105a262ba3251f6d',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fbegin_628',['iovec_begin',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ab9db63706ee5e230415f1f2ac35014fb',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fcount_629',['iovec_count',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a476614ce5647458e2509f04bddcfe935',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fend_630',['iovec_end',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#afce06923738d01c0ebf06acf1f9509e7',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fistreambuf_631',['iovec_istreambuf',['../classttg_1_1detail_1_1iovec__istreambuf.html#a610980dfa25f157fea7633c0a304f9ec',1,'ttg::detail::iovec_istreambuf::iovec_istreambuf()'],['../classttg_1_1detail_1_1iovec__istreambuf.html',1,'ttg::detail::iovec_istreambuf']]], + ['iovec_5fiterator_632',['iovec_iterator',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ada5480f52f94446a69c89e5890a6f1d5',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fostreambuf_633',['iovec_ostreambuf',['../classttg_1_1detail_1_1iovec__ostreambuf.html',1,'ttg::detail']]], + ['iovec_5freset_634',['iovec_reset',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ab98dfd24d538ea744e114630df34fe7e',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fspan_635',['iovec_span',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a305877933099497c66e3fdac3d0b5f39',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['is_5fa_5fterminal_636',['is_a_terminal',['../classttg_1_1_terminal_base.html#a05f429f32a226786eedd6f3cbf3670f1',1,'ttg::TerminalBase']]], + ['is_5fall_5fvoid_5fv_637',['is_all_Void_v',['../namespacettg_1_1meta.html#a707e4be405835a9d31f3ea7815966ef4',1,'ttg::meta']]], + ['is_5fall_5fvoid_5fv_638',['is_all_void_v',['../namespacettg_1_1meta.html#af01cf046e0d5ee1f8d17438db0623d25',1,'ttg::meta']]], + ['is_5fan_5finput_5fterminal_639',['is_an_input_terminal',['../classttg_1_1_in.html#a4883cdcc912b3d1679fae95715ab0576',1,'ttg::In::is_an_input_terminal()'],['../classttg_1_1_in_terminal_base.html#a9bc3f52ca95a47afe13bc6f21f6ef5d5',1,'ttg::InTerminalBase::is_an_input_terminal()']]], + ['is_5fan_5foutput_5fterminal_640',['is_an_output_terminal',['../classttg_1_1_out_terminal_base.html#a064e921bb0c7f7c7851212291f0aeb2f',1,'ttg::OutTerminalBase::is_an_output_terminal()'],['../classttg_1_1_out.html#a0b0d6ec3edafe6e5fdf02422266b07e6',1,'ttg::Out::is_an_output_terminal()']]], + ['is_5fany_5fnonconst_5flvalue_5freference_5fv_641',['is_any_nonconst_lvalue_reference_v',['../namespacettg_1_1meta.html#a1cb29d0cd1d33c2a8b5470570df16d94',1,'ttg::meta']]], + ['is_5fany_5fvoid_5fv_642',['is_any_void_v',['../namespacettg_1_1meta.html#a5eb768bc7b2ec9d0e5efe27578e77b06',1,'ttg::meta']]], + ['is_5fany_5fvoid_5fv_643',['is_any_Void_v',['../namespacettg_1_1meta.html#a86086d0b5997d1ac2e5c9bb4b6fa4543',1,'ttg::meta']]], + ['is_5farchive_5fv_644',['is_archive_v',['../namespacettg_1_1detail.html#acf0379ce0da7614205e6fdf1d30d1d7f',1,'ttg::detail']]], + ['is_5fboost_5farchive_5fv_645',['is_boost_archive_v',['../namespacettg_1_1detail.html#a362322a45c610c982dcce45079339f07',1,'ttg::detail']]], + ['is_5fboost_5farray_5fserializable_646',['is_boost_array_serializable',['../structttg_1_1detail_1_1is__boost__array__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5farray_5fserializable_3c_20archive_2c_20t_20_3e_647',['is_boost_array_serializable< Archive, T >',['../structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.html',1,'ttg::detail']]], + ['is_5fboost_5fbuffer_5fserializable_648',['is_boost_buffer_serializable',['../structttg_1_1detail_1_1is__boost__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5fbuffer_5fserializable_5fv_649',['is_boost_buffer_serializable_v',['../namespacettg_1_1detail.html#ab8f4fb861a4fbacf7069f37036d62d48',1,'ttg::detail']]], + ['is_5fboost_5fdefault_5fbuffer_5fserializable_650',['is_boost_default_buffer_serializable',['../structttg_1_1detail_1_1is__boost__default__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5fdefault_5fbuffer_5fserializable_5fv_651',['is_boost_default_buffer_serializable_v',['../namespacettg_1_1detail.html#a83b3f06f3f7ec77e50daad56e6be032c',1,'ttg::detail']]], + ['is_5fboost_5fdefault_5fserializable_652',['is_boost_default_serializable',['../structttg_1_1detail_1_1is__boost__default__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5finput_5farchive_5fv_653',['is_boost_input_archive_v',['../namespacettg_1_1detail.html#ab30f24d7f23e2cc70a799fe12d36fe5e',1,'ttg::detail']]], + ['is_5fboost_5foutput_5farchive_5fv_654',['is_boost_output_archive_v',['../namespacettg_1_1detail.html#a0f47f4e1605e627e8c4691c89add7fc2',1,'ttg::detail']]], + ['is_5fboost_5fserializable_655',['is_boost_serializable',['../structttg_1_1detail_1_1is__boost__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5fuser_5fbuffer_5fserializable_5fv_656',['is_boost_user_buffer_serializable_v',['../namespacettg_1_1detail.html#ab16cb565efa5ff0d14c9c58daaf3ea8d',1,'ttg::detail']]], + ['is_5fbuffer_657',['is_buffer',['../structttg_1_1meta_1_1is__buffer.html',1,'ttg::meta']]], + ['is_5fbuffer_3c_20const_20ttg_3a_3abuffer_3c_20t_2c_20a_20_3e_20_3e_658',['is_buffer< const ttg::Buffer< T, A > >',['../structttg_1_1meta_1_1is__buffer_3_01const_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fbuffer_3c_20ttg_3a_3abuffer_3c_20t_2c_20a_20_3e_20_3e_659',['is_buffer< ttg::Buffer< T, A > >',['../structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fbuffer_5fv_660',['is_buffer_v',['../namespacettg_1_1meta.html#aa4af8b1185f7b52614853568d936ce39',1,'ttg::meta']]], + ['is_5fcomplete_661',['is_complete',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fcomplete_3c_20t_2c_20decltype_28sizeof_28t_29_29_3e_662',['is_complete< T, decltype(sizeof(T))>',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fconnected_663',['is_connected',['../classttg_1_1_terminal_base.html#a0827d7c76da6af9ddb2bc6bd5653659d',1,'ttg::TerminalBase']]], + ['is_5fconst_664',['is_const',['../namespaceboost_1_1callable__traits_1_1detail.html#afe17ca88f0092167d353ecfec1aa0333',1,'boost::callable_traits::detail']]], + ['is_5fconst_5flvalue_5freference_665',['is_const_lvalue_reference',['../structttg_1_1meta_1_1is__const__lvalue__reference.html',1,'ttg::meta']]], + ['is_5fconst_5flvalue_5freference_5fv_666',['is_const_lvalue_reference_v',['../namespacettg_1_1meta.html#a8c86e6b5fba2647d93d40348d4a01f0a',1,'ttg::meta']]], + ['is_5fconst_5fmember_667',['is_const_member',['../structboost_1_1callable__traits_1_1is__const__member.html',1,'boost::callable_traits::is_const_member< T >'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a288730301231c9596e1bd6cc7d427885',1,'boost::callable_traits::detail::default_callable_traits::is_const_member()']]], + ['is_5fconst_5fmember_2ehpp_668',['is_const_member.hpp',['../is__const__member_8hpp.html',1,'']]], + ['is_5fconst_5fmember_5fv_669',['is_const_member_v',['../namespaceboost_1_1callable__traits.html#ac512eddc567545283a482d972a647fd8',1,'boost::callable_traits']]], + ['is_5fcontainer_670',['is_container',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fcontainer_5felement_5ftype_5fcompatible_671',['is_container_element_type_compatible',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__compatible.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fcontainer_5felement_5ftype_5fcompatible_3c_20t_2c_20e_2c_20typename_20std_3a_3aenable_5fif_3c_20_21std_3a_3ais_5fsame_3c_20typename_20std_3a_3aremove_5fcv_3c_20decltype_28detail_3a_3adata_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_3e_3a_3atype_2c_20void_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e_672',['is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fcv_5fmember_673',['is_cv_member',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1376f9fe898065fc3ca68eb5ddad9f8b',1,'boost::callable_traits::detail::default_callable_traits']]], + ['is_5fdevice_674',['is_device',['../classttg_1_1device_1_1_device.html#a40e2fd28be27282a6695d102f7c5fc1a',1,'ttg::device::Device']]], + ['is_5fdevicescratch_675',['is_devicescratch',['../structttg_1_1meta_1_1is__devicescratch.html',1,'ttg::meta']]], + ['is_5fdevicescratch_3c_20const_20ttg_3a_3adevicescratch_3c_20t_20_3e_20_3e_676',['is_devicescratch< const ttg::devicescratch< T > >',['../structttg_1_1meta_1_1is__devicescratch_3_01const_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fdevicescratch_3c_20ttg_3a_3adevicescratch_3c_20t_20_3e_20_3e_677',['is_devicescratch< ttg::devicescratch< T > >',['../structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fdevicescratch_5fv_678',['is_devicescratch_v',['../namespacettg_1_1meta.html#a8a17483e21367e205a2a508c9d32db64',1,'ttg::meta']]], + ['is_5fdummy_679',['is_dummy',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a1e05fb2586593b3368a4476aea8d61b1',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['is_5fexecutable_680',['is_executable',['../classttg_1_1_t_t_base.html#a8603caf468f80cb578446476a7d25329',1,'ttg::TTBase']]], + ['is_5ffirst_681',['is_first',['../structttg__parsec_1_1detail_1_1reducer__task__t.html#ab7908c07423e97210e5cfc67740da850',1,'ttg_parsec::detail::reducer_task_t']]], + ['is_5fgeneric_5fcallable_682',['is_generic_callable',['../structttg_1_1meta_1_1is__generic__callable.html',1,'ttg::meta']]], + ['is_5fgeneric_5fcallable_3c_20callable_2c_20ttg_3a_3ameta_3a_3avoid_5ft_3c_20boost_3a_3acallable_5ftraits_3a_3aargs_5ft_3c_20callable_2c_20ttg_3a_3atypelist_20_3e_20_3e_20_3e_683',['is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > >',['../structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.html',1,'ttg::meta']]], + ['is_5fgeneric_5fcallable_5fv_684',['is_generic_callable_v',['../namespacettg_1_1meta.html#a95d2411b83f468c150b321b3f1a966b2',1,'ttg::meta']]], + ['is_5fhost_685',['is_host',['../classttg_1_1device_1_1_device.html#a16a73248d5e812cf4df7d55458faafb4',1,'ttg::device::Device']]], + ['is_5finput_5farchive_5fv_686',['is_input_archive_v',['../namespacettg_1_1detail.html#a5efefeda1267b372e1a7cdfe903beb52',1,'ttg::detail']]], + ['is_5finput_5fterminal_687',['is_input_terminal',['../structttg_1_1meta_1_1is__input__terminal.html',1,'ttg::meta']]], + ['is_5finput_5fterminal_5fv_688',['is_input_terminal_v',['../namespacettg_1_1meta.html#a832a9ea7ec8a3c5f0dbc5bd2fb744bba',1,'ttg::meta']]], + ['is_5finput_5fterminal_5fv_3c_20in_3c_20keyt_2c_20valuet_20_3e_20_3e_689',['is_input_terminal_v< In< keyT, valueT > >',['../namespacettg_1_1meta.html#a5071fb9e52acb6192a97692b475910d7',1,'ttg::meta']]], + ['is_5finput_5fterminal_5fv_3c_20interminalbase_3c_20keyt_20_3e_20_3e_690',['is_input_terminal_v< InTerminalBase< keyT > >',['../namespacettg_1_1meta.html#ac7408db4a2fc92c98e0a8d30e16ddbab',1,'ttg::meta']]], + ['is_5finvalid_691',['is_invalid',['../classttg_1_1device_1_1_device.html#a979477b9cde8927f919c75754d4d8329',1,'ttg::device::Device']]], + ['is_5finvocable_692',['is_invocable',['../structboost_1_1callable__traits_1_1is__invocable.html',1,'boost::callable_traits']]], + ['is_5finvocable_2ehpp_693',['is_invocable.hpp',['../is__invocable_8hpp.html',1,'']]], + ['is_5finvocable_5fimpl_694',['is_invocable_impl',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html',1,'boost::callable_traits::detail']]], + ['is_5finvocable_5fimpl_2ehpp_695',['is_invocable_impl.hpp',['../is__invocable__impl_8hpp.html',1,'']]], + ['is_5finvocable_5fimpl_3c_20void_2c_20args_2e_2e_2e_20_3e_696',['is_invocable_impl< void, Args... >',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html',1,'boost::callable_traits::detail']]], + ['is_5finvocable_5fr_697',['is_invocable_r',['../structboost_1_1callable__traits_1_1is__invocable__r.html',1,'boost::callable_traits']]], + ['is_5finvocable_5fr_5fimpl_698',['is_invocable_r_impl',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html',1,'boost::callable_traits::detail']]], + ['is_5finvocable_5fr_5fimpl_3c_20std_3a_3afalse_5ftype_2c_20ret_2c_20t_2c_20args_2e_2e_2e_20_3e_699',['is_invocable_r_impl< std::false_type, Ret, T, Args... >',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html',1,'boost::callable_traits::detail']]], + ['is_5finvocable_5fr_5fv_700',['is_invocable_r_v',['../namespaceboost_1_1callable__traits.html#a50581215c00d5bac274f66fff94309ea',1,'boost::callable_traits']]], + ['is_5finvocable_5fv_701',['is_invocable_v',['../namespaceboost_1_1callable__traits.html#a7390ea84b137bf90c024360dce0b8fac',1,'boost::callable_traits']]], + ['is_5flast_5fvoid_702',['is_last_void',['../structttg_1_1meta_1_1is__last__void.html',1,'ttg::meta']]], + ['is_5flast_5fvoid_5fv_703',['is_last_void_v',['../namespacettg_1_1meta.html#a8b3318a1a4b898cf6ae258b405ed4194',1,'ttg::meta']]], + ['is_5flazy_5fpull_704',['is_lazy_pull',['../classttg_1_1_t_t_base.html#adee30b248cb0d4db4213c417451be953',1,'ttg::TTBase']]], + ['is_5flvalue_5freference_5fmember_705',['is_lvalue_reference_member',['../structboost_1_1callable__traits_1_1is__lvalue__reference__member.html',1,'boost::callable_traits::is_lvalue_reference_member< T >'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a8e15d0b6334c019be4f00ff00e1e323d',1,'boost::callable_traits::detail::default_callable_traits::is_lvalue_reference_member()']]], + ['is_5flvalue_5freference_5fmember_2ehpp_706',['is_lvalue_reference_member.hpp',['../is__lvalue__reference__member_8hpp.html',1,'']]], + ['is_5flvalue_5freference_5fmember_5fv_707',['is_lvalue_reference_member_v',['../namespaceboost_1_1callable__traits.html#a0a91da774851046a8fe6cbb228eaae41',1,'boost::callable_traits']]], + ['is_5fmadness_5farchive_5fv_708',['is_madness_archive_v',['../namespacettg_1_1detail.html#a8550764631e467133b4690cd6c8d259f',1,'ttg::detail']]], + ['is_5fmadness_5fbuffer_5fserializable_709',['is_madness_buffer_serializable',['../structttg_1_1detail_1_1is__madness__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fmadness_5fbuffer_5fserializable_5fv_710',['is_madness_buffer_serializable_v',['../namespacettg_1_1detail.html#ae3e64be3d0b56b8a6cb524f9e1112a39',1,'ttg::detail']]], + ['is_5fmadness_5finput_5farchive_5fv_711',['is_madness_input_archive_v',['../namespacettg_1_1detail.html#ab1dd9e28d01161681319428438979f6b',1,'ttg::detail']]], + ['is_5fmadness_5finput_5fserializable_712',['is_madness_input_serializable',['../structttg_1_1detail_1_1is__madness__input__serializable.html',1,'ttg::detail']]], + ['is_5fmadness_5foutput_5farchive_5fv_713',['is_madness_output_archive_v',['../namespacettg_1_1detail.html#a4938112d970a791c439489022c29c83b',1,'ttg::detail']]], + ['is_5fmadness_5foutput_5fserializable_714',['is_madness_output_serializable',['../structttg_1_1detail_1_1is__madness__output__serializable.html',1,'ttg::detail']]], + ['is_5fmadness_5fuser_5fbuffer_5fserializable_715',['is_madness_user_buffer_serializable',['../structttg_1_1detail_1_1is__madness__user__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fmadness_5fuser_5fbuffer_5fserializable_5fv_716',['is_madness_user_buffer_serializable_v',['../namespacettg_1_1detail.html#ace2855581859b2bd5d73fb6fabfc6f01',1,'ttg::detail']]], + ['is_5fmember_5fpointer_717',['is_member_pointer',['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a91a3d2780cd440c0fea50bb62ec7b2f1',1,'boost::callable_traits::detail::pmd< D T::* >::is_member_pointer()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#af791a88bd764fb201a721bddefad4207',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a4e47baca055366282e365340592726ce',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3b98c181c62b1966e9b65c8610817253',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a0efdfb30ff0f68c46873bfdc10b39430',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a32750990778f35021bb0547aadfb6d71',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a6a9d87a0fcea0b8dff697b18a0fe09e6',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()']]], + ['is_5fmemcpyable_718',['is_memcpyable',['../structttg_1_1detail_1_1is__memcpyable.html',1,'ttg::detail']]], + ['is_5fmemcpyable_5foverride_5fv_719',['is_memcpyable_override_v',['../namespacettg_1_1detail.html#a3dcd86ceb7c1d16372e5708930b9a16f',1,'ttg::detail']]], + ['is_5fmemcpyable_5fv_720',['is_memcpyable_v',['../namespacettg_1_1detail.html#ab8efb3c8c3e38f5a523dc091543a6eab',1,'ttg::detail']]], + ['is_5fmodified_721',['IS_MODIFIED',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a9f07cacd4be8d4dbbcfe635f73f357db',1,'ttg_parsec::detail']]], + ['is_5fmutable_722',['is_mutable',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a142b38db9e7b5cfae9edafc049c02cd2',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['is_5fnoexcept_723',['is_noexcept',['../structboost_1_1callable__traits_1_1is__noexcept.html',1,'boost::callable_traits::is_noexcept< T >'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ae3773d4bcf1fc74ec2cae2bdf0272094',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a105ab1781690fc8e383933011b49fb5a',1,'boost::callable_traits::detail::function_object::is_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ae9fa452a360f7ea3c749ba8d22533d24',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a63602c74428b210b17674437f87636b2',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a9187ee66fd69b55cd8ebbf13be205605',1,'boost::callable_traits::detail::default_callable_traits::is_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#aa7bc2ae307c1bd001f54366b0f776ca7',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a6b81b630d1461179a1a4ae424b34216b',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a13603a158af498c55ab5bb1a6376aec0',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()']]], + ['is_5fnoexcept_2ehpp_724',['is_noexcept.hpp',['../is__noexcept_8hpp.html',1,'']]], + ['is_5fnoexcept_5fv_725',['is_noexcept_v',['../namespaceboost_1_1callable__traits.html#a85507a546c08e2bd50d4c048a7a3e66c',1,'boost::callable_traits']]], + ['is_5fnonconst_5flvalue_5freference_726',['is_nonconst_lvalue_reference',['../structttg_1_1meta_1_1is__nonconst__lvalue__reference.html',1,'ttg::meta']]], + ['is_5fnonconst_5flvalue_5freference_5fto_5foutput_5fterminal_5ftuple_727',['is_nonconst_lvalue_reference_to_output_terminal_tuple',['../structttg_1_1meta_1_1is__nonconst__lvalue__reference__to__output__terminal__tuple.html',1,'ttg::meta']]], + ['is_5fnonconst_5flvalue_5freference_5fto_5foutput_5fterminal_5ftuple_5fv_728',['is_nonconst_lvalue_reference_to_output_terminal_tuple_v',['../namespacettg_1_1meta.html#aaef59a95b406dbb7da071eefd4d6d086',1,'ttg::meta']]], + ['is_5fnonconst_5flvalue_5freference_5fv_729',['is_nonconst_lvalue_reference_v',['../namespacettg_1_1meta.html#a8b9d4a35fd16b945020d687d46771e88',1,'ttg::meta']]], + ['is_5fnone_5fvoid_5fv_730',['is_none_Void_v',['../namespacettg_1_1meta.html#a02a11e1d2f7854dd18df8a99fbcea27f',1,'ttg::meta']]], + ['is_5fnone_5fvoid_5fv_731',['is_none_void_v',['../namespacettg_1_1meta.html#ae18e5e511db800c600395567e28f604b',1,'ttg::meta']]], + ['is_5fnonvoid_732',['is_nonvoid',['../structttg_1_1meta_1_1is__nonvoid.html',1,'ttg::meta']]], + ['is_5fnonvoid_5fv_733',['is_nonvoid_v',['../namespacettg_1_1meta.html#abccca66c39e0e9e668988cba0b432e06',1,'ttg::meta']]], + ['is_5foutput_5farchive_5fv_734',['is_output_archive_v',['../namespacettg_1_1detail.html#a7756bc04fe762010903ac072565087c8',1,'ttg::detail']]], + ['is_5foutput_5fterminal_735',['is_output_terminal',['../structttg_1_1meta_1_1is__output__terminal.html',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5ftuple_736',['is_output_terminal_tuple',['../structttg_1_1meta_1_1is__output__terminal__tuple.html',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5ftuple_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_737',['is_output_terminal_tuple< std::tuple< Ts... > >',['../structttg_1_1meta_1_1is__output__terminal__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5ftuple_5fv_738',['is_output_terminal_tuple_v',['../namespacettg_1_1meta.html#ab76a47e4b843374dbcb9d54259507f64',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5fv_739',['is_output_terminal_v',['../namespacettg_1_1meta.html#a029d7be23f909676079eb025eb1c1670',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5fv_3c_20out_3c_20keyt_2c_20valuet_20_3e_20_3e_740',['is_output_terminal_v< Out< keyT, valueT > >',['../namespacettg_1_1meta.html#a96b9c7eb626b45588a342386cb943c4f',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5fv_3c_20outterminalbase_3c_20keyt_20_3e_20_3e_741',['is_output_terminal_v< OutTerminalBase< keyT > >',['../namespacettg_1_1meta.html#a9ebde8147419e33d53ccbd7621b8e0f5',1,'ttg::meta']]], + ['is_5fprintable_742',['is_printable',['../structttg_1_1detail_1_1is__printable.html',1,'ttg::detail']]], + ['is_5fprintable_3c_20t_2c_20std_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20std_3a_3aostream_20_26_20_3e_28_29_3c_3c_20std_3a_3adeclval_3c_20t_20_3e_28_29_29_3e_20_3e_743',['is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> >',['../structttg_1_1detail_1_1is__printable_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1_1declval_3_a5774f3d043eeeee157069b2b78993f2.html',1,'ttg::detail']]], + ['is_5fptr_744',['is_ptr',['../structttg_1_1meta_1_1is__ptr.html',1,'ttg::meta']]], + ['is_5fptr_3c_20ttg_3a_3aptr_3c_20t_20_3e_20_3e_745',['is_ptr< ttg::Ptr< T > >',['../structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fptr_5fv_746',['is_ptr_v',['../namespacettg_1_1meta.html#aa65ca5614b2054d2da9a2878c73fed1c',1,'ttg::meta']]], + ['is_5fpull_5fedge_747',['is_pull_edge',['../classttg_1_1_edge.html#ae3c4db8d5f90a570bf403383dfaf823d',1,'ttg::Edge']]], + ['is_5fpull_5fterminal_748',['is_pull_terminal',['../classttg_1_1_terminal_base.html#a23e5cfafff297e43b623da0b7d609c1b',1,'ttg::TerminalBase']]], + ['is_5freference_5fmember_749',['is_reference_member',['../structboost_1_1callable__traits_1_1is__reference__member.html',1,'boost::callable_traits::is_reference_member< T >'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a8d185c4041155aef3cf24ff33dfac08f',1,'boost::callable_traits::detail::default_callable_traits::is_reference_member()']]], + ['is_5freference_5fmember_2ehpp_750',['is_reference_member.hpp',['../is__reference__member_8hpp.html',1,'']]], + ['is_5freference_5fmember_5fv_751',['is_reference_member_v',['../namespaceboost_1_1callable__traits.html#aa3d25cedf9ba148f7344e3720c0e2fd5',1,'boost::callable_traits']]], + ['is_5freference_5fwrapper_752',['is_reference_wrapper',['../namespaceboost_1_1callable__traits_1_1detail.html#ac65acdb77d5486ccd4c994f9c70d2adb',1,'boost::callable_traits::detail']]], + ['is_5freference_5fwrapper_5ft_753',['is_reference_wrapper_t',['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html',1,'boost::callable_traits::detail']]], + ['is_5freference_5fwrapper_5ft_3c_20std_3a_3areference_5fwrapper_3c_20t_20_3e_20_3e_754',['is_reference_wrapper_t< std::reference_wrapper< T > >',['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html',1,'boost::callable_traits::detail']]], + ['is_5frvalue_5freference_5fmember_755',['is_rvalue_reference_member',['../structboost_1_1callable__traits_1_1is__rvalue__reference__member.html',1,'boost::callable_traits::is_rvalue_reference_member< T >'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a4e3d50ad321a22191f40673570d5d440',1,'boost::callable_traits::detail::default_callable_traits::is_rvalue_reference_member()']]], + ['is_5frvalue_5freference_5fmember_2ehpp_756',['is_rvalue_reference_member.hpp',['../is__rvalue__reference__member_8hpp.html',1,'']]], + ['is_5frvalue_5freference_5fmember_5fv_757',['is_rvalue_reference_member_v',['../namespaceboost_1_1callable__traits.html#a02abfeadb1cd8d1ab2297037e3597e83',1,'boost::callable_traits']]], + ['is_5fspan_758',['is_span',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fspan_3c_20span_3c_20t_2c_20s_20_3e_20_3e_759',['is_span< span< T, S > >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span_3_01span_3_01_t_00_01_s_01_4_01_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fstd_5farray_760',['is_std_array',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fstd_5farray_3c_20std_3a_3aarray_3c_20t_2c_20n_20_3e_20_3e_761',['is_std_array< std::array< T, N > >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array_3_01std_1_1array_3_01_t_00_01_n_01_4_01_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fterminal_762',['is_terminal',['../structttg_1_1meta_1_1is__terminal.html',1,'ttg::meta']]], + ['is_5fterminal_5fv_763',['is_terminal_v',['../namespacettg_1_1meta.html#a48e4966554fecb3c6ba6bb7f096bb91f',1,'ttg::meta']]], + ['is_5ftransaction_5fsafe_764',['is_transaction_safe',['../structboost_1_1callable__traits_1_1is__transaction__safe.html',1,'boost::callable_traits::is_transaction_safe< T >'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ac031aa4e73c8fc1247fad8617e81aae5',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ae4ab48f105c1d2b1c38a6d26093246b3',1,'boost::callable_traits::detail::default_callable_traits::is_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a9a3c54c4ccf583e5ff9132a1a2ebde17',1,'boost::callable_traits::detail::function_object::is_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a84fc63e7170db1c4d9765b1518395fe0',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a6f924fa71f9cd25d50e6699df962445a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a29a716689e7886c4e27910664e58508e',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a1089144d7acfd1bac6297de95558b05b',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a1f18bd1e0b0d2e2258cf9a4d143ccf29',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()']]], + ['is_5ftransaction_5fsafe_2ehpp_765',['is_transaction_safe.hpp',['../is__transaction__safe_8hpp.html',1,'']]], + ['is_5ftransaction_5fsafe_5fv_766',['is_transaction_safe_v',['../namespaceboost_1_1callable__traits.html#a65daffbfa525decb735b20758fbe5b15',1,'boost::callable_traits']]], + ['is_5fttg_767',['is_ttg',['../classttg_1_1_t_t_base.html#aa5e66ccbaacb885f49c041b9d999ef30',1,'ttg::TTBase']]], + ['is_5fttvalue_5fbase_768',['is_ttvalue_base',['../structttg__parsec_1_1detail_1_1is__ttvalue__base.html',1,'ttg_parsec::detail']]], + ['is_5fttvalue_5fbase_3c_20t_2c_20std_3a_3ais_5fbase_5fof_3c_20ttvalue_3c_20std_3a_3adecay_5ft_3c_20t_20_3e_20_3e_2c_20std_3a_3adecay_5ft_3c_20t_20_3e_20_3e_20_3e_769',['is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >',['../structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.html',1,'ttg_parsec::detail']]], + ['is_5ftypelist_770',['is_typelist',['../structttg_1_1meta_1_1is__typelist.html',1,'ttg::meta']]], + ['is_5ftypelist_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_20_3e_771',['is_typelist< typelist< Ts... > >',['../structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['is_5ftypelist_5fv_772',['is_typelist_v',['../namespacettg_1_1meta.html#a7da41ffccb626b36b66759047b9f907b',1,'ttg::meta']]], + ['is_5fuser_5fbuffer_5fserializable_773',['is_user_buffer_serializable',['../structttg_1_1detail_1_1is__user__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fuser_5fbuffer_5fserializable_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20is_5fmadness_5fuser_5fbuffer_5fserializable_5fv_3c_20t_20_3e_7c_7cis_5fboost_5fuser_5fbuffer_5fserializable_5fv_3c_20t_20_3e_20_3e_20_3e_774',['is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > >',['../structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.html',1,'ttg::detail']]], + ['is_5fuser_5fbuffer_5fserializable_5fv_775',['is_user_buffer_serializable_v',['../namespacettg_1_1detail.html#abd3e84288cf7ea855b0b0d5f61b5fd06',1,'ttg::detail']]], + ['is_5fvalid_776',['is_valid',['../classttg_1_1base_1_1_world.html#af39ca1832f455a94134515f94aaa8533',1,'ttg::base::World::is_valid()'],['../classttg_1_1base_1_1_world_impl_base.html#ae8af1cf2a5cccc4d5066492a5d041630',1,'ttg::base::WorldImplBase::is_valid()'],['../structttg__madness_1_1_buffer.html#a873ee3d33f1b81dd8ddeec2bd05bf5cf',1,'ttg_madness::Buffer::is_valid()'],['../structttg__parsec_1_1_buffer.html#a3780a9611c746e0d1ea617720d469ad5',1,'ttg_parsec::Buffer::is_valid()'],['../structttg__parsec_1_1devicescratch.html#a7872825c276bbddde5f2435a657bdc02',1,'ttg_parsec::devicescratch::is_valid()'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#a1a68f015e736584d8df71e6e58fa07b1',1,'ttg_parsec::detail::ptr_impl::is_valid()'],['../structttg__parsec_1_1_ptr.html#a0a4276873ed7a49f6cc0d6492ea5f720',1,'ttg_parsec::Ptr::is_valid()']]], + ['is_5fvalid_5fon_777',['is_valid_on',['../structttg__madness_1_1_buffer.html#ab856ca462a43f94b61ca8bc4d345383b',1,'ttg_madness::Buffer::is_valid_on()'],['../structttg__parsec_1_1_buffer.html#a57dc7b47c838715a12d2a59fb3d82b76',1,'ttg_parsec::Buffer::is_valid_on()']]], + ['is_5fvoid_778',['is_void',['../structttg_1_1meta_1_1is__void.html',1,'ttg::meta']]], + ['is_5fvoid_5fv_779',['is_Void_v',['../namespacettg_1_1meta.html#a0e641de4b056f948d513ab64f9b7a592',1,'ttg::meta']]], + ['is_5fvoid_5fv_780',['is_void_v',['../namespacettg_1_1meta.html#afe10689bc6c9d224a03b330a47b591ec',1,'ttg::meta']]], + ['is_5fvolatile_5fmember_781',['is_volatile_member',['../structboost_1_1callable__traits_1_1is__volatile__member.html',1,'boost::callable_traits::is_volatile_member< T >'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ad105d5e4cfdc81e11b814534d4073efb',1,'boost::callable_traits::detail::default_callable_traits::is_volatile_member()']]], + ['is_5fvolatile_5fmember_2ehpp_782',['is_volatile_member.hpp',['../is__volatile__member_8hpp.html',1,'']]], + ['is_5fvolatile_5fmember_5fv_783',['is_volatile_member_v',['../namespaceboost_1_1callable__traits.html#afc25c8585c49b3a3b126265cff5fd060',1,'boost::callable_traits']]], + ['iterative_2ecc_784',['iterative.cc',['../iterative_8cc.html',1,'']]], + ['iterator_785',['iterator',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a30213ef8aafc8ee8303fe71dcc154e9e',1,'ttg_parsec::detail::ttg_data_copy_t::iterator()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a900fe5ad2055285857870283d49b0f84',1,'TCB_SPAN_NAMESPACE_NAME::span::iterator()']]] +]; diff --git a/dox-master/search/all_a.html b/dox-master/search/all_a.html new file mode 100644 index 000000000..3a6cac108 --- /dev/null +++ b/dox-master/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_a.js b/dox-master/search/all_a.js new file mode 100644 index 000000000..5c97883ff --- /dev/null +++ b/dox-master/search/all_a.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['kbreakstatemask_786',['kBreakStateMask',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5a4b7108c3cacb9a7c8b77ed2ffba493d7',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kbyte_787',['kByte',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2a43ca3a8a9d3b5cd9d1c8fa163fd34841',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kconditionmask_788',['kConditionMask',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80a3e91efc753a0ccd4d493139cbc6742ae',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdisabled_789',['kDisabled',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5a763e1bb4e7bc897d88bc8dc716d68d27',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr0_790',['kDR0',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba3ed02d1a9d9ca37f1a17a6c292d0170a',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr1_791',['kDR1',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba42256b9f02a4c2abe565527ec671b0f7',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr2_792',['kDR2',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba0c1f2e72c95b131c9ae50375ea8a66c5',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr3_793',['kDR3',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba166f4a97351ee6b073cd5ba075602cd7',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['keep_5for_5fdrop_794',['keep_or_drop',['../structttg_1_1meta_1_1detail_1_1keep__or__drop.html',1,'ttg::meta::detail']]], + ['keep_5for_5fdrop_3c_20false_20_3e_795',['keep_or_drop< false >',['../structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html',1,'ttg::meta::detail']]], + ['kenabledglobally_796',['kEnabledGlobally',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5af6cc48755f41ee6e244750b191c936b8',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kenabledlocally_797',['kEnabledLocally',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5a3770e327db56e42badff59bf543f1376',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['key_798',['key',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#abe05b86a2a3cf40014238087a9fcd471',1,'ttg_parsec::detail::parsec_ttg_task_t']]], + ['key2_799',['Key2',['../reducing_8cc.html#a4ed3c6c3b234257403b35824408bc652',1,'Key2(): reducing.cc'],['../iterative_8cc.html#a4ed3c6c3b234257403b35824408bc652',1,'Key2(): iterative.cc'],['../distributed_8cc.html#a4ed3c6c3b234257403b35824408bc652',1,'Key2(): distributed.cc']]], + ['key_5fhash_800',['key_hash',['../classttg__madness_1_1_t_t.html#ac5cea6902485c47e7a701ecb9c16dd1e',1,'ttg_madness::TT']]], + ['key_5foffset_801',['key_offset',['../structttg__parsec_1_1msg__header__t.html#ac5d46856c8ccae40ce1912d0d82ffe9f',1,'ttg_parsec::msg_header_t']]], + ['key_5ftype_802',['key_type',['../classttg__madness_1_1_t_t.html#afdfb1cdda00733910c0633a5ea60d188',1,'ttg_madness::TT::key_type()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a70e2a8707044b009d58a9f333455924f',1,'ttg_parsec::detail::parsec_ttg_task_t::key_type()'],['../classttg__parsec_1_1_t_t.html#a294f6368c269894c018bd8124e8f370f',1,'ttg_parsec::TT::key_type()'],['../classttg_1_1_in_terminal_base.html#a63bb3ef0e37d82cf03ca76ae4a23d7db',1,'ttg::InTerminalBase::key_type()'],['../classttg_1_1_in.html#a7b850adc82f9741fb8f73dc8da2ef4a8',1,'ttg::In::key_type()'],['../classttg_1_1_out_terminal_base.html#af0b0a09a0e74016a4fbb9868d90b19be',1,'ttg::OutTerminalBase::key_type()'],['../classttg_1_1_out.html#aadf97ec5a90ce32c1d8a8e2c5a85ad7d',1,'ttg::Out::key_type()'],['../classttg_1_1_edge.html#ade4021c5ff7cec3db94f3b3f65d44b3e',1,'ttg::Edge::key_type()']]], + ['keymap_2eh_803',['keymap.h',['../keymap_8h.html',1,'']]], + ['khalfword_804',['kHalfWord',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2a9b3c642428a2256550f79ca6e81f5940',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['ksizemask_805',['kSizeMask',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2a9a22dcb2abf1dd5b758b7f71e3a09671',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kwhenexecuted_806',['kWhenExecuted',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80a8a18fd33b66d55865318622508868ab5',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kwhenwritten_807',['kWhenWritten',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80acf2002a901e924018a80afefeb4248a2',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kwhenwrittenorread_808',['kWhenWrittenOrRead',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80a65be965d3de63dbc8547c8e0fd03b638',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kword_809',['kWord',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2aca8ecfdb6e4e46b84bc79e658c034219',1,'ttg::detail::MemoryWatchpoint_x86_64']]] +]; diff --git a/dox-master/search/all_b.html b/dox-master/search/all_b.html new file mode 100644 index 000000000..130deb4ed --- /dev/null +++ b/dox-master/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_b.js b/dox-master/search/all_b.js new file mode 100644 index 000000000..ba9042d7c --- /dev/null +++ b/dox-master/search/all_b.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['l0_810',['L0',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78a9b2571fa925a02f94028dcc9ec129866',1,'ttg']]], + ['last_811',['last',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a2a1839f492c2dc7d0ef3489050e61db7',1,'TCB_SPAN_NAMESPACE_NAME::span::last() const'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a91d7a05732bf7567f28c0d44fcf90eee',1,'TCB_SPAN_NAMESPACE_NAME::span::last(size_type count) const']]], + ['launch_5fdebugger_812',['launch_debugger',['../namespacettg.html#a908edd0939096bd053fcbe6a5fee9609',1,'ttg']]], + ['launch_5fgdb_813',['launch_gdb',['../namespacettg.html#aed99f96dd2d42761584592b7adcf0908',1,'ttg']]], + ['launch_5flldb_814',['launch_lldb',['../namespacettg.html#a852bfa03ac9a163a87014e93c59165f0',1,'ttg']]], + ['list_2eh_815',['list.h',['../list_8h.html',1,'']]], + ['live_816',['live',['../classttg_1_1_edge.html#ad67604be2b8bc7195521ec911820f693',1,'ttg::Edge']]], + ['load_817',['load',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#af00b58eda201fa7ea3db27248643b4a1',1,'ttg::detail::boost_optimized_iarchive::load(T &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aa886b2d5258b272f299cfc84ced6ccdc',1,'ttg::detail::boost_optimized_iarchive::load(bool &t)']]], + ['load_5farray_818',['load_array',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a55204e920033dad6438770f5ce5a9599',1,'ttg::detail::boost_optimized_iarchive']]], + ['load_5fbinary_819',['load_binary',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a13b90db78bfb36dfa136a4a1ea98edc5',1,'ttg::detail::boost_optimized_iarchive']]], + ['load_5fobject_820',['load_object',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a775693201af348b3f84822ce7d13aa05',1,'ttg::detail::boost_optimized_iarchive']]], + ['load_5foverride_821',['load_override',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a544bf354417c0cf7401b59b42c7a8b20',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::version_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a8f0baebe5f7bf24f8db8822b291cbf6f',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::class_id_reference_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a03c82b7204bf27dbdc318e388b3f9dff',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::class_id_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a8a84f6d1cdd2a00d199d9dc16b18418d',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::serialization::item_version_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aafaf7356518a7e3e5885af89cc58a223',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::class_id_optional_type &)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a32d67b987ff7baf28e11348f0ec2928f',1,'ttg::detail::boost_optimized_iarchive::load_override(T &t)']]], + ['log_822',['log',['../namespacettg.html#aacacfe8bc9582308a405c4370650a9d4',1,'ttg']]], + ['lref_5f_823',['lref_',['../namespaceboost_1_1callable__traits_1_1detail.html#a67edbd19fbfb6d41de3a6007ca978325',1,'boost::callable_traits::detail']]], + ['lvalue_5freference_5ftype_824',['lvalue_reference_type',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#a9bb77251241b82860092ce670abc5c88',1,'ttg_parsec::detail::persistent_value_ref']]] +]; diff --git a/dox-master/search/all_c.html b/dox-master/search/all_c.html new file mode 100644 index 000000000..3dd5af06d --- /dev/null +++ b/dox-master/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_c.js b/dox-master/search/all_c.js new file mode 100644 index 000000000..6da90728c --- /dev/null +++ b/dox-master/search/all_c.js @@ -0,0 +1,72 @@ +var searchData= +[ + ['m_5fdata_825',['m_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#accbe20cc9561e78530c087fb427c539e',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['m_5fdev_5fdata_826',['m_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3b99e13084ee29575f1b52151aefd7d4',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fdev_5fptr_827',['m_dev_ptr',['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#afdaecb40d240da0068498555c3d6adb8',1,'ttg_parsec::detail::device_state_t< true >']]], + ['m_5fflows_828',['m_flows',['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#aef423623ce1a64b240889768b2a85574',1,'ttg_parsec::detail::device_state_t< true >']]], + ['m_5fiovecs_829',['m_iovecs',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a8516cf46144546f670d617c876add897',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fnext_5ftask_830',['m_next_task',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a0bdd5cca6246ca2f04d754a2fe293b76',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fnum_5fdev_5fdata_831',['m_num_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a5b48f08aca743d7fd064de9bd6219b89',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5freaders_832',['m_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a484bce976069d51720430661c65fa21a',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5frefs_833',['m_refs',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ad0f88bfd79944a6692af2adf473d1d97',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fsingle_5fdev_5fdata_834',['m_single_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a2a8fa91be91c96263b2ad581e86561a7',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fttg_5fcopy_835',['m_ttg_copy',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#aa3bcd3416233697458f4bfbf17fb409a',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['m_5fvalue_836',['m_value',['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a35579d20a30c554f0a8ad0790137cf08',1,'ttg_parsec::detail::ttg_data_value_copy_t']]], + ['macro_2eh_837',['macro.h',['../macro_8h.html',1,'']]], + ['madness_2eh_838',['madness.h',['../madness_8h.html',1,'']]], + ['madworld_839',['MADWorld',['../namespacettg.html#a516aa15683e63c7039e8dbdd057bbff6a4aa0e111e01a656182b1df038ad764d1',1,'ttg']]], + ['main_840',['main',['../test_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): test.cpp'],['../simple_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): simple.cc'],['../reducing_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): reducing.cc'],['../iterative_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): iterative.cc'],['../distributed_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): distributed.cc']]], + ['make_5fboost_5fbuffer_5fiarchive_841',['make_boost_buffer_iarchive',['../namespacettg_1_1detail.html#a6157de494b83458bdda6eca5c2628e90',1,'ttg::detail::make_boost_buffer_iarchive(const char(&buf)[N], std::size_t buf_offset=0)'],['../namespacettg_1_1detail.html#aa699a60527ee694e99d01da9b5e7cbd8',1,'ttg::detail::make_boost_buffer_iarchive(const void *const buf, std::size_t size, std::size_t buf_offset=0)']]], + ['make_5fboost_5fbuffer_5foarchive_842',['make_boost_buffer_oarchive',['../namespacettg_1_1detail.html#aa68b0bedaa47cd0656c449b74f04c40b',1,'ttg::detail::make_boost_buffer_oarchive(char(&buf)[N], std::size_t buf_offset=0)'],['../namespacettg_1_1detail.html#acd72686534948b9ec5296ac2938c918e',1,'ttg::detail::make_boost_buffer_oarchive(void *const buf, std::size_t size, std::size_t buf_offset=0)']]], + ['make_5fexecutable_843',['make_executable',['../classttg__parsec_1_1_t_t.html#a9114376369d29375135a298996765ab6',1,'ttg_parsec::TT::make_executable()'],['../classttg__madness_1_1_t_t.html#ad526d0c41d3361a1b68c7edd60b1b5dc',1,'ttg_madness::TT::make_executable()'],['../classttg_1_1_t_t_base.html#a641cdd1921f091d43a4deff8b8962e63',1,'ttg::TTBase::make_executable()'],['../classttg_1_1_t_t_g.html#acb38b740a0f0e8ee1802c2dc477b0ac2',1,'ttg::TTG::make_executable()'],['../classttg_1_1_sink_t_t.html#acf631f69a4acd031c51a3471de0c397e',1,'ttg::SinkTT::make_executable()']]], + ['make_5fexecutable_5fhook_844',['make_executable_hook',['../namespacettg__madness.html#ab080be7b3a7b526b37185e305deac235',1,'ttg_madness::make_executable_hook()'],['../namespacettg__parsec.html#ab0a8e1ea240f4196cacccdeb8f15681e',1,'ttg_parsec::make_executable_hook()']]], + ['make_5fgraph_5fexecutable_845',['make_graph_executable',['../namespacettg.html#a4a73294df93302d901c4a30219dcd95b',1,'ttg']]], + ['make_5findex_5fsequence_846',['make_index_sequence',['../namespaceboost_1_1callable__traits_1_1detail.html#a5f408152af25c5111d94928d233236aa',1,'boost::callable_traits::detail']]], + ['make_5findex_5fsequence_2ehpp_847',['make_index_sequence.hpp',['../make__index__sequence_8hpp.html',1,'']]], + ['make_5findex_5fsequence_5ft_848',['make_index_sequence_t',['../structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.html',1,'boost::callable_traits::detail']]], + ['make_5findex_5fsequence_5ft_3c_200_20_3e_849',['make_index_sequence_t< 0 >',['../structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5findex_5fsequence_5ft_3c_201_20_3e_850',['make_index_sequence_t< 1 >',['../structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_851',['make_member_pointer',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_3c_20t_2c_20c_2c_20false_20_3e_852',['make_member_pointer< T, C, false >',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_3c_20t_2c_20c_2c_20true_20_3e_853',['make_member_pointer< T, C, true >',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_3c_20void_2c_20c_2c_20true_20_3e_854',['make_member_pointer< void, C, true >',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_5ft_855',['make_member_pointer_t',['../namespaceboost_1_1callable__traits_1_1detail.html#af113cd4d4b40d4cbdecd7ebf5b818477',1,'boost::callable_traits::detail']]], + ['make_5foutput_5fterminal_5fptrs_856',['make_output_terminal_ptrs',['../class_callable_wrap_t_t_args.html#a3ab5edec09997fb2a05d5a233d3d412b',1,'CallableWrapTTArgs']]], + ['make_5fptr_857',['make_ptr',['../namespacettg__parsec.html#a8ad4f3c371a2fa421e6879bc2368d9e2',1,'ttg_parsec::make_ptr()'],['../namespacettg__madness.html#a0de9867c23e58dc14b3c8803ef6f5766',1,'ttg_madness::make_ptr()'],['../namespacettg.html#a87391d05d725ff254485b32cd4cce9b1',1,'ttg::make_ptr()'],['../structttg__parsec_1_1_ptr.html#ae110548b7742d949f8a03fa4fb3ccc30',1,'ttg_parsec::Ptr::make_ptr()']]], + ['make_5fscratch_858',['make_scratch',['../namespacettg.html#ad2b018e52d9155f87153196dcddb1219',1,'ttg']]], + ['make_5fspan_859',['make_span',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a5320a4998b7ba712c15f42371577693f',1,'TCB_SPAN_NAMESPACE_NAME::make_span(span< ElementType, Extent > s) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a0c3dd998d4f66e2084405a285e9532ed',1,'TCB_SPAN_NAMESPACE_NAME::make_span(T(&arr)[N]) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a9176a22e6ebf1dd1347e67aa80abba4d',1,'TCB_SPAN_NAMESPACE_NAME::make_span(std::array< T, N > &arr) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#ac4774551cd47001061ff02dd59384a89',1,'TCB_SPAN_NAMESPACE_NAME::make_span(const std::array< T, N > &arr) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#accc708224477a5734a6956729b33fe0f',1,'TCB_SPAN_NAMESPACE_NAME::make_span(Container &cont)'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#afd1eaa78de92663eeed21def5341b326',1,'TCB_SPAN_NAMESPACE_NAME::make_span(const Container &cont)']]], + ['make_5ftraverse_860',['make_traverse',['../namespacettg.html#ac9c4eec56ea2e0cbc9bf52e1129bfee5',1,'ttg']]], + ['make_5ftt_861',['make_tt',['../make__tt_8h.html#a1a4e1393e06272cd844fc4889b110b5a',1,'make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")): make_tt.h'],['../make__tt_8h.html#a85366a0c478cf3d6b3018f1f29576562',1,'make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")): make_tt.h']]], + ['make_5ftt_2eh_862',['make_tt.h',['../make__tt_8h.html',1,'']]], + ['make_5ftt_5ftpl_863',['make_tt_tpl',['../make__tt_8h.html#a5b5e81502ab33cdc1cd1546b48e6214a',1,'make_tt.h']]], + ['make_5fttg_864',['make_ttg',['../namespacettg.html#af7f4deb4729fc2f5a5609fc521d5ffb9',1,'ttg']]], + ['make_5fvoid_5ftuple_865',['make_void_tuple',['../namespacettg_1_1detail.html#ae5c8890dc66f7b1f25df491828bccaf2',1,'ttg::detail::make_void_tuple()'],['../namespacettg_1_1detail.html#ae15a44c421263bbc3ad0347d9dcbc3f3',1,'ttg::detail::make_void_tuple(std::index_sequence< Is... >)']]], + ['managing_20continuous_20intergration_20_28ci_29_866',['Managing Continuous Intergration (CI)',['../_c_i-_administration-_notes.html',1,'']]], + ['mark_5fdevice_5fout_867',['mark_device_out',['../namespacettg__parsec.html#af9c1968d2d71fd832f8f0292aaf58979',1,'ttg_parsec::mark_device_out()'],['../namespacettg__parsec_1_1detail.html#a64062122e8cf61337eec8a59373e3fed',1,'ttg_parsec::detail::mark_device_out()'],['../namespacettg__madness.html#ad455377b4050f710c3dd54197b89111d',1,'ttg_madness::mark_device_out()']]], + ['mark_5finvalid_868',['mark_invalid',['../classttg_1_1base_1_1_world_impl_base.html#ad1471b7fb4deb6279b873a58b2d3af5d',1,'ttg::base::WorldImplBase']]], + ['mark_5fmutable_869',['mark_mutable',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#aa14198fff9f8a5c31ab63fd8a8ff148b',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['marked_5fpushout_870',['MARKED_PUSHOUT',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a892f017a7e14cd222e18314d84314011',1,'ttg_parsec::detail']]], + ['max_5findex_871',['max_index',['../structttg_1_1_multi_index.html#aa4eee95d7a30630a54d8062155090972',1,'ttg::MultiIndex']]], + ['max_5findex_5fsquare_872',['max_index_square',['../structttg_1_1_multi_index.html#a5296bb5e9c6e30ba570868f239b0e244',1,'ttg::MultiIndex']]], + ['max_5finline_5fsize_873',['max_inline_size',['../namespacettg__parsec_1_1detail.html#a3ccdf968e3332a3d0e3dcf5dce2c9f29',1,'ttg_parsec::detail']]], + ['max_5fpayload_5fsize_874',['max_payload_size',['../structttg__parsec_1_1detail_1_1msg__t.html#a7b9825fb1874f8f3d6f444c1c7663d37',1,'ttg_parsec::detail::msg_t']]], + ['maxnumevents_875',['MaxNumEvents',['../structttg_1_1resumable__task__state.html#ad407611387fcf0a390e26bb533a14465',1,'ttg::resumable_task_state']]], + ['memorywatchpoint_5fx86_5f64_876',['MemoryWatchpoint_x86_64',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a9f7cde5a39cfc8e1b9c152497a7eb3f6',1,'ttg::detail::MemoryWatchpoint_x86_64::MemoryWatchpoint_x86_64()'],['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['memorywatchpool_877',['MemoryWatchPool',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ac8644245ba9a733f2a25a4c2085748b4',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['meta_2eh_878',['meta.h',['../meta_8h.html',1,'']]], + ['move_5fcallback_5ftype_879',['move_callback_type',['../classttg_1_1_in.html#ac27eae622532ae3ad67a1cbcc03532ec',1,'ttg::In']]], + ['mpi_5fsupport_880',['mpi_support',['../classttg__parsec_1_1_world_impl.html#a75c6c1c980a7e6d3d597ce3510db40a7',1,'ttg_parsec::WorldImpl']]], + ['msg_5ffinalize_5fargstream_5fsize_881',['MSG_FINALIZE_ARGSTREAM_SIZE',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a69f786a752f683fc4406f65a1bee0b78',1,'ttg_parsec::msg_header_t']]], + ['msg_5fget_5ffrom_5fpull_882',['MSG_GET_FROM_PULL',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a63df738141775f5c8a7434662c48e3c1',1,'ttg_parsec::msg_header_t']]], + ['msg_5fheader_5ft_883',['msg_header_t',['../structttg__parsec_1_1msg__header__t.html#ad5bb8a2c555b6dcafafdb90e6e2a5045',1,'ttg_parsec::msg_header_t::msg_header_t()=default'],['../structttg__parsec_1_1msg__header__t.html#aea5bd59ece46fdedd7cb9f9bbffa8fd0',1,'ttg_parsec::msg_header_t::msg_header_t(fn_id_t fid, uint32_t tid, uint64_t oid, int32_t pid, int sender, int nk)'],['../structttg__parsec_1_1msg__header__t.html',1,'ttg_parsec::msg_header_t']]], + ['msg_5finvalid_884',['MSG_INVALID',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63aaec6e0f85658c1034aa2dce52b296fb1',1,'ttg_parsec::msg_header_t']]], + ['msg_5fset_5farg_885',['MSG_SET_ARG',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a2dd85a1e4d00fa53490e627b15b58ef1',1,'ttg_parsec::msg_header_t']]], + ['msg_5fset_5fargstream_5fsize_886',['MSG_SET_ARGSTREAM_SIZE',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a1592ff4e8c79b861ed9f587d597e9cbf',1,'ttg_parsec::msg_header_t']]], + ['msg_5ft_887',['msg_t',['../structttg__parsec_1_1detail_1_1msg__t.html#a06e787d175a67c6f8ec2d7377aefd30e',1,'ttg_parsec::detail::msg_t::msg_t()=default'],['../structttg__parsec_1_1detail_1_1msg__t.html#aad6c391ada82eca95522220105580c7f',1,'ttg_parsec::detail::msg_t::msg_t(uint64_t tt_id, uint32_t taskpool_id, msg_header_t::fn_id_t fn_id, int32_t param_id, int sender, int num_keys=1)'],['../structttg__parsec_1_1detail_1_1msg__t.html',1,'ttg_parsec::detail::msg_t']]], + ['multiindex_888',['MultiIndex',['../structttg_1_1_multi_index.html#adc1ad27cf30609ff1b1768c1980e5b03',1,'ttg::MultiIndex::MultiIndex()=default'],['../structttg_1_1_multi_index.html#a065d25020e5252239efe9b663040a4d5',1,'ttg::MultiIndex::MultiIndex(std::initializer_list< Integer > ilist)'],['../structttg_1_1_multi_index.html#a0954bfac2c54893ecfbfabdb112d2139',1,'ttg::MultiIndex::MultiIndex(Ints... ilist)'],['../structttg_1_1_multi_index.html#a050e62bdcdc66a08e66a21c1c8c923e6',1,'ttg::MultiIndex::MultiIndex(std::size_t hash)'],['../structttg_1_1_multi_index.html',1,'ttg::MultiIndex< Rank, Int >']]], + ['multiindex_2eh_889',['multiindex.h',['../multiindex_8h.html',1,'']]], + ['multiple_5freader_890',['MULTIPLE_READER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a130d50c5d65c81c0644c9d0273dfb5e5',1,'ttg_parsec::detail']]], + ['multiple_5fwriter_891',['MULTIPLE_WRITER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a03886c1f586f6592e80916f5126c6025',1,'ttg_parsec::detail']]], + ['mutable_5ftag_892',['mutable_tag',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a16e8fd902c4386fd197c74bfca6e3f21',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['mysigs_5f_893',['mysigs_',['../classttg_1_1_debugger.html#a1d86153ebe39b63fe7621caad42604c6',1,'ttg::Debugger']]] +]; diff --git a/dox-master/search/all_d.html b/dox-master/search/all_d.html new file mode 100644 index 000000000..af7f2f0f5 --- /dev/null +++ b/dox-master/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_d.js b/dox-master/search/all_d.js new file mode 100644 index 000000000..0d88a09de --- /dev/null +++ b/dox-master/search/all_d.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['name_894',['name',['../structttg__data__descriptor.html#ac05a0d47d308fd79f41b07858aecfcfa',1,'ttg_data_descriptor']]], + ['nodename_895',['nodename',['../classttg_1_1_dot.html#a2613119aa8fbf04526b29cd7db9e9851',1,'ttg::Dot']]], + ['non_5finvoke_5farg_5ftypes_896',['non_invoke_arg_types',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a8a449cc369f26fc531e8f00899371a07',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3d292ad0e02ff8014ccb1db96b4b401a',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a02a71d530245f4dd8d309936596c41da',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a858f5d9d60de84b075c7546e799b1fb5',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aecd35973d9a5c3c8617b5ac6593d6ea3',1,'boost::callable_traits::detail::default_callable_traits::non_invoke_arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a2db1ab9fbcefa341438328b3e92a09cc',1,'boost::callable_traits::detail::function_object::non_invoke_arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#af905de096bd70f3cf0c543261cf34012',1,'boost::callable_traits::detail::pmd< D T::* >::non_invoke_arg_types()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1e9e606293c7917e9b213f1c130900f6',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()']]], + ['none_897',['NONE',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44ab50339a10e1de285ac99d4c3990b8693',1,'ttg_parsec::detail']]], + ['nonref_5ftuple_898',['nonref_tuple',['../structttg_1_1meta_1_1nonref__tuple.html',1,'ttg::meta']]], + ['nonref_5ftuple_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_899',['nonref_tuple< std::tuple< Ts... > >',['../structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['nonref_5ftuple_5ft_900',['nonref_tuple_t',['../namespacettg_1_1meta.html#a819e20d1caa572e53130d36b874c4f59',1,'ttg::meta']]], + ['nsig_901',['NSIG',['../bug_8cpp.html#ab83b88daaecc469d1edb90a527ab4a39',1,'bug.cpp']]], + ['nsuccessors_902',['nsuccessors',['../classttg_1_1_out_terminal_base.html#a19283a6990d4c46f7c74fbaab4fddce5',1,'ttg::OutTerminalBase']]], + ['null_5fvisitor_903',['null_visitor',['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html',1,'ttg::detail::Traverse']]], + ['null_5fvisitor_3c_20terminalbase_20_3e_904',['null_visitor< TerminalBase >',['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html',1,'ttg::detail::Traverse']]], + ['null_5fvisitor_3c_20ttbase_20_3e_905',['null_visitor< TTBase >',['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html',1,'ttg::detail::Traverse']]], + ['num_5fbytes_906',['num_bytes',['../structttg_1_1iovec.html#a40396049928f600014b24f3eb6b2f735',1,'ttg::iovec']]], + ['num_5fcopies_907',['num_copies',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a00ed31ef61f99603a990e9f62f3938dd',1,'ttg_parsec::detail::parsec_ttg_task_t']]], + ['num_5fdev_5fdata_908',['num_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3ca00f43a4ab6e5e2324e3a47df1e61b',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['num_5fdevices_909',['num_devices',['../namespacettg__parsec.html#a88e5f318f33a37c97978315136aaef28',1,'ttg_parsec::num_devices()'],['../namespacettg__madness.html#a202ee1b58cf23b411b9e30408bc0ff48',1,'ttg_madness::num_devices()'],['../namespacettg_1_1device.html#adf6007d2894bb18b4d05abb9024a49a7',1,'ttg::device::num_devices()']]], + ['num_5fexecution_5fspaces_910',['num_execution_spaces',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#ae56a5b659392c1c73b4b58708a10fe23',1,'ttg::runtime_traits< Runtime::PaRSEC >::num_execution_spaces()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#a779ab7ef297969d1e2aebb515306bb45',1,'ttg::runtime_traits< Runtime::MADWorld >::num_execution_spaces()']]], + ['num_5fflows_911',['num_flows',['../structttg__parsec_1_1detail_1_1device__state__t.html#ab3b9d97a977027c6fefac52619e217eb',1,'ttg_parsec::detail::device_state_t::num_flows()'],['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#ae9316038a764631c24cd796c6fdae9d0',1,'ttg_parsec::detail::device_state_t< true >::num_flows()']]], + ['num_5fiovecs_912',['num_iovecs',['../structttg__parsec_1_1msg__header__t.html#aaae9f758860826a94fdb65c3ee7efb1c',1,'ttg_parsec::msg_header_t']]], + ['num_5fkeys_913',['num_keys',['../structttg__parsec_1_1msg__header__t.html#a053486ef0098af65981d2efd950246d1',1,'ttg_parsec::msg_header_t']]], + ['num_5freaders_914',['num_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ad8e2f90ddb1fe008065e271b5f3f5bbc',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['num_5fref_915',['num_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a054097c6ebb9a66b4e37b0f16034c7b9',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['num_5fstreams_916',['num_streams',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#aa4c65b546fcb70d39f6867f731e76f77',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::num_streams()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#aa65b39128b4b1eef80eab790c55ca429',1,'ttg_parsec::detail::parsec_ttg_task_t::num_streams()']]], + ['num_5fthreads_917',['num_threads',['../namespacettg_1_1detail.html#ac7958c35eef5d60f2c16fac47d3baf62',1,'ttg::detail']]], + ['numinedges_918',['numinedges',['../classttg__madness_1_1_t_t.html#a9a95b88a9b83ebf16af8757a28430d3f',1,'ttg_madness::TT']]], + ['numins_919',['numins',['../classttg__madness_1_1_t_t.html#aae9616ec4d0cf2e9d15985eb0dde1acb',1,'ttg_madness::TT::numins()'],['../classttg_1_1_t_t_g.html#aadd01091767986ac67fdc694472ac9f1',1,'ttg::TTG::numins()']]], + ['numinvals_920',['numinvals',['../classttg__parsec_1_1_t_t.html#a8685dcdca4bc7cbe65a8da0d4ed1fa42',1,'ttg_parsec::TT']]], + ['numouts_921',['numouts',['../classttg__madness_1_1_t_t.html#ae8681980872a6ef67c137c13c262ff1d',1,'ttg_madness::TT::numouts()'],['../classttg_1_1_t_t_g.html#ad4c120830f50a7b026e7fd353e1d5294',1,'ttg::TTG::numouts()']]], + ['nwatchpoints_5fper_5fthread_922',['nwatchpoints_per_thread',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a76c247b4e6563b5ba6c1ba99ae3b3d0d',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]] +]; diff --git a/dox-master/search/all_e.html b/dox-master/search/all_e.html new file mode 100644 index 000000000..e25df423a --- /dev/null +++ b/dox-master/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_e.js b/dox-master/search/all_e.js new file mode 100644 index 000000000..3c7524891 --- /dev/null +++ b/dox-master/search/all_e.js @@ -0,0 +1,41 @@ +var searchData= +[ + ['oarchive_5fsave_5foverride_5foptimized_5fdispatch_923',['oarchive_save_override_optimized_dispatch',['../namespacettg_1_1detail.html#a58373e6561c381646a61fd9a03ff3b2c',1,'ttg::detail']]], + ['op_924',['op',['../class_callable_wrap_t_t_args.html#a9fe77e0b1757c76846c5ec16c5c2214a',1,'CallableWrapTTArgs::op()'],['../classttg_1_1_binary_tree_reduce.html#a5d9a9e47d4f19992ea1c2861131ba53a',1,'ttg::BinaryTreeReduce::op()'],['../class_callable_wrap_t_t_args.html#a245bc94ad4dbf86e6814f3dd40dceb74',1,'CallableWrapTTArgs::op(output_terminalsT &out)'],['../class_callable_wrap_t_t_args.html#af819af716551369bc33501aaeb226a82',1,'CallableWrapTTArgs::op(ArgsTuple &&args_tuple, output_terminalsT &out)'],['../class_callable_wrap_t_t_args.html#a7a5ee8dea14b2ae72d7528fdbb593dfd',1,'CallableWrapTTArgs::op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)'],['../class_callable_wrap_t_t.html#aaf92f8b365362d984d3970b0aa680a10',1,'CallableWrapTT::op(output_terminalsT &out)'],['../class_callable_wrap_t_t.html#ae154806668bfe96958111f619f13dc0e',1,'CallableWrapTT::op(Key &&key, output_terminalsT &out)'],['../class_callable_wrap_t_t.html#aabebb8123753ebe60481e961a2f4e06e',1,'CallableWrapTT::op(ArgsTuple &&args_tuple, output_terminalsT &out)'],['../class_callable_wrap_t_t.html#a92820091cd786e63b786b7893a95b14a',1,'CallableWrapTT::op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)'],['../classttg_1_1_binary_tree_broadcast.html#acd902ad351fa292af7a47764d77ad686',1,'ttg::BinaryTreeBroadcast::op()']]], + ['op_925',['Op',['../namespacettg__parsec.html#a468485b42e3870016d8c6961e435cd4b',1,'ttg_parsec::Op()'],['../namespacettg__madness.html#abc8af20f7db8b84a0d170edadec49f99',1,'ttg_madness::Op()']]], + ['op_5fbase_5flazy_5fpull_5faccessor_926',['op_base_lazy_pull_accessor',['../namespacettg_1_1detail.html#a527a16b6b160369f39c51ad04efe4e03',1,'ttg::detail']]], + ['op_5fid_927',['op_id',['../structttg__parsec_1_1msg__header__t.html#aaad08d93667c9a356bdc820a7144bdab',1,'ttg_parsec::msg_header_t']]], + ['opbase_928',['OpBase',['../namespacettg.html#adcdb54d96d39cc9a3ba05dca5aa182e1',1,'ttg']]], + ['operator_20bool_929',['operator bool',['../structttg__madness_1_1_buffer.html#aa69f16f218365ab079b072562e427c31',1,'ttg_madness::Buffer::operator bool()'],['../structttg__parsec_1_1_buffer.html#ac9affc106bb26f35d73c59575b69fb17',1,'ttg_parsec::Buffer::operator bool()']]], + ['operator_20int_930',['operator int',['../classttg_1_1device_1_1_device.html#a5338c49397786a569fe0324b29f48af4',1,'ttg::device::Device']]], + ['operator_20unsigned_20int_931',['operator unsigned int',['../structboost_1_1serialization_1_1unsigned__int.html#af89caf40450aef62204c371969842da4',1,'boost::serialization::unsigned_int']]], + ['operator_21_932',['operator!',['../namespacettg__parsec_1_1detail.html#abc0002074987edf4f673982c52a7dd0e',1,'ttg_parsec::detail']]], + ['operator_21_3d_933',['operator!=',['../structttg_1_1_multi_index.html#abdeb15fee147c23ce9d311393a6d8972',1,'ttg::MultiIndex::operator!=()'],['../namespacettg.html#afc35f2c6f2f70b5daad7ec9cdbd3dfa6',1,'ttg::operator!=()']]], + ['operator_26_934',['operator&',['../namespacettg__parsec_1_1detail.html#a345abf8f5ee54728cc15cda79e246822',1,'ttg_parsec::detail::operator&()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a4f67bc6a79ada27fcf68c29895eda0b2',1,'ttg::detail::boost_optimized_iarchive::operator&()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a274c2471aab7c3b9711cd8e8ba04e347',1,'ttg::detail::boost_optimized_oarchive::operator&()']]], + ['operator_26_3d_935',['operator&=',['../namespacettg__parsec_1_1detail.html#a8d931ef5aa31cb3111750e63d9520f08',1,'ttg_parsec::detail']]], + ['operator_28_29_936',['operator()',['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a0f5ca5870c29073dae15dccb2c89842e',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator()()'],['../structstd_1_1hash_3_01ttg_1_1_void_01_4.html#afc51c99b185775804d3c078ae8d18df8',1,'std::hash< ttg::Void >::operator()()'],['../structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html#a83541ed3fcea6ee5650f0f703959a83b',1,'ttg::overload::hash< Void, void >::operator()()'],['../structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html#a098c128f75e47daea13dfc1d806c57cc',1,'ttg::overload::hash< void, void >::operator()(const ttg::Void &) const'],['../structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html#aa1e43714f8c934231d277000e13ed8d7',1,'ttg::overload::hash< void, void >::operator()() const'],['../structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html#ab54d852da8d51ea2e357ac86a98bc0d9',1,'ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >::operator()()'],['../structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html#a068a7e79a29992b5e8f632274cf8eaa9',1,'ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >::operator()()'],['../classttg_1_1_dot.html#ac1e0097a81f6dd46fc9173e1b8a632c8',1,'ttg::Dot::operator()()'],['../classttg_1_1_traverse.html#af8d2c3ab86ea7be0a1c0ae065c89cc6d',1,'ttg::Traverse::operator()()'],['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html#aaccdb1d25bba1b1bc7a68ecea49dfb27',1,'ttg::detail::Traverse::null_visitor::operator()(const Visitable *)'],['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html#aa4b857a88ffda85d5811fc05c611e611',1,'ttg::detail::Traverse::null_visitor::operator()(Visitable *)'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a8b7d37fc7ddc0f9446b17bb2ec5033e1',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator()()'],['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a6b7b44fb67e16dee0deabeca79f96801',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::operator()(const Key &key) const'],['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a6c977bbf221e92c8a43690b280f3295a',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::operator()() const'],['../structttg_1_1detail_1_1default__priomap__impl.html#a652cfc80e3ba93862c4a6a670524f2df',1,'ttg::detail::default_priomap_impl::operator()(const Key &key) const'],['../structttg_1_1detail_1_1default__priomap__impl.html#aee17b59a47996fff0bc5d54f0e2de583',1,'ttg::detail::default_priomap_impl::operator()() const'],['../structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html#a6e72714ad3458b2ad0271c4305ece940',1,'boost::callable_traits::detail::callable_dummy::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke.html#a279cea7639238e78cd23ef885039d37b',1,'boost::callable_traits::detail::test_invoke::operator()(int, Rgs &&... rgs) const -> success< decltype(std::declval< U >()(static_cast< Rgs && >(rgs)...))>'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke.html#a3acc1fdcd80255b3d25a50a542b99967',1,'boost::callable_traits::detail::test_invoke::operator()(long,...) const -> substitution_failure'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html#aa2607e10bc738e695f7a0d6f6c4738bd',1,'boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::operator()(int, U &&u, Rgs &&... rgs) const -> success< decltype((std::declval< Obj >().*std::declval< Pmf >())(static_cast< Rgs && >(rgs)...))>'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html#a6ade9a24ecebe052ddcbbc0d54a1abdb',1,'boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::operator()(long,...) const -> substitution_failure'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html#ad4fb3e0ec2b6651ee0fd45d72830d586',1,'boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::operator()(int, U &&u) const -> success< decltype(std::declval< Obj >().*std::declval< Pmd >())>'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html#a30011fae1ddefa0693486c1db69b8f9f',1,'boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::operator()(long,...) const -> substitution_failure'],['../structttg_1_1detail_1_1value__copy__handler.html#a0f0198a1a0819cd66fa5b739d5ea3220',1,'ttg::detail::value_copy_handler::operator()()'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a00ac75bce789ce495ff7493955e55e31',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html#a9c0a267a75694567b641377ebec94f38',1,'boost::callable_traits::detail::test_invoke< function< F >, true >::operator()()']]], + ['operator_2a_937',['operator*',['../structttg__parsec_1_1_ptr.html#a04552125e6e97d76a770ad37ffe719b7',1,'ttg_parsec::Ptr::operator*()'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#afe9784fad849c9c17aa9688987560ea8',1,'ttg_parsec::detail::ttg_data_value_copy_t::operator*()']]], + ['operator_2d_3e_938',['operator->',['../structttg__parsec_1_1_ptr.html#a67ad5cbc313a4afd40d661ed822f038b',1,'ttg_parsec::Ptr']]], + ['operator_3c_3c_939',['operator<<',['../namespacettg_1_1iostream.html#a74cb730aaec9edeebb96553a2ee87361',1,'ttg::iostream::operator<<()'],['../distributed_8cc.html#ae4ea1ae898abcb81e64f966e498edd4a',1,'std::operator<<()'],['../namespacettg.html#aa3f805068310194a4d757193bba3db66',1,'ttg::operator<<()'],['../namespacettg_1_1iostream.html#a20168c2e5bfa796aaf7303a6d2581871',1,'ttg::iostream::operator<<(std::ostream &s, const T(&v)[N])'],['../namespacettg_1_1iostream.html#ade4ed621e4c0de971f259e3c05a2ca72',1,'ttg::iostream::operator<<(std::ostream &s, const std::array< T, N > &v)'],['../namespacettg_1_1iostream.html#afe1f9c87bdf78520b5d1c47c742fa207',1,'ttg::iostream::operator<<(std::ostream &s, const std::vector< T > &c)'],['../namespacettg_1_1iostream.html#ac75205669b08794155582b42a46892d9',1,'ttg::iostream::operator<<(std::ostream &s, const std::pair< T, U > &p)'],['../namespacettg.html#aed689fb6f70201ad9d8aba10b4121fd3',1,'ttg::operator<<()'],['../device_2device_8h.html#af8fc4407321b20a173425ac5afe1a1c7',1,'std::operator<<()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#ac7ebc4affa31436b07573852df397ca8',1,'ttg::detail::boost_optimized_oarchive::operator<<()']]], + ['operator_3d_940',['operator=',['../classttg_1_1_t_t_base.html#aa3784609e5bb56a980cc2ed3a08d31d8',1,'ttg::TTBase::operator=()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a997c3e11e78beccd1e542354c8934026',1,'TCB_SPAN_NAMESPACE_NAME::span::operator=()'],['../structttg_1_1detail_1_1_container_wrapper.html#a75a27dfd7a297c3cb406d423953f4bcc',1,'ttg::detail::ContainerWrapper::operator=()'],['../structttg__parsec_1_1_t_t_value.html#a9db106061fec0c1d405f1c034c5145d5',1,'ttg_parsec::TTValue::operator=(TTValue &&v)'],['../structttg__parsec_1_1_t_t_value.html#ae6d00239cc40158e93200c23ca848138',1,'ttg_parsec::TTValue::operator=(const TTValue &v)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a8650acf7d8eea18d0a4021d061f1a6e8',1,'ttg_parsec::detail::ttg_data_value_copy_t::operator=(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_assignable_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#aba9850e4f4867d03b873f4e274df6e49',1,'ttg_parsec::detail::ttg_data_value_copy_t::operator=(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_assignable_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a68e6e72f718377ded5080007fcf81020',1,'ttg_parsec::detail::ttg_data_copy_t::operator=(const ttg_data_copy_t &c)'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ac29f3668a4c482eb52d1a5316f1eb248',1,'ttg_parsec::detail::ttg_data_copy_t::operator=(ttg_data_copy_t &&c)'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#ad06e831a19d244a212c7b8b6477e07b0',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator=()'],['../classttg_1_1base_1_1_world.html#afda7a9da6edea8ab699780c3aba835a7',1,'ttg::base::World::operator=(const World &other)=default'],['../classttg_1_1base_1_1_world.html#a48d198cf4df4f73d2b6c4a04713845bf',1,'ttg::base::World::operator=(World &&other)=default'],['../structttg_1_1resumable__task__state.html#abdf8016e17043571dd3a7bbc6222064a',1,'ttg::resumable_task_state::operator=(const resumable_task_state &)=delete'],['../structttg_1_1resumable__task__state.html#ab3fcf05a8537bede9b164e4becefa9ee',1,'ttg::resumable_task_state::operator=(resumable_task_state &&)=delete'],['../structttg__madness_1_1_buffer.html#a1e421bf20e2f882a8cdfacd48f71d275',1,'ttg_madness::Buffer::operator=(Buffer &&db)'],['../structttg__madness_1_1_buffer.html#a07e148c9d6ca581a6ca494fe33ec4bdd',1,'ttg_madness::Buffer::operator=(const Buffer &db)=delete'],['../classttg__madness_1_1_world_impl.html#a1e26005ef16c5862e697ff1917a50a09',1,'ttg_madness::WorldImpl::operator=(const WorldImpl &other)=delete'],['../classttg__madness_1_1_world_impl.html#acece95a50a8c9b606fd66e087167d9d0',1,'ttg_madness::WorldImpl::operator=(WorldImpl &&other)=delete'],['../structttg__parsec_1_1_buffer.html#ae6853baa45c9ec994c4b82ba5946dcde',1,'ttg_parsec::Buffer::operator=(Buffer &&db)'],['../structttg__parsec_1_1_buffer.html#a7bbd291b0498e034398ae5bafc827ef5',1,'ttg_parsec::Buffer::operator=(const Buffer &db)=delete'],['../structttg__parsec_1_1devicescratch.html#a568fa6e73b3a00a091f1efb6e3da5622',1,'ttg_parsec::devicescratch::operator=(devicescratch &&)=delete'],['../structttg__parsec_1_1devicescratch.html#aafdf46dee5080f3d27677f5b971a6d31',1,'ttg_parsec::devicescratch::operator=(const devicescratch &db)=delete'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#aeb7853f1dd6a9f10e17f4c666a2f5ea4',1,'ttg_parsec::detail::ptr_impl::operator=()'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a6bee04d50b357903a8262c2d773aed72',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator=()'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a7631ab3a23ce1839c80dad670cc0def2',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator=(value_copy_handler &&h)'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#aed964ca374d309930eff747bd6c7e9b7',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator=(const value_copy_handler &h)=delete'],['../classttg__parsec_1_1_world_impl.html#afa7c25885416c36d1c0b49bc6321f2e5',1,'ttg_parsec::WorldImpl::operator=(WorldImpl &&other)=delete'],['../classttg__parsec_1_1_world_impl.html#a2810d6ca131ef60496c0787718f234c6',1,'ttg_parsec::WorldImpl::operator=(const WorldImpl &other)=delete'],['../structttg__parsec_1_1_ptr.html#ab8defaabce42a8f4319c47393f2fb178',1,'ttg_parsec::Ptr::operator=(Ptr &&p)=default'],['../structttg__parsec_1_1_ptr.html#a6aabf35b63aa3dacfb16fc7cfc9d2835',1,'ttg_parsec::Ptr::operator=(const Ptr &p)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#abb1bdc15933bc2860f3ec28793118ea4',1,'ttg_parsec::detail::ptr_impl::operator=()']]], + ['operator_3d_3d_941',['operator==',['../structttg_1_1_multi_index.html#a8c13e6fbb1ad600a3a2082f23850effc',1,'ttg::MultiIndex::operator==()'],['../namespacettg.html#a50e85e150d82bafe61a8e25d2757d138',1,'ttg::operator==()']]], + ['operator_3e_3e_942',['operator>>',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#ad2a3e35f398bef339cf4247f20a78392',1,'ttg::detail::boost_optimized_iarchive']]], + ['operator_5b_5d_943',['operator[]',['../structttg_1_1_multi_index.html#ad9ca854516a2de90d8e56a2263d582db',1,'ttg::MultiIndex::operator[]()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a9df7935a7948c3e1da8dde3f104ebafe',1,'TCB_SPAN_NAMESPACE_NAME::span::operator[]()']]], + ['operator_7c_944',['operator|',['../namespacettg__parsec_1_1detail.html#abc212eb4136afd62ecfc869517d2b761',1,'ttg_parsec::detail']]], + ['operator_7c_3d_945',['operator|=',['../namespacettg__parsec_1_1detail.html#a5a41f5412f34996ed1d2d6146f52284a',1,'ttg_parsec::detail']]], + ['ordinal2index_946',['ordinal2index',['../namespacettg_1_1meta.html#abf0418c9c42274ed4621c0cd97d60c47',1,'ttg::meta']]], + ['out_947',['Out',['../classttg_1_1_terminal_base.html#a5d3082871d22dcf772cde49c6c2ebd1d',1,'ttg::TerminalBase::Out()'],['../classttg_1_1_out.html#ae82fbf474b7e26b9c8f69c6b6d241d82',1,'ttg::Out::Out()']]], + ['out_948',['out',['../classttg_1_1_t_t_base.html#adb047d2ebbd32765b9dc8f8038fa7464',1,'ttg::TTBase::out(size_t i)'],['../classttg_1_1_t_t_base.html#afb9937c5abe025168dfca1d5399c64e8',1,'ttg::TTBase::out()'],['../classttg__madness_1_1_t_t.html#a51d8113198b82f17f2f37fa78b774a15',1,'ttg_madness::TT::out()'],['../classttg__parsec_1_1_t_t.html#ad43642a911bfcbe0150aa3043fd86697',1,'ttg_parsec::TT::out()'],['../classttg_1_1_t_t_g.html#a0a50b4979dceec4064951cc93e634901',1,'ttg::TTG::out()']]], + ['out_949',['Out',['../classttg_1_1_out.html',1,'ttg']]], + ['out_3c_20keyt_2c_20valuet_20_3e_950',['Out< keyT, valueT >',['../classttg_1_1_out.html',1,'ttg']]], + ['out_5fvisitor_951',['out_visitor',['../classttg_1_1_traverse.html#a8fba2039dcde3a3a1ce355906fc220af',1,'ttg::Traverse']]], + ['outfunc_952',['outfunc',['../classttg_1_1detail_1_1_traverse.html#a9c047df6c224aa7c87d9b72d15efc4c6',1,'ttg::detail::Traverse::outfunc()'],['../classttg_1_1_dot.html#a239508aec6927a1815a8b7f8a88e6139',1,'ttg::Dot::outfunc()']]], + ['output_5fedges_5ftype_953',['output_edges_type',['../classttg__madness_1_1_t_t.html#aef907d3f0ce6f3cce3fa6b72e048ce21',1,'ttg_madness::TT::output_edges_type()'],['../classttg__parsec_1_1_t_t.html#a34d4f7ccf9ae70a0bec083f62e21905b',1,'ttg_parsec::TT::output_edges_type()']]], + ['output_5fterminal_5ftype_954',['output_terminal_type',['../classttg_1_1_edge.html#ae41c9b4c8361342f7259d6a84dfbfdde',1,'ttg::Edge']]], + ['output_5fterminals_5ftype_955',['output_terminals_type',['../classttg__madness_1_1_t_t.html#adf925526cfd01735e2cc8853edf4525e',1,'ttg_madness::TT::output_terminals_type()'],['../classttg__parsec_1_1_t_t.html#a59b1c7f4f7fc3e5d086dccdfc230a0fc',1,'ttg_parsec::TT::output_terminals_type()'],['../classttg_1_1_t_t_g.html#adc826d43d06d2ce7fb6aaea3be0f5400',1,'ttg::TTG::output_terminals_type()']]], + ['outputs_5ftls_5fptr_5faccessor_956',['outputs_tls_ptr_accessor',['../classttg_1_1_t_t_base.html#a8732c0ff38a483f5949fd9aa88b93996',1,'ttg::TTBase']]], + ['outterminalbase_957',['OutTerminalBase',['../classttg_1_1_out_terminal_base.html#a2688238b38f58c451dde6ebb5520b990',1,'ttg::OutTerminalBase::OutTerminalBase()'],['../classttg_1_1_out_terminal_base.html',1,'ttg::OutTerminalBase< keyT >']]], + ['outterminalbase_3c_20void_20_3e_958',['OutTerminalBase< void >',['../classttg_1_1_out_terminal_base.html',1,'ttg']]], + ['owner_959',['owner',['../structttg_1_1detail_1_1_container_wrapper.html#a4016a09f0036742915e3a3badca4c6c6',1,'ttg::detail::ContainerWrapper::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html#a4fd12add577d7d30cf0d0de92f5f2c37',1,'ttg::detail::ContainerWrapper< void, valueT >::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html#abf988afb36dde4232ffc56179243731f',1,'ttg::detail::ContainerWrapper< keyT, void >::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html#a0e28a9279d949e34d66e7c053f5ea4e7',1,'ttg::detail::ContainerWrapper< ttg::Void, valueT >::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html#ae20db2bc31689eaa4f04a34c66607cee',1,'ttg::detail::ContainerWrapper< void, void >::owner()'],['../classttg__madness_1_1_t_t.html#a4251d2f5a481454fa199ff75ac2fc7b9',1,'ttg_madness::TT::owner(const Key &key) const'],['../classttg__madness_1_1_t_t.html#a77735f7bc5677f489c91c1bceaf655b4',1,'ttg_madness::TT::owner() const']]], + ['owner_5fdevice_5fptr_960',['owner_device_ptr',['../structttg__madness_1_1_buffer.html#a8a4213586321ed4a09dd061df38073ea',1,'ttg_madness::Buffer::owner_device_ptr()'],['../structttg__madness_1_1_buffer.html#a6776c5af8332cbbaad90171b4f715129',1,'ttg_madness::Buffer::owner_device_ptr() const'],['../structttg__parsec_1_1_buffer.html#a0dd23747ba069de37120efe49995aea0',1,'ttg_parsec::Buffer::owner_device_ptr()'],['../structttg__parsec_1_1_buffer.html#ad5e987fb08944e5ef6ac1e60bc2a17a6',1,'ttg_parsec::Buffer::owner_device_ptr() const']]] +]; diff --git a/dox-master/search/all_f.html b/dox-master/search/all_f.html new file mode 100644 index 000000000..b23da6ce4 --- /dev/null +++ b/dox-master/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/all_f.js b/dox-master/search/all_f.js new file mode 100644 index 000000000..a79f1e8e9 --- /dev/null +++ b/dox-master/search/all_f.js @@ -0,0 +1,118 @@ +var searchData= +[ + ['pack_961',['pack',['../classttg__parsec_1_1_t_t.html#a04793b6b68d77d4b13e1fccdc5572af2',1,'ttg_parsec::TT']]], + ['pack_5fpayload_962',['pack_payload',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#ad393c2f0f07becb0097a6ff7ea88dd88',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::pack_payload()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#aba325a592c8867460f28940c57dc2b34',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::pack_payload()'],['../structttg__data__descriptor.html#a73880eb0f436bd8878456ef640964310',1,'ttg_data_descriptor::pack_payload()']]], + ['pair_2eh_963',['pair.h',['../serialization_2std_2pair_8h.html',1,'(Global Namespace)'],['../util_2hash_2std_2pair_8h.html',1,'(Global Namespace)']]], + ['param_5fid_964',['param_id',['../structttg__parsec_1_1msg__header__t.html#ad088bf7a1f8d3ea34cd89588730c38bd',1,'ttg_parsec::msg_header_t']]], + ['parent_5fkey_965',['parent_key',['../classttg_1_1_binary_spanning_tree.html#a31c570498d5fa0e40944ef57ccfc8ef1',1,'ttg::BinarySpanningTree']]], + ['parent_5ftask_966',['parent_task',['../structttg__parsec_1_1detail_1_1reducer__task__t.html#a11d9a765a35485aea7dd86dcd644832f',1,'ttg_parsec::detail::reducer_task_t']]], + ['parsec_967',['PaRSEC',['../namespacettg.html#a516aa15683e63c7039e8dbdd057bbff6a8d9cb8b170c7d01aadf755dc4a079811',1,'ttg']]], + ['parsec_2dext_2eh_968',['parsec-ext.h',['../parsec-ext_8h.html',1,'']]], + ['parsec_5fadd_5ffetch_5fruntime_5ftask_969',['parsec_add_fetch_runtime_task',['../ttg_2parsec_2ttg_8h.html#a1c710959a10d207205de788ae298f081',1,'ttg.h']]], + ['parsec_5fdata_970',['parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a5fbbc7f4e4d4de0ab1e47438dff4f976',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::parsec_data() const'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#ad3c8b86b543f3aa82209af79020d2e1c',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::parsec_data()']]], + ['parsec_5fdata_5fptr_971',['parsec_data_ptr',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#abc04ea75f9260926d1bc5033f0f6070d',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['parsec_5fdevice_5fto_5fttg_5fdevice_972',['parsec_device_to_ttg_device',['../namespacettg__parsec_1_1detail.html#a2209440310cdedf55f4d3846ffdc9a2f',1,'ttg_parsec::detail']]], + ['parsec_5fstatic_5fop_5ft_973',['parsec_static_op_t',['../namespacettg__parsec_1_1detail.html#a3aa0f98216159a470ccff8055af36a33',1,'ttg_parsec::detail']]], + ['parsec_5ftask_974',['parsec_task',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a2391ed321069d5b36519d976a4ad619a',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['parsec_5ftaskclass_5fparam0_975',['parsec_taskclass_param0',['../namespacettg__parsec_1_1detail.html#afca9439526c6ab1b79b0ab0335f8203b',1,'ttg_parsec::detail']]], + ['parsec_5ftaskclass_5fparam1_976',['parsec_taskclass_param1',['../namespacettg__parsec_1_1detail.html#a518c61806e589ac75b74057a3f0b28c4',1,'ttg_parsec::detail']]], + ['parsec_5ftaskclass_5fparam2_977',['parsec_taskclass_param2',['../namespacettg__parsec_1_1detail.html#aaecb250ae0731985c26c4ba3bb3eb943',1,'ttg_parsec::detail']]], + ['parsec_5ftaskclass_5fparam3_978',['parsec_taskclass_param3',['../namespacettg__parsec_1_1detail.html#af6507bd3e3af9129c2ecb206cfca1e72',1,'ttg_parsec::detail']]], + ['parsec_5ftaskpool_5ftermination_5fdetected_979',['parsec_taskpool_termination_detected',['../ttg_2parsec_2ttg_8h.html#a545323e30c662cc79a6781fc00bbaaa6',1,'ttg.h']]], + ['parsec_5fttg_5fcaller_980',['parsec_ttg_caller',['../namespacettg__parsec_1_1detail.html#adea6e8fb585cf518e803805499b16869',1,'ttg_parsec::detail']]], + ['parsec_5fttg_5fmax_5fam_5fsize_981',['PARSEC_TTG_MAX_AM_SIZE',['../namespacettg__parsec_1_1detail.html#a7e588351929c6eb7fd05ee067aa59eda',1,'ttg_parsec::detail']]], + ['parsec_5fttg_5frma_5ftag_982',['parsec_ttg_rma_tag',['../classttg__parsec_1_1_world_impl.html#a1a48b204f4c37b552647f195ffd8fbde',1,'ttg_parsec::WorldImpl']]], + ['parsec_5fttg_5ftag_983',['parsec_ttg_tag',['../classttg__parsec_1_1_world_impl.html#aa444d4b6882eac7542e53560ac2143a2',1,'ttg_parsec::WorldImpl']]], + ['parsec_5fttg_5ftask_5fbase_5ft_984',['parsec_ttg_task_base_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#aed030a12932a83cbd8380e75eaeab244',1,'ttg_parsec::detail::parsec_ttg_task_base_t::parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a4c4bdaf9dbfd84242d1a947539786097',1,'ttg_parsec::detail::parsec_ttg_task_base_t::parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['parsec_5fttg_5ftask_5ft_985',['parsec_ttg_task_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a3502860a4ddf6872c2e190f719665e6f',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::parsec_ttg_task_t()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a853337730210dccd59088db746f832dc',1,'ttg_parsec::detail::parsec_ttg_task_t::parsec_ttg_task_t()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a0555b703270f0c1a778490a046e92752',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::parsec_ttg_task_t()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a89dd19d2c4b7afbfe98a8d5c961d4fdc',1,'ttg_parsec::detail::parsec_ttg_task_t::parsec_ttg_task_t()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >']]], + ['parsec_5fttg_5ftask_5ft_3c_20tt_2c_20true_20_3e_986',['parsec_ttg_task_t< TT, true >',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html',1,'ttg_parsec::detail']]], + ['parsecttbase_987',['ParsecTTBase',['../structttg__parsec_1_1detail_1_1_parsec_t_t_base.html',1,'ttg_parsec::detail']]], + ['pascal_5ftag_988',['pascal_tag',['../structboost_1_1callable__traits_1_1detail_1_1pascal__tag.html',1,'boost::callable_traits::detail']]], + ['payload_5fsize_989',['payload_size',['../structttg__data__descriptor.html#aaf8e28bf8ec6ee0a2852ebd6c5beff6a',1,'ttg_data_descriptor::payload_size()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#a704e941f7d12becad7f53362a923f876',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::payload_size()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#ad578b8a4fc4118f8bbed56f9cfa0e087',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::payload_size()']]], + ['pbase_5fderived_5ffrom_5fstdstreambuf_990',['pbase_derived_from_stdstreambuf',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a5c8c6169be3bab9d374f1c56dac74c17',1,'ttg::detail::boost_optimized_oarchive::pbase_derived_from_stdstreambuf()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aede0c519ab40e239e49c5512a2f3cd1f',1,'ttg::detail::boost_optimized_iarchive::pbase_derived_from_stdstreambuf()']]], + ['pbase_5ftype_991',['pbase_type',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a4b716d6c60234fef947bfa87e5b71e16',1,'ttg::detail::boost_optimized_oarchive::pbase_type()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a2987b19cdc3534ab2b8d6b66c08c777b',1,'ttg::detail::boost_optimized_iarchive::pbase_type()']]], + ['persistent_992',['persistent',['../namespacettg__parsec.html#a7450fc9c257ec02b48bae32a73582584',1,'ttg_parsec']]], + ['persistent_5fvalue_5fref_993',['persistent_value_ref',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html',1,'ttg_parsec::detail']]], + ['pin_994',['pin',['../structttg__madness_1_1_buffer.html#a9074ae695f68f8ccd9d28194a2727115',1,'ttg_madness::Buffer::pin()'],['../structttg__parsec_1_1_buffer.html#a81d5a3ca306853a1f0db20a2cfb8d05f',1,'ttg_parsec::Buffer::pin()']]], + ['pin_5fon_995',['pin_on',['../structttg__madness_1_1_buffer.html#ad1d5bbed3ad77ef71788861acb4d311c',1,'ttg_madness::Buffer::pin_on()'],['../structttg__parsec_1_1_buffer.html#ab2aba12447a6ddbbf4a58559ee66d81b',1,'ttg_parsec::Buffer::pin_on()']]], + ['pkey_996',['pkey',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#abb07736d132548ee6293dc5deb51258d',1,'ttg_parsec::detail::parsec_ttg_task_t::pkey()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a04523540e04faaa2b90801e47635e0bf',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::pkey()']]], + ['pmd_997',['pmd',['../structboost_1_1callable__traits_1_1detail_1_1pmd.html',1,'boost::callable_traits::detail']]], + ['pmd_2ehpp_998',['pmd.hpp',['../pmd_8hpp.html',1,'']]], + ['pmd_3c_20d_20t_3a_3a_2a_20_3e_999',['pmd< D T::* >',['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html',1,'boost::callable_traits::detail']]], + ['pmf_1000',['pmf',['../structboost_1_1callable__traits_1_1detail_1_1pmf.html',1,'boost::callable_traits::detail']]], + ['pmf_2ehpp_1001',['pmf.hpp',['../unguarded_2pmf_8hpp.html',1,'(Global Namespace)'],['../pmf_8hpp.html',1,'(Global Namespace)']]], + ['pmf_3c_20return_28boost_5fclbl_5ftrts_5fcc_20t_3a_3a_2a_29_28args_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1002',['pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html',1,'']]], + ['pmf_3c_20return_28boost_5fclbl_5ftrts_5fvarargs_5fcc_20t_3a_3a_2a_29_28args_2e_2e_2e_2c_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1003',['pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html',1,'']]], + ['pmf_5f2_2ehpp_1004',['pmf_2.hpp',['../pmf__2_8hpp.html',1,'']]], + ['pmf_5f3_2ehpp_1005',['pmf_3.hpp',['../pmf__3_8hpp.html',1,'']]], + ['pmf_5f4_2ehpp_1006',['pmf_4.hpp',['../pmf__4_8hpp.html',1,'']]], + ['pmf_5fvarargs_2ehpp_1007',['pmf_varargs.hpp',['../pmf__varargs_8hpp.html',1,'']]], + ['pmf_5fvarargs_5f2_2ehpp_1008',['pmf_varargs_2.hpp',['../pmf__varargs__2_8hpp.html',1,'']]], + ['pmf_5fvarargs_5f3_2ehpp_1009',['pmf_varargs_3.hpp',['../pmf__varargs__3_8hpp.html',1,'']]], + ['pmf_5fvarargs_5f4_2ehpp_1010',['pmf_varargs_4.hpp',['../pmf__varargs__4_8hpp.html',1,'']]], + ['pointer_1011',['pointer',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#acde0c33d0e22fbf24cb697c251280b23',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['pool_1012',['Pool',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['pop_5fargs_5fback_1013',['pop_args_back',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a7fda4d2ff912846b365f4baedaff25fb',1,'boost::callable_traits::detail::function_object']]], + ['pop_5fargs_5ffront_1014',['pop_args_front',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a22495e4acdb0378e9ab53fb1321ffa96',1,'boost::callable_traits::detail::function_object']]], + ['pop_5fback_1015',['pop_back',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a91af131f99cf76b5a6407a9544b6d67a',1,'boost::callable_traits::detail::function< T & >::pop_back()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a28787feb72c51006b8097db90b010683',1,'boost::callable_traits::detail::function_object::pop_back()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a9a4e8383f249cd2d9d9f59c1dbb53447',1,'boost::callable_traits::detail::default_callable_traits::pop_back()']]], + ['pop_5ffront_1016',['pop_front',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a2352b432739e7a3a2fdf8abcc6c6e23e',1,'boost::callable_traits::detail::default_callable_traits::pop_front()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a450ac010a4dabfc5cbc2b9b555532746',1,'boost::callable_traits::detail::function< T & >::pop_front()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a647d71cafb3c0ef996956e3abff3f3d2',1,'boost::callable_traits::detail::function_object::pop_front()']]], + ['post_5fdevice_5fout_1017',['post_device_out',['../namespacettg__parsec_1_1detail.html#acfab5fde82e7fa34a3d65f33434d25f5',1,'ttg_parsec::detail::post_device_out()'],['../namespacettg__parsec.html#ab22c9936889e19bb34845fafcd699c9e',1,'ttg_parsec::post_device_out()'],['../namespacettg__madness.html#aefb743f08ad939f6bc8c8c35b2dab37f',1,'ttg_madness::post_device_out()']]], + ['prefer_5fdevice_1018',['prefer_device',['../structttg__parsec_1_1_buffer.html#a17ee629839b81f7e11adf24164f3116b',1,'ttg_parsec::Buffer']]], + ['prefix_5f_1019',['prefix_',['../classttg_1_1_debugger.html#ab46dd5a33dcac2b402f9830f4ef7ff62',1,'ttg::Debugger']]], + ['prepare_5fsend_1020',['prepare_send',['../classttg_1_1_out.html#a28fe7e17c6566c0d05e1da67619358ba',1,'ttg::Out::prepare_send()'],['../classttg__parsec_1_1_t_t.html#a0adf1b4025a43778edf349235715d7cc',1,'ttg_parsec::TT::prepare_send(const ttg::span< const Key > &keylist, const Value &value)'],['../classttg__parsec_1_1_t_t.html#abff9ecffebd797cef516b03aa34e20b6',1,'ttg_parsec::TT::prepare_send(const Value &value)'],['../classttg_1_1_in.html#a4b2504c174100cbbe19037a9aa4545ee',1,'ttg::In::prepare_send(const rangeT &keylist, Value &&value)'],['../classttg_1_1_in.html#a99f93f38cb84a01ce4fb9d3c2e1255e5',1,'ttg::In::prepare_send(Value &&value)'],['../classttg_1_1_out.html#a134aba0ef8bbdc2247e526f67d924dad',1,'ttg::Out::prepare_send()']]], + ['prepare_5fsend_5fcallback_5ftype_1021',['prepare_send_callback_type',['../classttg_1_1_in.html#ab5b414b67dd84715af67dcf3ef690d12',1,'ttg::In']]], + ['print_1022',['print',['../structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html#a842bbdcbc98bbdb5c7f2de0525e708cd',1,'ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >::print()'],['../structttg__data__descriptor.html#aea3c37f07e270d58aa7542109cab4b8d',1,'ttg_data_descriptor::print()'],['../structttg_1_1detail_1_1printer__helper.html#a18921c2ba224ad730515265569fe654e',1,'ttg::detail::printer_helper::print()'],['../namespacettg.html#aa3510e128b769afb53720d24fa83fb97',1,'ttg::print()']]], + ['print_2eh_1023',['print.h',['../print_8h.html',1,'']]], + ['print_5ferror_1024',['print_error',['../namespacettg.html#aacafa23974f833f3ac9c42ab4fbd7e68',1,'ttg']]], + ['print_5fhelper_1025',['print_helper',['../namespacettg_1_1detail.html#a0962faf06b5d64cf1a89638be19d0a58',1,'ttg::detail::print_helper(std::ostream &out, const T &t, const Ts &... ts)'],['../namespacettg_1_1detail.html#a3b97a6770819b8b1816c0d281c88cf77',1,'ttg::detail::print_helper(std::ostream &out)']]], + ['print_5fincomplete_5ftasks_1026',['print_incomplete_tasks',['../classttg__parsec_1_1_t_t.html#a157b07d80c68059bab321c3823d2869c',1,'ttg_parsec::TT']]], + ['print_5fmutex_5faccessor_1027',['print_mutex_accessor',['../namespacettg_1_1detail.html#a48cdb4d089881081f13eb32855a71f66',1,'ttg::detail']]], + ['print_5fseparator_1028',['print_separator',['../namespacettg.html#aa57f00b3a16b9fe8994078edb66ced24',1,'ttg']]], + ['print_5fseq_5fbegin_1029',['print_seq_begin',['../namespacettg.html#ae36c92288ec3e59936a61f688f2f7982',1,'ttg']]], + ['print_5fseq_5fend_1030',['print_seq_end',['../namespacettg.html#adb5fe5884bc96ef0e390206c5fdc52e4',1,'ttg']]], + ['print_5fseq_5fseparator_1031',['print_seq_separator',['../namespacettg.html#a001321e42bab8b9f07ea166da9034fff',1,'ttg']]], + ['printer_5fhelper_1032',['printer_helper',['../structttg_1_1detail_1_1printer__helper.html',1,'ttg::detail']]], + ['printer_5fhelper_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20is_5fprintable_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_1033',['printer_helper< T, std::enable_if_t< is_printable< T >::value > >',['../structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html',1,'ttg::detail']]], + ['probe_5fall_1034',['probe_all',['../structttg_1_1meta_1_1probe__all.html',1,'ttg::meta']]], + ['probe_5fall_3c_20is_5foutput_5fterminal_2c_20ts_2e_2e_2e_20_3e_1035',['probe_all< is_output_terminal, Ts... >',['../structttg_1_1meta_1_1probe__all.html',1,'ttg::meta']]], + ['probe_5fall_3c_20predicate_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1036',['probe_all< Predicate, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5fall_3c_20predicate_2c_20ts_2e_2e_2e_20_3e_1037',['probe_all< Predicate, Ts... >',['../structttg_1_1meta_1_1probe__all.html',1,'ttg::meta']]], + ['probe_5fall_3c_20predicate_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1038',['probe_all< Predicate, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5fall_5fv_1039',['probe_all_v',['../namespacettg_1_1meta.html#a6809e9edb959658388fc55c2c28e9484',1,'ttg::meta']]], + ['probe_5fany_1040',['probe_any',['../structttg_1_1meta_1_1probe__any.html',1,'ttg::meta']]], + ['probe_5fany_3c_20predicate_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1041',['probe_any< Predicate, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5fany_3c_20predicate_2c_20ts_2e_2e_2e_20_3e_1042',['probe_any< Predicate, Ts... >',['../structttg_1_1meta_1_1probe__any.html',1,'ttg::meta']]], + ['probe_5fany_3c_20predicate_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1043',['probe_any< Predicate, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__any_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5fany_5fv_1044',['probe_any_v',['../namespacettg_1_1meta.html#a63aa1a1397bd781ec8b3ca80c9e64c64',1,'ttg::meta']]], + ['probe_5ffirst_1045',['probe_first',['../structttg_1_1meta_1_1probe__first.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_20_3e_1046',['probe_first< Predicate, Default >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1047',['probe_first< Predicate, Default, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20t1_2c_20ts_2e_2e_2e_20_3e_1048',['probe_first< Predicate, Default, T1, Ts... >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20ts_2e_2e_2e_20_3e_1049',['probe_first< Predicate, Default, Ts... >',['../structttg_1_1meta_1_1probe__first.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1050',['probe_first< Predicate, Default, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_5fv_1051',['probe_first_v',['../namespacettg_1_1meta.html#a9f14059c69f74f3a81e07042b36a6156',1,'ttg::meta']]], + ['probe_5flast_1052',['probe_last',['../structttg_1_1meta_1_1probe__last.html',1,'ttg::meta']]], + ['probe_5flast_3c_20is_5fvoid_2c_20false_2c_20ts_2e_2e_2e_20_3e_1053',['probe_last< is_void, false, Ts... >',['../structttg_1_1meta_1_1probe__last.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_20_3e_1054',['probe_last< Predicate, Default >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1055',['probe_last< Predicate, Default, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20t_20_3e_1056',['probe_last< Predicate, Default, T >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20t1_2c_20ts_2e_2e_2e_20_3e_1057',['probe_last< Predicate, Default, T1, Ts... >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20ts_2e_2e_2e_20_3e_1058',['probe_last< Predicate, Default, Ts... >',['../structttg_1_1meta_1_1probe__last.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1059',['probe_last< Predicate, Default, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5flast_5fv_1060',['probe_last_v',['../namespacettg_1_1meta.html#a1ec850718d587be5b61845eaa8f55528',1,'ttg::meta']]], + ['process_5freturn_1061',['process_return',['../class_callable_wrap_t_t_args.html#aedf10ef59239bd3c8682012fb45aab53',1,'CallableWrapTTArgs']]], + ['profile_5foff_1062',['profile_off',['../classttg__parsec_1_1_world_impl.html#a4f0f3b552c1a3fc949f715d957129701',1,'ttg_parsec::WorldImpl::profile_off()'],['../classttg_1_1base_1_1_world.html#a76b803f256dea63be319e554c79df3d8',1,'ttg::base::World::profile_off()'],['../classttg_1_1base_1_1_world_impl_base.html#a7a0e83a9cd728fd56fb85245493cae39',1,'ttg::base::WorldImplBase::profile_off()']]], + ['profile_5fon_1063',['profile_on',['../classttg__parsec_1_1_world_impl.html#ad4f99fc6c215bdaceb6d1c3fbbadfaf2',1,'ttg_parsec::WorldImpl::profile_on()'],['../classttg_1_1base_1_1_world.html#a1172a34d335eb0bf14f358a7c0b6a775',1,'ttg::base::World::profile_on()'],['../classttg_1_1base_1_1_world_impl_base.html#a7bb31c85545ee1231cc07fa76283a5d1',1,'ttg::base::WorldImplBase::profile_on()']]], + ['profiling_1064',['profiling',['../classttg__parsec_1_1_world_impl.html#a7ad2c7cfea43ec89bff0002603160a45',1,'ttg_parsec::WorldImpl::profiling()'],['../classttg_1_1base_1_1_world.html#aad02b3b19f41452e32dc3bc911a2188d',1,'ttg::base::World::profiling()'],['../classttg_1_1base_1_1_world_impl_base.html#a4bf92b1c34c33c97ed52e28ab50f5584',1,'ttg::base::WorldImplBase::profiling()']]], + ['promise_5ftype_1065',['promise_type',['../structttg_1_1resumable__task.html#abc863bef6a3eacc4dd614cd253742122',1,'ttg::resumable_task']]], + ['ptr_1066',['Ptr',['../namespacettg.html#a7a6518193113343addafa372e4200a93',1,'ttg::Ptr()'],['../structttg__parsec_1_1_ptr.html#a28137dd99af961bef821688060be0a15',1,'ttg_parsec::Ptr::Ptr()=default'],['../structttg__parsec_1_1_ptr.html#a3b23a0ed87741cf829296384bf5605e8',1,'ttg_parsec::Ptr::Ptr(Ptr &&p)=default'],['../structttg__parsec_1_1_ptr.html#adc52848bcb93e76089ef9ec37344b33c',1,'ttg_parsec::Ptr::Ptr(const Ptr &p)']]], + ['ptr_1067',['ptr',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#a9e1669b53858975661dacd4eae3c5c4b',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::ptr()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#ac06bc5b64bafee66082302031c13eca0',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::ptr()']]], + ['ptr_1068',['Ptr',['../structttg__madness_1_1_ptr.html',1,'ttg_madness::Ptr< T >'],['../structttg__parsec_1_1_ptr.html',1,'ttg_parsec::Ptr< T >']]], + ['ptr_1069',['ptr',['../structttg__parsec_1_1ptr.html',1,'ttg_parsec']]], + ['ptr_2eh_1070',['ptr.h',['../parsec_2ptr_8h.html',1,'(Global Namespace)'],['../ptr_8h.html',1,'(Global Namespace)']]], + ['ptr_5fimpl_1071',['ptr_impl',['../structttg__parsec_1_1detail_1_1ptr__impl.html#a3cb9e1ee6ad948296ad10583a11f256b',1,'ttg_parsec::detail::ptr_impl::ptr_impl(ptr_impl &&p)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#a7e7445d185fae740185ae00ec50e1211',1,'ttg_parsec::detail::ptr_impl::ptr_impl(const ptr_impl &p)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#a3d59e4676b69f4e3e5e2136bee544b84',1,'ttg_parsec::detail::ptr_impl::ptr_impl(copy_type *copy)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html',1,'ttg_parsec::detail::ptr_impl']]], + ['pull_20terminals_20design_20notes_1072',['Pull Terminals Design Notes',['../_design-_pull.html',1,'']]], + ['pull_2dterminal_2ddesign_2ddoc_2emd_1073',['Pull-terminal-design-doc.md',['../_pull-terminal-design-doc_8md.html',1,'']]], + ['push_5fback_1074',['push_back',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a51ee162aa856c4db77bc6a124a381f30',1,'boost::callable_traits::detail::function_object::push_back()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1bee4aa1d2da8d987e676e4d761476b6',1,'boost::callable_traits::detail::function< T & >::push_back()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa2996bbbcbfb6e3f4d1bf1f36979af37',1,'boost::callable_traits::detail::default_callable_traits::push_back()']]], + ['push_5ffront_1075',['push_front',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a65cd02d2b21e66983260168927312b81',1,'boost::callable_traits::detail::function_object::push_front()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1534a0f679d71201e8bd06476895c8a6',1,'boost::callable_traits::detail::function< T & >::push_front()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a890c4b768ba4c30ff3a22e8109dfa2b8',1,'boost::callable_traits::detail::default_callable_traits::push_front()']]] +]; diff --git a/dox-master/search/classes_0.html b/dox-master/search/classes_0.html new file mode 100644 index 000000000..af8159ee6 --- /dev/null +++ b/dox-master/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_0.js b/dox-master/search/classes_0.js new file mode 100644 index 000000000..6e13fc655 --- /dev/null +++ b/dox-master/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5f_1558',['_',['../structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html',1,'boost::callable_traits::detail::success']]] +]; diff --git a/dox-master/search/classes_1.html b/dox-master/search/classes_1.html new file mode 100644 index 000000000..576e91689 --- /dev/null +++ b/dox-master/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_1.js b/dox-master/search/classes_1.js new file mode 100644 index 000000000..9119c1886 --- /dev/null +++ b/dox-master/search/classes_1.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['add_5fmember_5fconst_1559',['add_member_const',['../structboost_1_1callable__traits_1_1add__member__const.html',1,'boost::callable_traits']]], + ['add_5fmember_5fconst_5fimpl_1560',['add_member_const_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fconst_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5fconst_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1561',['add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fcv_1562',['add_member_cv',['../structboost_1_1callable__traits_1_1add__member__cv.html',1,'boost::callable_traits']]], + ['add_5fmember_5fcv_5fimpl_1563',['add_member_cv_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fcv_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5fcv_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1564',['add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5flvalue_5freference_1565',['add_member_lvalue_reference',['../structboost_1_1callable__traits_1_1add__member__lvalue__reference.html',1,'boost::callable_traits']]], + ['add_5fmember_5flvalue_5freference_5fimpl_1566',['add_member_lvalue_reference_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5flvalue_5freference_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5flvalue_5freference_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1567',['add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5frvalue_5freference_1568',['add_member_rvalue_reference',['../structboost_1_1callable__traits_1_1add__member__rvalue__reference.html',1,'boost::callable_traits']]], + ['add_5fmember_5frvalue_5freference_5fimpl_1569',['add_member_rvalue_reference_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5frvalue_5freference_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5frvalue_5freference_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1570',['add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fvolatile_1571',['add_member_volatile',['../structboost_1_1callable__traits_1_1add__member__volatile.html',1,'boost::callable_traits']]], + ['add_5fmember_5fvolatile_5fimpl_1572',['add_member_volatile_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fmember_5fvolatile_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fmember_5fvolatile_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1573',['add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html',1,'boost::callable_traits::detail']]], + ['add_5fnoexcept_1574',['add_noexcept',['../structboost_1_1callable__traits_1_1add__noexcept.html',1,'boost::callable_traits']]], + ['add_5fnoexcept_5ft_1575',['add_noexcept_t',['../structboost_1_1callable__traits_1_1add__noexcept__t.html',1,'boost::callable_traits']]], + ['add_5ftransaction_5fsafe_1576',['add_transaction_safe',['../structboost_1_1callable__traits_1_1add__transaction__safe.html',1,'boost::callable_traits']]], + ['add_5ftransaction_5fsafe_5ft_1577',['add_transaction_safe_t',['../structboost_1_1callable__traits_1_1add__transaction__safe__t.html',1,'boost::callable_traits']]], + ['add_5fvarargs_1578',['add_varargs',['../structboost_1_1callable__traits_1_1add__varargs.html',1,'boost::callable_traits']]], + ['add_5fvarargs_5fimpl_1579',['add_varargs_impl',['../structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.html',1,'boost::callable_traits::detail']]], + ['add_5fvarargs_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20add_5fvarargs_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1580',['add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isebb1b3f4b3764f1094c0ca20cf2ce92f.html',1,'boost::callable_traits::detail']]], + ['apply_5fmember_5fpointer_1581',['apply_member_pointer',['../structboost_1_1callable__traits_1_1apply__member__pointer.html',1,'boost::callable_traits']]], + ['apply_5fmember_5fpointer_5fimpl_1582',['apply_member_pointer_impl',['../structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.html',1,'boost::callable_traits::detail']]], + ['apply_5fmember_5fpointer_5fimpl_3c_20t_2c_20c_2c_20typename_20std_3a_3ais_5fsame_3c_20apply_5fmember_5fpointer_5ft_3c_20t_2c_20c_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1583',['apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_1584',['apply_return',['../structboost_1_1callable__traits_1_1apply__return.html',1,'boost::callable_traits']]], + ['apply_5freturn_5fhelper_1585',['apply_return_helper',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_5fhelper_3c_20std_3a_3atuple_3c_20args_2e_2e_2e_20_3e_2c_20r_20_3e_1586',['apply_return_helper< std::tuple< Args... >, R >',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_5fimpl_1587',['apply_return_impl',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.html',1,'boost::callable_traits::detail']]], + ['apply_5freturn_5fimpl_3c_20t_2c_20r_2c_20typename_20std_3a_3ais_5fsame_3c_20apply_5freturn_5ft_3c_20t_2c_20r_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1588',['apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html',1,'boost::callable_traits::detail']]], + ['args_1589',['args',['../structboost_1_1callable__traits_1_1args.html',1,'boost::callable_traits']]], + ['args_5fimpl_1590',['args_impl',['../structboost_1_1callable__traits_1_1detail_1_1args__impl.html',1,'boost::callable_traits::detail']]], + ['args_5fimpl_3c_20t_2c_20container_2c_20typename_20std_3a_3ais_5fsame_3c_20args_5ft_3c_20t_2c_20container_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1591',['args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html',1,'boost::callable_traits::detail']]], + ['args_5fimpl_3c_20t_2c_20std_3a_3atuple_20_3e_1592',['args_impl< T, std::tuple >',['../structboost_1_1callable__traits_1_1detail_1_1args__impl.html',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/classes_10.html b/dox-master/search/classes_10.html new file mode 100644 index 000000000..4af2c805a --- /dev/null +++ b/dox-master/search/classes_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_10.js b/dox-master/search/classes_10.js new file mode 100644 index 000000000..f33c3e807 --- /dev/null +++ b/dox-master/search/classes_10.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['reducer_5ftask_5ft_1858',['reducer_task_t',['../structttg__parsec_1_1detail_1_1reducer__task__t.html',1,'ttg_parsec::detail']]], + ['reference_5ferror_1859',['reference_error',['../structboost_1_1callable__traits_1_1detail_1_1reference__error.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fconst_1860',['remove_member_const',['../structboost_1_1callable__traits_1_1remove__member__const.html',1,'boost::callable_traits']]], + ['remove_5fmember_5fconst_5fimpl_1861',['remove_member_const_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fconst_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5fconst_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1862',['remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fcv_1863',['remove_member_cv',['../structboost_1_1callable__traits_1_1remove__member__cv.html',1,'boost::callable_traits']]], + ['remove_5fmember_5fcv_5fimpl_1864',['remove_member_cv_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fcv_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5fcv_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1865',['remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5freference_1866',['remove_member_reference',['../structboost_1_1callable__traits_1_1remove__member__reference.html',1,'boost::callable_traits']]], + ['remove_5fmember_5freference_5fimpl_1867',['remove_member_reference_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5freference_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5freference_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1868',['remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typenamcb09f71f583ed9400b45e4d1a52d5e8f.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fvolatile_1869',['remove_member_volatile',['../structboost_1_1callable__traits_1_1remove__member__volatile.html',1,'boost::callable_traits']]], + ['remove_5fmember_5fvolatile_5fimpl_1870',['remove_member_volatile_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fmember_5fvolatile_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fmember_5fvolatile_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1871',['remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html',1,'boost::callable_traits::detail']]], + ['remove_5fnoexcept_1872',['remove_noexcept',['../structboost_1_1callable__traits_1_1remove__noexcept.html',1,'boost::callable_traits']]], + ['remove_5fnoexcept_5fimpl_1873',['remove_noexcept_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fnoexcept_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fnoexcept_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1874',['remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html',1,'boost::callable_traits::detail']]], + ['remove_5ftransaction_5fsafe_1875',['remove_transaction_safe',['../structboost_1_1callable__traits_1_1remove__transaction__safe.html',1,'boost::callable_traits']]], + ['remove_5ftransaction_5fsafe_5fimpl_1876',['remove_transaction_safe_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5ftransaction_5fsafe_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5ftransaction_5fsafe_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1877',['remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html',1,'boost::callable_traits::detail']]], + ['remove_5fvarargs_1878',['remove_varargs',['../structboost_1_1callable__traits_1_1remove__varargs.html',1,'boost::callable_traits']]], + ['remove_5fvarargs_5fimpl_1879',['remove_varargs_impl',['../structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.html',1,'boost::callable_traits::detail']]], + ['remove_5fvarargs_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20remove_5fvarargs_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1880',['remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html',1,'boost::callable_traits::detail']]], + ['resumable_5ftask_1881',['resumable_task',['../structttg_1_1resumable__task.html',1,'ttg']]], + ['resumable_5ftask_5fevents_1882',['resumable_task_events',['../structttg_1_1resumable__task__events.html',1,'ttg']]], + ['resumable_5ftask_5fstate_1883',['resumable_task_state',['../structttg_1_1resumable__task__state.html',1,'ttg']]], + ['return_5ftype_1884',['return_type',['../structboost_1_1callable__traits_1_1return__type.html',1,'boost::callable_traits']]], + ['return_5ftype_5fimpl_1885',['return_type_impl',['../structboost_1_1callable__traits_1_1detail_1_1return__type__impl.html',1,'boost::callable_traits::detail']]], + ['return_5ftype_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20return_5ftype_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1886',['return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html',1,'boost::callable_traits::detail']]], + ['rma_5fdelayed_5factivate_1887',['rma_delayed_activate',['../classttg__parsec_1_1detail_1_1rma__delayed__activate.html',1,'ttg_parsec::detail']]], + ['runtime_5ftraits_1888',['runtime_traits',['../structttg_1_1runtime__traits.html',1,'ttg']]], + ['runtime_5ftraits_3c_20runtime_3a_3amadworld_20_3e_1889',['runtime_traits< Runtime::MADWorld >',['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html',1,'ttg']]], + ['runtime_5ftraits_3c_20runtime_3a_3aparsec_20_3e_1890',['runtime_traits< Runtime::PaRSEC >',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html',1,'ttg']]] +]; diff --git a/dox-master/search/classes_11.html b/dox-master/search/classes_11.html new file mode 100644 index 000000000..ed167c849 --- /dev/null +++ b/dox-master/search/classes_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_11.js b/dox-master/search/classes_11.js new file mode 100644 index 000000000..4ab3c28e4 --- /dev/null +++ b/dox-master/search/classes_11.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['set_5ffunction_5fqualifiers_5ft_1891',['set_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_1892',['set_member_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__member__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1893',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html',1,'']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1894',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html',1,'']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1895',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html',1,'']]], + ['set_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1896',['set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html',1,'']]], + ['set_5fvarargs_5ffunction_5fqualifiers_5ft_1897',['set_varargs_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_1898',['set_varargs_member_function_qualifiers_t',['../structboost_1_1callable__traits_1_1detail_1_1set__varargs__member__function__qualifiers__t.html',1,'boost::callable_traits::detail']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1899',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html',1,'']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20false_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1900',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html',1,'']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20false_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1901',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html',1,'']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_5ft_3c_20flag_5fmap_3c_20int_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20_3e_3a_3avalue_2c_20true_2c_20true_2c_20boost_5fclbl_5ftrts_5fcc_5ftag_2c_20t_2c_20return_2c_20args_2e_2e_2e_20_3e_1902',['set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >',['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html',1,'']]], + ['sfinae_5ferror_1903',['sfinae_error',['../structboost_1_1callable__traits_1_1detail_1_1sfinae__error.html',1,'boost::callable_traits::detail']]], + ['sinktt_1904',['SinkTT',['../classttg_1_1_sink_t_t.html',1,'ttg']]], + ['span_1905',['span',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html',1,'TCB_SPAN_NAMESPACE_NAME']]], + ['span_5fstorage_1906',['span_storage',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['span_5fstorage_3c_20e_2c_20dynamic_5fextent_20_3e_1907',['span_storage< E, dynamic_extent >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['span_5fstorage_3c_20elementtype_2c_20extent_20_3e_1908',['span_storage< ElementType, Extent >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['splitmetadatadescriptor_1909',['SplitMetadataDescriptor',['../structttg_1_1_split_metadata_descriptor.html',1,'ttg']]], + ['stdcall_5ftag_1910',['stdcall_tag',['../structboost_1_1callable__traits_1_1detail_1_1stdcall__tag.html',1,'boost::callable_traits::detail']]], + ['stream_5finfo_5ft_1911',['stream_info_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['substitution_5ffailure_1912',['substitution_failure',['../structboost_1_1callable__traits_1_1detail_1_1substitution__failure.html',1,'boost::callable_traits::detail']]], + ['success_1913',['success',['../structboost_1_1callable__traits_1_1detail_1_1success.html',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/classes_12.html b/dox-master/search/classes_12.html new file mode 100644 index 000000000..90bc9f579 --- /dev/null +++ b/dox-master/search/classes_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_12.js b/dox-master/search/classes_12.js new file mode 100644 index 000000000..670dd0c97 --- /dev/null +++ b/dox-master/search/classes_12.js @@ -0,0 +1,48 @@ +var searchData= +[ + ['take_5ffirst_5fn_1914',['take_first_n',['../structttg_1_1meta_1_1take__first__n.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20n_20_3e_1915',['take_first_n< std::tuple< Ts... >, N >',['../structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20n_20_3e_1916',['take_first_n< typelist< Ts... >, N >',['../structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_1917',['take_first_n_helper',['../structttg_1_1meta_1_1take__first__n__helper.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3atuple_3c_20u_2c_20us_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_1918',['take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3atuple_3c_20us_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_1919',['take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>',['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20typelist_3c_20u_2c_20us_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_1920',['take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html',1,'ttg::meta']]], + ['take_5ffirst_5fn_5fhelper_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20typelist_3c_20us_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_1921',['take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>',['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html',1,'ttg::meta']]], + ['terminalbase_1922',['TerminalBase',['../classttg_1_1_terminal_base.html',1,'ttg']]], + ['terminals_5fto_5fedges_1923',['terminals_to_edges',['../structttg_1_1terminals__to__edges.html',1,'ttg']]], + ['terminals_5fto_5fedges_3c_20std_3a_3atuple_3c_20termst_2e_2e_2e_20_3e_20_3e_1924',['terminals_to_edges< std::tuple< termsT... > >',['../structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html',1,'ttg']]], + ['test_5finvoke_1925',['test_invoke',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke.html',1,'boost::callable_traits::detail']]], + ['test_5finvoke_3c_20function_3c_20f_20_3e_2c_20true_20_3e_1926',['test_invoke< function< F >, true >',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html',1,'boost::callable_traits::detail']]], + ['test_5finvoke_3c_20pmd_3c_20pmd_20_3e_2c_20ignored_20_3e_1927',['test_invoke< pmd< Pmd >, Ignored >',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html',1,'boost::callable_traits::detail']]], + ['test_5finvoke_3c_20pmf_3c_20pmf_20_3e_2c_20ignored_20_3e_1928',['test_invoke< pmf< Pmf >, Ignored >',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html',1,'boost::callable_traits::detail']]], + ['traverse_1929',['Traverse',['../classttg_1_1detail_1_1_traverse.html',1,'ttg::detail::Traverse'],['../classttg_1_1_traverse.html',1,'ttg::Traverse< TTVisitor, InVisitor, OutVisitor >']]], + ['tt_1930',['TT',['../classttg__madness_1_1_t_t.html',1,'ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >'],['../classttg__parsec_1_1_t_t.html',1,'ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >']]], + ['tt_3c_20int_2c_20std_3a_3atuple_3c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_20_3e_2c_20binarytreebroadcast_3c_20value_2c_20int_20_3e_2c_20ttg_3a_3atypelist_3c_20value_20_3e_20_3e_1931',['TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > >',['../classttg__parsec_1_1_t_t.html',1,'ttg_parsec']]], + ['tt_3c_20int_2c_20std_3a_3atuple_3c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20int_2c_20value_20_3e_2c_20out_3c_20outkey_2c_20value_20_3e_20_3e_2c_20binarytreereduce_3c_20value_2c_20binaryop_2c_20outkey_20_3e_2c_20ttg_3a_3atypelist_3c_20value_2c_20value_2c_20value_20_3e_20_3e_1932',['TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > >',['../classttg__parsec_1_1_t_t.html',1,'ttg_parsec']]], + ['ttbase_1933',['TTBase',['../classttg_1_1_t_t_base.html',1,'ttg']]], + ['ttg_1934',['TTG',['../classttg_1_1_t_t_g.html',1,'ttg']]], + ['ttg_5fdata_5fcopy_5fcontainer_5fsetter_1935',['ttg_data_copy_container_setter',['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5fcontainer_5fsetter_3c_20ttg_5fdata_5fcopy_5ft_20_3e_1936',['ttg_data_copy_container_setter< ttg_data_copy_t >',['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5fcontainer_5fsetter_3c_20ttg_5fparsec_3a_3adetail_3a_3attg_5fdata_5fcopy_5ft_20_3e_1937',['ttg_data_copy_container_setter< ttg_parsec::detail::ttg_data_copy_t >',['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5fself_5ft_1938',['ttg_data_copy_self_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5ft_1939',['ttg_data_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fdescriptor_1940',['ttg_data_descriptor',['../structttg__data__descriptor.html',1,'']]], + ['ttg_5fdata_5fvalue_5fcopy_5ft_1941',['ttg_data_value_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html',1,'ttg_parsec::detail']]], + ['ttg_5fparsec_5fdata_5fwrapper_5ft_1942',['ttg_parsec_data_wrapper_t',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html',1,'ttg_parsec::detail']]], + ['ttvalue_1943',['TTValue',['../structttg__madness_1_1_t_t_value.html',1,'ttg_madness::TTValue< DerivedT >'],['../structttg__parsec_1_1_t_t_value.html',1,'ttg_parsec::TTValue< DerivedT >']]], + ['tuple_5fconcat_1944',['tuple_concat',['../structttg_1_1meta_1_1tuple__concat.html',1,'ttg::meta']]], + ['tuple_5fconcat_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1945',['tuple_concat< std::tuple< Ts... > >',['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['tuple_5fconcat_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3atuple_3c_20us_2e_2e_2e_20_3e_2c_20r_2e_2e_2e_20_3e_1946',['tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >',['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html',1,'ttg::meta']]], + ['tuple_5felement_3c_20i_2c_20tcb_5fspan_5fnamespace_5fname_3a_3aspan_3c_20elementtype_2c_20extent_20_3e_20_3e_1947',['tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >',['../classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html',1,'std']]], + ['tuple_5felement_3c_20i_2c_20ttg_3a_3ameta_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1948',['tuple_element< I, ttg::meta::typelist< Ts... > >',['../structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20tcb_5fspan_5fnamespace_5fname_3a_3aspan_3c_20elementtype_2c_20extent_20_3e_20_3e_1949',['tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >',['../classstd_1_1tuple__size_3_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_01_element_type_00_01_extent_01_4_01_4.html',1,'std']]], + ['tuple_5fsize_3c_20ttg_3a_3ameta_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1950',['tuple_size< ttg::meta::typelist< Ts... > >',['../structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'std']]], + ['type_5fidentity_1951',['type_identity',['../structttg_1_1meta_1_1type__identity.html',1,'ttg::meta']]], + ['typelist_1952',['typelist',['../structttg_1_1meta_1_1typelist.html',1,'ttg::meta']]], + ['typelist_5fis_5fempty_1953',['typelist_is_empty',['../structttg_1_1meta_1_1typelist__is__empty.html',1,'ttg::meta']]], + ['typelist_5fis_5fnot_5fempty_1954',['typelist_is_not_empty',['../structttg_1_1meta_1_1typelist__is__not__empty.html',1,'ttg::meta']]], + ['typelist_5fsize_1955',['typelist_size',['../structttg_1_1meta_1_1typelist__size.html',1,'ttg::meta']]], + ['typelist_5fsize_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1956',['typelist_size< typelist< Ts... > >',['../structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['typelist_5fto_5ftuple_1957',['typelist_to_tuple',['../structttg_1_1meta_1_1typelist__to__tuple.html',1,'ttg::meta']]], + ['typelist_5fto_5ftuple_3c_20typelist_3c_20t_2e_2e_2e_20_3e_20_3e_1958',['typelist_to_tuple< typelist< T... > >',['../structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html',1,'ttg::meta']]] +]; diff --git a/dox-master/search/classes_13.html b/dox-master/search/classes_13.html new file mode 100644 index 000000000..fadc16048 --- /dev/null +++ b/dox-master/search/classes_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_13.js b/dox-master/search/classes_13.js new file mode 100644 index 000000000..0e2e5c0fd --- /dev/null +++ b/dox-master/search/classes_13.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['unsigned_5fint_1959',['unsigned_int',['../structboost_1_1serialization_1_1unsigned__int.html',1,'boost::serialization']]], + ['unwrap_5freference_5ft_1960',['unwrap_reference_t',['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html',1,'boost::callable_traits::detail']]], + ['unwrap_5freference_5ft_3c_20t_2c_20is_5freference_5fwrapper_3c_20t_20_3e_20_3e_1961',['unwrap_reference_t< T, is_reference_wrapper< T > >',['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/classes_14.html b/dox-master/search/classes_14.html new file mode 100644 index 000000000..ad373c80c --- /dev/null +++ b/dox-master/search/classes_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_14.js b/dox-master/search/classes_14.js new file mode 100644 index 000000000..c2762caaa --- /dev/null +++ b/dox-master/search/classes_14.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['value_5fcopy_5fhandler_1962',['value_copy_handler',['../structttg_1_1detail_1_1value__copy__handler.html',1,'ttg::detail']]], + ['value_5fcopy_5fhandler_3c_20ttg_3a_3aruntime_3a_3aparsec_20_3e_1963',['value_copy_handler< ttg::Runtime::PaRSEC >',['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html',1,'ttg::detail']]], + ['void_1964',['Void',['../classttg_1_1_void.html',1,'ttg']]], + ['void_5fto_5fvoid_1965',['void_to_Void',['../structttg_1_1meta_1_1void__to___void.html',1,'ttg::meta']]], + ['void_5fto_5fvoid_3c_20void_20_3e_1966',['void_to_Void< void >',['../structttg_1_1meta_1_1void__to___void_3_01void_01_4.html',1,'ttg::meta']]] +]; diff --git a/dox-master/search/classes_15.html b/dox-master/search/classes_15.html new file mode 100644 index 000000000..55e6be461 --- /dev/null +++ b/dox-master/search/classes_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_15.js b/dox-master/search/classes_15.js new file mode 100644 index 000000000..da6ae79cc --- /dev/null +++ b/dox-master/search/classes_15.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['world_1967',['World',['../classttg_1_1base_1_1_world.html',1,'ttg::base::World< WorldImplT >'],['../classttg_1_1_world.html',1,'ttg::World']]], + ['world_3c_20ttg_5fimpl_5fns_3a_3aworldimpl_20_3e_1968',['World< TTG_IMPL_NS::WorldImpl >',['../classttg_1_1base_1_1_world.html',1,'ttg::base']]], + ['worldimpl_1969',['WorldImpl',['../classttg__madness_1_1_world_impl.html',1,'ttg_madness::WorldImpl'],['../classttg__parsec_1_1_world_impl.html',1,'ttg_parsec::WorldImpl']]], + ['worldimplbase_1970',['WorldImplBase',['../classttg_1_1base_1_1_world_impl_base.html',1,'ttg::base']]] +]; diff --git a/dox-master/search/classes_2.html b/dox-master/search/classes_2.html new file mode 100644 index 000000000..956405e5a --- /dev/null +++ b/dox-master/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_2.js b/dox-master/search/classes_2.js new file mode 100644 index 000000000..47fdf4273 --- /dev/null +++ b/dox-master/search/classes_2.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['backtrace_1593',['Backtrace',['../classttg_1_1detail_1_1_backtrace.html',1,'ttg::detail']]], + ['binaryspanningtree_1594',['BinarySpanningTree',['../classttg_1_1_binary_spanning_tree.html',1,'ttg']]], + ['binarytreebroadcast_1595',['BinaryTreeBroadcast',['../classttg_1_1_binary_tree_broadcast.html',1,'ttg']]], + ['binarytreereduce_1596',['BinaryTreeReduce',['../classttg_1_1_binary_tree_reduce.html',1,'ttg']]], + ['boost_5foptimized_5fiarchive_1597',['boost_optimized_iarchive',['../classttg_1_1detail_1_1boost__optimized__iarchive.html',1,'ttg::detail']]], + ['boost_5foptimized_5foarchive_1598',['boost_optimized_oarchive',['../classttg_1_1detail_1_1boost__optimized__oarchive.html',1,'ttg::detail']]], + ['buffer_1599',['Buffer',['../structttg__madness_1_1_buffer.html',1,'ttg_madness::Buffer< T, Allocator >'],['../structttg__parsec_1_1_buffer.html',1,'ttg_parsec::Buffer< T, Allocator >']]], + ['byte_5fistreambuf_1600',['byte_istreambuf',['../classttg_1_1detail_1_1byte__istreambuf.html',1,'ttg::detail']]], + ['byte_5fostreambuf_1601',['byte_ostreambuf',['../classttg_1_1detail_1_1byte__ostreambuf.html',1,'ttg::detail']]] +]; diff --git a/dox-master/search/classes_3.html b/dox-master/search/classes_3.html new file mode 100644 index 000000000..d33343bc1 --- /dev/null +++ b/dox-master/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_3.js b/dox-master/search/classes_3.js new file mode 100644 index 000000000..271716e6d --- /dev/null +++ b/dox-master/search/classes_3.js @@ -0,0 +1,30 @@ +var searchData= +[ + ['callable_5fdummy_1602',['callable_dummy',['../structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html',1,'boost::callable_traits::detail']]], + ['callablewraptt_1603',['CallableWrapTT',['../class_callable_wrap_t_t.html',1,'']]], + ['callablewrapttargs_1604',['CallableWrapTTArgs',['../class_callable_wrap_t_t_args.html',1,'']]], + ['callablewrapttargsastypelist_1605',['CallableWrapTTArgsAsTypelist',['../struct_callable_wrap_t_t_args_as_typelist.html',1,'']]], + ['callablewrapttargsastypelist_3c_20funct_2c_20returnt_2c_20funct_5freceives_5foutterm_5ftuple_2c_20space_2c_20keyt_2c_20output_5fterminalst_2c_20std_3a_3atuple_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_1606',['CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >',['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html',1,'']]], + ['callablewrapttargsastypelist_3c_20funct_2c_20returnt_2c_20funct_5freceives_5foutterm_5ftuple_2c_20space_2c_20keyt_2c_20output_5fterminalst_2c_20ttg_3a_3ameta_3a_3atypelist_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_1607',['CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >',['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html',1,'']]], + ['callablewrapttunwraptypelist_1608',['CallableWrapTTUnwrapTypelist',['../struct_callable_wrap_t_t_unwrap_typelist.html',1,'']]], + ['callablewrapttunwraptypelist_3c_20funct_2c_20funct_5freceives_5foutterm_5ftuple_2c_20keyt_2c_20output_5fterminalst_2c_20std_3a_3atuple_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_1609',['CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >',['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html',1,'']]], + ['callablewrapttunwraptypelist_3c_20funct_2c_20funct_5freceives_5foutterm_5ftuple_2c_20keyt_2c_20output_5fterminalst_2c_20ttg_3a_3ameta_3a_3atypelist_3c_20input_5fvaluest_2e_2e_2e_20_3e_20_3e_1610',['CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >',['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html',1,'']]], + ['can_5fdereference_5ft_1611',['can_dereference_t',['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html',1,'boost::callable_traits::detail']]], + ['candidate_5fargument_5fbindings_1612',['candidate_argument_bindings',['../structttg_1_1meta_1_1candidate__argument__bindings.html',1,'ttg::meta']]], + ['candidate_5fargument_5fbindings_3c_20const_20void_2c_20void_20_3e_1613',['candidate_argument_bindings< const void, void >',['../structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html',1,'ttg::meta']]], + ['candidate_5fargument_5fbindings_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_21std_3a_3ais_5freference_5fv_3c_20t_20_3e_20_26_26_21std_3a_3ais_5fvoid_5fv_3c_20t_20_3e_20_3e_20_3e_1614',['candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >',['../structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html',1,'ttg::meta']]], + ['candidate_5fargument_5fbindings_3c_20void_2c_20void_20_3e_1615',['candidate_argument_bindings< void, void >',['../structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html',1,'ttg::meta']]], + ['cdecl_5ftag_1616',['cdecl_tag',['../structboost_1_1callable__traits_1_1detail_1_1cdecl__tag.html',1,'boost::callable_traits::detail']]], + ['check_1617',['check',['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t_1_1check.html',1,'boost::callable_traits::detail::can_dereference_t< T >::check< typename >'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html',1,'boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value >']]], + ['class_5fof_1618',['class_of',['../structboost_1_1callable__traits_1_1class__of.html',1,'boost::callable_traits']]], + ['class_5fof_5fimpl_1619',['class_of_impl',['../structboost_1_1callable__traits_1_1detail_1_1class__of__impl.html',1,'boost::callable_traits::detail']]], + ['class_5fof_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20class_5fof_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1620',['class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html',1,'boost::callable_traits::detail']]], + ['concat_1621',['concat',['../structboost_1_1callable__traits_1_1detail_1_1concat.html',1,'boost::callable_traits::detail']]], + ['concat_3c_20index_5fsequence_3c_20i1_2e_2e_2e_20_3e_2c_20index_5fsequence_3c_20i2_2e_2e_2e_20_3e_20_3e_1622',['concat< index_sequence< I1... >, index_sequence< I2... > >',['../structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.html',1,'boost::callable_traits::detail']]], + ['containerwrapper_1623',['ContainerWrapper',['../structttg_1_1detail_1_1_container_wrapper.html',1,'ttg::detail']]], + ['containerwrapper_3c_20keyt_2c_20void_20_3e_1624',['ContainerWrapper< keyT, void >',['../structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html',1,'ttg::detail']]], + ['containerwrapper_3c_20ttg_3a_3avoid_2c_20valuet_20_3e_1625',['ContainerWrapper< ttg::Void, valueT >',['../structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html',1,'ttg::detail']]], + ['containerwrapper_3c_20void_2c_20valuet_20_3e_1626',['ContainerWrapper< void, valueT >',['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html',1,'ttg::detail']]], + ['containerwrapper_3c_20void_2c_20void_20_3e_1627',['ContainerWrapper< void, void >',['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html',1,'ttg::detail']]], + ['counting_5fstreambuf_1628',['counting_streambuf',['../classttg_1_1detail_1_1counting__streambuf.html',1,'ttg::detail']]] +]; diff --git a/dox-master/search/classes_4.html b/dox-master/search/classes_4.html new file mode 100644 index 000000000..8430b07fe --- /dev/null +++ b/dox-master/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_4.js b/dox-master/search/classes_4.js new file mode 100644 index 000000000..ea95cbf20 --- /dev/null +++ b/dox-master/search/classes_4.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['debugger_1629',['Debugger',['../classttg_1_1_debugger.html',1,'ttg']]], + ['decays_5fto_5foutput_5fterminal_5ftuple_1630',['decays_to_output_terminal_tuple',['../structttg_1_1meta_1_1decays__to__output__terminal__tuple.html',1,'ttg::meta']]], + ['default_5fcallable_5ftraits_1631',['default_callable_traits',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html',1,'boost::callable_traits::detail']]], + ['default_5fcallable_5ftraits_3c_20t_20_3e_1632',['default_callable_traits< T >',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html',1,'boost::callable_traits::detail']]], + ['default_5fdata_5fdescriptor_1633',['default_data_descriptor',['../structttg_1_1default__data__descriptor.html',1,'ttg']]], + ['default_5fdata_5fdescriptor_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20detail_3a_3ais_5fmemcpyable_5fv_3c_20t_20_3e_20_26_26_21detail_3a_3ais_5fuser_5fbuffer_5fserializable_5fv_3c_20t_20_3e_20_26_26_21ttg_3a_3ahas_5fsplit_5fmetadata_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_1634',['default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html',1,'ttg']]], + ['default_5fdata_5fdescriptor_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20ttg_3a_3ahas_5fsplit_5fmetadata_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_1635',['default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html',1,'ttg']]], + ['default_5fkeymap_1636',['default_keymap',['../structttg_1_1detail_1_1default__keymap.html',1,'ttg::detail']]], + ['default_5fkeymap_5fimpl_1637',['default_keymap_impl',['../structttg_1_1detail_1_1default__keymap__impl.html',1,'ttg::detail']]], + ['default_5fkeymap_5fimpl_3c_20keyt_2c_20std_3a_3aenable_5fif_5ft_3c_20meta_3a_3ahas_5fttg_5fhash_5fspecialization_5fv_3c_20keyt_20_3e_7c_7cmeta_3a_3ais_5fvoid_5fv_3c_20keyt_20_3e_20_3e_20_3e_1638',['default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >',['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html',1,'ttg::detail']]], + ['default_5fpriomap_1639',['default_priomap',['../structttg_1_1detail_1_1default__priomap.html',1,'ttg::detail']]], + ['default_5fpriomap_5fimpl_1640',['default_priomap_impl',['../structttg_1_1detail_1_1default__priomap__impl.html',1,'ttg::detail']]], + ['device_1641',['Device',['../classttg_1_1device_1_1_device.html',1,'ttg::device']]], + ['device_5fptr_5ft_1642',['device_ptr_t',['../structttg__parsec_1_1detail_1_1device__ptr__t.html',1,'ttg_parsec::detail']]], + ['device_5fstate_5ft_1643',['device_state_t',['../structttg__parsec_1_1detail_1_1device__state__t.html',1,'ttg_parsec::detail']]], + ['device_5fstate_5ft_3c_20true_20_3e_1644',['device_state_t< true >',['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html',1,'ttg_parsec::detail']]], + ['device_5fstate_5ft_3c_20tt_3a_3aderived_5fhas_5fdevice_5fop_28_29_3e_1645',['device_state_t< TT::derived_has_device_op()>',['../structttg__parsec_1_1detail_1_1device__state__t.html',1,'ttg_parsec::detail']]], + ['devicescratch_1646',['devicescratch',['../structttg__madness_1_1devicescratch.html',1,'ttg_madness::devicescratch< T >'],['../structttg__parsec_1_1devicescratch.html',1,'ttg_parsec::devicescratch< T >']]], + ['disjunction_1647',['disjunction',['../structboost_1_1callable__traits_1_1detail_1_1disjunction.html',1,'boost::callable_traits::detail']]], + ['disjunction_3c_20t_20_3e_1648',['disjunction< T >',['../structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.html',1,'boost::callable_traits::detail']]], + ['disjunction_3c_20t_2c_20ts_2e_2e_2e_20_3e_1649',['disjunction< T, Ts... >',['../structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_00_01_ts_8_8_8_01_4.html',1,'boost::callable_traits::detail']]], + ['dot_1650',['Dot',['../classttg_1_1_dot.html',1,'ttg']]], + ['drop_5ffirst_5fn_1651',['drop_first_n',['../structttg_1_1meta_1_1drop__first__n.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20std_3a_3atuple_3c_20t_2c_20ts_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_1652',['drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_1653',['drop_first_n< std::tuple< Ts... >, std::size_t(0)>',['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20typelist_3c_20t_2c_20ts_2e_2e_2e_20_3e_2c_20n_2c_20std_3a_3aenable_5fif_5ft_3c_20n_20_21_3d0_20_3e_20_3e_1654',['drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >',['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html',1,'ttg::meta']]], + ['drop_5ffirst_5fn_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_2c_20std_3a_3asize_5ft_280_29_3e_1655',['drop_first_n< typelist< Ts... >, std::size_t(0)>',['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html',1,'ttg::meta']]], + ['drop_5flast_5fn_1656',['drop_last_n',['../structttg_1_1meta_1_1drop__last__n.html',1,'ttg::meta']]], + ['dummy_1657',['dummy',['../structboost_1_1callable__traits_1_1detail_1_1dummy.html',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/classes_5.html b/dox-master/search/classes_5.html new file mode 100644 index 000000000..c2f1b767b --- /dev/null +++ b/dox-master/search/classes_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_5.js b/dox-master/search/classes_5.js new file mode 100644 index 000000000..d3e74cee1 --- /dev/null +++ b/dox-master/search/classes_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['edge_1658',['Edge',['../classttg_1_1_edge.html',1,'ttg']]], + ['edges_5fto_5foutput_5fterminals_1659',['edges_to_output_terminals',['../structttg_1_1edges__to__output__terminals.html',1,'ttg']]], + ['edges_5fto_5foutput_5fterminals_3c_20std_3a_3atuple_3c_20edgest_2e_2e_2e_20_3e_20_3e_1660',['edges_to_output_terminals< std::tuple< edgesT... > >',['../structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html',1,'ttg']]], + ['edges_5ftuple_1661',['edges_tuple',['../structttg_1_1detail_1_1edges__tuple.html',1,'ttg::detail']]], + ['edges_5ftuple_3c_20keyt_2c_20std_3a_3atuple_3c_20valuest_2e_2e_2e_20_3e_20_3e_1662',['edges_tuple< keyT, std::tuple< valuesT... > >',['../structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html',1,'ttg::detail']]], + ['event_1663',['event',['../structttg_1_1event.html',1,'ttg']]] +]; diff --git a/dox-master/search/classes_6.html b/dox-master/search/classes_6.html new file mode 100644 index 000000000..e39847ce8 --- /dev/null +++ b/dox-master/search/classes_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_6.js b/dox-master/search/classes_6.js new file mode 100644 index 000000000..1f95aa3fe --- /dev/null +++ b/dox-master/search/classes_6.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['fail_1664',['fail',['../structboost_1_1callable__traits_1_1detail_1_1fail.html',1,'boost::callable_traits::detail']]], + ['fail_5fif_1665',['fail_if',['../structboost_1_1callable__traits_1_1detail_1_1fail__if.html',1,'boost::callable_traits::detail']]], + ['fastcall_5ftag_1666',['fastcall_tag',['../structboost_1_1callable__traits_1_1detail_1_1fastcall__tag.html',1,'boost::callable_traits::detail']]], + ['filtered_5ftuple_1667',['filtered_tuple',['../structttg_1_1meta_1_1filtered__tuple.html',1,'ttg::meta']]], + ['filtered_5ftuple_3c_20std_3a_3atuple_3c_20es_2e_2e_2e_20_3e_2c_20pred_20_3e_1668',['filtered_tuple< std::tuple< Es... >, Pred >',['../structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html',1,'ttg::meta']]], + ['flag_5fmap_1669',['flag_map',['../structboost_1_1callable__traits_1_1detail_1_1flag__map.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20_26_20_3e_1670',['flag_map< T & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20_26_26_20_3e_1671',['flag_map< T && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20_26_20_3e_1672',['flag_map< T const & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20_26_26_20_3e_1673',['flag_map< T const && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20_3e_1674',['flag_map< T const >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20volatile_20_26_20_3e_1675',['flag_map< T const volatile & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20volatile_20_26_26_20_3e_1676',['flag_map< T const volatile && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20const_20volatile_20_3e_1677',['flag_map< T const volatile >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20volatile_20_26_20_3e_1678',['flag_map< T volatile & >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20volatile_20_26_26_20_3e_1679',['flag_map< T volatile && >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html',1,'boost::callable_traits::detail']]], + ['flag_5fmap_3c_20t_20volatile_20_3e_1680',['flag_map< T volatile >',['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html',1,'boost::callable_traits::detail']]], + ['fnvhasher_1681',['FNVhasher',['../classttg_1_1detail_1_1_f_n_vhasher.html',1,'ttg::detail']]], + ['force_5fsfinae_1682',['force_sfinae',['../structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html',1,'boost::callable_traits::detail']]], + ['function_1683',['function',['../structboost_1_1callable__traits_1_1detail_1_1function.html',1,'boost::callable_traits::detail']]], + ['function_3c_20boost_5fclbl_5ftrts_5fst_20return_28boost_5fclbl_5ftrts_5fcc_20_2a_29_28args_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1684',['function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html',1,'']]], + ['function_3c_20boost_5fclbl_5ftrts_5fst_20return_28boost_5fclbl_5ftrts_5fvarargs_5fcc_20_2a_29_28args_2e_2e_2e_2c_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1685',['function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html',1,'']]], + ['function_3c_20return_28args_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1686',['function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html',1,'']]], + ['function_3c_20return_28args_2e_2e_2e_2c_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1687',['function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html',1,'']]], + ['function_3c_20t_20_26_20_3e_1688',['function< T & >',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html',1,'boost::callable_traits::detail']]], + ['function_5fobject_1689',['function_object',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html',1,'boost::callable_traits::detail']]], + ['function_5fobject_3c_20t_20u_3a_3a_2a_2c_20base_20_3e_1690',['function_object< T U::*, Base >',['../structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.html',1,'boost::callable_traits::detail']]], + ['function_5ftype_1691',['function_type',['../structboost_1_1callable__traits_1_1function__type.html',1,'boost::callable_traits']]], + ['function_5ftype_5fimpl_1692',['function_type_impl',['../structboost_1_1callable__traits_1_1detail_1_1function__type__impl.html',1,'boost::callable_traits::detail']]], + ['function_5ftype_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20function_5ftype_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1693',['function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/classes_7.html b/dox-master/search/classes_7.html new file mode 100644 index 000000000..a2c4d1a39 --- /dev/null +++ b/dox-master/search/classes_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_7.js b/dox-master/search/classes_7.js new file mode 100644 index 000000000..4b18c4101 --- /dev/null +++ b/dox-master/search/classes_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['generalize_5ft_1694',['generalize_t',['../structboost_1_1callable__traits_1_1detail_1_1generalize__t.html',1,'boost::callable_traits::detail']]], + ['generalize_5ft_3c_20t_2c_20is_5freference_5fwrapper_3c_20t_20_3e_20_3e_1695',['generalize_t< T, is_reference_wrapper< T > >',['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html',1,'boost::callable_traits::detail']]], + ['generalize_5ft_3c_20t_2c_20std_3a_3aintegral_5fconstant_3c_20bool_2c_20can_5fdereference_3c_20t_20_3e_3a_3avalue_20_26_26_21is_5freference_5fwrapper_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_1696',['generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >',['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/classes_8.html b/dox-master/search/classes_8.html new file mode 100644 index 000000000..17003e480 --- /dev/null +++ b/dox-master/search/classes_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_8.js b/dox-master/search/classes_8.js new file mode 100644 index 000000000..759a7f0e2 --- /dev/null +++ b/dox-master/search/classes_8.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['has_5fmember_5ffunction_5fhash_1697',['has_member_function_hash',['../structttg_1_1meta_1_1has__member__function__hash.html',1,'ttg::meta']]], + ['has_5fmember_5ffunction_5fhash_3c_20t_2c_20std_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20const_20t_20_26_20_3e_28_29_2ehash_28_29_29_3e_20_3e_1698',['has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> >',['../structttg_1_1meta_1_1has__member__function__hash_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1f4964d2720bb5e0fa5e45d0cbc913910.html',1,'ttg::meta']]], + ['has_5fmember_5fqualifiers_1699',['has_member_qualifiers',['../structboost_1_1callable__traits_1_1has__member__qualifiers.html',1,'boost::callable_traits']]], + ['has_5fnormal_5fcall_5foperator_1700',['has_normal_call_operator',['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html',1,'boost::callable_traits::detail']]], + ['has_5fsize_5fand_5fdata_1701',['has_size_and_data',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['has_5fsize_5fand_5fdata_3c_20t_2c_20void_5ft_3c_20decltype_28detail_3a_3asize_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_2c_20decltype_28detail_3a_3adata_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_3e_20_3e_1702',['has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['has_5fsplit_5fmetadata_1703',['has_split_metadata',['../structttg_1_1has__split__metadata.html',1,'ttg']]], + ['has_5fsplit_5fmetadata_3c_20t_2c_20ttg_3a_3ameta_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20splitmetadatadescriptor_3c_20t_20_3e_3e_28_29_2eget_5fmetadata_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_3e_20_3e_1704',['has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >',['../structttg_1_1has__split__metadata_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01decltype_07std_1_1declv04e799e75aff1843c5d29b807a5d2544.html',1,'ttg']]], + ['has_5fttg_5fhash_5fspecialization_1705',['has_ttg_hash_specialization',['../structttg_1_1meta_1_1has__ttg__hash__specialization.html',1,'ttg::meta']]], + ['has_5fttg_5fhash_5fspecialization_3c_20t_2c_20ttg_3a_3ameta_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20ttg_3a_3ahash_3c_20t_20_3e_3e_28_29_28std_3a_3adeclval_3c_20const_20t_20_26_20_3e_28_29_29_29_3e_20_3e_1706',['has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> >',['../structttg_1_1meta_1_1has__ttg__hash__specialization_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01declt91c1b3738036f1921f53ffe2f01abf5a.html',1,'ttg::meta']]], + ['has_5fvarargs_1707',['has_varargs',['../structboost_1_1callable__traits_1_1has__varargs.html',1,'boost::callable_traits']]], + ['has_5fvoid_5freturn_1708',['has_void_return',['../structboost_1_1callable__traits_1_1has__void__return.html',1,'boost::callable_traits']]], + ['hash_1709',['hash',['../structttg_1_1overload_1_1hash.html',1,'ttg::overload']]], + ['hash_3c_20std_3a_3apair_3c_20t1_2c_20t2_20_3e_2c_20std_3a_3aenable_5fif_5ft_3c_20meta_3a_3ahas_5fttg_5fhash_5fspecialization_5fv_3c_20t1_20_3e_20_26_26meta_3a_3ahas_5fttg_5fhash_5fspecialization_5fv_3c_20t2_20_3e_20_3e_20_3e_1710',['hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >',['../structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html',1,'ttg::overload']]], + ['hash_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20meta_3a_3ahas_5fmember_5ffunction_5fhash_5fv_3c_20t_20_3e_20_3e_20_3e_1711',['hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >',['../structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html',1,'ttg::overload']]], + ['hash_3c_20ttg_3a_3avoid_20_3e_1712',['hash< ttg::Void >',['../structstd_1_1hash_3_01ttg_1_1_void_01_4.html',1,'std']]], + ['hash_3c_20void_2c_20void_20_3e_1713',['hash< void, void >',['../structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html',1,'ttg::overload']]], + ['hash_3c_20void_2c_20void_20_3e_1714',['hash< Void, void >',['../structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html',1,'ttg::overload']]], + ['hash_5fcombine_5fimpl_1715',['hash_combine_impl',['../structttg_1_1detail_1_1hash__combine__impl.html',1,'ttg::detail']]] +]; diff --git a/dox-master/search/classes_9.html b/dox-master/search/classes_9.html new file mode 100644 index 000000000..b8afa8cba --- /dev/null +++ b/dox-master/search/classes_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_9.js b/dox-master/search/classes_9.js new file mode 100644 index 000000000..0eda50c6f --- /dev/null +++ b/dox-master/search/classes_9.js @@ -0,0 +1,80 @@ +var searchData= +[ + ['in_1716',['In',['../classttg_1_1_in.html',1,'ttg']]], + ['index_5fsequence_1717',['index_sequence',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['index_5fsequence_3c_200_20_3e_1718',['index_sequence< 0 >',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['index_5fsequence_3c_20i1_2e_2e_2e_2c_28sizeof_2e_2e_2e_28i1_29_2bi2_29_2e_2e_2e_20_3e_1719',['index_sequence< I1...,(sizeof...(I1)+I2)... >',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['index_5fsequence_3c_3e_1720',['index_sequence<>',['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html',1,'boost::callable_traits::detail']]], + ['input_5fterminals_5ftuple_1721',['input_terminals_tuple',['../structttg_1_1detail_1_1input__terminals__tuple.html',1,'ttg::detail']]], + ['input_5fterminals_5ftuple_3c_20keyt_2c_20std_3a_3atuple_3c_20valuest_2e_2e_2e_20_3e_20_3e_1722',['input_terminals_tuple< keyT, std::tuple< valuesT... > >',['../structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html',1,'ttg::detail']]], + ['interminalbase_1723',['InTerminalBase',['../classttg_1_1_in_terminal_base.html',1,'ttg']]], + ['interminalbase_3c_20void_20_3e_1724',['InTerminalBase< void >',['../classttg_1_1_in_terminal_base.html',1,'ttg']]], + ['invalid_5ftype_1725',['invalid_type',['../structboost_1_1callable__traits_1_1detail_1_1invalid__type.html',1,'boost::callable_traits::detail']]], + ['iovec_1726',['iovec',['../structttg_1_1iovec.html',1,'ttg']]], + ['iovec_5fistreambuf_1727',['iovec_istreambuf',['../classttg_1_1detail_1_1iovec__istreambuf.html',1,'ttg::detail']]], + ['iovec_5fostreambuf_1728',['iovec_ostreambuf',['../classttg_1_1detail_1_1iovec__ostreambuf.html',1,'ttg::detail']]], + ['is_5fboost_5farray_5fserializable_1729',['is_boost_array_serializable',['../structttg_1_1detail_1_1is__boost__array__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5farray_5fserializable_3c_20archive_2c_20t_20_3e_1730',['is_boost_array_serializable< Archive, T >',['../structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.html',1,'ttg::detail']]], + ['is_5fboost_5fbuffer_5fserializable_1731',['is_boost_buffer_serializable',['../structttg_1_1detail_1_1is__boost__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5fdefault_5fbuffer_5fserializable_1732',['is_boost_default_buffer_serializable',['../structttg_1_1detail_1_1is__boost__default__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5fdefault_5fserializable_1733',['is_boost_default_serializable',['../structttg_1_1detail_1_1is__boost__default__serializable.html',1,'ttg::detail']]], + ['is_5fboost_5fserializable_1734',['is_boost_serializable',['../structttg_1_1detail_1_1is__boost__serializable.html',1,'ttg::detail']]], + ['is_5fbuffer_1735',['is_buffer',['../structttg_1_1meta_1_1is__buffer.html',1,'ttg::meta']]], + ['is_5fbuffer_3c_20const_20ttg_3a_3abuffer_3c_20t_2c_20a_20_3e_20_3e_1736',['is_buffer< const ttg::Buffer< T, A > >',['../structttg_1_1meta_1_1is__buffer_3_01const_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fbuffer_3c_20ttg_3a_3abuffer_3c_20t_2c_20a_20_3e_20_3e_1737',['is_buffer< ttg::Buffer< T, A > >',['../structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fcomplete_1738',['is_complete',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fcomplete_3c_20t_2c_20decltype_28sizeof_28t_29_29_3e_1739',['is_complete< T, decltype(sizeof(T))>',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fconst_5flvalue_5freference_1740',['is_const_lvalue_reference',['../structttg_1_1meta_1_1is__const__lvalue__reference.html',1,'ttg::meta']]], + ['is_5fconst_5fmember_1741',['is_const_member',['../structboost_1_1callable__traits_1_1is__const__member.html',1,'boost::callable_traits']]], + ['is_5fcontainer_1742',['is_container',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fcontainer_5felement_5ftype_5fcompatible_1743',['is_container_element_type_compatible',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__compatible.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fcontainer_5felement_5ftype_5fcompatible_3c_20t_2c_20e_2c_20typename_20std_3a_3aenable_5fif_3c_20_21std_3a_3ais_5fsame_3c_20typename_20std_3a_3aremove_5fcv_3c_20decltype_28detail_3a_3adata_28std_3a_3adeclval_3c_20t_20_3e_28_29_29_29_3e_3a_3atype_2c_20void_20_3e_3a_3avalue_20_3e_3a_3atype_20_3e_1744',['is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fdevicescratch_1745',['is_devicescratch',['../structttg_1_1meta_1_1is__devicescratch.html',1,'ttg::meta']]], + ['is_5fdevicescratch_3c_20const_20ttg_3a_3adevicescratch_3c_20t_20_3e_20_3e_1746',['is_devicescratch< const ttg::devicescratch< T > >',['../structttg_1_1meta_1_1is__devicescratch_3_01const_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fdevicescratch_3c_20ttg_3a_3adevicescratch_3c_20t_20_3e_20_3e_1747',['is_devicescratch< ttg::devicescratch< T > >',['../structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fgeneric_5fcallable_1748',['is_generic_callable',['../structttg_1_1meta_1_1is__generic__callable.html',1,'ttg::meta']]], + ['is_5fgeneric_5fcallable_3c_20callable_2c_20ttg_3a_3ameta_3a_3avoid_5ft_3c_20boost_3a_3acallable_5ftraits_3a_3aargs_5ft_3c_20callable_2c_20ttg_3a_3atypelist_20_3e_20_3e_20_3e_1749',['is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > >',['../structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.html',1,'ttg::meta']]], + ['is_5finput_5fterminal_1750',['is_input_terminal',['../structttg_1_1meta_1_1is__input__terminal.html',1,'ttg::meta']]], + ['is_5finvocable_1751',['is_invocable',['../structboost_1_1callable__traits_1_1is__invocable.html',1,'boost::callable_traits']]], + ['is_5finvocable_5fimpl_1752',['is_invocable_impl',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html',1,'boost::callable_traits::detail']]], + ['is_5finvocable_5fimpl_3c_20void_2c_20args_2e_2e_2e_20_3e_1753',['is_invocable_impl< void, Args... >',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html',1,'boost::callable_traits::detail']]], + ['is_5finvocable_5fr_1754',['is_invocable_r',['../structboost_1_1callable__traits_1_1is__invocable__r.html',1,'boost::callable_traits']]], + ['is_5finvocable_5fr_5fimpl_1755',['is_invocable_r_impl',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html',1,'boost::callable_traits::detail']]], + ['is_5finvocable_5fr_5fimpl_3c_20std_3a_3afalse_5ftype_2c_20ret_2c_20t_2c_20args_2e_2e_2e_20_3e_1756',['is_invocable_r_impl< std::false_type, Ret, T, Args... >',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html',1,'boost::callable_traits::detail']]], + ['is_5flast_5fvoid_1757',['is_last_void',['../structttg_1_1meta_1_1is__last__void.html',1,'ttg::meta']]], + ['is_5flvalue_5freference_5fmember_1758',['is_lvalue_reference_member',['../structboost_1_1callable__traits_1_1is__lvalue__reference__member.html',1,'boost::callable_traits']]], + ['is_5fmadness_5fbuffer_5fserializable_1759',['is_madness_buffer_serializable',['../structttg_1_1detail_1_1is__madness__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fmadness_5finput_5fserializable_1760',['is_madness_input_serializable',['../structttg_1_1detail_1_1is__madness__input__serializable.html',1,'ttg::detail']]], + ['is_5fmadness_5foutput_5fserializable_1761',['is_madness_output_serializable',['../structttg_1_1detail_1_1is__madness__output__serializable.html',1,'ttg::detail']]], + ['is_5fmadness_5fuser_5fbuffer_5fserializable_1762',['is_madness_user_buffer_serializable',['../structttg_1_1detail_1_1is__madness__user__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fmemcpyable_1763',['is_memcpyable',['../structttg_1_1detail_1_1is__memcpyable.html',1,'ttg::detail']]], + ['is_5fnoexcept_1764',['is_noexcept',['../structboost_1_1callable__traits_1_1is__noexcept.html',1,'boost::callable_traits']]], + ['is_5fnonconst_5flvalue_5freference_1765',['is_nonconst_lvalue_reference',['../structttg_1_1meta_1_1is__nonconst__lvalue__reference.html',1,'ttg::meta']]], + ['is_5fnonconst_5flvalue_5freference_5fto_5foutput_5fterminal_5ftuple_1766',['is_nonconst_lvalue_reference_to_output_terminal_tuple',['../structttg_1_1meta_1_1is__nonconst__lvalue__reference__to__output__terminal__tuple.html',1,'ttg::meta']]], + ['is_5fnonvoid_1767',['is_nonvoid',['../structttg_1_1meta_1_1is__nonvoid.html',1,'ttg::meta']]], + ['is_5foutput_5fterminal_1768',['is_output_terminal',['../structttg_1_1meta_1_1is__output__terminal.html',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5ftuple_1769',['is_output_terminal_tuple',['../structttg_1_1meta_1_1is__output__terminal__tuple.html',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5ftuple_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1770',['is_output_terminal_tuple< std::tuple< Ts... > >',['../structttg_1_1meta_1_1is__output__terminal__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fprintable_1771',['is_printable',['../structttg_1_1detail_1_1is__printable.html',1,'ttg::detail']]], + ['is_5fprintable_3c_20t_2c_20std_3a_3avoid_5ft_3c_20decltype_28std_3a_3adeclval_3c_20std_3a_3aostream_20_26_20_3e_28_29_3c_3c_20std_3a_3adeclval_3c_20t_20_3e_28_29_29_3e_20_3e_1772',['is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> >',['../structttg_1_1detail_1_1is__printable_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1_1declval_3_a5774f3d043eeeee157069b2b78993f2.html',1,'ttg::detail']]], + ['is_5fptr_1773',['is_ptr',['../structttg_1_1meta_1_1is__ptr.html',1,'ttg::meta']]], + ['is_5fptr_3c_20ttg_3a_3aptr_3c_20t_20_3e_20_3e_1774',['is_ptr< ttg::Ptr< T > >',['../structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.html',1,'ttg::meta']]], + ['is_5freference_5fmember_1775',['is_reference_member',['../structboost_1_1callable__traits_1_1is__reference__member.html',1,'boost::callable_traits']]], + ['is_5freference_5fwrapper_5ft_1776',['is_reference_wrapper_t',['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html',1,'boost::callable_traits::detail']]], + ['is_5freference_5fwrapper_5ft_3c_20std_3a_3areference_5fwrapper_3c_20t_20_3e_20_3e_1777',['is_reference_wrapper_t< std::reference_wrapper< T > >',['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html',1,'boost::callable_traits::detail']]], + ['is_5frvalue_5freference_5fmember_1778',['is_rvalue_reference_member',['../structboost_1_1callable__traits_1_1is__rvalue__reference__member.html',1,'boost::callable_traits']]], + ['is_5fspan_1779',['is_span',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fspan_3c_20span_3c_20t_2c_20s_20_3e_20_3e_1780',['is_span< span< T, S > >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span_3_01span_3_01_t_00_01_s_01_4_01_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fstd_5farray_1781',['is_std_array',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fstd_5farray_3c_20std_3a_3aarray_3c_20t_2c_20n_20_3e_20_3e_1782',['is_std_array< std::array< T, N > >',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array_3_01std_1_1array_3_01_t_00_01_n_01_4_01_4.html',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['is_5fterminal_1783',['is_terminal',['../structttg_1_1meta_1_1is__terminal.html',1,'ttg::meta']]], + ['is_5ftransaction_5fsafe_1784',['is_transaction_safe',['../structboost_1_1callable__traits_1_1is__transaction__safe.html',1,'boost::callable_traits']]], + ['is_5fttvalue_5fbase_1785',['is_ttvalue_base',['../structttg__parsec_1_1detail_1_1is__ttvalue__base.html',1,'ttg_parsec::detail']]], + ['is_5fttvalue_5fbase_3c_20t_2c_20std_3a_3ais_5fbase_5fof_3c_20ttvalue_3c_20std_3a_3adecay_5ft_3c_20t_20_3e_20_3e_2c_20std_3a_3adecay_5ft_3c_20t_20_3e_20_3e_20_3e_1786',['is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >',['../structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.html',1,'ttg_parsec::detail']]], + ['is_5ftypelist_1787',['is_typelist',['../structttg_1_1meta_1_1is__typelist.html',1,'ttg::meta']]], + ['is_5ftypelist_3c_20typelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1788',['is_typelist< typelist< Ts... > >',['../structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['is_5fuser_5fbuffer_5fserializable_1789',['is_user_buffer_serializable',['../structttg_1_1detail_1_1is__user__buffer__serializable.html',1,'ttg::detail']]], + ['is_5fuser_5fbuffer_5fserializable_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20is_5fmadness_5fuser_5fbuffer_5fserializable_5fv_3c_20t_20_3e_7c_7cis_5fboost_5fuser_5fbuffer_5fserializable_5fv_3c_20t_20_3e_20_3e_20_3e_1790',['is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > >',['../structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.html',1,'ttg::detail']]], + ['is_5fvoid_1791',['is_void',['../structttg_1_1meta_1_1is__void.html',1,'ttg::meta']]], + ['is_5fvolatile_5fmember_1792',['is_volatile_member',['../structboost_1_1callable__traits_1_1is__volatile__member.html',1,'boost::callable_traits']]] +]; diff --git a/dox-master/search/classes_a.html b/dox-master/search/classes_a.html new file mode 100644 index 000000000..6788af270 --- /dev/null +++ b/dox-master/search/classes_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_a.js b/dox-master/search/classes_a.js new file mode 100644 index 000000000..e973a9059 --- /dev/null +++ b/dox-master/search/classes_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['keep_5for_5fdrop_1793',['keep_or_drop',['../structttg_1_1meta_1_1detail_1_1keep__or__drop.html',1,'ttg::meta::detail']]], + ['keep_5for_5fdrop_3c_20false_20_3e_1794',['keep_or_drop< false >',['../structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html',1,'ttg::meta::detail']]] +]; diff --git a/dox-master/search/classes_b.html b/dox-master/search/classes_b.html new file mode 100644 index 000000000..3fcb49858 --- /dev/null +++ b/dox-master/search/classes_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_b.js b/dox-master/search/classes_b.js new file mode 100644 index 000000000..d73989611 --- /dev/null +++ b/dox-master/search/classes_b.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['make_5findex_5fsequence_5ft_1795',['make_index_sequence_t',['../structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.html',1,'boost::callable_traits::detail']]], + ['make_5findex_5fsequence_5ft_3c_200_20_3e_1796',['make_index_sequence_t< 0 >',['../structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5findex_5fsequence_5ft_3c_201_20_3e_1797',['make_index_sequence_t< 1 >',['../structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_1798',['make_member_pointer',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_3c_20t_2c_20c_2c_20false_20_3e_1799',['make_member_pointer< T, C, false >',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_3c_20t_2c_20c_2c_20true_20_3e_1800',['make_member_pointer< T, C, true >',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_3c_20void_2c_20c_2c_20true_20_3e_1801',['make_member_pointer< void, C, true >',['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html',1,'boost::callable_traits::detail']]], + ['memorywatchpoint_5fx86_5f64_1802',['MemoryWatchpoint_x86_64',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html',1,'ttg::detail']]], + ['msg_5fheader_5ft_1803',['msg_header_t',['../structttg__parsec_1_1msg__header__t.html',1,'ttg_parsec']]], + ['msg_5ft_1804',['msg_t',['../structttg__parsec_1_1detail_1_1msg__t.html',1,'ttg_parsec::detail']]], + ['multiindex_1805',['MultiIndex',['../structttg_1_1_multi_index.html',1,'ttg']]] +]; diff --git a/dox-master/search/classes_c.html b/dox-master/search/classes_c.html new file mode 100644 index 000000000..2f7b1f3da --- /dev/null +++ b/dox-master/search/classes_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_c.js b/dox-master/search/classes_c.js new file mode 100644 index 000000000..041554315 --- /dev/null +++ b/dox-master/search/classes_c.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['nonref_5ftuple_1806',['nonref_tuple',['../structttg_1_1meta_1_1nonref__tuple.html',1,'ttg::meta']]], + ['nonref_5ftuple_3c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1807',['nonref_tuple< std::tuple< Ts... > >',['../structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['null_5fvisitor_1808',['null_visitor',['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html',1,'ttg::detail::Traverse']]], + ['null_5fvisitor_3c_20terminalbase_20_3e_1809',['null_visitor< TerminalBase >',['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html',1,'ttg::detail::Traverse']]], + ['null_5fvisitor_3c_20ttbase_20_3e_1810',['null_visitor< TTBase >',['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html',1,'ttg::detail::Traverse']]] +]; diff --git a/dox-master/search/classes_d.html b/dox-master/search/classes_d.html new file mode 100644 index 000000000..f9011e70f --- /dev/null +++ b/dox-master/search/classes_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_d.js b/dox-master/search/classes_d.js new file mode 100644 index 000000000..e3885bdb2 --- /dev/null +++ b/dox-master/search/classes_d.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['out_1811',['Out',['../classttg_1_1_out.html',1,'ttg']]], + ['out_3c_20keyt_2c_20valuet_20_3e_1812',['Out< keyT, valueT >',['../classttg_1_1_out.html',1,'ttg']]], + ['outterminalbase_1813',['OutTerminalBase',['../classttg_1_1_out_terminal_base.html',1,'ttg']]], + ['outterminalbase_3c_20void_20_3e_1814',['OutTerminalBase< void >',['../classttg_1_1_out_terminal_base.html',1,'ttg']]] +]; diff --git a/dox-master/search/classes_e.html b/dox-master/search/classes_e.html new file mode 100644 index 000000000..bb33dcfa5 --- /dev/null +++ b/dox-master/search/classes_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_e.js b/dox-master/search/classes_e.js new file mode 100644 index 000000000..a53a0bc76 --- /dev/null +++ b/dox-master/search/classes_e.js @@ -0,0 +1,43 @@ +var searchData= +[ + ['parsec_5fttg_5ftask_5fbase_5ft_1815',['parsec_ttg_task_base_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html',1,'ttg_parsec::detail']]], + ['parsec_5fttg_5ftask_5ft_1816',['parsec_ttg_task_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html',1,'ttg_parsec::detail']]], + ['parsec_5fttg_5ftask_5ft_3c_20tt_2c_20true_20_3e_1817',['parsec_ttg_task_t< TT, true >',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html',1,'ttg_parsec::detail']]], + ['parsecttbase_1818',['ParsecTTBase',['../structttg__parsec_1_1detail_1_1_parsec_t_t_base.html',1,'ttg_parsec::detail']]], + ['pascal_5ftag_1819',['pascal_tag',['../structboost_1_1callable__traits_1_1detail_1_1pascal__tag.html',1,'boost::callable_traits::detail']]], + ['persistent_5fvalue_5fref_1820',['persistent_value_ref',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html',1,'ttg_parsec::detail']]], + ['pmd_1821',['pmd',['../structboost_1_1callable__traits_1_1detail_1_1pmd.html',1,'boost::callable_traits::detail']]], + ['pmd_3c_20d_20t_3a_3a_2a_20_3e_1822',['pmd< D T::* >',['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html',1,'boost::callable_traits::detail']]], + ['pmf_1823',['pmf',['../structboost_1_1callable__traits_1_1detail_1_1pmf.html',1,'boost::callable_traits::detail']]], + ['pmf_3c_20return_28boost_5fclbl_5ftrts_5fcc_20t_3a_3a_2a_29_28args_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1824',['pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html',1,'']]], + ['pmf_3c_20return_28boost_5fclbl_5ftrts_5fvarargs_5fcc_20t_3a_3a_2a_29_28args_2e_2e_2e_2c_2e_2e_2e_29_20boost_5fclbl_5ftrts_5finclude_5fqualifiers_20boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_20boost_5fclbl_5ftrts_5fnoexcept_5fspec_20_3e_1825',['pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html',1,'']]], + ['pool_1826',['Pool',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['printer_5fhelper_1827',['printer_helper',['../structttg_1_1detail_1_1printer__helper.html',1,'ttg::detail']]], + ['printer_5fhelper_3c_20t_2c_20std_3a_3aenable_5fif_5ft_3c_20is_5fprintable_3c_20t_20_3e_3a_3avalue_20_3e_20_3e_1828',['printer_helper< T, std::enable_if_t< is_printable< T >::value > >',['../structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html',1,'ttg::detail']]], + ['probe_5fall_1829',['probe_all',['../structttg_1_1meta_1_1probe__all.html',1,'ttg::meta']]], + ['probe_5fall_3c_20is_5foutput_5fterminal_2c_20ts_2e_2e_2e_20_3e_1830',['probe_all< is_output_terminal, Ts... >',['../structttg_1_1meta_1_1probe__all.html',1,'ttg::meta']]], + ['probe_5fall_3c_20predicate_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1831',['probe_all< Predicate, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5fall_3c_20predicate_2c_20ts_2e_2e_2e_20_3e_1832',['probe_all< Predicate, Ts... >',['../structttg_1_1meta_1_1probe__all.html',1,'ttg::meta']]], + ['probe_5fall_3c_20predicate_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1833',['probe_all< Predicate, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5fany_1834',['probe_any',['../structttg_1_1meta_1_1probe__any.html',1,'ttg::meta']]], + ['probe_5fany_3c_20predicate_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1835',['probe_any< Predicate, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5fany_3c_20predicate_2c_20ts_2e_2e_2e_20_3e_1836',['probe_any< Predicate, Ts... >',['../structttg_1_1meta_1_1probe__any.html',1,'ttg::meta']]], + ['probe_5fany_3c_20predicate_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1837',['probe_any< Predicate, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__any_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_1838',['probe_first',['../structttg_1_1meta_1_1probe__first.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_20_3e_1839',['probe_first< Predicate, Default >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1840',['probe_first< Predicate, Default, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20t1_2c_20ts_2e_2e_2e_20_3e_1841',['probe_first< Predicate, Default, T1, Ts... >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20ts_2e_2e_2e_20_3e_1842',['probe_first< Predicate, Default, Ts... >',['../structttg_1_1meta_1_1probe__first.html',1,'ttg::meta']]], + ['probe_5ffirst_3c_20predicate_2c_20default_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1843',['probe_first< Predicate, Default, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5flast_1844',['probe_last',['../structttg_1_1meta_1_1probe__last.html',1,'ttg::meta']]], + ['probe_5flast_3c_20is_5fvoid_2c_20false_2c_20ts_2e_2e_2e_20_3e_1845',['probe_last< is_void, false, Ts... >',['../structttg_1_1meta_1_1probe__last.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_20_3e_1846',['probe_last< Predicate, Default >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20std_3a_3atuple_3c_20ts_2e_2e_2e_20_3e_20_3e_1847',['probe_last< Predicate, Default, std::tuple< Ts... > >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20t_20_3e_1848',['probe_last< Predicate, Default, T >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20t1_2c_20ts_2e_2e_2e_20_3e_1849',['probe_last< Predicate, Default, T1, Ts... >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20ts_2e_2e_2e_20_3e_1850',['probe_last< Predicate, Default, Ts... >',['../structttg_1_1meta_1_1probe__last.html',1,'ttg::meta']]], + ['probe_5flast_3c_20predicate_2c_20default_2c_20ttg_3a_3atypelist_3c_20ts_2e_2e_2e_20_3e_20_3e_1851',['probe_last< Predicate, Default, ttg::typelist< Ts... > >',['../structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html',1,'ttg::meta']]], + ['ptr_1852',['Ptr',['../structttg__madness_1_1_ptr.html',1,'ttg_madness::Ptr< T >'],['../structttg__parsec_1_1_ptr.html',1,'ttg_parsec::Ptr< T >']]], + ['ptr_1853',['ptr',['../structttg__parsec_1_1ptr.html',1,'ttg_parsec']]], + ['ptr_5fimpl_1854',['ptr_impl',['../structttg__parsec_1_1detail_1_1ptr__impl.html',1,'ttg_parsec::detail']]] +]; diff --git a/dox-master/search/classes_f.html b/dox-master/search/classes_f.html new file mode 100644 index 000000000..d1b67daa6 --- /dev/null +++ b/dox-master/search/classes_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/classes_f.js b/dox-master/search/classes_f.js new file mode 100644 index 000000000..853abdc1d --- /dev/null +++ b/dox-master/search/classes_f.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['qualified_5fclass_5fof_1855',['qualified_class_of',['../structboost_1_1callable__traits_1_1qualified__class__of.html',1,'boost::callable_traits']]], + ['qualified_5fclass_5fof_5fimpl_1856',['qualified_class_of_impl',['../structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.html',1,'boost::callable_traits::detail']]], + ['qualified_5fclass_5fof_5fimpl_3c_20t_2c_20typename_20std_3a_3ais_5fsame_3c_20qualified_5fclass_5fof_5ft_3c_20t_20_3e_2c_20detail_3a_3adummy_20_3e_3a_3atype_20_3e_1857',['qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >',['../structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/close.svg b/dox-master/search/close.svg new file mode 100644 index 000000000..a933eea1a --- /dev/null +++ b/dox-master/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/dox-master/search/defines_0.html b/dox-master/search/defines_0.html new file mode 100644 index 000000000..15cc3de38 --- /dev/null +++ b/dox-master/search/defines_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/defines_0.js b/dox-master/search/defines_0.js new file mode 100644 index 000000000..02688ae4e --- /dev/null +++ b/dox-master/search/defines_0.js @@ -0,0 +1,31 @@ +var searchData= +[ + ['boost_5fclbl_5ftraits_5finline_5fvar_3158',['BOOST_CLBL_TRAITS_INLINE_VAR',['../config_8hpp.html#a23e2de9c461b4befc43af671b8329585',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fabominable_5fconst_3159',['BOOST_CLBL_TRTS_ABOMINABLE_CONST',['../config_8hpp.html#a8a960d7579cd59fcfb1e73a908018dae',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fabominable_5fvolatile_3160',['BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE',['../config_8hpp.html#a70a4b2f4cb2fe2046e0dd5dedfbb13ca',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fcc_3161',['BOOST_CLBL_TRTS_CC',['../function_8hpp.html#a9ffc32d24ae4fca9fbdc56a7a502aeb0',1,'BOOST_CLBL_TRTS_CC(): function.hpp'],['../pmf_8hpp.html#a9ffc32d24ae4fca9fbdc56a7a502aeb0',1,'BOOST_CLBL_TRTS_CC(): pmf.hpp'],['../pmf_8hpp.html#a9ffc32d24ae4fca9fbdc56a7a502aeb0',1,'BOOST_CLBL_TRTS_CC(): pmf.hpp']]], + ['boost_5fclbl_5ftrts_5fcc_5ftag_3162',['BOOST_CLBL_TRTS_CC_TAG',['../function_8hpp.html#a5ba5f29e4805ba6bb736a37025803ed6',1,'BOOST_CLBL_TRTS_CC_TAG(): function.hpp'],['../pmf_8hpp.html#a5ba5f29e4805ba6bb736a37025803ed6',1,'BOOST_CLBL_TRTS_CC_TAG(): pmf.hpp'],['../pmf_8hpp.html#a5ba5f29e4805ba6bb736a37025803ed6',1,'BOOST_CLBL_TRTS_CC_TAG(): pmf.hpp']]], + ['boost_5fclbl_5ftrts_5fdefault_5fvarargs_5fcc_3163',['BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC',['../config_8hpp.html#a3fc5a401bb741bbaf9c23b7c479e706b',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fdefine_5fsfinae_5ferror_5forigin_3164',['BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN',['../sfinae__errors_8hpp.html#a9a0a48b9f40ebed4458d305b92957862',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fdisable_5fvariable_5ftemplates_3165',['BOOST_CLBL_TRTS_DISABLE_VARIABLE_TEMPLATES',['../config_8hpp.html#ac43640cc449e295749a81b3d6d0db62a',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fdisjunction_3166',['BOOST_CLBL_TRTS_DISJUNCTION',['../config_8hpp.html#aa00b1564751946408d2987ed973d5358',1,'BOOST_CLBL_TRTS_DISJUNCTION(): config.hpp'],['../disjunction_8hpp.html#aa00b1564751946408d2987ed973d5358',1,'BOOST_CLBL_TRTS_DISJUNCTION(): disjunction.hpp']]], + ['boost_5fclbl_5ftrts_5fempty_3167',['BOOST_CLBL_TRTS_EMPTY',['../config_8hpp.html#a95c8416173c81667401febf3b027127e',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fempty_5f_3168',['BOOST_CLBL_TRTS_EMPTY_',['../config_8hpp.html#ab9525908cede343313c93473a782ac75',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5finclude_5fabominable_5fqualifiers_3169',['BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS',['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#abbe76f71112ec692f7de55c13705e269',1,'BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS(): pmf.hpp']]], + ['boost_5fclbl_5ftrts_5finclude_5fqualifiers_3170',['BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS',['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../pmf__varargs_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf_varargs.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../function_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): function.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp'],['../unguarded_2pmf_8hpp.html#a6e7d40e4fde6faf285441a1ed32ee202',1,'BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS(): pmf.hpp']]], + ['boost_5fclbl_5ftrts_5finclude_5ftransaction_5fsafe_3171',['BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE',['../unguarded_2function_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): function.hpp'],['../function__ptr_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): function_ptr.hpp'],['../function__ptr__varargs_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): function_ptr_varargs.hpp'],['../pmf__2_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): pmf_2.hpp'],['../pmf__varargs__2_8hpp.html#a035e993f79d96a8f33f3abb2225166c1',1,'BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE(): pmf_varargs_2.hpp']]], + ['boost_5fclbl_5ftrts_5fis_5fnoexcept_3172',['BOOST_CLBL_TRTS_IS_NOEXCEPT',['../pmf__3_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): pmf_3.hpp'],['../pmf__varargs__3_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): pmf_varargs_3.hpp'],['../function__ptr__2_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): function_ptr_2.hpp'],['../function__2_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): function_2.hpp'],['../function__ptr__varargs__2_8hpp.html#a53f6cde7149ffb0ad9f4a81a4faa95e7',1,'BOOST_CLBL_TRTS_IS_NOEXCEPT(): function_ptr_varargs_2.hpp']]], + ['boost_5fclbl_5ftrts_5fis_5ftransaction_5fsafe_3173',['BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE',['../unguarded_2function_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): function.hpp'],['../function__ptr_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): function_ptr.hpp'],['../function__ptr__varargs_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): function_ptr_varargs.hpp'],['../pmf__2_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): pmf_2.hpp'],['../pmf__varargs__2_8hpp.html#a5e430d424a68ea1f0203163dab9a1477',1,'BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE(): pmf_varargs_2.hpp']]], + ['boost_5fclbl_5ftrts_5fix_5fseq_3174',['BOOST_CLBL_TRTS_IX_SEQ',['../config_8hpp.html#a69cb1188b14c7c2486dc6d6ea8a8e624',1,'BOOST_CLBL_TRTS_IX_SEQ(): config.hpp'],['../make__index__sequence_8hpp.html#a69cb1188b14c7c2486dc6d6ea8a8e624',1,'BOOST_CLBL_TRTS_IX_SEQ(): make_index_sequence.hpp']]], + ['boost_5fclbl_5ftrts_5fmake_5fix_5fseq_3175',['BOOST_CLBL_TRTS_MAKE_IX_SEQ',['../config_8hpp.html#a65600d22ba62c7498df2cad7a1bf14c0',1,'BOOST_CLBL_TRTS_MAKE_IX_SEQ(): config.hpp'],['../make__index__sequence_8hpp.html#a65600d22ba62c7498df2cad7a1bf14c0',1,'BOOST_CLBL_TRTS_MAKE_IX_SEQ(): make_index_sequence.hpp']]], + ['boost_5fclbl_5ftrts_5fnoexcept_5fspec_3176',['BOOST_CLBL_TRTS_NOEXCEPT_SPEC',['../function__ptr__varargs__2_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): function_ptr_varargs_2.hpp'],['../pmf__varargs__3_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): pmf_varargs_3.hpp'],['../pmf__3_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): pmf_3.hpp'],['../function__ptr__2_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): function_ptr_2.hpp'],['../function__2_8hpp.html#a73962ec93eed1158344280810bdf1904',1,'BOOST_CLBL_TRTS_NOEXCEPT_SPEC(): function_2.hpp']]], + ['boost_5fclbl_5ftrts_5fnoexcept_5fspecifier_3177',['BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER',['../config_8hpp.html#ad9e7c37a540beade16d727cb6e432a3f',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fpp_5fcat_3178',['BOOST_CLBL_TRTS_PP_CAT',['../sfinae__errors_8hpp.html#a7a896803a2641de2d71e1f0e96a46827',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fpp_5fcat_5f_3179',['BOOST_CLBL_TRTS_PP_CAT_',['../sfinae__errors_8hpp.html#a6db92e28e8dbd7114d078bfcdb6f7c0c',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fset_5ffunction_5fqualifiers_3180',['BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS',['../set__function__qualifiers_8hpp.html#a4681cb3ffe0c3e1b35cb3edd1bdc9d16',1,'set_function_qualifiers.hpp']]], + ['boost_5fclbl_5ftrts_5fsfinae_5fmsg_3181',['BOOST_CLBL_TRTS_SFINAE_MSG',['../sfinae__errors_8hpp.html#a04d8f8f086033eef20c4768538e51244',1,'sfinae_errors.hpp']]], + ['boost_5fclbl_5ftrts_5fst_3182',['BOOST_CLBL_TRTS_ST',['../function_8hpp.html#a9d0f5fa0396b278b88057dfea67cf0f3',1,'function.hpp']]], + ['boost_5fclbl_5ftrts_5ftransaction_5fsafe_5fspecifier_3183',['BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER',['../config_8hpp.html#a54f036cd5b78cef1aba2064bc2a17319',1,'config.hpp']]], + ['boost_5fclbl_5ftrts_5fvarargs_5fcc_3184',['BOOST_CLBL_TRTS_VARARGS_CC',['../function_8hpp.html#aefb0e3fc943176fb6f6320f90233494d',1,'BOOST_CLBL_TRTS_VARARGS_CC(): function.hpp'],['../pmf_8hpp.html#aefb0e3fc943176fb6f6320f90233494d',1,'BOOST_CLBL_TRTS_VARARGS_CC(): pmf.hpp'],['../pmf_8hpp.html#aefb0e3fc943176fb6f6320f90233494d',1,'BOOST_CLBL_TRTS_VARARGS_CC(): pmf.hpp']]], + ['boost_5fserialization_5fuse_5farray_5foptimization_5ffor_5fthis_5fand_5fbase_3185',['BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE',['../archive_8h.html#ae21d3fdb053a9569ee4e657f83d3734d',1,'archive.h']]] +]; diff --git a/dox-master/search/defines_1.html b/dox-master/search/defines_1.html new file mode 100644 index 000000000..c49009c71 --- /dev/null +++ b/dox-master/search/defines_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/defines_1.js b/dox-master/search/defines_1.js new file mode 100644 index 000000000..1d18b10ac --- /dev/null +++ b/dox-master/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['have_5fcxa_5fdemangle_3186',['HAVE_CXA_DEMANGLE',['../demangle_8h.html#afe11ec2a5dfad74fa038aae3d490c635',1,'demangle.h']]] +]; diff --git a/dox-master/search/defines_2.html b/dox-master/search/defines_2.html new file mode 100644 index 000000000..c55101115 --- /dev/null +++ b/dox-master/search/defines_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/defines_2.js b/dox-master/search/defines_2.js new file mode 100644 index 000000000..f280bde9d --- /dev/null +++ b/dox-master/search/defines_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nsig_3187',['NSIG',['../bug_8cpp.html#ab83b88daaecc469d1edb90a527ab4a39',1,'bug.cpp']]] +]; diff --git a/dox-master/search/defines_3.html b/dox-master/search/defines_3.html new file mode 100644 index 000000000..8c6d21536 --- /dev/null +++ b/dox-master/search/defines_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/defines_3.js b/dox-master/search/defines_3.js new file mode 100644 index 000000000..358063090 --- /dev/null +++ b/dox-master/search/defines_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['simple_5fstack_3188',['SIMPLE_STACK',['../bug_8cpp.html#a8570fe9fd85d96571f868e04f9a6971e',1,'bug.cpp']]] +]; diff --git a/dox-master/search/defines_4.html b/dox-master/search/defines_4.html new file mode 100644 index 000000000..f4afac124 --- /dev/null +++ b/dox-master/search/defines_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/defines_4.js b/dox-master/search/defines_4.js new file mode 100644 index 000000000..d87733c69 --- /dev/null +++ b/dox-master/search/defines_4.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['tcb_5fspan_5farray_5fconstexpr_3189',['TCB_SPAN_ARRAY_CONSTEXPR',['../span_8h.html#aea5140f0c5c8c761a6583edfd191c0f2',1,'span.h']]], + ['tcb_5fspan_5fconstexpr11_3190',['TCB_SPAN_CONSTEXPR11',['../span_8h.html#af82e0eef5fcecb21005e712341409ba9',1,'span.h']]], + ['tcb_5fspan_5fconstexpr14_3191',['TCB_SPAN_CONSTEXPR14',['../span_8h.html#a578f6490cc87aa6eaa8bdbf3e80c74ff',1,'span.h']]], + ['tcb_5fspan_5fconstexpr_5fassign_3192',['TCB_SPAN_CONSTEXPR_ASSIGN',['../span_8h.html#af00b49dd2229200ece8c0e88c92c3d33',1,'span.h']]], + ['tcb_5fspan_5fexpect_3193',['TCB_SPAN_EXPECT',['../span_8h.html#a28781fa90cfa7c5e239d05e0545e6a44',1,'span.h']]], + ['tcb_5fspan_5finline_5fvar_3194',['TCB_SPAN_INLINE_VAR',['../span_8h.html#a6df40b64e7c75e9d0887eeb067777194',1,'span.h']]], + ['tcb_5fspan_5fnamespace_5fname_3195',['TCB_SPAN_NAMESPACE_NAME',['../span_8h.html#a893f16c95652b225b401d579436731eb',1,'span.h']]], + ['tcb_5fspan_5fno_5fcontract_5fchecking_3196',['TCB_SPAN_NO_CONTRACT_CHECKING',['../span_8h.html#a83b0c07adbea88cc25187b8255ae066d',1,'span.h']]], + ['tcb_5fspan_5fno_5fexceptions_3197',['TCB_SPAN_NO_EXCEPTIONS',['../span_8h.html#a6a2ae24aa0d7904d39929121347be277',1,'span.h']]], + ['tcb_5fspan_5fnodiscard_3198',['TCB_SPAN_NODISCARD',['../span_8h.html#a7db49c8b34883c12c5c4b5341d75a710',1,'span.h']]], + ['ttg_5fcxx_5fcoroutine_5fheader_3199',['TTG_CXX_COROUTINE_HEADER',['../config_8in_8h.html#abd2e1db1483c756a3c6afc4be8d02326',1,'config.in.h']]], + ['ttg_5fcxx_5fcoroutine_5fnamespace_3200',['TTG_CXX_COROUTINE_NAMESPACE',['../config_8in_8h.html#ac45e996b9645a1c1305a873f43328796',1,'config.in.h']]], + ['ttg_5fhave_5fcoroutine_3201',['TTG_HAVE_COROUTINE',['../config_8in_8h.html#a2fc030c83de988addd8c7e79e9424b70',1,'config.in.h']]], + ['ttg_5fhave_5fcuda_3202',['TTG_HAVE_CUDA',['../config_8in_8h.html#a20af46c30069bb38dfa8afde72d5b522',1,'config.in.h']]], + ['ttg_5fhave_5fcudart_3203',['TTG_HAVE_CUDART',['../config_8in_8h.html#a921084119e832dfa5b7bcb296b3cc486',1,'config.in.h']]], + ['ttg_5fhave_5fdevice_3204',['TTG_HAVE_DEVICE',['../config_8in_8h.html#aaab44f5308324a87695963bde34593ba',1,'config.in.h']]], + ['ttg_5fhave_5fhip_3205',['TTG_HAVE_HIP',['../config_8in_8h.html#a3361d90d7ef3b17e2a240d0ae2fea595',1,'config.in.h']]], + ['ttg_5fhave_5fhipblas_3206',['TTG_HAVE_HIPBLAS',['../config_8in_8h.html#a49b0b9db519cd01659f7feb9bacbee90',1,'config.in.h']]], + ['ttg_5fhave_5flevel_5fzero_3207',['TTG_HAVE_LEVEL_ZERO',['../config_8in_8h.html#a001959647e06b8ad36e8831fc758d6ae',1,'config.in.h']]], + ['ttg_5fhave_5fmpi_3208',['TTG_HAVE_MPI',['../config_8in_8h.html#ae8e12ea67fb3234d4b080df140720899',1,'config.in.h']]], + ['ttg_5fhave_5fmpiext_3209',['TTG_HAVE_MPIEXT',['../config_8in_8h.html#a44bf1d4ff4664401b9a488ae95c91215',1,'config.in.h']]], + ['ttg_5fimpl_5fdevice_5fsupport_3210',['TTG_IMPL_DEVICE_SUPPORT',['../parsec_2import_8h.html#ad83cce030dc0322286182f555f5e711f',1,'import.h']]], + ['ttg_5fimpl_5fns_3211',['TTG_IMPL_NS',['../madness_2import_8h.html#ac193789909c8bf87dfc68cc38f37a231',1,'TTG_IMPL_NS(): import.h'],['../parsec_2import_8h.html#ac193789909c8bf87dfc68cc38f37a231',1,'TTG_IMPL_NS(): import.h']]], + ['ttg_5fmadness_5fimported_3212',['TTG_MADNESS_IMPORTED',['../madness_2import_8h.html#ab6b89872a8be5fa2706cdafc1a018aa9',1,'import.h']]], + ['ttg_5fop_5fassert_5fexecutable_3213',['TTG_OP_ASSERT_EXECUTABLE',['../base_2tt_8h.html#a39e6ff898f2a34b887064047088ba7cf',1,'tt.h']]], + ['ttg_5fparsec_5fdata_5fflag_5fregistered_3214',['TTG_PARSEC_DATA_FLAG_REGISTERED',['../parsec-ext_8h.html#a618d49cd532c6dfdcf5c6f1f3954afc8',1,'parsec-ext.h']]], + ['ttg_5fparsec_5fdefer_5fwriter_3215',['TTG_PARSEC_DEFER_WRITER',['../ttg_2parsec_2ttg_8h.html#aba5ae8871cc40ffea6b58c73caccadb0',1,'ttg.h']]], + ['ttg_5fparsec_5fimported_3216',['TTG_PARSEC_IMPORTED',['../parsec_2import_8h.html#a79298852b6d5aea81a65a212e9c8f8bf',1,'import.h']]], + ['ttg_5fparsec_5fmax_5fnum_5fdevices_3217',['TTG_PARSEC_MAX_NUM_DEVICES',['../parsec_2devicescratch_8h.html#a9b402a6eb9914f1b90bad772d4115f16',1,'devicescratch.h']]], + ['ttg_5fprocess_5ftt_5fop_5freturn_3218',['TTG_PROCESS_TT_OP_RETURN',['../tt_8h.html#af328793b5f00c5e46d6369dac6bc8a86',1,'tt.h']]], + ['ttg_5fselected_5fdefault_5fimpl_3219',['TTG_SELECTED_DEFAULT_IMPL',['../madness_2import_8h.html#a3be7b102441b29daa9dca3bf17513e43',1,'TTG_SELECTED_DEFAULT_IMPL(): import.h'],['../parsec_2import_8h.html#a3be7b102441b29daa9dca3bf17513e43',1,'TTG_SELECTED_DEFAULT_IMPL(): import.h']]], + ['ttg_5fuse_5fmadness_3220',['TTG_USE_MADNESS',['../ttg_2madness_2ttg_8h.html#a8550f4de0f61b912327f5b1d184130e0',1,'ttg.h']]], + ['ttg_5fuse_5fparsec_3221',['TTG_USE_PARSEC',['../ttg_2parsec_2ttg_8h.html#a4cf2d50c3ab6555c86d67200d13ddf7f',1,'ttg.h']]], + ['ttg_5futil_5falias_5ftemplate_5ffunction_3222',['TTG_UTIL_ALIAS_TEMPLATE_FUNCTION',['../macro_8h.html#a4b4c1f871d908fd62f874bd13645fd12',1,'macro.h']]], + ['ttgunused_3223',['TTGUNUSED',['../macro_8h.html#ad47efad235191ab8d78a3490457b2ed3',1,'macro.h']]] +]; diff --git a/dox-master/search/enums_0.html b/dox-master/search/enums_0.html new file mode 100644 index 000000000..141fff57b --- /dev/null +++ b/dox-master/search/enums_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_0.js b/dox-master/search/enums_0.js new file mode 100644 index 000000000..0b761d235 --- /dev/null +++ b/dox-master/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['breakstate_3084',['BreakState',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5',1,'ttg::detail::MemoryWatchpoint_x86_64']]] +]; diff --git a/dox-master/search/enums_1.html b/dox-master/search/enums_1.html new file mode 100644 index 000000000..d29f3b16d --- /dev/null +++ b/dox-master/search/enums_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_1.js b/dox-master/search/enums_1.js new file mode 100644 index 000000000..f3b6fd1da --- /dev/null +++ b/dox-master/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['condition_3085',['Condition',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80',1,'ttg::detail::MemoryWatchpoint_x86_64']]] +]; diff --git a/dox-master/search/enums_2.html b/dox-master/search/enums_2.html new file mode 100644 index 000000000..59aadf2cb --- /dev/null +++ b/dox-master/search/enums_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_2.js b/dox-master/search/enums_2.js new file mode 100644 index 000000000..7660b0dc0 --- /dev/null +++ b/dox-master/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['debugregister_3086',['DebugRegister',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cb',1,'ttg::detail::MemoryWatchpoint_x86_64']]] +]; diff --git a/dox-master/search/enums_3.html b/dox-master/search/enums_3.html new file mode 100644 index 000000000..87c174430 --- /dev/null +++ b/dox-master/search/enums_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_3.js b/dox-master/search/enums_3.js new file mode 100644 index 000000000..eae62b288 --- /dev/null +++ b/dox-master/search/enums_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['execution_3087',['Execution',['../namespacettg.html#ab019ae6d4974cd5dc8737ac1e0607128',1,'ttg']]], + ['executionspace_3088',['ExecutionSpace',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78',1,'ttg']]] +]; diff --git a/dox-master/search/enums_4.html b/dox-master/search/enums_4.html new file mode 100644 index 000000000..90dda139c --- /dev/null +++ b/dox-master/search/enums_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_4.js b/dox-master/search/enums_4.js new file mode 100644 index 000000000..ee2b0db7d --- /dev/null +++ b/dox-master/search/enums_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['fn_5fid_3089',['fn_id',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63',1,'ttg_parsec::msg_header_t']]] +]; diff --git a/dox-master/search/enums_5.html b/dox-master/search/enums_5.html new file mode 100644 index 000000000..c57b88590 --- /dev/null +++ b/dox-master/search/enums_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_5.js b/dox-master/search/enums_5.js new file mode 100644 index 000000000..b7a8ad9ed --- /dev/null +++ b/dox-master/search/enums_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['runtime_3090',['Runtime',['../namespacettg.html#a516aa15683e63c7039e8dbdd057bbff6',1,'ttg']]] +]; diff --git a/dox-master/search/enums_6.html b/dox-master/search/enums_6.html new file mode 100644 index 000000000..ea5e0a682 --- /dev/null +++ b/dox-master/search/enums_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_6.js b/dox-master/search/enums_6.js new file mode 100644 index 000000000..3eec91664 --- /dev/null +++ b/dox-master/search/enums_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['scope_3091',['scope',['../namespacettg.html#a2696750161ae2e0b5fb4ea1543305793',1,'ttg']]], + ['size_3092',['Size',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['stdostreamtag_3093',['StdOstreamTag',['../namespacettg_1_1detail.html#a56bab461a0cd4193a3ee5a76a7d3c813',1,'ttg::detail']]] +]; diff --git a/dox-master/search/enums_7.html b/dox-master/search/enums_7.html new file mode 100644 index 000000000..d18087574 --- /dev/null +++ b/dox-master/search/enums_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enums_7.js b/dox-master/search/enums_7.js new file mode 100644 index 000000000..fdb4869c9 --- /dev/null +++ b/dox-master/search/enums_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['taskcoroutineid_3094',['TaskCoroutineID',['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922',1,'ttg']]], + ['ttg_5fparsec_5fdata_5fflags_3095',['ttg_parsec_data_flags',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44',1,'ttg_parsec::detail']]], + ['type_3096',['Type',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8',1,'ttg::TerminalBase']]] +]; diff --git a/dox-master/search/enumvalues_0.html b/dox-master/search/enumvalues_0.html new file mode 100644 index 000000000..0d131d95b --- /dev/null +++ b/dox-master/search/enumvalues_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_0.js b/dox-master/search/enumvalues_0.js new file mode 100644 index 000000000..498111ff2 --- /dev/null +++ b/dox-master/search/enumvalues_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['allocate_3097',['Allocate',['../namespacettg.html#a2696750161ae2e0b5fb4ea1543305793ac9baacf6cca6c54626e594639081177f',1,'ttg']]], + ['async_3098',['Async',['../namespacettg.html#ab019ae6d4974cd5dc8737ac1e0607128a24aa4117da86c41684ad25742832dfa6',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_1.html b/dox-master/search/enumvalues_1.html new file mode 100644 index 000000000..cd9187ab3 --- /dev/null +++ b/dox-master/search/enumvalues_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_1.js b/dox-master/search/enumvalues_1.js new file mode 100644 index 000000000..949856791 --- /dev/null +++ b/dox-master/search/enumvalues_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['cerr_3099',['Cerr',['../namespacettg_1_1detail.html#a56bab461a0cd4193a3ee5a76a7d3c813acc848f0ebe78353300a3863655cbccb0',1,'ttg::detail']]], + ['consume_3100',['Consume',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8ad2e0379c3a30439bfc1b6869af4408cc',1,'ttg::TerminalBase']]], + ['cout_3101',['Cout',['../namespacettg_1_1detail.html#a56bab461a0cd4193a3ee5a76a7d3c813a1a7b10301a039aa5c18753f916213581',1,'ttg::detail']]], + ['cuda_3102',['CUDA',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78aa33b7755e5f9b504d2d038eaca4ff28d',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_2.html b/dox-master/search/enumvalues_2.html new file mode 100644 index 000000000..2b95d9204 --- /dev/null +++ b/dox-master/search/enumvalues_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_2.js b/dox-master/search/enumvalues_2.js new file mode 100644 index 000000000..50c00bc42 --- /dev/null +++ b/dox-master/search/enumvalues_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['devicetask_3103',['DeviceTask',['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922ac81eda1ef27232cf58c0acc00bcd89cb',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_3.html b/dox-master/search/enumvalues_3.html new file mode 100644 index 000000000..bc0ac8a97 --- /dev/null +++ b/dox-master/search/enumvalues_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_3.js b/dox-master/search/enumvalues_3.js new file mode 100644 index 000000000..fe4034d54 --- /dev/null +++ b/dox-master/search/enumvalues_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hip_3104',['HIP',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78a5e4576beae2ab86d6ad1b8b1700d2e11',1,'ttg']]], + ['host_3105',['Host',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78ac2ca16d048ec66e04bca283eab048ec2',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_4.html b/dox-master/search/enumvalues_4.html new file mode 100644 index 000000000..ef94dd8d7 --- /dev/null +++ b/dox-master/search/enumvalues_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_4.js b/dox-master/search/enumvalues_4.js new file mode 100644 index 000000000..56fbb2ea7 --- /dev/null +++ b/dox-master/search/enumvalues_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['inline_3106',['Inline',['../namespacettg.html#ab019ae6d4974cd5dc8737ac1e0607128a0125cf5f3ca38b312ca5d3b511c45a13',1,'ttg']]], + ['invalid_3107',['Invalid',['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922a4bbb8f967da6d1a610596d7257179c2b',1,'ttg::Invalid()'],['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78a4bbb8f967da6d1a610596d7257179c2b',1,'ttg::Invalid()']]], + ['is_5fmodified_3108',['IS_MODIFIED',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a9f07cacd4be8d4dbbcfe635f73f357db',1,'ttg_parsec::detail']]] +]; diff --git a/dox-master/search/enumvalues_5.html b/dox-master/search/enumvalues_5.html new file mode 100644 index 000000000..1c2e2f33d --- /dev/null +++ b/dox-master/search/enumvalues_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_5.js b/dox-master/search/enumvalues_5.js new file mode 100644 index 000000000..7e859726c --- /dev/null +++ b/dox-master/search/enumvalues_5.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['kbreakstatemask_3109',['kBreakStateMask',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5a4b7108c3cacb9a7c8b77ed2ffba493d7',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kbyte_3110',['kByte',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2a43ca3a8a9d3b5cd9d1c8fa163fd34841',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kconditionmask_3111',['kConditionMask',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80a3e91efc753a0ccd4d493139cbc6742ae',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdisabled_3112',['kDisabled',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5a763e1bb4e7bc897d88bc8dc716d68d27',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr0_3113',['kDR0',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba3ed02d1a9d9ca37f1a17a6c292d0170a',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr1_3114',['kDR1',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba42256b9f02a4c2abe565527ec671b0f7',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr2_3115',['kDR2',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba0c1f2e72c95b131c9ae50375ea8a66c5',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kdr3_3116',['kDR3',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae6cc54b3e67d3e666a8d01ffdcfd40cba166f4a97351ee6b073cd5ba075602cd7',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kenabledglobally_3117',['kEnabledGlobally',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5af6cc48755f41ee6e244750b191c936b8',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kenabledlocally_3118',['kEnabledLocally',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ae76929290e1a974da1cf4f618ad7d4c5a3770e327db56e42badff59bf543f1376',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['khalfword_3119',['kHalfWord',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2a9b3c642428a2256550f79ca6e81f5940',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['ksizemask_3120',['kSizeMask',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2a9a22dcb2abf1dd5b758b7f71e3a09671',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kwhenexecuted_3121',['kWhenExecuted',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80a8a18fd33b66d55865318622508868ab5',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kwhenwritten_3122',['kWhenWritten',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80acf2002a901e924018a80afefeb4248a2',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kwhenwrittenorread_3123',['kWhenWrittenOrRead',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa88d2acc8d8443aeca3f96beda544e80a65be965d3de63dbc8547c8e0fd03b638',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['kword_3124',['kWord',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a4b029075083553bf0805afa5429ac6b2aca8ecfdb6e4e46b84bc79e658c034219',1,'ttg::detail::MemoryWatchpoint_x86_64']]] +]; diff --git a/dox-master/search/enumvalues_6.html b/dox-master/search/enumvalues_6.html new file mode 100644 index 000000000..f985df91d --- /dev/null +++ b/dox-master/search/enumvalues_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_6.js b/dox-master/search/enumvalues_6.js new file mode 100644 index 000000000..08e160eb4 --- /dev/null +++ b/dox-master/search/enumvalues_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['l0_3125',['L0',['../namespacettg.html#a21f356ede312dd6a02f4977f2b086d78a9b2571fa925a02f94028dcc9ec129866',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_7.html b/dox-master/search/enumvalues_7.html new file mode 100644 index 000000000..7fdf663dd --- /dev/null +++ b/dox-master/search/enumvalues_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_7.js b/dox-master/search/enumvalues_7.js new file mode 100644 index 000000000..717edb485 --- /dev/null +++ b/dox-master/search/enumvalues_7.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['madworld_3126',['MADWorld',['../namespacettg.html#a516aa15683e63c7039e8dbdd057bbff6a4aa0e111e01a656182b1df038ad764d1',1,'ttg']]], + ['marked_5fpushout_3127',['MARKED_PUSHOUT',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a892f017a7e14cd222e18314d84314011',1,'ttg_parsec::detail']]], + ['msg_5ffinalize_5fargstream_5fsize_3128',['MSG_FINALIZE_ARGSTREAM_SIZE',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a69f786a752f683fc4406f65a1bee0b78',1,'ttg_parsec::msg_header_t']]], + ['msg_5fget_5ffrom_5fpull_3129',['MSG_GET_FROM_PULL',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a63df738141775f5c8a7434662c48e3c1',1,'ttg_parsec::msg_header_t']]], + ['msg_5finvalid_3130',['MSG_INVALID',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63aaec6e0f85658c1034aa2dce52b296fb1',1,'ttg_parsec::msg_header_t']]], + ['msg_5fset_5farg_3131',['MSG_SET_ARG',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a2dd85a1e4d00fa53490e627b15b58ef1',1,'ttg_parsec::msg_header_t']]], + ['msg_5fset_5fargstream_5fsize_3132',['MSG_SET_ARGSTREAM_SIZE',['../structttg__parsec_1_1msg__header__t.html#a6eca84f5a8b6b06d4556828dd32dcb63a1592ff4e8c79b861ed9f587d597e9cbf',1,'ttg_parsec::msg_header_t']]], + ['multiple_5freader_3133',['MULTIPLE_READER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a130d50c5d65c81c0644c9d0273dfb5e5',1,'ttg_parsec::detail']]], + ['multiple_5fwriter_3134',['MULTIPLE_WRITER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a03886c1f586f6592e80916f5126c6025',1,'ttg_parsec::detail']]] +]; diff --git a/dox-master/search/enumvalues_8.html b/dox-master/search/enumvalues_8.html new file mode 100644 index 000000000..674ccda69 --- /dev/null +++ b/dox-master/search/enumvalues_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_8.js b/dox-master/search/enumvalues_8.js new file mode 100644 index 000000000..6c1ba3dd9 --- /dev/null +++ b/dox-master/search/enumvalues_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['none_3135',['NONE',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44ab50339a10e1de285ac99d4c3990b8693',1,'ttg_parsec::detail']]] +]; diff --git a/dox-master/search/enumvalues_9.html b/dox-master/search/enumvalues_9.html new file mode 100644 index 000000000..60f15ee38 --- /dev/null +++ b/dox-master/search/enumvalues_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_9.js b/dox-master/search/enumvalues_9.js new file mode 100644 index 000000000..4f636c412 --- /dev/null +++ b/dox-master/search/enumvalues_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parsec_3136',['PaRSEC',['../namespacettg.html#a516aa15683e63c7039e8dbdd057bbff6a8d9cb8b170c7d01aadf755dc4a079811',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_a.html b/dox-master/search/enumvalues_a.html new file mode 100644 index 000000000..ce1064c72 --- /dev/null +++ b/dox-master/search/enumvalues_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_a.js b/dox-master/search/enumvalues_a.js new file mode 100644 index 000000000..243f37c23 --- /dev/null +++ b/dox-master/search/enumvalues_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['read_3137',['Read',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8a7a1a5f3e79fdc91edf2f5ead9d66abb4',1,'ttg::TerminalBase']]], + ['resumabletask_3138',['ResumableTask',['../namespacettg.html#afef67ebe6eaeb8e1340aa07c3a46d922a15330ec8fb4a55918f2e4162d2dbdb21',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_b.html b/dox-master/search/enumvalues_b.html new file mode 100644 index 000000000..ec768e7ff --- /dev/null +++ b/dox-master/search/enumvalues_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_b.js b/dox-master/search/enumvalues_b.js new file mode 100644 index 000000000..420bb94e3 --- /dev/null +++ b/dox-master/search/enumvalues_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['single_5freader_3139',['SINGLE_READER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44affba7cdf47794b02ac48629f11972c43',1,'ttg_parsec::detail']]], + ['single_5fwriter_3140',['SINGLE_WRITER',['../namespacettg__parsec_1_1detail.html#ab6a245c05abfff271a933c1da123ef44a525422239d95636635b831c35d28dd75',1,'ttg_parsec::detail']]], + ['syncin_3141',['SyncIn',['../namespacettg.html#a2696750161ae2e0b5fb4ea1543305793a7123d7880075371aabefd3ba9f18a92c',1,'ttg']]] +]; diff --git a/dox-master/search/enumvalues_c.html b/dox-master/search/enumvalues_c.html new file mode 100644 index 000000000..bdb4e1315 --- /dev/null +++ b/dox-master/search/enumvalues_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/enumvalues_c.js b/dox-master/search/enumvalues_c.js new file mode 100644 index 000000000..f4f638c30 --- /dev/null +++ b/dox-master/search/enumvalues_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['write_3142',['Write',['../classttg_1_1_terminal_base.html#afe302f5fa50a2309304ba42b42a51ee8a1129c0e4d43f2d121652a7302712cff6',1,'ttg::TerminalBase']]] +]; diff --git a/dox-master/search/files_0.html b/dox-master/search/files_0.html new file mode 100644 index 000000000..9498842a6 --- /dev/null +++ b/dox-master/search/files_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_0.js b/dox-master/search/files_0.js new file mode 100644 index 000000000..458cb4f0b --- /dev/null +++ b/dox-master/search/files_0.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['add_5fmember_5fconst_2ehpp_1986',['add_member_const.hpp',['../add__member__const_8hpp.html',1,'']]], + ['add_5fmember_5fcv_2ehpp_1987',['add_member_cv.hpp',['../add__member__cv_8hpp.html',1,'']]], + ['add_5fmember_5flvalue_5freference_2ehpp_1988',['add_member_lvalue_reference.hpp',['../add__member__lvalue__reference_8hpp.html',1,'']]], + ['add_5fmember_5frvalue_5freference_2ehpp_1989',['add_member_rvalue_reference.hpp',['../add__member__rvalue__reference_8hpp.html',1,'']]], + ['add_5fmember_5fvolatile_2ehpp_1990',['add_member_volatile.hpp',['../add__member__volatile_8hpp.html',1,'']]], + ['add_5fnoexcept_2ehpp_1991',['add_noexcept.hpp',['../add__noexcept_8hpp.html',1,'']]], + ['add_5ftransaction_5fsafe_2ehpp_1992',['add_transaction_safe.hpp',['../add__transaction__safe_8hpp.html',1,'']]], + ['add_5fvarargs_2ehpp_1993',['add_varargs.hpp',['../add__varargs_8hpp.html',1,'']]], + ['allocator_2eh_1994',['allocator.h',['../allocator_8h.html',1,'']]], + ['apply_5fmember_5fpointer_2ehpp_1995',['apply_member_pointer.hpp',['../apply__member__pointer_8hpp.html',1,'']]], + ['apply_5freturn_2ehpp_1996',['apply_return.hpp',['../apply__return_8hpp.html',1,'']]], + ['archive_2eh_1997',['archive.h',['../archive_8h.html',1,'']]], + ['args_2ehpp_1998',['args.hpp',['../args_8hpp.html',1,'']]], + ['array_2eh_1999',['array.h',['../array_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_1.html b/dox-master/search/files_1.html new file mode 100644 index 000000000..7050ef48a --- /dev/null +++ b/dox-master/search/files_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_1.js b/dox-master/search/files_1.js new file mode 100644 index 000000000..e931f64a1 --- /dev/null +++ b/dox-master/search/files_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['backends_2eh_2000',['backends.h',['../backends_8h.html',1,'']]], + ['backtrace_2ecpp_2001',['backtrace.cpp',['../backtrace_8cpp.html',1,'']]], + ['backtrace_2eh_2002',['backtrace.h',['../backtrace_8h.html',1,'']]], + ['boost_2eh_2003',['boost.h',['../boost_8h.html',1,'']]], + ['broadcast_2eh_2004',['broadcast.h',['../broadcast_8h.html',1,'']]], + ['buffer_2eh_2005',['buffer.h',['../buffer_8h.html',1,'(Global Namespace)'],['../madness_2buffer_8h.html',1,'(Global Namespace)'],['../parsec_2buffer_8h.html',1,'(Global Namespace)']]], + ['buffer_5farchive_2ecpp_2006',['buffer_archive.cpp',['../buffer__archive_8cpp.html',1,'']]], + ['buffer_5farchive_2eh_2007',['buffer_archive.h',['../buffer__archive_8h.html',1,'']]], + ['bug_2ecpp_2008',['bug.cpp',['../bug_8cpp.html',1,'']]], + ['bug_2eh_2009',['bug.h',['../bug_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_10.html b/dox-master/search/files_10.html new file mode 100644 index 000000000..e52318ed3 --- /dev/null +++ b/dox-master/search/files_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_10.js b/dox-master/search/files_10.js new file mode 100644 index 000000000..ced19aff5 --- /dev/null +++ b/dox-master/search/files_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['utility_2ehpp_2129',['utility.hpp',['../utility_8hpp.html',1,'']]] +]; diff --git a/dox-master/search/files_11.html b/dox-master/search/files_11.html new file mode 100644 index 000000000..02edc0913 --- /dev/null +++ b/dox-master/search/files_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_11.js b/dox-master/search/files_11.js new file mode 100644 index 000000000..17b393130 --- /dev/null +++ b/dox-master/search/files_11.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['variant_2eh_2130',['variant.h',['../variant_8h.html',1,'']]], + ['vector_2eh_2131',['vector.h',['../vector_8h.html',1,'']]], + ['version_2ecc_2132',['version.cc',['../version_8cc.html',1,'']]], + ['void_2eh_2133',['void.h',['../void_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_12.html b/dox-master/search/files_12.html new file mode 100644 index 000000000..bd79f3c5f --- /dev/null +++ b/dox-master/search/files_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_12.js b/dox-master/search/files_12.js new file mode 100644 index 000000000..c49d4a912 --- /dev/null +++ b/dox-master/search/files_12.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['watch_2eh_2134',['watch.h',['../watch_8h.html',1,'']]], + ['workflow_2emd_2135',['Workflow.md',['../_workflow_8md.html',1,'']]], + ['world_2eh_2136',['world.h',['../base_2world_8h.html',1,'(Global Namespace)'],['../world_8h.html',1,'(Global Namespace)']]] +]; diff --git a/dox-master/search/files_2.html b/dox-master/search/files_2.html new file mode 100644 index 000000000..497cdf5c7 --- /dev/null +++ b/dox-master/search/files_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_2.js b/dox-master/search/files_2.js new file mode 100644 index 000000000..0994f233c --- /dev/null +++ b/dox-master/search/files_2.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['callable_2eh_2010',['callable.h',['../callable_8h.html',1,'']]], + ['callable_5ftraits_2ehpp_2011',['callable_traits.hpp',['../callable__traits_8hpp.html',1,'']]], + ['ci_2dadministration_2dnotes_2emd_2012',['CI-Administration-Notes.md',['../_c_i-_administration-_notes_8md.html',1,'']]], + ['class_5fof_2ehpp_2013',['class_of.hpp',['../class__of_8hpp.html',1,'']]], + ['coding_2dstandards_2emd_2014',['Coding-Standards.md',['../_coding-_standards_8md.html',1,'']]], + ['config_2ehpp_2015',['config.hpp',['../config_8hpp.html',1,'']]], + ['config_2ein_2eh_2016',['config.in.h',['../config_8in_8h.html',1,'']]], + ['core_2ehpp_2017',['core.hpp',['../core_8hpp.html',1,'']]], + ['coroutine_2eh_2018',['coroutine.h',['../coroutine_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_3.html b/dox-master/search/files_3.html new file mode 100644 index 000000000..1ba106b2d --- /dev/null +++ b/dox-master/search/files_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_3.js b/dox-master/search/files_3.js new file mode 100644 index 000000000..44e4eb694 --- /dev/null +++ b/dox-master/search/files_3.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['data_5fdescriptor_2eh_2019',['data_descriptor.h',['../data__descriptor_8h.html',1,'']]], + ['default_5fcallable_5ftraits_2ehpp_2020',['default_callable_traits.hpp',['../default__callable__traits_8hpp.html',1,'']]], + ['demangle_2eh_2021',['demangle.h',['../demangle_8h.html',1,'']]], + ['design_2ddevice_2emd_2022',['Design-Device.md',['../_design-_device_8md.html',1,'']]], + ['device_2eh_2023',['device.h',['../device_2device_8h.html',1,'(Global Namespace)'],['../madness_2device_8h.html',1,'(Global Namespace)'],['../parsec_2device_8h.html',1,'(Global Namespace)']]], + ['devicefunc_2eh_2024',['devicefunc.h',['../devicefunc_8h.html',1,'']]], + ['devicescope_2eh_2025',['devicescope.h',['../devicescope_8h.html',1,'']]], + ['devicescratch_2eh_2026',['devicescratch.h',['../devicescratch_8h.html',1,'(Global Namespace)'],['../parsec_2devicescratch_8h.html',1,'(Global Namespace)']]], + ['diagnose_2eh_2027',['diagnose.h',['../diagnose_8h.html',1,'']]], + ['disjunction_2ehpp_2028',['disjunction.hpp',['../disjunction_8hpp.html',1,'']]], + ['distributed_2ecc_2029',['distributed.cc',['../distributed_8cc.html',1,'']]], + ['documenting_2dttg_2emd_2030',['Documenting-TTG.md',['../_documenting-_t_t_g_8md.html',1,'']]], + ['dot_2eh_2031',['dot.h',['../dot_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_4.html b/dox-master/search/files_4.html new file mode 100644 index 000000000..753b7b109 --- /dev/null +++ b/dox-master/search/files_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_4.js b/dox-master/search/files_4.js new file mode 100644 index 000000000..4688fe65a --- /dev/null +++ b/dox-master/search/files_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['edge_2eh_2032',['edge.h',['../edge_8h.html',1,'']]], + ['env_2ecpp_2033',['env.cpp',['../env_8cpp.html',1,'']]], + ['env_2eh_2034',['env.h',['../env_8h.html',1,'']]], + ['execution_2eh_2035',['execution.h',['../execution_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_5.html b/dox-master/search/files_5.html new file mode 100644 index 000000000..7b6affd7f --- /dev/null +++ b/dox-master/search/files_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_5.js b/dox-master/search/files_5.js new file mode 100644 index 000000000..fd4495adf --- /dev/null +++ b/dox-master/search/files_5.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['forward_5fdeclarations_2ehpp_2036',['forward_declarations.hpp',['../forward__declarations_8hpp.html',1,'']]], + ['func_2eh_2037',['func.h',['../func_8h.html',1,'']]], + ['function_2ehpp_2038',['function.hpp',['../function_8hpp.html',1,'(Global Namespace)'],['../unguarded_2function_8hpp.html',1,'(Global Namespace)']]], + ['function_5f2_2ehpp_2039',['function_2.hpp',['../function__2_8hpp.html',1,'']]], + ['function_5f3_2ehpp_2040',['function_3.hpp',['../function__3_8hpp.html',1,'']]], + ['function_5fobject_2ehpp_2041',['function_object.hpp',['../function__object_8hpp.html',1,'']]], + ['function_5fptr_2ehpp_2042',['function_ptr.hpp',['../function__ptr_8hpp.html',1,'']]], + ['function_5fptr_5f2_2ehpp_2043',['function_ptr_2.hpp',['../function__ptr__2_8hpp.html',1,'']]], + ['function_5fptr_5f3_2ehpp_2044',['function_ptr_3.hpp',['../function__ptr__3_8hpp.html',1,'']]], + ['function_5fptr_5fvarargs_2ehpp_2045',['function_ptr_varargs.hpp',['../function__ptr__varargs_8hpp.html',1,'']]], + ['function_5fptr_5fvarargs_5f2_2ehpp_2046',['function_ptr_varargs_2.hpp',['../function__ptr__varargs__2_8hpp.html',1,'']]], + ['function_5fptr_5fvarargs_5f3_2ehpp_2047',['function_ptr_varargs_3.hpp',['../function__ptr__varargs__3_8hpp.html',1,'']]], + ['function_5ftype_2ehpp_2048',['function_type.hpp',['../function__type_8hpp.html',1,'']]], + ['future_2eh_2049',['future.h',['../future_8h.html',1,'']]], + ['fwd_2eh_2050',['fwd.h',['../fwd_8h.html',1,'(Global Namespace)'],['../madness_2fwd_8h.html',1,'(Global Namespace)'],['../parsec_2fwd_8h.html',1,'(Global Namespace)']]] +]; diff --git a/dox-master/search/files_6.html b/dox-master/search/files_6.html new file mode 100644 index 000000000..802ebf715 --- /dev/null +++ b/dox-master/search/files_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_6.js b/dox-master/search/files_6.js new file mode 100644 index 000000000..40423e927 --- /dev/null +++ b/dox-master/search/files_6.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['has_5fmember_5fqualifiers_2ehpp_2051',['has_member_qualifiers.hpp',['../has__member__qualifiers_8hpp.html',1,'']]], + ['has_5fvarargs_2ehpp_2052',['has_varargs.hpp',['../has__varargs_8hpp.html',1,'']]], + ['has_5fvoid_5freturn_2ehpp_2053',['has_void_return.hpp',['../has__void__return_8hpp.html',1,'']]], + ['hash_2eh_2054',['hash.h',['../hash_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_7.html b/dox-master/search/files_7.html new file mode 100644 index 000000000..365e6484f --- /dev/null +++ b/dox-master/search/files_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_7.js b/dox-master/search/files_7.js new file mode 100644 index 000000000..35154e028 --- /dev/null +++ b/dox-master/search/files_7.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['impl_5fselector_2eh_2055',['impl_selector.h',['../impl__selector_8h.html',1,'']]], + ['import_2eh_2056',['import.h',['../madness_2import_8h.html',1,'(Global Namespace)'],['../parsec_2import_8h.html',1,'(Global Namespace)']]], + ['iovec_2eh_2057',['iovec.h',['../iovec_8h.html',1,'']]], + ['is_5fconst_5fmember_2ehpp_2058',['is_const_member.hpp',['../is__const__member_8hpp.html',1,'']]], + ['is_5finvocable_2ehpp_2059',['is_invocable.hpp',['../is__invocable_8hpp.html',1,'']]], + ['is_5finvocable_5fimpl_2ehpp_2060',['is_invocable_impl.hpp',['../is__invocable__impl_8hpp.html',1,'']]], + ['is_5flvalue_5freference_5fmember_2ehpp_2061',['is_lvalue_reference_member.hpp',['../is__lvalue__reference__member_8hpp.html',1,'']]], + ['is_5fnoexcept_2ehpp_2062',['is_noexcept.hpp',['../is__noexcept_8hpp.html',1,'']]], + ['is_5freference_5fmember_2ehpp_2063',['is_reference_member.hpp',['../is__reference__member_8hpp.html',1,'']]], + ['is_5frvalue_5freference_5fmember_2ehpp_2064',['is_rvalue_reference_member.hpp',['../is__rvalue__reference__member_8hpp.html',1,'']]], + ['is_5ftransaction_5fsafe_2ehpp_2065',['is_transaction_safe.hpp',['../is__transaction__safe_8hpp.html',1,'']]], + ['is_5fvolatile_5fmember_2ehpp_2066',['is_volatile_member.hpp',['../is__volatile__member_8hpp.html',1,'']]], + ['iterative_2ecc_2067',['iterative.cc',['../iterative_8cc.html',1,'']]] +]; diff --git a/dox-master/search/files_8.html b/dox-master/search/files_8.html new file mode 100644 index 000000000..3df0f2fae --- /dev/null +++ b/dox-master/search/files_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_8.js b/dox-master/search/files_8.js new file mode 100644 index 000000000..219eec0ab --- /dev/null +++ b/dox-master/search/files_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['keymap_2eh_2068',['keymap.h',['../keymap_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_9.html b/dox-master/search/files_9.html new file mode 100644 index 000000000..52f8b6c07 --- /dev/null +++ b/dox-master/search/files_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_9.js b/dox-master/search/files_9.js new file mode 100644 index 000000000..69b7bfc60 --- /dev/null +++ b/dox-master/search/files_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['list_2eh_2069',['list.h',['../list_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_a.html b/dox-master/search/files_a.html new file mode 100644 index 000000000..11d4c117b --- /dev/null +++ b/dox-master/search/files_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_a.js b/dox-master/search/files_a.js new file mode 100644 index 000000000..621ae2865 --- /dev/null +++ b/dox-master/search/files_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['macro_2eh_2070',['macro.h',['../macro_8h.html',1,'']]], + ['madness_2eh_2071',['madness.h',['../madness_8h.html',1,'']]], + ['make_5findex_5fsequence_2ehpp_2072',['make_index_sequence.hpp',['../make__index__sequence_8hpp.html',1,'']]], + ['make_5ftt_2eh_2073',['make_tt.h',['../make__tt_8h.html',1,'']]], + ['meta_2eh_2074',['meta.h',['../meta_8h.html',1,'']]], + ['multiindex_2eh_2075',['multiindex.h',['../multiindex_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_b.html b/dox-master/search/files_b.html new file mode 100644 index 000000000..9fc83436a --- /dev/null +++ b/dox-master/search/files_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_b.js b/dox-master/search/files_b.js new file mode 100644 index 000000000..4b1693886 --- /dev/null +++ b/dox-master/search/files_b.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['pair_2eh_2076',['pair.h',['../util_2hash_2std_2pair_8h.html',1,'(Global Namespace)'],['../serialization_2std_2pair_8h.html',1,'(Global Namespace)']]], + ['parsec_2dext_2eh_2077',['parsec-ext.h',['../parsec-ext_8h.html',1,'']]], + ['pmd_2ehpp_2078',['pmd.hpp',['../pmd_8hpp.html',1,'']]], + ['pmf_2ehpp_2079',['pmf.hpp',['../pmf_8hpp.html',1,'(Global Namespace)'],['../unguarded_2pmf_8hpp.html',1,'(Global Namespace)']]], + ['pmf_5f2_2ehpp_2080',['pmf_2.hpp',['../pmf__2_8hpp.html',1,'']]], + ['pmf_5f3_2ehpp_2081',['pmf_3.hpp',['../pmf__3_8hpp.html',1,'']]], + ['pmf_5f4_2ehpp_2082',['pmf_4.hpp',['../pmf__4_8hpp.html',1,'']]], + ['pmf_5fvarargs_2ehpp_2083',['pmf_varargs.hpp',['../pmf__varargs_8hpp.html',1,'']]], + ['pmf_5fvarargs_5f2_2ehpp_2084',['pmf_varargs_2.hpp',['../pmf__varargs__2_8hpp.html',1,'']]], + ['pmf_5fvarargs_5f3_2ehpp_2085',['pmf_varargs_3.hpp',['../pmf__varargs__3_8hpp.html',1,'']]], + ['pmf_5fvarargs_5f4_2ehpp_2086',['pmf_varargs_4.hpp',['../pmf__varargs__4_8hpp.html',1,'']]], + ['print_2eh_2087',['print.h',['../print_8h.html',1,'']]], + ['ptr_2eh_2088',['ptr.h',['../parsec_2ptr_8h.html',1,'(Global Namespace)'],['../ptr_8h.html',1,'(Global Namespace)']]], + ['pull_2dterminal_2ddesign_2ddoc_2emd_2089',['Pull-terminal-design-doc.md',['../_pull-terminal-design-doc_8md.html',1,'']]] +]; diff --git a/dox-master/search/files_c.html b/dox-master/search/files_c.html new file mode 100644 index 000000000..c266b4c25 --- /dev/null +++ b/dox-master/search/files_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_c.js b/dox-master/search/files_c.js new file mode 100644 index 000000000..8eee8d2dd --- /dev/null +++ b/dox-master/search/files_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['qualified_5fclass_5fof_2ehpp_2090',['qualified_class_of.hpp',['../qualified__class__of_8hpp.html',1,'']]], + ['qualifier_5fflags_2ehpp_2091',['qualifier_flags.hpp',['../qualifier__flags_8hpp.html',1,'']]] +]; diff --git a/dox-master/search/files_d.html b/dox-master/search/files_d.html new file mode 100644 index 000000000..d2ca3c1ca --- /dev/null +++ b/dox-master/search/files_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_d.js b/dox-master/search/files_d.js new file mode 100644 index 000000000..3c8415505 --- /dev/null +++ b/dox-master/search/files_d.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['readme_2emd_2092',['README.md',['../_r_e_a_d_m_e_8md.html',1,'']]], + ['reduce_2eh_2093',['reduce.h',['../reduce_8h.html',1,'']]], + ['reducing_2ecc_2094',['reducing.cc',['../reducing_8cc.html',1,'']]], + ['remove_5fmember_5fconst_2ehpp_2095',['remove_member_const.hpp',['../remove__member__const_8hpp.html',1,'']]], + ['remove_5fmember_5fcv_2ehpp_2096',['remove_member_cv.hpp',['../remove__member__cv_8hpp.html',1,'']]], + ['remove_5fmember_5freference_2ehpp_2097',['remove_member_reference.hpp',['../remove__member__reference_8hpp.html',1,'']]], + ['remove_5fmember_5fvolatile_2ehpp_2098',['remove_member_volatile.hpp',['../remove__member__volatile_8hpp.html',1,'']]], + ['remove_5fnoexcept_2ehpp_2099',['remove_noexcept.hpp',['../remove__noexcept_8hpp.html',1,'']]], + ['remove_5ftransaction_5fsafe_2ehpp_2100',['remove_transaction_safe.hpp',['../remove__transaction__safe_8hpp.html',1,'']]], + ['remove_5fvarargs_2ehpp_2101',['remove_varargs.hpp',['../remove__varargs_8hpp.html',1,'']]], + ['return_5ftype_2ehpp_2102',['return_type.hpp',['../return__type_8hpp.html',1,'']]], + ['run_2eh_2103',['run.h',['../run_8h.html',1,'']]], + ['runtimes_2eh_2104',['runtimes.h',['../runtimes_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_e.html b/dox-master/search/files_e.html new file mode 100644 index 000000000..9df411672 --- /dev/null +++ b/dox-master/search/files_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_e.js b/dox-master/search/files_e.js new file mode 100644 index 000000000..0bf3f43b8 --- /dev/null +++ b/dox-master/search/files_e.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['serialization_2eh_2105',['serialization.h',['../serialization_8h.html',1,'']]], + ['set_5ffunction_5fqualifiers_2ehpp_2106',['set_function_qualifiers.hpp',['../set__function__qualifiers_8hpp.html',1,'']]], + ['sfinae_5ferrors_2ehpp_2107',['sfinae_errors.hpp',['../sfinae__errors_8hpp.html',1,'']]], + ['simple_2ecc_2108',['simple.cc',['../simple_8cc.html',1,'']]], + ['span_2eh_2109',['span.h',['../span_8h.html',1,'']]], + ['splitmd_5fdata_5fdescriptor_2eh_2110',['splitmd_data_descriptor.h',['../splitmd__data__descriptor_8h.html',1,'']]], + ['stream_2eh_2111',['stream.h',['../stream_8h.html',1,'']]] +]; diff --git a/dox-master/search/files_f.html b/dox-master/search/files_f.html new file mode 100644 index 000000000..f75258bb5 --- /dev/null +++ b/dox-master/search/files_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/files_f.js b/dox-master/search/files_f.js new file mode 100644 index 000000000..b7f5fdc78 --- /dev/null +++ b/dox-master/search/files_f.js @@ -0,0 +1,20 @@ +var searchData= +[ + ['task_2eh_2112',['task.h',['../parsec_2task_8h.html',1,'(Global Namespace)'],['../device_2task_8h.html',1,'(Global Namespace)']]], + ['terminal_2eh_2113',['terminal.h',['../terminal_8h.html',1,'(Global Namespace)'],['../base_2terminal_8h.html',1,'(Global Namespace)']]], + ['test_2ecpp_2114',['test.cpp',['../test_8cpp.html',1,'']]], + ['thread_5flocal_2eh_2115',['thread_local.h',['../thread__local_8h.html',1,'']]], + ['top_2emd_2116',['top.md',['../contrib_2top_8md.html',1,'(Global Namespace)'],['../dev_2top_8md.html',1,'(Global Namespace)'],['../user_2top_8md.html',1,'(Global Namespace)']]], + ['trace_2eh_2117',['trace.h',['../trace_8h.html',1,'']]], + ['traits_2eh_2118',['traits.h',['../traits_8h.html',1,'']]], + ['traits_2ehpp_2119',['traits.hpp',['../traits_8hpp.html',1,'']]], + ['traverse_2eh_2120',['traverse.h',['../traverse_8h.html',1,'']]], + ['tree_2eh_2121',['tree.h',['../tree_8h.html',1,'']]], + ['tt_2eh_2122',['tt.h',['../base_2tt_8h.html',1,'(Global Namespace)'],['../tt_8h.html',1,'(Global Namespace)']]], + ['ttg_2dbuild_2dinfrastructure_2emd_2123',['TTG-Build-Infrastructure.md',['../_t_t_g-_build-_infrastructure_8md.html',1,'']]], + ['ttg_2eh_2124',['ttg.h',['../ttg_2parsec_2ttg_8h.html',1,'(Global Namespace)'],['../ttg_8h.html',1,'(Global Namespace)'],['../ttg_2madness_2ttg_8h.html',1,'(Global Namespace)']]], + ['ttg_5fdata_5fcopy_2eh_2125',['ttg_data_copy.h',['../ttg__data__copy_8h.html',1,'']]], + ['ttvalue_2eh_2126',['ttvalue.h',['../ttvalue_8h.html',1,'(Global Namespace)'],['../parsec_2ttvalue_8h.html',1,'(Global Namespace)'],['../madness_2ttvalue_8h.html',1,'(Global Namespace)']]], + ['tuple_2eh_2127',['tuple.h',['../tuple_8h.html',1,'']]], + ['typelist_2eh_2128',['typelist.h',['../typelist_8h.html',1,'']]] +]; diff --git a/dox-master/search/functions_0.html b/dox-master/search/functions_0.html new file mode 100644 index 000000000..eb4c5014c --- /dev/null +++ b/dox-master/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_0.js b/dox-master/search/functions_0.js new file mode 100644 index 000000000..6d4eaef37 --- /dev/null +++ b/dox-master/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5f_5ftraceback_2137',['__traceback',['../classttg_1_1_debugger.html#a3bded73e46b0fb03ec108818b1ef4b88',1,'ttg::Debugger']]] +]; diff --git a/dox-master/search/functions_1.html b/dox-master/search/functions_1.html new file mode 100644 index 000000000..ef4088b89 --- /dev/null +++ b/dox-master/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_1.js b/dox-master/search/functions_1.js new file mode 100644 index 000000000..77e3d3a3b --- /dev/null +++ b/dox-master/search/functions_1.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['abort_2138',['abort',['../namespacettg.html#a408d84f3b0f9b79a3278a3eac949b207',1,'ttg']]], + ['add_5fcopy_5fto_5ftask_2139',['add_copy_to_task',['../namespacettg__parsec_1_1detail.html#a67daa9dfcabd832631ca6f35ab363126',1,'ttg_parsec::detail']]], + ['add_5fdevice_5fdata_2140',['add_device_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ab1588b2c983f8e843fdc11c9c2521e1d',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['add_5fref_2141',['add_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ad1366b20ef9d7e3168239b887c258b99',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['address_2142',['address',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#af040d4c877116fcdb5957351727518ac',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['allocate_5fon_2143',['allocate_on',['../structttg__madness_1_1_buffer.html#abd8bb40f3ac23082c698652e315c01d8',1,'ttg_madness::Buffer::allocate_on()'],['../structttg__parsec_1_1_buffer.html#ac1452970fb4d8d5e6f79c013a8d043e9',1,'ttg_parsec::Buffer::allocate_on()']]], + ['argstream_5fset_5fsize_5ffrom_5fmsg_2144',['argstream_set_size_from_msg',['../classttg__parsec_1_1_t_t.html#ae024ad0714e4438f7ab96c7abe0f28e4',1,'ttg_parsec::TT']]], + ['as_5fbytes_2145',['as_bytes',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a73c2f01ba8ad157c8451953eba209959',1,'TCB_SPAN_NAMESPACE_NAME']]], + ['as_5fwritable_5fbytes_2146',['as_writable_bytes',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a27e28f425fb87e409fc5560e9b60b2d7',1,'TCB_SPAN_NAMESPACE_NAME']]], + ['await_5fready_2147',['await_ready',['../structttg_1_1resumable__task__events.html#a1438292220d63b7e36d66ea28b2e4eb1',1,'ttg::resumable_task_events']]], + ['await_5fresume_2148',['await_resume',['../structttg_1_1resumable__task__events.html#a739e3ac598e349bc57fdb6c8384c35ef',1,'ttg::resumable_task_events']]], + ['await_5fsuspend_2149',['await_suspend',['../structttg_1_1resumable__task__events.html#ad5b167132a1d36aedf3574b2c0425dc5',1,'ttg::resumable_task_events']]] +]; diff --git a/dox-master/search/functions_10.html b/dox-master/search/functions_10.html new file mode 100644 index 000000000..1bdc12572 --- /dev/null +++ b/dox-master/search/functions_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_10.js b/dox-master/search/functions_10.js new file mode 100644 index 000000000..78d3fa8e2 --- /dev/null +++ b/dox-master/search/functions_10.js @@ -0,0 +1,68 @@ +var searchData= +[ + ['save_2511',['save',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a5f214e2de5e85d55fdb2bc78080d3b57',1,'ttg::detail::boost_optimized_oarchive::save(const bool t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a9d92c0e615c5a85798d8a2ba585583f0',1,'ttg::detail::boost_optimized_oarchive::save(const T &t)']]], + ['save_5farray_2512',['save_array',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#ae4ff86a0d6b912a78f8da844c828332b',1,'ttg::detail::boost_optimized_oarchive']]], + ['save_5fbinary_2513',['save_binary',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a2e37ee13b62f880f890fae8811c80674',1,'ttg::detail::boost_optimized_oarchive']]], + ['save_5fobject_2514',['save_object',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#aaabd124d4141916057c0fd9c5df4098e',1,'ttg::detail::boost_optimized_oarchive']]], + ['save_5foverride_2515',['save_override',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a76c50d19bad3562ca67ef700e462b816',1,'ttg::detail::boost_optimized_oarchive::save_override(const T &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a9f31369cc9e4d4c27b66752a8e364c24',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::class_id_optional_type &)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a44be07e6001a2f536115ae20eae23cdb',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::version_type &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a6d7cc2fded70cdce156983d50209a5a8',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::serialization::item_version_type &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a8e3aa569eb2a0f5ce398d7bc08202ded',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::class_id_type &t)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a6b8092cd3432cc9802ea430a2227d1a2',1,'ttg::detail::boost_optimized_oarchive::save_override(const boost::archive::class_id_reference_type &t)']]], + ['scope_2516',['scope',['../structttg__parsec_1_1devicescratch.html#a636bc7b22daefccf2054d829d3d54cf6',1,'ttg_parsec::devicescratch']]], + ['send_2517',['send',['../namespacettg.html#a64fbfb8618ef226f6b3d49a7a46db0cb',1,'ttg::send(ttg::Out< void, void > &t)'],['../namespacettg.html#ae62640862cf2ee4d008e56be67da9ffb',1,'ttg::send(const keyT &key, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#a3562b651b97a40a970c2245a187895ae',1,'ttg::send(size_t i, const keyT &key, valueT &&value)'],['../namespacettg.html#a60aecde5e6a6db849be38f31b77071ce',1,'ttg::send(const keyT &key, valueT &&value)'],['../namespacettg.html#ad47fc5b77d9442fce70f4d0f973a2316',1,'ttg::send(std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#acc6fce7dd7d6a5973cee9ce7057ce691',1,'ttg::send(std::size_t i)'],['../namespacettg.html#a1b23b6cea5360627c9f1e1e9f421bcf3',1,'ttg::send()'],['../namespacettg.html#a195eb3c0d9b0118dd7c94c0463840734',1,'ttg::send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)'],['../classttg_1_1_in.html#a4403235707cfd5a633155f492d3aae98',1,'ttg::In::send(const Key &key, const Value &value)'],['../classttg_1_1_in.html#ad09d91ead43692a117c45496403eef88',1,'ttg::In::send(const Key &key, Value &&value)'],['../classttg_1_1_in.html#a6e510bdea0a0a446210c39fe14d8d7b1',1,'ttg::In::send()'],['../classttg_1_1_out.html#aa5748221b8c7a9d18d6d5c6571d775d1',1,'ttg::Out::send(const Key &key, const Value &value)'],['../classttg_1_1_out.html#a625c7a0de23fcad2afc05f19c0113bf9',1,'ttg::Out::send()'],['../classttg_1_1_out.html#af330f48bf60a9085904105144481a2ff',1,'ttg::Out::send(const Key &key, Value &&value)']]], + ['sendk_2518',['sendk',['../classttg_1_1_out.html#aed12ea58d091d3d704f70c2d53758876',1,'ttg::Out::sendk()'],['../classttg_1_1_in.html#ab75830f8933fc9ae8208212a86697cb1',1,'ttg::In::sendk()'],['../namespacettg.html#a83562836ce105890c0e32d75cad1e421',1,'ttg::sendk(const keyT &key, ttg::Out< keyT, void > &t)'],['../namespacettg.html#a2e3d4b3eacd3d7094f888c860933d295',1,'ttg::sendk(const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ac96c4002a2a1a7d69d5e55b36296f5a7',1,'ttg::sendk(std::size_t i, const keyT &key)'],['../namespacettg.html#abdc6fbc3d6cbbd012f57f6e2df31800d',1,'ttg::sendk(const keyT &key)']]], + ['sendv_2519',['sendv',['../namespacettg.html#a8f6699133cf34d99b17a41af9834a272',1,'ttg::sendv(valueT &&value, ttg::Out< void, valueT > &t)'],['../namespacettg.html#afc0450c12df225eba0e9974b3702330d',1,'ttg::sendv(valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ab1580e76dfe4e40b0fd85cc15b985e87',1,'ttg::sendv(std::size_t i, valueT &&value)'],['../namespacettg.html#a840c55778c16434fb5c06576e8ad8631',1,'ttg::sendv(valueT &&value)'],['../classttg_1_1_in.html#a8c92ed6a1e66c429110f68d9aa7f8b39',1,'ttg::In::sendv(Value &&value)'],['../classttg_1_1_in.html#a8d3f621c6e92e502dfdc3fb21713c8b4',1,'ttg::In::sendv(const Value &value)'],['../classttg_1_1_out.html#a48580dea8368db22508dce4ad531c6f4',1,'ttg::Out::sendv()']]], + ['serialize_2520',['serialize',['../structttg_1_1_multi_index.html#a3fab142820c81bb85d286587eed3be7e',1,'ttg::MultiIndex']]], + ['set_2521',['set',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a56668bcbba669892e2d7273a0f5aaba7',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool::set()'],['../classttg_1_1_terminal_base.html#a64964f33a327a9c08708c706788662ca',1,'ttg::TerminalBase::set()']]], + ['set_5farg_2522',['set_arg',['../classttg__madness_1_1_t_t.html#a17e4e2dd038e22543aec73839ec330f7',1,'ttg_madness::TT::set_arg(Value &&value)'],['../classttg__madness_1_1_t_t.html#a5768a6cab82e3873316bff0f06db013f',1,'ttg_madness::TT::set_arg()'],['../classttg__parsec_1_1_t_t.html#a27f20ea83b11069c4ea56c42fccfe3b2',1,'ttg_parsec::TT::set_arg(const Key &key, Value &&value)'],['../classttg__parsec_1_1_t_t.html#af1f4229b3d84d71a48ece3f068365517',1,'ttg_parsec::TT::set_arg(Value &&value)'],['../classttg__parsec_1_1_t_t.html#a8696fc286d0a8248757920ddb598607a',1,'ttg_parsec::TT::set_arg()'],['../classttg__parsec_1_1_t_t.html#a1a8d8fe6d0664b0e206bfc72a11bb66c',1,'ttg_parsec::TT::set_arg(const Key &key)'],['../classttg__madness_1_1_t_t.html#a38eb3800ac135105f25ea0891ecc9e6b',1,'ttg_madness::TT::set_arg(const Key &key)'],['../classttg__madness_1_1_t_t.html#a05d70ca8ff70c5ae296a00d0d227b663',1,'ttg_madness::TT::set_arg(const Key &key, Value &&value)']]], + ['set_5farg_5ffrom_5fmsg_2523',['set_arg_from_msg',['../classttg__parsec_1_1_t_t.html#a173a54b3342739c9d6f1367a4fc9e04c',1,'ttg_parsec::TT']]], + ['set_5farg_5ffrom_5fmsg_5fkeylist_2524',['set_arg_from_msg_keylist',['../classttg__parsec_1_1_t_t.html#a4973cb13ab7db14536d2a634c6557508',1,'ttg_parsec::TT']]], + ['set_5farg_5fimpl_2525',['set_arg_impl',['../classttg__parsec_1_1_t_t.html#a39b792e18cfba77a3d94d318f1ce2bc2',1,'ttg_parsec::TT']]], + ['set_5farg_5flocal_2526',['set_arg_local',['../classttg__parsec_1_1_t_t.html#a546005174499288d1c2307067478b8fa',1,'ttg_parsec::TT::set_arg_local(const Key &key, Value &&value)'],['../classttg__parsec_1_1_t_t.html#ac196c42345c2a26553160fc7bced4276',1,'ttg_parsec::TT::set_arg_local(Value &&value)'],['../classttg__parsec_1_1_t_t.html#a072b9a2cc43432619f1a6c84ea1f3c25',1,'ttg_parsec::TT::set_arg_local(const Key &key, const Value &value)'],['../classttg__parsec_1_1_t_t.html#a5f2ebc27ac380856caeafe78f1b16621',1,'ttg_parsec::TT::set_arg_local(const Value &value)'],['../classttg__parsec_1_1_t_t.html#a969571b7f24346401592dabd18b0c106',1,'ttg_parsec::TT::set_arg_local(std::shared_ptr< const Value > &valueptr)']]], + ['set_5farg_5flocal_5fimpl_2527',['set_arg_local_impl',['../classttg__parsec_1_1_t_t.html#af4ed0d3a9174b04e79663fa6b6f0c3f9',1,'ttg_parsec::TT']]], + ['set_5fargs_2528',['set_args',['../classttg__parsec_1_1_t_t.html#a55750f8b6571f5c0cef353765808971f',1,'ttg_parsec::TT::set_args()'],['../classttg__madness_1_1_t_t.html#a6440cd232af69a10f31175e1b3934fd4',1,'ttg_madness::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)'],['../classttg__madness_1_1_t_t.html#a6916a9cc859e30a2ddeb82a4ce433d02',1,'ttg_madness::TT::set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)'],['../classttg__madness_1_1_t_t.html#a3f4b5f46891575e405c6b732af3978df',1,'ttg_madness::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)'],['../classttg__madness_1_1_t_t.html#a7f078f63516f6d193d4b96ab5b07931b',1,'ttg_madness::TT::set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)'],['../classttg__parsec_1_1_t_t.html#a77558a26126c0268b7de0fa952c2a011',1,'ttg_parsec::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)'],['../classttg__parsec_1_1_t_t.html#afecc07a50f5bd72cea7ea61b7e11ffe9',1,'ttg_parsec::TT::set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)'],['../classttg__parsec_1_1_t_t.html#a286e463de184edf145d5db1d02b88fb7',1,'ttg_parsec::TT::set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)']]], + ['set_5fargstream_5fsize_2529',['set_argstream_size',['../classttg__madness_1_1_t_t.html#a0c4e54d1c1b6e32dd11e69ba63d5a3a4',1,'ttg_madness::TT::set_argstream_size(std::size_t size)'],['../classttg__madness_1_1_t_t.html#a8f075950048f558efb0157f8a09aa0e5',1,'ttg_madness::TT::set_argstream_size(const Key &key, std::size_t size)'],['../classttg__parsec_1_1_t_t.html#aa79eee0b447142b40ffac7f989993e26',1,'ttg_parsec::TT::set_argstream_size(const Key &key, std::size_t size)'],['../classttg__parsec_1_1_t_t.html#aac55d15cd535ca570489e0d7518132fd',1,'ttg_parsec::TT::set_argstream_size(std::size_t size)']]], + ['set_5fcallback_2530',['set_callback',['../classttg_1_1_in_terminal_base.html#a731636c093e72857d3f689800822785e',1,'ttg::InTerminalBase::set_callback()'],['../classttg_1_1_in.html#a262ec2a1b04c243cee6594ccf298c1e4',1,'ttg::In::set_callback()']]], + ['set_5fcmd_2531',['set_cmd',['../classttg_1_1_debugger.html#a0348965e839512d046e097894042aa6e',1,'ttg::Debugger']]], + ['set_5fcurrent_5fdevice_2532',['set_current_device',['../structttg__parsec_1_1_buffer.html#a33e153c74427dbf044b7b64f545f188d',1,'ttg_parsec::Buffer::set_current_device()'],['../structttg__madness_1_1_buffer.html#af4997ff30c86321022cd5b89b4a7cd53',1,'ttg_madness::Buffer::set_current_device()']]], + ['set_5fdebug_5fon_5fsignal_2533',['set_debug_on_signal',['../classttg_1_1_debugger.html#af68c458e2e2cf6faff79609896ef8faa',1,'ttg::Debugger']]], + ['set_5fdefault_5fdebugger_2534',['set_default_debugger',['../classttg_1_1_debugger.html#a348f33c40ae29063b35d22c7f7562c4f',1,'ttg::Debugger']]], + ['set_5fdefault_5fworld_2535',['set_default_world',['../namespacettg_1_1detail.html#a02d5a7382195e8d7f2d47769e075268f',1,'ttg::detail::set_default_world(WorldT &world)'],['../namespacettg_1_1detail.html#a0e1bc5524a35cf2f51665fbc49ca1013',1,'ttg::detail::set_default_world(WorldT &&world)']]], + ['set_5fdefer_5fwriter_2536',['set_defer_writer',['../classttg__madness_1_1_t_t.html#aa6580090536488ede8cb2ea2c7042e9a',1,'ttg_madness::TT::set_defer_writer()'],['../classttg__parsec_1_1_t_t.html#a8f85a26d646016bbaae37bb94b4097f0',1,'ttg_parsec::TT::set_defer_writer(bool value)']]], + ['set_5fdevicemap_2537',['set_devicemap',['../classttg__parsec_1_1_t_t.html#a9e1555c50d6b2dac3246b574345d9837',1,'ttg_parsec::TT']]], + ['set_5fdummy_2538',['set_dummy',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a2b31b3ad07ff4fafc60935e8cf11675c',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['set_5fexec_2539',['set_exec',['../classttg_1_1_debugger.html#afc1422f751270f66c54fd067c5195a64',1,'ttg::Debugger']]], + ['set_5fexit_5fon_5fsignal_2540',['set_exit_on_signal',['../classttg_1_1_debugger.html#aa42a248eb7057cc7aa6594e87dd85733',1,'ttg::Debugger']]], + ['set_5fin_2541',['set_in',['../classttg_1_1_edge.html#a91e1e8540c48ae0b472204ed787da2c6',1,'ttg::Edge']]], + ['set_5finput_2542',['set_input',['../classttg_1_1_t_t_base.html#afddc3ce47d7d57b4d68f378d699e85d6',1,'ttg::TTBase']]], + ['set_5finput_5freducer_2543',['set_input_reducer',['../classttg__madness_1_1_t_t.html#aa1e7f22664f6bb78b3ce9f2b376fdde0',1,'ttg_madness::TT::set_input_reducer(Reducer &&reducer)'],['../classttg__madness_1_1_t_t.html#a2355d192a719bd4843099c94d2421d7f',1,'ttg_madness::TT::set_input_reducer(Reducer &&reducer, std::size_t size)'],['../classttg__parsec_1_1_t_t.html#a71bb9d9d6ab0b1bf962245aa1f4c5bf2',1,'ttg_parsec::TT::set_input_reducer(Reducer &&reducer)'],['../classttg__parsec_1_1_t_t.html#a588425d2ab4284e1903819c559e0ca44',1,'ttg_parsec::TT::set_input_reducer(Reducer &&reducer, std::size_t size)']]], + ['set_5fkeymap_2544',['set_keymap',['../classttg__madness_1_1_t_t.html#a9efb6bb49123407acf8360b0daf1a624',1,'ttg_madness::TT::set_keymap()'],['../classttg__parsec_1_1_t_t.html#a0f55c24b206b8a9590c9a430e721417b',1,'ttg_parsec::TT::set_keymap()']]], + ['set_5flazy_5fpull_2545',['set_lazy_pull',['../classttg_1_1_t_t_base.html#a9f365364234f5aa49cec380f95f58dde',1,'ttg::TTBase']]], + ['set_5flazy_5fpull_5finstance_2546',['set_lazy_pull_instance',['../classttg_1_1_t_t_base.html#a7fad44ff0bcccf06190fd6ce47a69d74',1,'ttg::TTBase']]], + ['set_5fname_2547',['set_name',['../classttg_1_1_t_t_base.html#a90b439df002bc5f19b7567e9a202fb9f',1,'ttg::TTBase']]], + ['set_5fnext_5ftask_2548',['set_next_task',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#af6d1189007c4cec4b1a6dcfc20cd6276',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['set_5fout_2549',['set_out',['../classttg_1_1_edge.html#afb836fe2f992244f19a395e6f6dd88fc',1,'ttg::Edge']]], + ['set_5foutput_2550',['set_output',['../classttg_1_1_t_t_base.html#a8df5f854fcc708a526c7d616be00d1a6',1,'ttg::TTBase']]], + ['set_5foutputs_5ftls_5fptr_2551',['set_outputs_tls_ptr',['../classttg_1_1_t_t_base.html#afe69f18e0c427bdb7fe86b1d9fde283e',1,'ttg::TTBase::set_outputs_tls_ptr()'],['../classttg_1_1_t_t_base.html#a1edef76017de6943b185341e88b3c535',1,'ttg::TTBase::set_outputs_tls_ptr(const std::vector< TerminalBase * > *ptr)']]], + ['set_5fowner_2552',['set_owner',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a207f108c7fbaaeb13af6d137275bca46',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['set_5fprefix_2553',['set_prefix',['../classttg_1_1_debugger.html#a07a3706bb85cedfba290939231be57c6',1,'ttg::Debugger::set_prefix(const char *p)'],['../classttg_1_1_debugger.html#a67906019d5563628c7642d1d96318f75',1,'ttg::Debugger::set_prefix(int p)']]], + ['set_5fpriomap_2554',['set_priomap',['../classttg__parsec_1_1_t_t.html#abd0b09e69b0668e090e44e43b3184825',1,'ttg_parsec::TT::set_priomap()'],['../classttg__madness_1_1_t_t.html#ad4fc5091ff9dc81dad0584d9a092dc52',1,'ttg_madness::TT::set_priomap()']]], + ['set_5fsize_2555',['set_size',['../namespacettg.html#ad67789c84b04279fa9a726df9851f19c',1,'ttg::set_size()'],['../classttg_1_1_out_terminal_base.html#aa35f0490c2b11205ca84064449290fd8',1,'ttg::OutTerminalBase::set_size()'],['../classttg_1_1_in_terminal_base.html#a2160cff4be6f40e326c050f948f842a5',1,'ttg::InTerminalBase::set_size(std::size_t size)'],['../classttg_1_1_in_terminal_base.html#ab8533204744ab2554739efc51bc2fe49',1,'ttg::InTerminalBase::set_size(const Key &key, std::size_t size)'],['../namespacettg.html#acc1a9858c19ed9d7235823874aa90f74',1,'ttg::set_size(const keyT &key, const std::size_t size, ttg::Out< keyT, out_valueT > &t)'],['../namespacettg.html#a9e9e5ed6c31fc432ee2dc8ed817b49f1',1,'ttg::set_size(const keyT &key, const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#a55109d6c20758997453c65a95f2a7ad5',1,'ttg::set_size(const keyT &key, const std::size_t size)'],['../namespacettg.html#af31d31d8a37261b9f89f1852e9e3c10f',1,'ttg::set_size(const std::size_t size, ttg::Out< out_keyT, out_valueT > &t)'],['../namespacettg.html#a110fa791266faf4d8dcf7708acdfa082',1,'ttg::set_size(const std::size_t size, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ae3212bd318de893c930ded0ad4256bbb',1,'ttg::set_size(std::size_t i, const std::size_t size)'],['../namespacettg.html#ae96ab8dfc75550533beda7e2644dc00f',1,'ttg::set_size(const std::size_t size)'],['../classttg_1_1_out_terminal_base.html#a5402bd38e5c88b881dfccc5be365c93c',1,'ttg::OutTerminalBase::set_size()']]], + ['set_5fstatic_5fargstream_5fsize_2556',['set_static_argstream_size',['../classttg__madness_1_1_t_t.html#a72b1f09c71a8d73d67cfe323fcfb1adf',1,'ttg_madness::TT::set_static_argstream_size()'],['../classttg__parsec_1_1_t_t.html#af135ccb986000912700f3c1650f86928',1,'ttg_parsec::TT::set_static_argstream_size()']]], + ['set_5fterminals_2557',['set_terminals',['../classttg_1_1_t_t_base.html#a565b53d214490f993ee0f35052ed2319',1,'ttg::TTBase::set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)'],['../classttg_1_1_t_t_base.html#a16448e36768017438ee633ffabd121ce',1,'ttg::TTBase::set_terminals(const terminalsT &terms, const setfuncT setfunc)']]], + ['set_5ftrace_5fall_2558',['set_trace_all',['../classttg_1_1_t_t_base.html#acbd4aeb9e9d6d4a112a6c8e5fa5686f4',1,'ttg::TTBase']]], + ['set_5ftrace_5finstance_2559',['set_trace_instance',['../classttg_1_1_t_t_base.html#a5cc88ad1f0c950e6c41908730c60f338',1,'ttg::TTBase']]], + ['set_5ftraceback_5fon_5fsignal_2560',['set_traceback_on_signal',['../classttg_1_1_debugger.html#afc17873fd71c79682271efdf13c90b56',1,'ttg::Debugger']]], + ['set_5fwait_5ffor_5fdebugger_2561',['set_wait_for_debugger',['../classttg_1_1_debugger.html#a4520f97c7678af82ad4f5ea5a8290eac',1,'ttg::Debugger']]], + ['sgetn_2562',['sgetn',['../classttg_1_1detail_1_1byte__istreambuf.html#a39808f7bda60de733611d1568a659824',1,'ttg::detail::byte_istreambuf']]], + ['sinktt_2563',['SinkTT',['../classttg_1_1_sink_t_t.html#a0a361b75c6d7edc3645fc3784a5f6543',1,'ttg::SinkTT::SinkTT(const std::string &inname="junk")'],['../classttg_1_1_sink_t_t.html#ac77b4fb1c7c674a85220f862397ff797',1,'ttg::SinkTT::SinkTT(const input_edges_type &inedges, const std::string &inname="junk")']]], + ['size_2564',['size',['../namespacettg.html#a293bb7226707f202e735a9b3e4c76fab',1,'ttg::size()'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a876af6f91231ae4e7e7316f5402682dc',1,'TCB_SPAN_NAMESPACE_NAME::detail::size(const C &c) -> decltype(c.size())'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a834a91a810cb058282fffc120d9fa8ab',1,'TCB_SPAN_NAMESPACE_NAME::detail::size(const T(&)[N]) noexcept'],['../classttg_1_1base_1_1_world.html#a70fde546a245480a3aae93b33bce813e',1,'ttg::base::World::size()'],['../classttg_1_1base_1_1_world_impl_base.html#afd134bac63c8ce9e2c570570a1b8a0a2',1,'ttg::base::WorldImplBase::size()'],['../structttg_1_1meta_1_1typelist.html#a7537cd2df1bc17c358d2fd516ce7e825',1,'ttg::meta::typelist::size()'],['../classttg_1_1_binary_spanning_tree.html#a50317fa104da9be95076c49adba9e842',1,'ttg::BinarySpanningTree::size()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a971d93a9b8c610c0aa3eba556976dcea',1,'TCB_SPAN_NAMESPACE_NAME::span::size()'],['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ac7a5f4811d005a23302ecfb74e41feaf',1,'ttg::detail::MemoryWatchpoint_x86_64::size()'],['../classttg_1_1detail_1_1byte__istreambuf.html#af57697a75e867251de3689c568f3b50c',1,'ttg::detail::byte_istreambuf::size()'],['../classttg_1_1detail_1_1byte__ostreambuf.html#af3c685fc754966f74363a2ea61cf13b1',1,'ttg::detail::byte_ostreambuf::size()'],['../classttg_1_1detail_1_1counting__streambuf.html#af062d4e657d9593fe85c55a36150756a',1,'ttg::detail::counting_streambuf::size()'],['../structttg__parsec_1_1devicescratch.html#afc21a26692b6c270b0cceba27b7d0a2c',1,'ttg_parsec::devicescratch::size()'],['../structttg__parsec_1_1_buffer.html#a33e71a5df3d0bb02d0f4c4e608174eed',1,'ttg_parsec::Buffer::size()'],['../structttg__madness_1_1_buffer.html#aae43cf8a7f9f0339ae5b847da74ac1dd',1,'ttg_madness::Buffer::size()']]], + ['size_5fbytes_2565',['size_bytes',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a9d1f1c8befff85fac9c73ac5ea83019f',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['space_2566',['space',['../classttg_1_1device_1_1_device.html#a8e2ead1c9ad53416b9fb21fec10087ef',1,'ttg::device::Device']]], + ['span_2567',['span',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a411b2ffa144c11ec2e285547d1a365e5',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const std::array< value_type, N > &arr) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a3631337a467ff21e1d5467b489ffa6ca',1,'TCB_SPAN_NAMESPACE_NAME::span::span() noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#abc6382e77270f22b5ff8db7bfbc17fb3',1,'TCB_SPAN_NAMESPACE_NAME::span::span(pointer ptr, size_type count)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a6cbb255fba48cdd60d1ec999afed2efa',1,'TCB_SPAN_NAMESPACE_NAME::span::span(pointer first_elem, pointer last_elem)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#aa27909bb735d366f815fff3abad16ef6',1,'TCB_SPAN_NAMESPACE_NAME::span::span(element_type(&arr)[N]) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a6aab775354a4a44766a1efeb43ba537c',1,'TCB_SPAN_NAMESPACE_NAME::span::span(std::array< value_type, N > &arr) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a174b0d1054824a3be51552bbc252d344',1,'TCB_SPAN_NAMESPACE_NAME::span::span(Container &cont)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a4c69c0137a4d3fb694e46c79c44de77a',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const Container &cont)'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a72badb933c7daf84985d9d5289858a00',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const span &other) noexcept=default'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#acbfef865d1c41299b35dc23de44808d7',1,'TCB_SPAN_NAMESPACE_NAME::span::span(const span< OtherElementType, OtherExtent > &other) noexcept']]], + ['span_5fstorage_2568',['span_storage',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#a62f42edc81ec41745e1a14e6861a835b',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::span_storage() noexcept=default'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#afd8aa6a1a7d82e6668bed57cd2279c94',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::span_storage(E *p_ptr, std::size_t) noexcept'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#a62e1fa5efdcd3734fa60a86f6ab9e908',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::span_storage() noexcept=default'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#a48f7c2ac0fed3b78c6e5afa48d062584',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::span_storage(E *p_ptr, std::size_t p_size) noexcept']]], + ['sputn_2569',['sputn',['../classttg_1_1detail_1_1byte__ostreambuf.html#a4b757a53b6c0c626f0099573ee0c8d38',1,'ttg::detail::byte_ostreambuf']]], + ['static_5fset_5farg_2570',['static_set_arg',['../classttg__parsec_1_1_t_t.html#a57f5629d5c5ce7e8b2732eab66ab35c9',1,'ttg_parsec::TT']]], + ['str_2571',['str',['../classttg_1_1detail_1_1_backtrace.html#adb582a944775b8221ac0502217f80e5f',1,'ttg::detail::Backtrace']]], + ['stream_2572',['stream',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a6658301ec903c8057803785a9bf65904',1,'ttg::detail::boost_optimized_iarchive::stream()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a5a10006415a5939137e342856e4e2433',1,'ttg::detail::boost_optimized_oarchive::stream()']]], + ['streambuf_2573',['streambuf',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aec3ddc9343c08b46ebce2b8a9b8ced48',1,'ttg::detail::boost_optimized_iarchive::streambuf()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a26f36c1c9d554903889927cddb0e9e81',1,'ttg::detail::boost_optimized_oarchive::streambuf()']]], + ['subspan_2574',['subspan',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#ad80e39fbc8defe79880d5e24b93dcbec',1,'TCB_SPAN_NAMESPACE_NAME::span::subspan(size_type offset, size_type count=dynamic_extent) const'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a2aa7fec15728a2ac2b6f66f4ad49085e',1,'TCB_SPAN_NAMESPACE_NAME::span::subspan() const']]], + ['successors_2575',['successors',['../classttg_1_1_out_terminal_base.html#aefd00a0b4c1a24bf277b408fbe9d841b',1,'ttg::OutTerminalBase']]] +]; diff --git a/dox-master/search/functions_11.html b/dox-master/search/functions_11.html new file mode 100644 index 000000000..188076ef2 --- /dev/null +++ b/dox-master/search/functions_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_11.js b/dox-master/search/functions_11.js new file mode 100644 index 000000000..faa61c119 --- /dev/null +++ b/dox-master/search/functions_11.js @@ -0,0 +1,47 @@ +var searchData= +[ + ['taskpool_2576',['taskpool',['../classttg__parsec_1_1_world_impl.html#acc58d282d3788039eeb11d5e98421cf0',1,'ttg_parsec::WorldImpl']]], + ['terminalbase_2577',['TerminalBase',['../classttg_1_1_terminal_base.html#a9d38685b126d113b774b85b39fcf7df3',1,'ttg::TerminalBase']]], + ['test_2578',['test',['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html#a20350e2805386f62619621f234177b75',1,'boost::callable_traits::detail::has_normal_call_operator::test(check< decltype(&U::operator()), &U::operator()>)'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html#aaf412dda1f2299d7100d97ef92f26f35',1,'boost::callable_traits::detail::has_normal_call_operator::test(...)'],['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html#a0eef52bac6e35168c06f01960cffda37',1,'boost::callable_traits::detail::can_dereference_t::test(check< typename std::remove_reference< decltype(*std::declval< U >())>::type > *)'],['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html#a364a1594e4019bc17fae39e39d03eb9f',1,'boost::callable_traits::detail::can_dereference_t::test(...)']]], + ['trace_2579',['trace',['../classttg_1_1_t_t_base.html#a30ce875b418c76f1d9cf54b3bf1fe52a',1,'ttg::TTBase::trace()'],['../namespacettg.html#af5e470229c1ddef41b83b6398a5dc583',1,'ttg::trace()']]], + ['trace_5faccessor_2580',['trace_accessor',['../namespacettg_1_1detail.html#aad0b5ccd018513045d88983581fc6fc0',1,'ttg::detail']]], + ['trace_5fenabled_2581',['trace_enabled',['../namespacettg.html#afbdd9c742be395e0746fdbc26c7d55cc',1,'ttg']]], + ['trace_5foff_2582',['trace_off',['../namespacettg.html#a4901ccd088527a3cefe6e1f3e3abcb45',1,'ttg']]], + ['trace_5fon_2583',['trace_on',['../namespacettg.html#a6cec936cab8cf9b94bfacba41f859a30',1,'ttg']]], + ['traceback_2584',['traceback',['../classttg_1_1_debugger.html#a7081cd8a132843fdfb522704abec79af',1,'ttg::Debugger']]], + ['tracing_2585',['tracing',['../classttg_1_1_t_t_base.html#a6e857d69adab89ba8841e4af29e0fc73',1,'ttg::TTBase::tracing()'],['../namespacettg.html#abfb8501d408a1ed918cc2a540865a2d8',1,'ttg::tracing()']]], + ['transfer_5fownership_2586',['transfer_ownership',['../namespacettg__parsec_1_1detail.html#adf1ae177ef394ab5c807c1b5b8e4051c',1,'ttg_parsec::detail::transfer_ownership()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a56169de0ee148ef2034d91890e09a1ca',1,'ttg_parsec::detail::ttg_data_copy_t::transfer_ownership()']]], + ['transfer_5fownership_5fimpl_2587',['transfer_ownership_impl',['../namespacettg__parsec_1_1detail.html#aef535f01e16c593739fd34a0b4b0bde9',1,'ttg_parsec::detail']]], + ['traverse_2588',['traverse',['../classttg_1_1detail_1_1_traverse.html#a7a0765e15d484ec5238c15dc9fc634d3',1,'ttg::detail::Traverse::traverse(TT *tt)'],['../classttg_1_1detail_1_1_traverse.html#a8f22396f983cd2b43113903985294410',1,'ttg::detail::Traverse::traverse(TTBase *tt)']]], + ['traverse_2589',['Traverse',['../classttg_1_1_traverse.html#a9975a859b6687e897b2e9038694ffd06',1,'ttg::Traverse']]], + ['traverse_2590',['traverse',['../classttg_1_1detail_1_1_traverse.html#a184ceb43af5aeb60317a853e1c764373',1,'ttg::detail::Traverse::traverse(const std::unique_ptr< TT, Deleter > &tt)'],['../classttg_1_1detail_1_1_traverse.html#a67abea3b78ac41aeba12c466dc6bbe63',1,'ttg::detail::Traverse::traverse(const std::shared_ptr< TTBase > &tt)']]], + ['tree_5fdown_2591',['tree_down',['../classttg_1_1_dot.html#a6e2c9e3186444ee3f28d18a28f0c65ea',1,'ttg::Dot']]], + ['tt_2592',['TT',['../classttg__parsec_1_1_t_t.html#a87e1769a3eafdef7c310fe1963b4210d',1,'ttg_parsec::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())'],['../classttg__parsec_1_1_t_t.html#ae80e97c0025eeedb49ad122836be4fff',1,'ttg_parsec::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())'],['../classttg__parsec_1_1_t_t.html#a2df7a22e42aa4c8d791526c012e49336',1,'ttg_parsec::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())'],['../classttg__parsec_1_1_t_t.html#a47c2933f1a94279241d58edd72e56380',1,'ttg_parsec::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())'],['../classttg__madness_1_1_t_t.html#a62faa61a5aed0648605bd54355deac1c',1,'ttg_madness::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())'],['../classttg__madness_1_1_t_t.html#a02446525b70607e06b579f8f3c2411b7',1,'ttg_madness::TT::TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())'],['../classttg__madness_1_1_t_t.html#ae90df296d1baa7ee63e0c43b357f74fe',1,'ttg_madness::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())'],['../classttg__madness_1_1_t_t.html#ab8ef7509460d9d7e6f650565ebfc049b',1,'ttg_madness::TT::TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())']]], + ['tt_5fbase_5ftrace_5faccessor_2593',['tt_base_trace_accessor',['../namespacettg_1_1detail.html#af68ad6a630c91d894b875ab3337fdcb6',1,'ttg::detail']]], + ['tt_5fvisitor_2594',['tt_visitor',['../classttg_1_1_traverse.html#a94ccc49b8f4b418fb9a3154544207278',1,'ttg::Traverse']]], + ['ttbase_2595',['TTBase',['../classttg_1_1_t_t_base.html#a3f6ceee759ab12f1ce692b96e3e945dd',1,'ttg::TTBase::TTBase(const std::string &name, size_t numins, size_t numouts)'],['../classttg_1_1_t_t_base.html#ab73a493ce89e68de0defc825f4747044',1,'ttg::TTBase::TTBase(TTBase &&other)']]], + ['ttfunc_2596',['ttfunc',['../classttg_1_1_dot.html#a168203fd05265000a5fe12be79738a94',1,'ttg::Dot::ttfunc()'],['../classttg_1_1detail_1_1_traverse.html#a5da2d82d0eb6f9216c6e23ef48c76ff0',1,'ttg::detail::Traverse::ttfunc()']]], + ['ttg_2597',['TTG',['../classttg_1_1_t_t_g.html#ae61806b158ca03ef105dedc7f1b1b615',1,'ttg::TTG']]], + ['ttg_2598',['ttg',['../classttg_1_1_t_t_base.html#a62783b81e2d1de62ec047ebcd3c331f5',1,'ttg::TTBase']]], + ['ttg_5fabort_2599',['ttg_abort',['../namespacettg__madness.html#ae93a49f2423fc5eef1f4a60ab351f457',1,'ttg_madness']]], + ['ttg_5fbroadcast_2600',['ttg_broadcast',['../namespacettg__madness.html#ad760338470631d741f596b570dac59b0',1,'ttg_madness::ttg_broadcast()'],['../namespacettg__parsec.html#aa0dde9bdbe8109520fbd094fa980cf06',1,'ttg_parsec::ttg_broadcast()']]], + ['ttg_5fctl_5fedge_2601',['ttg_ctl_edge',['../namespacettg__madness.html#a3e4eecf0b46347ed8c0334ae84c3eb19',1,'ttg_madness::ttg_ctl_edge()'],['../namespacettg__parsec.html#aa4b5a7f255eee32c46ca8bde5e87ac62',1,'ttg_parsec::ttg_ctl_edge()']]], + ['ttg_5fdata_5fcopy_5fcontainer_2602',['ttg_data_copy_container',['../namespacettg__parsec_1_1detail.html#a324e05ad6afd1a21dc7f90de0dd0cf24',1,'ttg_parsec::detail']]], + ['ttg_5fdata_5fcopy_5fcontainer_5fsetter_2603',['ttg_data_copy_container_setter',['../structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html#a6eb8c4d47cf3815fad5b18362cc38fb2',1,'ttg_parsec::detail::ttg_data_copy_container_setter']]], + ['ttg_5fdata_5fcopy_5fself_5ft_2604',['ttg_data_copy_self_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html#a0416871d059b275148a510ca3cb4dcfd',1,'ttg_parsec::detail::ttg_data_copy_self_t']]], + ['ttg_5fdata_5fcopy_5ft_2605',['ttg_data_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a1ab9aa816e19dd917b693e0960bb3b4f',1,'ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a57f761c4e5179951505d96e5b506d701',1,'ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t(ttg_data_copy_t &&c)'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a31fa201528838829c0f69b0beca0d21f',1,'ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t(const ttg_data_copy_t &c)']]], + ['ttg_5fdata_5fvalue_5fcopy_5ft_2606',['ttg_data_value_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a95b010e353f7d5985e57e42aae13515b',1,'ttg_parsec::detail::ttg_data_value_copy_t::ttg_data_value_copy_t(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_constructible_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a1f3e762b244708746aa98be325a57889',1,'ttg_parsec::detail::ttg_data_value_copy_t::ttg_data_value_copy_t(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_constructible_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a885371f17e0767dd0300dc66d367988c',1,'ttg_parsec::detail::ttg_data_value_copy_t::ttg_data_value_copy_t(T &&value)']]], + ['ttg_5fdefault_5fexecution_5fcontext_2607',['ttg_default_execution_context',['../namespacettg__parsec.html#ae1b91b1ff1edc3fbc1e7e07d6c659c17',1,'ttg_parsec::ttg_default_execution_context()'],['../namespacettg__madness.html#afdf4fa1d2bd497283e589f93d13047d7',1,'ttg_madness::ttg_default_execution_context()']]], + ['ttg_5fdevice_5fto_5fparsec_5fdevice_2608',['ttg_device_to_parsec_device',['../namespacettg__parsec_1_1detail.html#a4e193da802fd145fa18041dd40ad7df9',1,'ttg_parsec::detail']]], + ['ttg_5fexecute_2609',['ttg_execute',['../namespacettg__parsec.html#af487c13be90fbfe91c6789946e14e8fa',1,'ttg_parsec::ttg_execute()'],['../namespacettg__madness.html#a2f3b7dd6ad03e4de9b7dd265913a7d3c',1,'ttg_madness::ttg_execute(ttg::World world)']]], + ['ttg_5ffence_2610',['ttg_fence',['../namespacettg__madness.html#a7170a1b75839c894aaeddebecb8d1eb7',1,'ttg_madness::ttg_fence()'],['../namespacettg__parsec.html#a00dccbf920472bed9cb0850eff7f4120',1,'ttg_parsec::ttg_fence(ttg::World world)']]], + ['ttg_5ffinalize_2611',['ttg_finalize',['../namespacettg__parsec.html#a5008389f3116aff76f4dc8d04e3fab3b',1,'ttg_parsec::ttg_finalize()'],['../namespacettg__madness.html#a78037075ad198f6530e53d32ae56e6b5',1,'ttg_madness::ttg_finalize()']]], + ['ttg_5finitialize_2612',['ttg_initialize',['../namespacettg__parsec.html#ad75b8e1392b031ac583c6059103d8aec',1,'ttg_parsec::ttg_initialize(int argc, char **argv, int num_threads, parsec_context_t *ctx)'],['../namespacettg__parsec.html#ad17976fce1eab4b14198476fd3d470b6',1,'ttg_parsec::ttg_initialize(int argc, char **argv, int num_threads=-1, parsec_context_s *=nullptr)'],['../namespacettg__madness.html#a1e84e21cf6c33558d570bd866eea5e0b',1,'ttg_madness::ttg_initialize()']]], + ['ttg_5fparsec_5fdata_5fwrapper_5ft_2613',['ttg_parsec_data_wrapper_t',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a989df3b897711cfab928065f73c1a8cc',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t(ttg_parsec_data_wrapper_t &&other)'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#aa3e6600b77f7c9e54d143b7a0d8d3d9e',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t(const ttg_parsec_data_wrapper_t &other)=delete'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a9c0b001afe9db2dfb99155f9269cbace',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t()']]], + ['ttg_5fptr_2614',['ttg_ptr',['../classttg_1_1_t_t_base.html#aedeb6405b2520f9d59c37dd759003734',1,'ttg::TTBase']]], + ['ttg_5fregister_5fcallback_2615',['ttg_register_callback',['../namespacettg__madness.html#ac204e7982638f6d23f22365a73fc2795',1,'ttg_madness::ttg_register_callback()'],['../namespacettg__parsec.html#a9adea5fc9a753510bb1aaa1a207036ec',1,'ttg_parsec::ttg_register_callback()']]], + ['ttg_5fregister_5fptr_2616',['ttg_register_ptr',['../namespacettg__madness.html#a08d62ebfdece9271a130890dceb5cf62',1,'ttg_madness::ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)'],['../namespacettg__madness.html#ada271902b7d62b26d1f981cb9090ad38',1,'ttg_madness::ttg_register_ptr(ttg::World world, std::unique_ptr< T > &&ptr)'],['../namespacettg__parsec.html#a58b02ce5076ebca5916db77288563ed8',1,'ttg_parsec::ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)'],['../namespacettg__parsec.html#a72c14794c9a6d19714037fb75d3b0bf3',1,'ttg_parsec::ttg_register_ptr(ttg::World world, std::unique_ptr< T > &&ptr)']]], + ['ttg_5fregister_5fstatus_2617',['ttg_register_status',['../namespacettg__madness.html#afa02a5755c25e35fbbd21e03a6f55269',1,'ttg_madness::ttg_register_status()'],['../namespacettg__parsec.html#ae08fd8e274b0b845e1c002956f4e1e50',1,'ttg_parsec::ttg_register_status()']]], + ['ttg_5fsum_2618',['ttg_sum',['../namespacettg__madness.html#a6d7ccf702d68f5173ac51b116a9a66ed',1,'ttg_madness::ttg_sum()'],['../namespacettg__parsec.html#afcb43c3d2d3c066d2c8c589914a27676',1,'ttg_parsec::ttg_sum()']]], + ['ttvalue_2619',['TTValue',['../structttg__parsec_1_1_t_t_value.html#a3e066461d4d80f2195ea9761197158d1',1,'ttg_parsec::TTValue::TTValue(TTValue &&v)'],['../structttg__parsec_1_1_t_t_value.html#af9a6d3d3bbd7d4138ba42554a9754a0f',1,'ttg_parsec::TTValue::TTValue(const TTValue &v)'],['../structttg__parsec_1_1_t_t_value.html#ad5b9809dcb2b705b0e2e2ee9368f95a5',1,'ttg_parsec::TTValue::TTValue()']]] +]; diff --git a/dox-master/search/functions_12.html b/dox-master/search/functions_12.html new file mode 100644 index 000000000..eb29d8f9a --- /dev/null +++ b/dox-master/search/functions_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_12.js b/dox-master/search/functions_12.js new file mode 100644 index 000000000..7114a2202 --- /dev/null +++ b/dox-master/search/functions_12.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['unhandled_5fexception_2620',['unhandled_exception',['../structttg_1_1resumable__task__state.html#afde23bf72e8e76f644b57e718e8ebc31',1,'ttg::resumable_task_state']]], + ['unpack_2621',['unpack',['../classttg__parsec_1_1_t_t.html#a4678bd3dcb9fc0bda8e8d48e83f835b3',1,'ttg_parsec::TT']]], + ['unpack_5fpayload_2622',['unpack_payload',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#a5436979fa6f718d5e2448c5e34fecb15',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::unpack_payload()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#a46fad1fc4c2879799c40afc915fc952a',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::unpack_payload()']]], + ['unpin_2623',['unpin',['../structttg__madness_1_1_buffer.html#aeec3da894770d7c83797663160f19f88',1,'ttg_madness::Buffer::unpin()'],['../structttg__parsec_1_1_buffer.html#aae442b3f2d8074b03be78bad70c2f9d1',1,'ttg_parsec::Buffer::unpin()']]], + ['unpin_5fon_2624',['unpin_on',['../structttg__madness_1_1_buffer.html#a459da60105d647708a2582b38ca03db0',1,'ttg_madness::Buffer::unpin_on()'],['../structttg__parsec_1_1_buffer.html#ae0b1b7c0ef36ddffc0a721fd86335c4e',1,'ttg_parsec::Buffer::unpin_on()']]], + ['unsigned_5fint_2625',['unsigned_int',['../structboost_1_1serialization_1_1unsigned__int.html#a22bcd3f49ab19d6700670fc8b85438c7',1,'boost::serialization::unsigned_int']]], + ['update_2626',['update',['../classttg_1_1detail_1_1_f_n_vhasher.html#adbf07ed352c7aecffa181e1a55f917cf',1,'ttg::detail::FNVhasher::update(std::byte byte) noexcept'],['../classttg_1_1detail_1_1_f_n_vhasher.html#a0e49d441a52fcdaebe8abeda54bab44e',1,'ttg::detail::FNVhasher::update(size_t n, const std::byte *bytes) noexcept']]] +]; diff --git a/dox-master/search/functions_13.html b/dox-master/search/functions_13.html new file mode 100644 index 000000000..3da2ea69c --- /dev/null +++ b/dox-master/search/functions_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_13.js b/dox-master/search/functions_13.js new file mode 100644 index 000000000..6d20160e9 --- /dev/null +++ b/dox-master/search/functions_13.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['value_2627',['value',['../classttg_1_1detail_1_1_f_n_vhasher.html#ad4d3d8d283d7820fee4d50a4cd2d5f7e',1,'ttg::detail::FNVhasher']]], + ['value_5fcopy_5fhandler_2628',['value_copy_handler',['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#afc947ca1880f0aed7e76c2b0f6be1804',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::value_copy_handler()=default'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a82b517dc08990aa568c054aeeb38ea0c',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::value_copy_handler(const value_copy_handler &h)=delete'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a2560b79f4d16b34dd0461a75b7fb800a',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::value_copy_handler(value_copy_handler &&h)']]], + ['version_2629',['version',['../namespacettg.html#ab972c232155b2ee46097bb88d9121bcb',1,'ttg']]], + ['void_2630',['Void',['../classttg_1_1_void.html#a9d24650d7bd318140aeaf121cf7d9b37',1,'ttg::Void::Void()=default'],['../classttg_1_1_void.html#a9dde596d608a58d842362b51e2effa21',1,'ttg::Void::Void(T &&)']]] +]; diff --git a/dox-master/search/functions_14.html b/dox-master/search/functions_14.html new file mode 100644 index 000000000..29237b44c --- /dev/null +++ b/dox-master/search/functions_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_14.js b/dox-master/search/functions_14.js new file mode 100644 index 000000000..9919f2c49 --- /dev/null +++ b/dox-master/search/functions_14.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['watchpoint_5fclear_2631',['watchpoint_clear',['../namespacettg__madness.html#a410adda62f54efc8623cf0d50afdd53e',1,'ttg_madness']]], + ['watchpoint_5fset_2632',['watchpoint_set',['../namespacettg__madness.html#a8cabd7cfbc5aaead3712f4a8e505e94f',1,'ttg_madness']]], + ['watchpoints_5fthreads_2633',['watchpoints_threads',['../namespacettg__madness_1_1detail.html#a6499d424299d2050253878a435df316b',1,'ttg_madness::detail']]], + ['world_2634',['World',['../classttg_1_1base_1_1_world.html#a97c5374055ed1a6f0dbd75313636f6d8',1,'ttg::base::World::World(std::shared_ptr< ttg::base::WorldImplBase > world_impl)'],['../classttg_1_1base_1_1_world.html#ad41577d9fcb3b1c3de75eafb7fbde11b',1,'ttg::base::World::World(const World &other)=default'],['../classttg_1_1base_1_1_world.html#a9d32a4457b7d12232a3e58e21543fa6a',1,'ttg::base::World::World(World &&other)=default'],['../classttg_1_1base_1_1_world.html#ac891aa2d46f45317cf46c37758ba8fda',1,'ttg::base::World::World(void)']]], + ['world_5fregistry_5faccessor_2635',['world_registry_accessor',['../namespacettg_1_1detail.html#a4479758f84174309debce5434a9f9c37',1,'ttg::detail']]], + ['worldimpl_2636',['WorldImpl',['../classttg__parsec_1_1_world_impl.html#a47703e6db181e1dba577f324b27c11e4',1,'ttg_parsec::WorldImpl::WorldImpl(const WorldImpl &other)=delete'],['../classttg__parsec_1_1_world_impl.html#adf526d0d4c3c39cbccb1feadd90565e8',1,'ttg_parsec::WorldImpl::WorldImpl(WorldImpl &&other)=delete'],['../classttg__parsec_1_1_world_impl.html#a5dbc8b40e4d489a0d913efccfb7d0ae0',1,'ttg_parsec::WorldImpl::WorldImpl(int *argc, char **argv[], int ncores, parsec_context_t *c=nullptr)'],['../classttg__madness_1_1_world_impl.html#aa65ede33f5a7fac0ca1aff100a1ade38',1,'ttg_madness::WorldImpl::WorldImpl(WorldImpl &&other)=delete'],['../classttg__madness_1_1_world_impl.html#a40386228af06431a36a887aa317c0bf6',1,'ttg_madness::WorldImpl::WorldImpl(const WorldImpl &other)=delete'],['../classttg__madness_1_1_world_impl.html#adc7819e07096559105db207f71e17b5e',1,'ttg_madness::WorldImpl::WorldImpl(const SafeMPI::Intracomm &comm)'],['../classttg__madness_1_1_world_impl.html#aa79d932e923e680f5cc11fba332babdb',1,'ttg_madness::WorldImpl::WorldImpl(::madness::World &world)']]], + ['worldimplbase_2637',['WorldImplBase',['../classttg_1_1base_1_1_world_impl_base.html#a9ce5ae02fdf7d508a68f28e509637c22',1,'ttg::base::WorldImplBase']]], + ['wrap_2638',['wrap',['../make__tt_8h.html#a147a9574acc8f8a503ae6d0cfcf83e1b',1,'make_tt.h']]], + ['wrapt_2639',['wrapt',['../make__tt_8h.html#adba403e3316422e1befbf908bb6936b7',1,'make_tt.h']]] +]; diff --git a/dox-master/search/functions_15.html b/dox-master/search/functions_15.html new file mode 100644 index 000000000..6d5decd70 --- /dev/null +++ b/dox-master/search/functions_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_15.js b/dox-master/search/functions_15.js new file mode 100644 index 000000000..85cb92325 --- /dev/null +++ b/dox-master/search/functions_15.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['xsgetn_2640',['xsgetn',['../classttg_1_1detail_1_1iovec__istreambuf.html#a0288bd93f0f0f3965a4a6a16a6ba5af4',1,'ttg::detail::iovec_istreambuf::xsgetn()'],['../classttg_1_1detail_1_1byte__istreambuf.html#a1fe465fd5d7cba8515e69b4d9ab521bf',1,'ttg::detail::byte_istreambuf::xsgetn()']]], + ['xsputn_2641',['xsputn',['../classttg_1_1detail_1_1counting__streambuf.html#a5d7b252421e2c3526f8aef0b13bc18fe',1,'ttg::detail::counting_streambuf::xsputn()'],['../classttg_1_1detail_1_1iovec__ostreambuf.html#a5448012b840fdf7d78dceddc7f032c0b',1,'ttg::detail::iovec_ostreambuf::xsputn()'],['../classttg_1_1detail_1_1byte__ostreambuf.html#a22636e252f12f3c21d6da01d8c4167a4',1,'ttg::detail::byte_ostreambuf::xsputn()']]] +]; diff --git a/dox-master/search/functions_16.html b/dox-master/search/functions_16.html new file mode 100644 index 000000000..5aed7d093 --- /dev/null +++ b/dox-master/search/functions_16.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_16.js b/dox-master/search/functions_16.js new file mode 100644 index 000000000..55e1ef9aa --- /dev/null +++ b/dox-master/search/functions_16.js @@ -0,0 +1,24 @@ +var searchData= +[ + ['_7ebinaryspanningtree_2642',['~BinarySpanningTree',['../classttg_1_1_binary_spanning_tree.html#a870c9afea6610fc1ff7a8a9f6227742e',1,'ttg::BinarySpanningTree']]], + ['_7ebuffer_2643',['~Buffer',['../structttg__madness_1_1_buffer.html#a3add0b842f6870bfdf6d004cdbcae7d8',1,'ttg_madness::Buffer::~Buffer()'],['../structttg__parsec_1_1_buffer.html#a436632d1ae4608b3e9747704bbf628a7',1,'ttg_parsec::Buffer::~Buffer()']]], + ['_7edebugger_2644',['~Debugger',['../classttg_1_1_debugger.html#a12f822c5d6749212d35a6ff006edcf31',1,'ttg::Debugger']]], + ['_7edevicescratch_2645',['~devicescratch',['../structttg__parsec_1_1devicescratch.html#a225d2d40e1d7d90141fc7a6c2b0f2d9e',1,'ttg_parsec::devicescratch']]], + ['_7ememorywatchpoint_5fx86_5f64_2646',['~MemoryWatchpoint_x86_64',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#acbf25253ee5689aa9c6a05aeb0be7160',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['_7epool_2647',['~Pool',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a6d5ff0c8c59ef95f3b3c999c5905ba6e',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['_7eptr_2648',['~Ptr',['../structttg__parsec_1_1_ptr.html#a3f2a1e5b3eab536e194a880b78fc683c',1,'ttg_parsec::Ptr']]], + ['_7eptr_5fimpl_2649',['~ptr_impl',['../structttg__parsec_1_1detail_1_1ptr__impl.html#ada08975b6634c347f4100825a01b958d',1,'ttg_parsec::detail::ptr_impl']]], + ['_7esinktt_2650',['~SinkTT',['../classttg_1_1_sink_t_t.html#ac2ef7a21b3039f54847d998a38a7df2c',1,'ttg::SinkTT']]], + ['_7espan_2651',['~span',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a4a50a6ad37201ef56395369e48e020ed',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['_7eterminalbase_2652',['~TerminalBase',['../classttg_1_1_terminal_base.html#a73bb2e26e0355b9b2f23ebd58e540d8f',1,'ttg::TerminalBase']]], + ['_7ett_2653',['~TT',['../classttg__madness_1_1_t_t.html#a5be38a8590787ec3bf87466208e1ac83',1,'ttg_madness::TT::~TT()'],['../classttg__parsec_1_1_t_t.html#a25b978cc241c81daeac89c8f5169730c',1,'ttg_parsec::TT::~TT()']]], + ['_7ettbase_2654',['~TTBase',['../classttg_1_1_t_t_base.html#a2476da9f50533b12b2edafa72f1e39db',1,'ttg::TTBase']]], + ['_7ettg_5fdata_5fcopy_5ft_2655',['~ttg_data_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a8ed69a631b0949afd590abc574f258c6',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['_7ettg_5fdata_5fvalue_5fcopy_5ft_2656',['~ttg_data_value_copy_t',['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a45fe5591f5a67a41d21f32fd90ad1169',1,'ttg_parsec::detail::ttg_data_value_copy_t']]], + ['_7ettg_5fparsec_5fdata_5fwrapper_5ft_2657',['~ttg_parsec_data_wrapper_t',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a87f02b4861ef5d716f2e89dd8e13e8c1',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['_7ettvalue_2658',['~TTValue',['../structttg__parsec_1_1_t_t_value.html#aca965177263b0903e779db8a7765019d',1,'ttg_parsec::TTValue']]], + ['_7evalue_5fcopy_5fhandler_2659',['~value_copy_handler',['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#afc9707d0a8baf9415f366fdd2e77ef79',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >']]], + ['_7eworld_2660',['~World',['../classttg_1_1base_1_1_world.html#a7c445d548dc24461b0e6c85ef3d7d00d',1,'ttg::base::World']]], + ['_7eworldimpl_2661',['~WorldImpl',['../classttg__madness_1_1_world_impl.html#aa5cb0ba86aed7a4e5a986d30c24d467f',1,'ttg_madness::WorldImpl::~WorldImpl()'],['../classttg__parsec_1_1_world_impl.html#a723d8ec0a2fdb24329edb5b3996f59e1',1,'ttg_parsec::WorldImpl::~WorldImpl()']]], + ['_7eworldimplbase_2662',['~WorldImplBase',['../classttg_1_1base_1_1_world_impl_base.html#a8fa81aef86187a27c065522b29b6f499',1,'ttg::base::WorldImplBase']]] +]; diff --git a/dox-master/search/functions_2.html b/dox-master/search/functions_2.html new file mode 100644 index 000000000..ca5aa10e6 --- /dev/null +++ b/dox-master/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_2.js b/dox-master/search/functions_2.js new file mode 100644 index 000000000..155031017 --- /dev/null +++ b/dox-master/search/functions_2.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['back_2150',['back',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a94fa974191d3bfffb8bec306b19c08f7',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['backtrace_2151',['Backtrace',['../classttg_1_1detail_1_1_backtrace.html#af13ee0e71c58e0573986efd6f1a0d882',1,'ttg::detail::Backtrace::Backtrace(const std::string &prefix=std::string(""))'],['../classttg_1_1detail_1_1_backtrace.html#a3f843a27f7ec7873b07fb323bbbb1397',1,'ttg::detail::Backtrace::Backtrace(const Backtrace &)']]], + ['begin_2152',['begin',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a664fb3dd58c2a8ee9c76ea881a7c1a31',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['binaryspanningtree_2153',['BinarySpanningTree',['../classttg_1_1_binary_spanning_tree.html#ace575e2f7466b0b43b1b0b9925e92388',1,'ttg::BinarySpanningTree']]], + ['binarytreebroadcast_2154',['BinaryTreeBroadcast',['../classttg_1_1_binary_tree_broadcast.html#ade6e9136372de7b7865d8daef8e40604',1,'ttg::BinaryTreeBroadcast']]], + ['binarytreereduce_2155',['BinaryTreeReduce',['../classttg_1_1_binary_tree_reduce.html#ad872b649b9eee96d0245e3dcfe9eea54',1,'ttg::BinaryTreeReduce']]], + ['boost_5fclbl_5ftrts_5fset_5ffunction_5fqualifiers_2156',['BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS',['../namespaceboost_1_1callable__traits_1_1detail.html#af6688767286e7858b374a5e92c9a49a4',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(&&);BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const &'],['../namespaceboost_1_1callable__traits_1_1detail.html#ab3bb0425c94b5e9b52fa531c7efce67d',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const volatile &&)'],['../namespaceboost_1_1callable__traits_1_1detail.html#a30c5a7a0aa267af16a23a079f51efb12',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const volatile &)'],['../namespaceboost_1_1callable__traits_1_1detail.html#a16f05d50b6c012cb8698f0b29fc917e4',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(volatile &&)'],['../namespaceboost_1_1callable__traits_1_1detail.html#ae032db5a667c168c43a35c338f552e67',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(volatile &)'],['../namespaceboost_1_1callable__traits_1_1detail.html#ae64c292bb6672887fad163deb2b53f4d',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const &&)'],['../namespaceboost_1_1callable__traits_1_1detail.html#a832f306a4c79d650943ed5db25ab5f3c',1,'boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const)']]], + ['boost_5foptimized_5fiarchive_2157',['boost_optimized_iarchive',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a862e1b2d3966cbdd20868903c0ef933c',1,'ttg::detail::boost_optimized_iarchive::boost_optimized_iarchive()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a72e1bd3f3c846a526658bb10e4ffe69c',1,'ttg::detail::boost_optimized_iarchive::boost_optimized_iarchive(StreamOrStreambuf sbuf)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#abed932b2654903179829ebdefad4069e',1,'ttg::detail::boost_optimized_iarchive::boost_optimized_iarchive(Arg &&arg)']]], + ['boost_5foptimized_5foarchive_2158',['boost_optimized_oarchive',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#afece61128314a9427b85bc23f34a403a',1,'ttg::detail::boost_optimized_oarchive::boost_optimized_oarchive()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#aa4312bc00c7fb27ebb57eedb3aab223d',1,'ttg::detail::boost_optimized_oarchive::boost_optimized_oarchive(StreamOrStreambuf sbuf)'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a851170415a77b9db3c3153baba4e1c67',1,'ttg::detail::boost_optimized_oarchive::boost_optimized_oarchive(Arg &&arg)']]], + ['boost_5fserialization_5fregister_5farchive_2159',['BOOST_SERIALIZATION_REGISTER_ARCHIVE',['../archive_8h.html#a22df2e45469561212b9f91172f5a6135',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_iovec_iarchive): archive.h'],['../archive_8h.html#ad28e1e8ae7103246794fd03b9cf1c200',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_buffer_oarchive): archive.h'],['../archive_8h.html#a75456571b517431dbf12df9657134995',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_iovec_oarchive): archive.h'],['../archive_8h.html#a7eb602768452e01cc34dccdd5758a9a8',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_counting_oarchive): archive.h'],['../archive_8h.html#aa917439211caaa95d94248d7c735b6ae',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_buffer_iarchive): archive.h'],['../archive_8h.html#ac2104400eac0746c05622250759dc25a',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_byte_oarchive): archive.h'],['../archive_8h.html#a4a039869c6873477b66ecf7b0db7f57f',1,'BOOST_SERIALIZATION_REGISTER_ARCHIVE(ttg::detail::boost_byte_iarchive): archive.h']]], + ['boost_5fserialization_5fuse_5farray_5foptimization_5ffor_5fthis_5fand_5fbase_2160',['BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE',['../archive_8h.html#a6018404aa2ae9ec290c7537bc3264b9c',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_iovec_oarchive): archive.h'],['../archive_8h.html#a07dd046ac663adeeacf5e5f98e11aa38',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_counting_oarchive): archive.h'],['../archive_8h.html#a61e02e46204f9bfc5c91f592c4e6dce7',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_buffer_oarchive): archive.h'],['../archive_8h.html#acf586da475db535185be8fd20d814b5c',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_iovec_iarchive): archive.h'],['../archive_8h.html#a654cebcc1c010f8e9d06dd3b9a61a244',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_buffer_iarchive): archive.h'],['../archive_8h.html#ae54dc59f428b29b6087d05fa60af80f3',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_byte_oarchive): archive.h'],['../archive_8h.html#ad0150ad931a031fda69afef61352a010',1,'BOOST_SERIALIZATION_USE_ARRAY_OPTIMIZATION_FOR_THIS_AND_BASE(ttg::detail::boost_byte_iarchive): archive.h']]], + ['broadcast_2161',['broadcast',['../classttg_1_1_in.html#ac0470d2a7979d0e6c73b72e831897e79',1,'ttg::In::broadcast()'],['../namespacettg_1_1detail.html#adc8ad44fcad6d0781a817bfd5f7a9ce6',1,'ttg::detail::broadcast(const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg_1_1detail.html#adaaa172e6c45c0096b3b94b9c2df68bb',1,'ttg::detail::broadcast(const std::tuple< RangesT... > &keylists, valueT &&value)'],['../namespacettg_1_1detail.html#a9d591282fbb338459fafb4d2c1360d8c',1,'ttg::detail::broadcast(const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg_1_1detail.html#af0cd55a640abd73c4760329260a09ba2',1,'ttg::detail::broadcast(const std::tuple< RangesT... > &keylists)'],['../namespacettg.html#acf908d9662cedac0bb46449fde7b1f2e',1,'ttg::broadcast(const rangeT &keylist, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#a5d4ff5c0e881e2d20ae90ff2967b82a4',1,'ttg::broadcast(std::size_t i, const rangeT &keylist, valueT &&value)'],['../namespacettg.html#a737d42cdd65907cfa4f1b19d26f17a24',1,'ttg::broadcast(const rangeT &keylist, valueT &&value)'],['../namespacettg.html#a755e4e30482082d4e484cd9c339007a5',1,'ttg::broadcast(const std::tuple< RangesT... > &keylists, valueT &&value, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ac8e21a740dc51633bdb551ca9a15599c',1,'ttg::broadcast(const std::tuple< RangesT... > &keylists, valueT &&value)'],['../classttg_1_1_in.html#ade823ef11ad829eed8783c8a97efd4a6',1,'ttg::In::broadcast()'],['../classttg_1_1_out.html#ab0f6c234342347abadd6641ac0e3186c',1,'ttg::Out::broadcast(const rangeT &keylist, const Value &value)'],['../classttg_1_1_out.html#a7a6cb20da481d51ac25c7b73d95c5fce',1,'ttg::Out::broadcast(const rangeT &keylist)'],['../classttg_1_1_in.html#ac1b67369418aeb32ae29e3adfbe25233',1,'ttg::In::broadcast()']]], + ['broadcast_5farg_2162',['broadcast_arg',['../classttg__parsec_1_1_t_t.html#a3f456550e2aa639e025908ef91889d80',1,'ttg_parsec::TT']]], + ['broadcast_5farg_5flocal_2163',['broadcast_arg_local',['../classttg__parsec_1_1_t_t.html#abb317d30cac090a9d2fa0465955b4ae4',1,'ttg_parsec::TT']]], + ['broadcastk_2164',['broadcastk',['../namespacettg.html#acd90a9ecb881d48728663b44d3935ff3',1,'ttg::broadcastk(const std::tuple< RangesT... > &keylists)'],['../namespacettg.html#ad969e1e680fbdf6ae4ac7119198020ec',1,'ttg::broadcastk(const std::tuple< RangesT... > &keylists, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#a9643b174824fbe0fe69a881791c074df',1,'ttg::broadcastk(const rangeT &keylist)'],['../namespacettg.html#ac803bd14ed65cffefb0c724cdd09e694',1,'ttg::broadcastk(std::size_t i, const rangeT &keylist)'],['../namespacettg.html#adbcac853d026fe2c3badfeaeae37a273',1,'ttg::broadcastk(const rangeT &keylist, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)']]], + ['buffer_2165',['Buffer',['../structttg__madness_1_1_buffer.html#aa84aaccf2c45d3e66a9991fe7038348c',1,'ttg_madness::Buffer::Buffer(std::size_t n)'],['../structttg__madness_1_1_buffer.html#a5475bbb43c615eb9b1a8099630d92baa',1,'ttg_madness::Buffer::Buffer()'],['../structttg__madness_1_1_buffer.html#a7f4c69e9ac16570cd76143774446d86b',1,'ttg_madness::Buffer::Buffer(element_type *ptr, std::size_t n=1)'],['../structttg__madness_1_1_buffer.html#a4aa3b04cf70e640d45aafa7e6a204d96',1,'ttg_madness::Buffer::Buffer(Buffer &&db)'],['../structttg__madness_1_1_buffer.html#a75e579694f9635061208d7b625020f09',1,'ttg_madness::Buffer::Buffer(const Buffer &db)=delete'],['../structttg__parsec_1_1_buffer.html#a9ed678a9c380abb1f0ee487bf3336f56',1,'ttg_parsec::Buffer::Buffer()'],['../structttg__parsec_1_1_buffer.html#a54f55f83d8e7711e287c4826a682d529',1,'ttg_parsec::Buffer::Buffer(std::size_t n)'],['../structttg__parsec_1_1_buffer.html#a0867464ccb529ac8fd66d2b39d386ba1',1,'ttg_parsec::Buffer::Buffer(element_type *ptr, std::size_t n=1)'],['../structttg__parsec_1_1_buffer.html#a0e2c9c53346079277370ec5784117ab6',1,'ttg_parsec::Buffer::Buffer(Buffer &&db)'],['../structttg__parsec_1_1_buffer.html#a6d49cc006d387602fbd18e5743c1699e',1,'ttg_parsec::Buffer::Buffer(const Buffer &db)=delete']]], + ['build_5fttg_5fhierarchy_2166',['build_ttg_hierarchy',['../classttg_1_1_dot.html#acf2006cfe81db46f057e9501d6c1531b',1,'ttg::Dot']]], + ['byte_5fistreambuf_2167',['byte_istreambuf',['../classttg_1_1detail_1_1byte__istreambuf.html#a04ed16567575a182c2216270185a71de',1,'ttg::detail::byte_istreambuf']]], + ['byte_5fostreambuf_2168',['byte_ostreambuf',['../classttg_1_1detail_1_1byte__ostreambuf.html#a56736d1dfe311e18fd9e856c6582ab47',1,'ttg::detail::byte_ostreambuf']]] +]; diff --git a/dox-master/search/functions_3.html b/dox-master/search/functions_3.html new file mode 100644 index 000000000..d79f55b8e --- /dev/null +++ b/dox-master/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_3.js b/dox-master/search/functions_3.js new file mode 100644 index 000000000..c179648ee --- /dev/null +++ b/dox-master/search/functions_3.js @@ -0,0 +1,34 @@ +var searchData= +[ + ['call_5ffunc_2169',['call_func',['../class_callable_wrap_t_t_args.html#aba079a5875d611bbaab3e7897819c24f',1,'CallableWrapTTArgs::call_func(Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)'],['../class_callable_wrap_t_t_args.html#afa308c4d588fe4791b559c19a74fc1ab',1,'CallableWrapTTArgs::call_func(Key &&key, Tuple &&args_tuple, output_terminalsT &out, std::index_sequence< S... >)'],['../class_callable_wrap_t_t_args.html#a8ccb6002106d46289740a8e2d763422a',1,'CallableWrapTTArgs::call_func(OutputTerminals &out)'],['../class_callable_wrap_t_t_args.html#af650061146cb615febea10fc8863975a',1,'CallableWrapTTArgs::call_func(Key &&key, output_terminalsT &out)']]], + ['callablewraptt_2170',['CallableWrapTT',['../class_callable_wrap_t_t.html#aa11e4ecd5f74a9083b38f7ab3d07b2ec',1,'CallableWrapTT::CallableWrapTT(funcT_ &&f, const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)'],['../class_callable_wrap_t_t.html#afce6864f3197ed6d3ceab13a672c9f5e',1,'CallableWrapTT::CallableWrapTT(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)']]], + ['callablewrapttargs_2171',['CallableWrapTTArgs',['../class_callable_wrap_t_t_args.html#aee21daa315b066b16c7c6fa8aeefdb9c',1,'CallableWrapTTArgs::CallableWrapTTArgs(funcT_ &&f, const input_edges_type &inedges, const typename baseT::output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)'],['../class_callable_wrap_t_t_args.html#a5e185699e6ac46abf7285c2725dc7ba1',1,'CallableWrapTTArgs::CallableWrapTTArgs(funcT_ &&f, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames)']]], + ['can_5finline_5fdata_2172',['can_inline_data',['../classttg__parsec_1_1_t_t.html#a77670c517aba65a358c0b3a248a8a675',1,'ttg_parsec::TT']]], + ['check_2173',['check',['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html#afa61cc32e565a687d6c28c8fc1daa270',1,'boost::callable_traits::detail::has_normal_call_operator::check']]], + ['child_5fkeys_2174',['child_keys',['../classttg_1_1_binary_spanning_tree.html#ad51a2f04edaf0a180f26e7b1dba57a7b',1,'ttg::BinarySpanningTree']]], + ['clear_2175',['clear',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#affe1073ec1827fd2abdf4d9cac4babc8',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['comm_2176',['comm',['../classttg__parsec_1_1_world_impl.html#a672bd6f962d95538fca23d808336920d',1,'ttg_parsec::WorldImpl']]], + ['complete_5ftransfer_2177',['complete_transfer',['../classttg__parsec_1_1detail_1_1rma__delayed__activate.html#af49eaa00eef276580dd515ab6d2fcc72',1,'ttg_parsec::detail::rma_delayed_activate']]], + ['completed_2178',['completed',['../group__resumable__task.html#ga9e08a534d90f87f33c5979267c908dd4',1,'ttg::resumable_task::completed()'],['../structttg_1_1resumable__task__state.html#a02e054cc80c816dbb28dcb47b3a047f7',1,'ttg::resumable_task_state::completed()']]], + ['compute_5farg_5fbinding_5ftypes_2179',['compute_arg_binding_types',['../namespacettg_1_1meta.html#a601aac1a6bf2282fdfedeefc2948ec3c',1,'ttg::meta']]], + ['compute_5farg_5fbinding_5ftypes_5fimpl_2180',['compute_arg_binding_types_impl',['../namespacettg_1_1meta.html#a56df233c313fd365eff34d6df9e832a6',1,'ttg::meta']]], + ['compute_5farg_5fbinding_5ftypes_5fr_2181',['compute_arg_binding_types_r',['../namespacettg_1_1meta.html#a1b1f6ae9f493795537eff2f5535dfb95',1,'ttg::meta']]], + ['compute_5farg_5fbinding_5ftypes_5fr_5fimpl_2182',['compute_arg_binding_types_r_impl',['../namespacettg_1_1meta.html#ac53ac0a61b1b56fa9899501103a7cce5',1,'ttg::meta']]], + ['condition_2183',['condition',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#aa083a6ce8012e8d81e9847f3c1f93977',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['connect_2184',['connect',['../classttg_1_1_out.html#a0dd09ce5a40514317b0677a68e08a4a8',1,'ttg::Out::connect()'],['../namespacettg.html#ac31d3ffe687039e52a8179b0ffca7153',1,'ttg::connect(ttg::Out< keyT, valueT > *out, ttg::In< keyT, valueT > *in)'],['../namespacettg.html#a6bd17b47d03abb801110d8476191dde7',1,'ttg::connect(ttg::TerminalBase *out, ttg::TerminalBase *in)'],['../namespacettg.html#a5f5c90f59ffa4fddb4a2aa1afe4d3db3',1,'ttg::connect(producer_tt_ptr &p, successor_tt_ptr &c)'],['../namespacettg.html#aa1ae512e6c225e04ab2f19977d4dd310',1,'ttg::connect(producer_tt_ptr *p, successor_tt_ptr *c)'],['../namespacettg.html#addc70370fc2c1bc2a58db5592cc6ec44',1,'ttg::connect(size_t outindex, size_t inindex, TTBase *producer, TTBase *consumer)'],['../classttg_1_1_terminal_base.html#a3688d91930078d355a833312a32ef13a',1,'ttg::TerminalBase::connect(TerminalBase *in)=0']]], + ['connect_5fbase_2185',['connect_base',['../classttg_1_1_terminal_base.html#a40df40809acfc616d60c9377bf6cfa61',1,'ttg::TerminalBase']]], + ['connect_5fpull_2186',['connect_pull',['../classttg_1_1_terminal_base.html#ab19aac249a137dbb8199e5d87dfefd5c',1,'ttg::TerminalBase']]], + ['connect_5fpull_5fnopred_2187',['connect_pull_nopred',['../classttg_1_1_terminal_base.html#a5a2cded8467d1738986024d6ded3511d',1,'ttg::TerminalBase']]], + ['containerwrapper_2188',['ContainerWrapper',['../structttg_1_1detail_1_1_container_wrapper.html#a6737b6d26a76533b3c35c572cde01573',1,'ttg::detail::ContainerWrapper::ContainerWrapper(T &t, mapperT &&mapper, keymapT &&keymap)'],['../structttg_1_1detail_1_1_container_wrapper.html#ad77f6e71e87f3b95346eae53d3a44f2d',1,'ttg::detail::ContainerWrapper::ContainerWrapper(ContainerWrapper &&)=default'],['../structttg_1_1detail_1_1_container_wrapper.html#a8cdbe86f5f91818a9bc317c591e542d2',1,'ttg::detail::ContainerWrapper::ContainerWrapper(const ContainerWrapper &)=default'],['../structttg_1_1detail_1_1_container_wrapper.html#a0bb72273549bd045fdc94cc226317ac4',1,'ttg::detail::ContainerWrapper::ContainerWrapper()=default']]], + ['context_2189',['context',['../classttg__parsec_1_1_world_impl.html#aeddef1aca7938157d7322c623e25a2f4',1,'ttg_parsec::WorldImpl']]], + ['copy_5fmark_5fpushout_2190',['copy_mark_pushout',['../classttg__parsec_1_1_t_t.html#a79befaf8202ffcb829828165b3dde39c',1,'ttg_parsec::TT']]], + ['create_5fnew_5fdatacopy_2191',['create_new_datacopy',['../namespacettg__parsec_1_1detail.html#abb5f8a2eb005a7dc66279a6decd9e8c5',1,'ttg_parsec::detail']]], + ['create_5fnew_5freducer_5ftask_2192',['create_new_reducer_task',['../classttg__parsec_1_1_t_t.html#a5ae09e91d90c322b8cc529bb06b09ead',1,'ttg_parsec::TT']]], + ['create_5fnew_5ftask_2193',['create_new_task',['../classttg__parsec_1_1_t_t.html#a413125ae4a0ca93f978207dd5f5d4fb5',1,'ttg_parsec::TT']]], + ['create_5fparsec_5fdata_2194',['create_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a0da0ac69ee918af6003259e03100392c',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['create_5ftpool_2195',['create_tpool',['../classttg__parsec_1_1_world_impl.html#a5db7008c862368d9a534848c66ae703e',1,'ttg_parsec::WorldImpl']]], + ['ctl_5fedge_2196',['ctl_edge',['../classttg__parsec_1_1_world_impl.html#a3bba489b9fbac466039ac3ae923c5290',1,'ttg_parsec::WorldImpl::ctl_edge() const'],['../classttg__parsec_1_1_world_impl.html#a631ab6354ec159d35efefe7e0d0a002a',1,'ttg_parsec::WorldImpl::ctl_edge()'],['../classttg__madness_1_1_world_impl.html#a7b6badf072fa99b95b24b3e58778875e',1,'ttg_madness::WorldImpl::ctl_edge() const'],['../classttg__madness_1_1_world_impl.html#aa7d32882d63b7cbfc2be58cc7eac540b',1,'ttg_madness::WorldImpl::ctl_edge()']]], + ['current_5fdevice_2197',['current_device',['../namespacettg_1_1device.html#a5c5ca5f871db61a4e703ca6170582a5e',1,'ttg::device']]], + ['current_5fdevice_5fptr_2198',['current_device_ptr',['../structttg__madness_1_1_buffer.html#aa1a93b637b0c912a49ca02e89652e9e5',1,'ttg_madness::Buffer::current_device_ptr()'],['../structttg__madness_1_1_buffer.html#a2846618e09ad50820b050819655f5679',1,'ttg_madness::Buffer::current_device_ptr() const'],['../structttg__parsec_1_1_buffer.html#a031b151e6793b432ab3b2425ea622823',1,'ttg_parsec::Buffer::current_device_ptr()'],['../structttg__parsec_1_1_buffer.html#ad80cf24fd222b301c38aa343a5280e47',1,'ttg_parsec::Buffer::current_device_ptr() const']]], + ['current_5fstream_2199',['current_stream',['../namespacettg_1_1device.html#ac976145f9aee50b15ccf4988ddd462c2',1,'ttg::device']]] +]; diff --git a/dox-master/search/functions_4.html b/dox-master/search/functions_4.html new file mode 100644 index 000000000..1657cad0d --- /dev/null +++ b/dox-master/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_4.js b/dox-master/search/functions_4.js new file mode 100644 index 000000000..d30115bbe --- /dev/null +++ b/dox-master/search/functions_4.js @@ -0,0 +1,46 @@ +var searchData= +[ + ['dag_5foff_2200',['dag_off',['../classttg_1_1base_1_1_world.html#a7cf6505af9b2ef8a1036d0e2cc3efa72',1,'ttg::base::World::dag_off()'],['../classttg__parsec_1_1_world_impl.html#a817c5817053b79c7f38e1b24c2e81b1d',1,'ttg_parsec::WorldImpl::dag_off()'],['../classttg_1_1base_1_1_world_impl_base.html#a31d92cf6222cbc1f7502c5db19723873',1,'ttg::base::WorldImplBase::dag_off()']]], + ['dag_5fon_2201',['dag_on',['../classttg_1_1base_1_1_world_impl_base.html#a4ec9238c853d881dac5e51582244e844',1,'ttg::base::WorldImplBase::dag_on()'],['../classttg_1_1base_1_1_world.html#a73bc974b34218ad1e014088129720b45',1,'ttg::base::World::dag_on()'],['../classttg__parsec_1_1_world_impl.html#a8486bd3e8dc829175f7ad0538e0dce4b',1,'ttg_parsec::WorldImpl::dag_on()']]], + ['dag_5fprofiling_2202',['dag_profiling',['../classttg_1_1base_1_1_world_impl_base.html#ad45b6bac89f3a676a1661e63156ec21a',1,'ttg::base::WorldImplBase::dag_profiling()'],['../classttg_1_1base_1_1_world.html#aeca2d859a53a876de93c880af5180b1d',1,'ttg::base::World::dag_profiling()'],['../classttg__parsec_1_1_world_impl.html#ae9d5c0aea2b9acd21aff373ba5c7a2f5',1,'ttg_parsec::WorldImpl::dag_profiling()']]], + ['data_2203',['data',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#ada90c89c458a0d53c483e767de7b7701',1,'TCB_SPAN_NAMESPACE_NAME::detail::data(C &c) -> decltype(c.data())'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#aa175cdddf002f8c0233d4c5d682cc819',1,'TCB_SPAN_NAMESPACE_NAME::detail::data(const C &c) -> decltype(c.data())'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a4a024aec4e35907a153ac2398db7f1a3',1,'TCB_SPAN_NAMESPACE_NAME::detail::data(T(&array)[N]) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#acdb4feaf9a9b6863ca60072e51b4210f',1,'TCB_SPAN_NAMESPACE_NAME::detail::data(std::initializer_list< E > il) noexcept'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#abd99c234b244ec0fc785035ac9053f45',1,'TCB_SPAN_NAMESPACE_NAME::span::data()']]], + ['debug_2204',['debug',['../classttg_1_1_debugger.html#af08e9080a2ff5de53bd54b9258dbcd7d',1,'ttg::Debugger']]], + ['debug_5fregister_2205',['debug_register',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ad724f70709b73cd4d498615780f3761e',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['debugger_2206',['Debugger',['../classttg_1_1_debugger.html#aefd3fb0dcd8a59ab403fdb4587184e59',1,'ttg::Debugger']]], + ['decrement_5finflight_5fmsg_2207',['decrement_inflight_msg',['../classttg__parsec_1_1_world_impl.html#a256790017d859e8477adf7dffc44f500',1,'ttg_parsec::WorldImpl']]], + ['decrement_5freaders_2208',['decrement_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a9ec5b25fe6707fa792b2d10d03974aa6',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['default_5fcmd_2209',['default_cmd',['../classttg_1_1_debugger.html#a9d300701a1afd231052bc95bb9f7f027',1,'ttg::Debugger']]], + ['default_5fdebugger_2210',['default_debugger',['../classttg_1_1_debugger.html#a754e9a1b50445936716c34856c26272d',1,'ttg::Debugger']]], + ['default_5fexecution_5fcontext_2211',['default_execution_context',['../namespacettg.html#a78c09561304884c05c8a8f25006b0ee6',1,'ttg']]], + ['default_5fkeymap_2212',['default_keymap',['../structttg_1_1detail_1_1default__keymap.html#a60f7a07bd8da27c5f32ca2e5730c2551',1,'ttg::detail::default_keymap::default_keymap(const ttg::World &world)'],['../structttg_1_1detail_1_1default__keymap.html#a6faf76870adbe687372124833d84b65f',1,'ttg::detail::default_keymap::default_keymap()=default']]], + ['default_5fkeymap_5fimpl_2213',['default_keymap_impl',['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a34624a7dc40873d479f092193b329186',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::default_keymap_impl()=default'],['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a71e30d786180703a47144aa8a1a7496e',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::default_keymap_impl(int world_size)']]], + ['default_5fpriomap_2214',['default_priomap',['../structttg_1_1detail_1_1default__priomap.html#af3d1eb7d4fe2cbc4483d0894deb30eba',1,'ttg::detail::default_priomap']]], + ['default_5fpriomap_5fimpl_2215',['default_priomap_impl',['../structttg_1_1detail_1_1default__priomap__impl.html#aceb485dea3196f735df78e90a5f64ab7',1,'ttg::detail::default_priomap_impl']]], + ['default_5fworld_5faccessor_2216',['default_world_accessor',['../namespacettg_1_1detail.html#a1217c7fe9e73c5ac4fb8c9833e149261',1,'ttg::detail']]], + ['delete_5fnull_5fparsec_5fdata_2217',['delete_null_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a202f3ddedec9e573410519a2637015ab',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['delete_5fparsec_5fdata_2218',['delete_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a3d9d0054f2b850a29a1290cb95095d18',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['deregister_5fop_2219',['deregister_op',['../classttg_1_1base_1_1_world_impl_base.html#a869422b9140513505678058e78da2338',1,'ttg::base::WorldImplBase']]], + ['deregister_5fworld_2220',['deregister_world',['../namespacettg_1_1detail.html#a0610fdbf14b53b8893cdad8fa5d9b243',1,'ttg::detail::deregister_world(WorldImplT &world)'],['../namespacettg_1_1detail.html#a0737a159633e6fbe20a71c7297ba3645',1,'ttg::detail::deregister_world(ttg::base::WorldImplBase &world)']]], + ['derived_5fhas_5fcuda_5fop_2221',['derived_has_cuda_op',['../classttg__parsec_1_1_t_t.html#afdc5c7835411eac8c639dbd72b5ed087',1,'ttg_parsec::TT::derived_has_cuda_op()'],['../classttg__madness_1_1_t_t.html#a572e47fc4fc9827afd5f220f24266a60',1,'ttg_madness::TT::derived_has_cuda_op()']]], + ['derived_5fhas_5fdevice_5fop_2222',['derived_has_device_op',['../classttg__madness_1_1_t_t.html#a52fad87dc28fd49e978310e2abb05df0',1,'ttg_madness::TT::derived_has_device_op()'],['../classttg__parsec_1_1_t_t.html#afae2463fe117d61153413c34ae73205e',1,'ttg_parsec::TT::derived_has_device_op()']]], + ['derived_5fhas_5fhip_5fop_2223',['derived_has_hip_op',['../classttg__parsec_1_1_t_t.html#a0ebdb2beae101bdb27a32ef0acd8e3c1',1,'ttg_parsec::TT::derived_has_hip_op()'],['../classttg__madness_1_1_t_t.html#a3d4f24d463f25721228759bb90d80d65',1,'ttg_madness::TT::derived_has_hip_op()']]], + ['derived_5fhas_5flevel_5fzero_5fop_2224',['derived_has_level_zero_op',['../classttg__parsec_1_1_t_t.html#a298db987dd672a22c64839d19066745f',1,'ttg_parsec::TT::derived_has_level_zero_op()'],['../classttg__madness_1_1_t_t.html#a539161d3508bf9f21e11d24dc3ee854b',1,'ttg_madness::TT::derived_has_level_zero_op()']]], + ['destroy_2225',['destroy',['../classttg__madness_1_1_world_impl.html#acaed2630a3cc07893cff1f92032d56ce',1,'ttg_madness::WorldImpl::destroy()'],['../classttg_1_1base_1_1_world_impl_base.html#a2ba8822a9c65d31ae548391b60309e56',1,'ttg::base::WorldImplBase::destroy()'],['../classttg__parsec_1_1_world_impl.html#acdf3cf5cfb64ebfda9ab9fffd4b3e32d',1,'ttg_parsec::WorldImpl::destroy() override']]], + ['destroy_5ftpool_2226',['destroy_tpool',['../classttg__parsec_1_1_world_impl.html#a30ad1ec1811c1dd7538448add28af497',1,'ttg_parsec::WorldImpl']]], + ['destroy_5fworlds_2227',['destroy_worlds',['../namespacettg_1_1detail.html#ac780cc7278cca427205f79d10130adb2',1,'ttg::detail']]], + ['dev_5fptr_2228',['dev_ptr',['../structttg__parsec_1_1detail_1_1device__state__t.html#ae8fb4dbc5bea961c340ba75fda716c43',1,'ttg_parsec::detail::device_state_t::dev_ptr()'],['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#af37151c262f13a425def5553bc5d1286',1,'ttg_parsec::detail::device_state_t< true >::dev_ptr()']]], + ['device_2229',['Device',['../classttg_1_1device_1_1_device.html#ab5d77b0fc1cfccd4190b70c4b63dc61b',1,'ttg::device::Device::Device()=default'],['../classttg_1_1device_1_1_device.html#abea7bd83d6d9f6911c8706dd1f2da35f',1,'ttg::device::Device::Device(int id, ttg::ExecutionSpace space)']]], + ['device_5fptr_2230',['device_ptr',['../structttg__parsec_1_1devicescratch.html#ac654b90119aa137e1af815c0a356190e',1,'ttg_parsec::devicescratch::device_ptr()'],['../structttg__parsec_1_1devicescratch.html#ad2304d6966cf84df5a5923bf9e47901c',1,'ttg_parsec::devicescratch::device_ptr() const']]], + ['device_5fptr_5fon_2231',['device_ptr_on',['../structttg__madness_1_1_buffer.html#a5c06faaf1f439878d9db2284213d8db2',1,'ttg_madness::Buffer::device_ptr_on()'],['../structttg__parsec_1_1_buffer.html#acb5b0d482d524f01d6b5ceda3f69f2b4',1,'ttg_parsec::Buffer::device_ptr_on(const ttg::device::Device &device) const'],['../structttg__parsec_1_1_buffer.html#a5f4c9066f4b9afab0ef995e898f7f01f',1,'ttg_parsec::Buffer::device_ptr_on(const ttg::device::Device &device)'],['../structttg__madness_1_1_buffer.html#a1bcd5cd0b81c441c6778f0fca96f75d2',1,'ttg_madness::Buffer::device_ptr_on()']]], + ['device_5fstate_5ft_2232',['device_state_t',['../structttg__parsec_1_1detail_1_1device__state__t.html#a5cdeecbb0e04354870ffbc47414835b5',1,'ttg_parsec::detail::device_state_t']]], + ['devicescratch_2233',['devicescratch',['../structttg__parsec_1_1devicescratch.html#a6cddb2a8533456f0c3e08eea8976aa95',1,'ttg_parsec::devicescratch::devicescratch(const devicescratch &db)=delete'],['../structttg__parsec_1_1devicescratch.html#a635093e848e51710c216c21e51c972a2',1,'ttg_parsec::devicescratch::devicescratch(devicescratch &&)=delete'],['../structttg__parsec_1_1devicescratch.html#a7062bf067c702ef5f0afa7040005342a',1,'ttg_parsec::devicescratch::devicescratch(element_type *ptr, ttg::scope scope=ttg::scope::SyncIn, std::size_t count=1)']]], + ['diagnose_2234',['diagnose',['../namespacettg.html#a34d9ec9e8e0d0b0a11cb6df934247dfe',1,'ttg']]], + ['diagnose_5faccessor_2235',['diagnose_accessor',['../namespacettg_1_1detail.html#a03748042845ed696dfc9f33148efe77a',1,'ttg::detail']]], + ['diagnose_5foff_2236',['diagnose_off',['../namespacettg.html#aacf9cee7849bcfb0208794af9ee52941',1,'ttg']]], + ['diagnose_5fon_2237',['diagnose_on',['../namespacettg.html#a0367b1d8f25df55737220b1eef1d19d8',1,'ttg']]], + ['do_5fprepare_5fsend_2238',['do_prepare_send',['../classttg__parsec_1_1_t_t.html#a310ccaad9bf8114ca27135ac97be78f7',1,'ttg_parsec::TT']]], + ['do_5frelease_2239',['do_release',['../classttg__parsec_1_1_t_t.html#a43758ac82d6c0199dab7d0049fca8551',1,'ttg_parsec::TT']]], + ['dot_2240',['Dot',['../classttg_1_1_dot.html#a81c31157d06bb8ddc5d6f00964697660',1,'ttg::Dot']]], + ['drop_5fall_5fptr_2241',['drop_all_ptr',['../structttg__parsec_1_1detail_1_1ptr__impl.html#a19c7c72b0d727e864279957d3b4dc2ad',1,'ttg_parsec::detail::ptr_impl']]], + ['drop_5fref_2242',['drop_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a256cd72a298f3af43391d94316092f1b',1,'ttg_parsec::detail::ttg_data_copy_t']]] +]; diff --git a/dox-master/search/functions_5.html b/dox-master/search/functions_5.html new file mode 100644 index 000000000..9301d6b9c --- /dev/null +++ b/dox-master/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_5.js b/dox-master/search/functions_5.js new file mode 100644 index 000000000..28275c110 --- /dev/null +++ b/dox-master/search/functions_5.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['edge_2243',['Edge',['../classttg_1_1_edge.html#aa06fd1dbbdfbcd4ddeec7bddf6ea5c4d',1,'ttg::Edge::Edge(const std::string name="anonymous edge")'],['../classttg_1_1_edge.html#adc20292504034d67301fc684e01fd85b',1,'ttg::Edge::Edge(const std::string name, bool is_pull, ttg::detail::ContainerWrapper< keyT, valueT > c)'],['../classttg_1_1_edge.html#adf1150d7ec9cf09a79fb13cbb77132b8',1,'ttg::Edge::Edge(const Edge< keyT, valuesT > &...edges)']]], + ['edge_2244',['edge',['../classttg_1_1_edge.html#ab0c8c81dd14d0c899c542c47520a2462',1,'ttg::Edge']]], + ['edges_2245',['edges',['../namespacettg.html#afbabcd9802bf1bbdd302e7a612459353',1,'ttg']]], + ['empty_2246',['empty',['../classttg_1_1detail_1_1_backtrace.html#aaab9437247fb8d0f7ecd701cb6c95ecd',1,'ttg::detail::Backtrace::empty()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a335ed7f7ebe765bfc9afaf3cb05cba01',1,'TCB_SPAN_NAMESPACE_NAME::span::empty() const noexcept']]], + ['end_2247',['end',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a489018b5bee32947d4997c51cae6010b',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['escape_2248',['escape',['../classttg_1_1_dot.html#a3b85f343706fbdd92d04b2d1ce656cf0',1,'ttg::Dot']]], + ['evaluate_5fcuda_2249',['evaluate_cuda',['../namespacettg__parsec_1_1detail.html#a58e63f1c4ae22d09b08bbd948f44fd45',1,'ttg_parsec::detail']]], + ['evaluate_5fhip_2250',['evaluate_hip',['../namespacettg__parsec_1_1detail.html#aa3e50f118ca3fd0faba5f77d4c2a714b',1,'ttg_parsec::detail']]], + ['evaluate_5flevel_5fzero_2251',['evaluate_level_zero',['../namespacettg__parsec_1_1detail.html#a0b08be8f9414209913fe205e9ee1704a',1,'ttg_parsec::detail']]], + ['events_2252',['events',['../structttg_1_1resumable__task__state.html#af426f899a982a13628e204c8304b84ff',1,'ttg::resumable_task_state::events()'],['../group__resumable__task.html#ga67fade8b624289b80842e239b2a31554',1,'ttg::resumable_task::events()']]], + ['execute_2253',['execute',['../classttg__parsec_1_1_world_impl.html#a19bae6483b9c80918800dd77a7b0b57f',1,'ttg_parsec::WorldImpl::execute()'],['../classttg_1_1base_1_1_world_impl_base.html#a9e7f0a95e4f208ec8b2f205a2e1896fe',1,'ttg::base::WorldImplBase::execute()'],['../namespacettg.html#a1261c57f70c978771f64af07d7f7d7cd',1,'ttg::execute()']]], + ['execution_5fspace_5fname_2254',['execution_space_name',['../namespacettg_1_1detail.html#abe9a1e475158304c7a7233876b5f5ed3',1,'ttg::detail']]], + ['execution_5fstream_2255',['execution_stream',['../classttg__parsec_1_1_world_impl.html#aeb4a61353f88c7fe2234e6d3ce2cc7c6',1,'ttg_parsec::WorldImpl']]] +]; diff --git a/dox-master/search/functions_6.html b/dox-master/search/functions_6.html new file mode 100644 index 000000000..9c4f5fc65 --- /dev/null +++ b/dox-master/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_6.js b/dox-master/search/functions_6.js new file mode 100644 index 000000000..5e732d751 --- /dev/null +++ b/dox-master/search/functions_6.js @@ -0,0 +1,23 @@ +var searchData= +[ + ['fence_2256',['fence',['../classttg_1_1base_1_1_world_impl_base.html#a1afc33f0e28ef2c3c20c9c94585a023b',1,'ttg::base::WorldImplBase::fence()'],['../classttg_1_1_t_t_base.html#ae968de0aa3ff0111f36d62c824fab7aa',1,'ttg::TTBase::fence()'],['../namespacettg.html#a807bf42719a82b1539603d477aa2a3fd',1,'ttg::fence()'],['../classttg_1_1_sink_t_t.html#a2127a653cca43a684abafb0526190aca',1,'ttg::SinkTT::fence()'],['../classttg_1_1_t_t_g.html#a1c2e236e45715dc0522e66199e863740',1,'ttg::TTG::fence()'],['../classttg__madness_1_1_t_t.html#a2a239301de8d7df0fb5272b63bb95b3d',1,'ttg_madness::TT::fence()']]], + ['fence_5fimpl_2257',['fence_impl',['../classttg_1_1base_1_1_world_impl_base.html#a5692ff8d1969076f9e8912e9e249fe83',1,'ttg::base::WorldImplBase::fence_impl()'],['../classttg__madness_1_1_world_impl.html#a7311e902a97cdc602f07fb09a6bcd92f',1,'ttg_madness::WorldImpl::fence_impl()'],['../classttg__parsec_1_1_world_impl.html#a8342e0deb558e48f715a305581447062',1,'ttg_parsec::WorldImpl::fence_impl()']]], + ['final_5fsuspend_2258',['final_suspend',['../structttg_1_1resumable__task__state.html#ab1fc201e774bde0847890103c45a1b97',1,'ttg::resumable_task_state']]], + ['final_5ftask_2259',['final_task',['../classttg_1_1base_1_1_world_impl_base.html#a456a7210813eba7bf12eb0137db18d24',1,'ttg::base::WorldImplBase::final_task()'],['../classttg_1_1base_1_1_world.html#a7b6c87e436deff447df9b2b7d16e5a2f',1,'ttg::base::World::final_task()'],['../classttg__parsec_1_1_world_impl.html#ab43f7e621545f329a56c1477c0f1f68b',1,'ttg_parsec::WorldImpl::final_task()']]], + ['finalize_2260',['finalize',['../namespacettg.html#a9d733ef409cf104084e7d2d12c8a560c',1,'ttg::finalize(const keyT &key, std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#a96780ef3c553a2f45aa7ea881bdb6490',1,'ttg::finalize()'],['../namespacettg.html#ae6ec738ff30ec39d8f47dd4880b7e74b',1,'ttg::finalize(std::size_t i)'],['../namespacettg.html#a6780bc3a981e7bed08c85a48453f9345',1,'ttg::finalize(std::tuple< ttg::Out< out_keysT, out_valuesT >... > &t)'],['../namespacettg.html#ac12ebacc01669eddae361b592e94188e',1,'ttg::finalize(ttg::Out< out_keyT, out_valueT > &t)'],['../namespacettg.html#a5a922c897e6a76956732365b2c6c1f23',1,'ttg::finalize(const keyT &key)'],['../namespacettg.html#a66b539e92577ce84fe029dbf85313483',1,'ttg::finalize(std::size_t i, const keyT &key)'],['../namespacettg.html#ace0e3ddae09ae3e344fabfa49c07cdfb',1,'ttg::finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)'],['../classttg_1_1_out_terminal_base.html#ac6b2278db25fe6303706fc18296aee94',1,'ttg::OutTerminalBase::finalize()'],['../classttg_1_1_out_terminal_base.html#a367175372cb6c6d1f305f12f146f467d',1,'ttg::OutTerminalBase::finalize(const Key &key)'],['../classttg_1_1_in_terminal_base.html#accb89216ff77e9e931608e2468b691cc',1,'ttg::InTerminalBase::finalize()'],['../classttg_1_1_in_terminal_base.html#a0631126a6a3eb341ee7ccd6efe143cda',1,'ttg::InTerminalBase::finalize(const Key &key)']]], + ['finalize_5fargstream_2261',['finalize_argstream',['../classttg__parsec_1_1_t_t.html#aa3522558396daa345965ebd6b3898f88',1,'ttg_parsec::TT::finalize_argstream()'],['../classttg__parsec_1_1_t_t.html#a2262c0c3ecbd9ad636437a1568ea529a',1,'ttg_parsec::TT::finalize_argstream(const Key &key)'],['../classttg__madness_1_1_t_t.html#a9c805d0d8955b57872a5843f2e05bb71',1,'ttg_madness::TT::finalize_argstream()'],['../classttg__madness_1_1_t_t.html#a3d7dfade58eeaabd0e8c47afcac83d06',1,'ttg_madness::TT::finalize_argstream(const Key &key)']]], + ['finalize_5fargstream_5ffrom_5fmsg_2262',['finalize_argstream_from_msg',['../classttg__parsec_1_1_t_t.html#a0ae0b08b4ba21d5e00e689bda48c7cf3',1,'ttg_parsec::TT']]], + ['find_2263',['find',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#ac87bc0853f03ac4724209837a9067ddc',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['find_5fcopy_5fin_5ftask_2264',['find_copy_in_task',['../namespacettg__parsec_1_1detail.html#a00c1cc949951b48c7dc1d8dfe74eff07',1,'ttg_parsec::detail']]], + ['find_5findex_5fof_5fcopy_5fin_5ftask_2265',['find_index_of_copy_in_task',['../namespacettg__parsec_1_1detail.html#a3e16f3209e6f3221be2edfbd18754729',1,'ttg_parsec::detail']]], + ['finish_2266',['finish',['../structttg_1_1event.html#aa76fa87a100d6a3473a0ded959c14056',1,'ttg::event']]], + ['finished_2267',['finished',['../structttg_1_1event.html#a6b4973014bf87af2d7eee7bee05ad349',1,'ttg::event']]], + ['fire_2268',['fire',['../classttg_1_1_edge.html#a9821550df654c4ccff7e32e0aa46082f',1,'ttg::Edge']]], + ['first_2269',['first',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a79eb7bbe7d6d30cf25992bc27ab7e646',1,'TCB_SPAN_NAMESPACE_NAME::span::first(size_type count) const'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a84d52f07d1df5382ad932aaf242f3a43',1,'TCB_SPAN_NAMESPACE_NAME::span::first() const']]], + ['fn_2270',['fn',['../structttg_1_1detail_1_1hash__combine__impl.html#a5bb30d6c7e6726da005e60c70f97b795',1,'ttg::detail::hash_combine_impl']]], + ['force_5fdevice_5fcomm_2271',['force_device_comm',['../namespacettg_1_1detail.html#a8e25ccea71cb35fbaa031e9fcd5d34f8',1,'ttg::detail']]], + ['foreach_5fparsec_5fdata_2272',['foreach_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a7bf2e50a6331c883252cfc38f87ac7c9',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['foreach_5fwrapper_2273',['foreach_wrapper',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3d5c8f89af5e7710d688bbee94f21208',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['front_2274',['front',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a9ae7e805172bcde33a6d11557aa10ac8',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['fuse_2275',['fuse',['../namespacettg.html#a038fc4be656f584165ec14c4f8baf7f9',1,'ttg']]] +]; diff --git a/dox-master/search/functions_7.html b/dox-master/search/functions_7.html new file mode 100644 index 000000000..46b5c0f61 --- /dev/null +++ b/dox-master/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_7.js b/dox-master/search/functions_7.js new file mode 100644 index 000000000..ebc062b05 --- /dev/null +++ b/dox-master/search/functions_7.js @@ -0,0 +1,41 @@ +var searchData= +[ + ['get_2276',['get',['../classttg__madness_1_1_t_t.html#a35601634e19ad7b8c6f4852b543f6617',1,'ttg_madness::TT::get()'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a68c06f1798040809feb6ef90fc110b70',1,'TCB_SPAN_NAMESPACE_NAME::get()'],['../namespacettg_1_1meta.html#affd90f350d054c6a5b4859644d834172',1,'ttg::meta::get()'],['../classttg__madness_1_1_t_t.html#a92241f167b81fe2169c6d844c250a76e',1,'ttg_madness::TT::get()'],['../classttg__parsec_1_1_t_t.html#ab6466aa219f736801afdef024cfc6ecd',1,'ttg_parsec::TT::get(InTuple &&intuple)'],['../classttg__parsec_1_1_t_t.html#ab3566b250a3ca97cc3158a2b0333615c',1,'ttg_parsec::TT::get(InTuple &&intuple)'],['../structttg_1_1meta_1_1typelist.html#ae38a800132e96f3a4ce8d9e570bbe31c',1,'ttg::meta::typelist::get()']]], + ['get_5fclass_5fname_2277',['get_class_name',['../classttg_1_1_t_t_base.html#a7eda400c622206320177ca781efecdfd',1,'ttg::TTBase']]], + ['get_5fconnections_2278',['get_connections',['../classttg_1_1_terminal_base.html#aa19b6ac719eca05c2b9bea906fc2f2ac',1,'ttg::TerminalBase']]], + ['get_5fcopy_2279',['get_copy',['../structttg__parsec_1_1detail_1_1ptr__impl.html#add442904f2072ccd2891ac9966823224',1,'ttg_parsec::detail::ptr_impl::get_copy()'],['../namespacettg__parsec_1_1detail.html#a059e58e6aa35245387c15387411e22c5',1,'ttg_parsec::detail::get_copy(ttg_parsec::Ptr< T > &p)'],['../namespacettg__parsec_1_1detail.html#a35952777c2109c0e48105bc6469d57c1',1,'ttg_parsec::detail::get_copy(ttg_parsec::Ptr< T > &p)']]], + ['get_5fdata_5fdescriptor_2280',['get_data_descriptor',['../namespacettg.html#a65f85fd10d284f4dafa914ea0d97d6bc',1,'ttg']]], + ['get_5fdefault_5fworld_2281',['get_default_world',['../namespacettg.html#ad3d145fdde5e7484530e86075848dcee',1,'ttg']]], + ['get_5fdefer_5fwriter_2282',['get_defer_writer',['../classttg__parsec_1_1_t_t.html#a47deb20513c97687bee226410f25ef06',1,'ttg_parsec::TT::get_defer_writer()'],['../classttg__madness_1_1_t_t.html#ab6c1c898ccc622fb94d2933505970744',1,'ttg_madness::TT::get_defer_writer()']]], + ['get_5fderived_2283',['get_derived',['../structttg__parsec_1_1_t_t_value.html#abbf071ce052d0ff7e631b21ea3cda0e2',1,'ttg_parsec::TTValue::get_derived() const'],['../structttg__parsec_1_1_t_t_value.html#a80db007e765c7a616bac3ad6ed3b3a9a',1,'ttg_parsec::TTValue::get_derived()']]], + ['get_5fdevicemap_2284',['get_devicemap',['../classttg__parsec_1_1_t_t.html#a3bf78dfa73d5b24963cc2585bf42c2fb',1,'ttg_parsec::TT']]], + ['get_5ffrom_5fpull_5fmsg_2285',['get_from_pull_msg',['../classttg__parsec_1_1_t_t.html#a8402a826e876783d32d71b851382a434',1,'ttg_parsec::TT']]], + ['get_5findex_2286',['get_index',['../classttg_1_1_terminal_base.html#a34867960f4cdc4b574b706ba3cda5d01',1,'ttg::TerminalBase']]], + ['get_5finputs_2287',['get_inputs',['../classttg_1_1_t_t_base.html#a0c8af32aea388a9fd750c3ff484048e8',1,'ttg::TTBase']]], + ['get_5finstance_5fid_2288',['get_instance_id',['../classttg_1_1_t_t_base.html#a48f582b0eab8579283383f8d4937db09',1,'ttg::TTBase']]], + ['get_5fkey_5ftype_5fstr_2289',['get_key_type_str',['../classttg_1_1_terminal_base.html#a3180aefbeaf9040a94fb32849fc4c5df',1,'ttg::TerminalBase']]], + ['get_5fkeymap_2290',['get_keymap',['../classttg__parsec_1_1_t_t.html#a11331324223680e375af1c8cf03800a1',1,'ttg_parsec::TT::get_keymap()'],['../classttg__madness_1_1_t_t.html#a7511516e7be569d096e185e73d0c68d4',1,'ttg_madness::TT::get_keymap()']]], + ['get_5fname_2291',['get_name',['../classttg_1_1_t_t_base.html#a9b2aadf2a88531b2859de60d697c70c0',1,'ttg::TTBase::get_name()'],['../classttg_1_1_terminal_base.html#a98e0fb1f400ed77d657998ac371c647b',1,'ttg::TerminalBase::get_name()']]], + ['get_5fnext_5ftask_2292',['get_next_task',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a2d312c9fa335faa821065e7211317076',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['get_5fop_2293',['get_op',['../classttg_1_1_t_t_g.html#ac4eeacb14143de8e7ad1e5d1bdb7e9a8',1,'ttg::TTG']]], + ['get_5fout_5fbase_5fterminal_2294',['get_out_base_terminal',['../namespacettg_1_1detail.html#ab74de3de588f49984ad9db137518478b',1,'ttg::detail']]], + ['get_5fout_5fterminal_2295',['get_out_terminal',['../namespacettg_1_1detail.html#a34fe30520697b631fc025a97b54f88b9',1,'ttg::detail']]], + ['get_5foutput_5fterminals_2296',['get_output_terminals',['../classttg__parsec_1_1_t_t.html#a4d2810424dee8724eb4ee61ffce74c02',1,'ttg_parsec::TT::get_output_terminals()'],['../classttg__madness_1_1_t_t.html#aa2ba9df4e2e659e610ccffd638b4ac9f',1,'ttg_madness::TT::get_output_terminals()']]], + ['get_5foutputs_2297',['get_outputs',['../classttg_1_1_t_t_base.html#a2a0acf4d44d4eede04c7de5ad998131d',1,'ttg::TTBase']]], + ['get_5foutputs_5ftls_5fptr_2298',['get_outputs_tls_ptr',['../classttg_1_1_t_t_base.html#a401d4b8c92ec6eefc3ab56ec9274bf0e',1,'ttg::TTBase']]], + ['get_5fowner_5fdevice_2299',['get_owner_device',['../structttg__parsec_1_1_buffer.html#a6d94b7f71accdae0bfd9c708006d359e',1,'ttg_parsec::Buffer::get_owner_device()'],['../structttg__madness_1_1_buffer.html#a06f56c6e61ff9b5b75b2144797e3ce31',1,'ttg_madness::Buffer::get_owner_device()']]], + ['get_5fparsec_5fdata_2300',['get_parsec_data',['../namespacettg__parsec_1_1detail.html#a869cbeeae27e8c623cff9623bffaba1a',1,'ttg_parsec::detail::get_parsec_data(const ttg_parsec::devicescratch< T > &)'],['../namespacettg__parsec_1_1detail.html#ad37e220fbc05d0a62b08a94964480f0a',1,'ttg_parsec::detail::get_parsec_data(const ttg_parsec::Buffer< T, A > &db)']]], + ['get_5fpredecessors_2301',['get_predecessors',['../classttg_1_1_terminal_base.html#a3122d4c1636fed7bc41724db4ad4995f',1,'ttg::TerminalBase']]], + ['get_5fpriomap_2302',['get_priomap',['../classttg__madness_1_1_t_t.html#adef3c3a55bbe2948b2fc94ecf38ba161',1,'ttg_madness::TT::get_priomap()'],['../classttg__parsec_1_1_t_t.html#a75b72cc12e31642ed1202b74992c63cf',1,'ttg_parsec::TT::get_priomap()']]], + ['get_5fptr_2303',['get_ptr',['../namespacettg.html#a00bd375ae85865cdd863220c267aa028',1,'ttg::get_ptr()'],['../namespacettg__parsec.html#a6b4f435426a465bb5345e28f35a7ecca',1,'ttg_parsec::get_ptr()'],['../namespacettg__madness.html#a4566d643ea9a253a1b601801764d7758',1,'ttg_madness::get_ptr()'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a4d720d1cbbde763d8e6321ab8c03c6ed',1,'ttg_parsec::detail::ttg_data_copy_t::get_ptr()'],['../structttg__parsec_1_1_t_t_value.html#a41aa3a6cb77394e51874c7ac030f62e8',1,'ttg_parsec::TTValue::get_ptr()'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a9c739a7d4814e2317884b47adc472817',1,'ttg_parsec::detail::ttg_data_value_copy_t::get_ptr()']]], + ['get_5freturn_5fobject_2304',['get_return_object',['../structttg_1_1resumable__task__state.html#a1dc2eab857c34038b6f557d20d077be1',1,'ttg::resumable_task_state']]], + ['get_5ftask_5fmempool_2305',['get_task_mempool',['../classttg__parsec_1_1_t_t.html#a2c67391e7c5f2d3de4581ea916697b71',1,'ttg_parsec::TT']]], + ['get_5fterminal_5fdata_2306',['get_terminal_data',['../classttg__madness_1_1_t_t.html#a196ae0356a90eaa09a0f71d98eed24f8',1,'ttg_madness::TT']]], + ['get_5ftt_2307',['get_tt',['../classttg_1_1_terminal_base.html#a0b908c8510a371160f58cd55a2014762',1,'ttg::TerminalBase']]], + ['get_5ftype_2308',['get_type',['../classttg_1_1_terminal_base.html#a57202041203e7ed427c3f2fe28d39e7b',1,'ttg::TerminalBase']]], + ['get_5fvalue_5ftype_5fstr_2309',['get_value_type_str',['../classttg_1_1_terminal_base.html#a0d160f11f6fa10854e0f452fe428f83a',1,'ttg::TerminalBase']]], + ['get_5fworld_2310',['get_world',['../classttg__madness_1_1_t_t.html#adf61cd022f4590982342e9639a73822e',1,'ttg_madness::TT::get_world()'],['../classttg_1_1_sink_t_t.html#ac3e5c68b5dd8fe03b88db6fb60d5ccbe',1,'ttg::SinkTT::get_world()'],['../classttg_1_1_t_t_g.html#a78d7f2f6e4fa3165fcb2deba953014b4',1,'ttg::TTG::get_world()'],['../classttg__parsec_1_1_t_t.html#a8c804fec7e8545ae64e57f6b5c9cea0d',1,'ttg_parsec::TT::get_world()'],['../classttg_1_1_t_t_base.html#a747f6e5665d414223a3f94cb33d6e1af',1,'ttg::TTBase::get_world()']]], + ['git_5fdescription_2311',['git_description',['../namespacettg.html#ab6d0599a74646b059ff4ad20853d8d4b',1,'ttg']]], + ['git_5frevision_2312',['git_revision',['../namespacettg.html#ab983c30de9eb6418cadbd83fe1a2b9dd',1,'ttg']]], + ['got_5fsignal_2313',['got_signal',['../classttg_1_1_debugger.html#a14e7cc5aa0e16747eebf152e8f3abb25',1,'ttg::Debugger']]] +]; diff --git a/dox-master/search/functions_8.html b/dox-master/search/functions_8.html new file mode 100644 index 000000000..31a1d9503 --- /dev/null +++ b/dox-master/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_8.js b/dox-master/search/functions_8.js new file mode 100644 index 000000000..39ee4e8e1 --- /dev/null +++ b/dox-master/search/functions_8.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['handle_2314',['handle',['../classttg_1_1_debugger.html#ad0d04b2f2ce3e296bd25478b0704bb4c',1,'ttg::Debugger::handle()'],['../structttg_1_1resumable__task.html#af61bae2da7896dcbd9cdab44bb012fbb',1,'ttg::resumable_task::handle()']]], + ['handle_5fdefaults_2315',['handle_defaults',['../classttg_1_1_debugger.html#a4498530be3e81d7355ab5e1a3b2d5e74',1,'ttg::Debugger']]], + ['has_5fref_2316',['has_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a59d437f4715fee2c7779ef4fd2c02c53',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['has_5fvalue_2317',['has_value',['../namespacettg.html#a2d53a5b46c18e513736584a8321d45fc',1,'ttg::has_value(std::future< T > const &f)'],['../namespacettg.html#a08fb74d3ad3229d85905d670af0f47e3',1,'ttg::has_value(std::shared_future< T > const &f)']]], + ['hash_2318',['hash',['../structttg_1_1_multi_index.html#a160db1f37d77a97596cfe3347df71d0e',1,'ttg::MultiIndex']]], + ['hash_5fcombine_2319',['hash_combine',['../namespacettg.html#a0e3bc8c46e846392662b4360c63f63bd',1,'ttg']]], + ['hook_2320',['hook',['../namespacettg__parsec_1_1detail.html#a8979ef254b1c19c82d5813c313724723',1,'ttg_parsec::detail']]], + ['hook_5fcuda_2321',['hook_cuda',['../namespacettg__parsec_1_1detail.html#abcd16312cec1a12ed36b188cd6fdc75d',1,'ttg_parsec::detail']]], + ['hook_5fhip_2322',['hook_hip',['../namespacettg__parsec_1_1detail.html#aba4abd779a06416910d4140c2b6b5eb2',1,'ttg_parsec::detail']]], + ['hook_5flevel_5fzero_2323',['hook_level_zero',['../namespacettg__parsec_1_1detail.html#a2da66ae20e7e976744d11f6a9ebe8663',1,'ttg_parsec::detail']]], + ['host_5fptr_2324',['host_ptr',['../structttg__parsec_1_1_buffer.html#aa7e84bbe6b3abfbd5d82f1c2dbce7a00',1,'ttg_parsec::Buffer::host_ptr() const'],['../structttg__parsec_1_1_buffer.html#a9e345448a5f367d8dec939e9125e5640',1,'ttg_parsec::Buffer::host_ptr()'],['../structttg__madness_1_1_buffer.html#a312fdd8d242f18601675100e76181910',1,'ttg_madness::Buffer::host_ptr() const'],['../structttg__madness_1_1_buffer.html#a69e8280f52ab887b6a8fb7982f4c8aa7',1,'ttg_madness::Buffer::host_ptr()']]], + ['ht_5fiter_5fcb_2325',['ht_iter_cb',['../classttg__parsec_1_1_t_t.html#a4abca36c9d77f7d42341305176454d8b',1,'ttg_parsec::TT']]] +]; diff --git a/dox-master/search/functions_9.html b/dox-master/search/functions_9.html new file mode 100644 index 000000000..9a8e4290c --- /dev/null +++ b/dox-master/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_9.js b/dox-master/search/functions_9.js new file mode 100644 index 000000000..98c38fe89 --- /dev/null +++ b/dox-master/search/functions_9.js @@ -0,0 +1,53 @@ +var searchData= +[ + ['iarchive_5fload_5foverride_5foptimized_5fdispatch_2326',['iarchive_load_override_optimized_dispatch',['../namespacettg_1_1detail.html#adacb884462c630cdd18babd4a9b05a62',1,'ttg::detail']]], + ['id_2327',['id',['../classttg_1_1device_1_1_device.html#acf0992ecbfbc2c91de0452122b06fe81',1,'ttg::device::Device']]], + ['impl_2328',['impl',['../classttg_1_1base_1_1_world.html#a0cb2aee443a5fb238b5e4bd86b2f2e59',1,'ttg::base::World::impl()'],['../classttg__madness_1_1_world_impl.html#af08c102d66502056f7558fc74a168c55',1,'ttg_madness::WorldImpl::impl()'],['../classttg_1_1base_1_1_world.html#a8f574277f470ec55495f0e2f621e6505',1,'ttg::base::World::impl()'],['../classttg__madness_1_1_world_impl.html#abef8f99f93ce392d21ec9f95978f94ee',1,'ttg_madness::WorldImpl::impl()']]], + ['in_2329',['In',['../classttg_1_1_in.html#a38d3fc26621fbf1a0d172b9e10060b96',1,'ttg::In']]], + ['in_2330',['in',['../classttg_1_1_sink_t_t.html#a65336cc11c05fb7192a10d0a40d13fa1',1,'ttg::SinkTT::in()'],['../classttg_1_1_t_t_g.html#a0946595e950140f8f99ff77849e80bcf',1,'ttg::TTG::in()'],['../classttg__madness_1_1_t_t.html#a12ad5ee0ecd046bfe5a3329be39e1149',1,'ttg_madness::TT::in()'],['../classttg_1_1_t_t_base.html#a52bb659f83034a88196677270cad18bd',1,'ttg::TTBase::in()'],['../classttg__parsec_1_1_t_t.html#a0d60d2e5aa321a7a843734340602519c',1,'ttg_parsec::TT::in()'],['../classttg_1_1_t_t_base.html#a3e78739836dd1c9ccc3893c64a50f9d7',1,'ttg::TTBase::in()']]], + ['in_5fvisitor_2331',['in_visitor',['../classttg_1_1_traverse.html#a087fe3ef31debe88c9944e6e40eba719',1,'ttg::Traverse']]], + ['inc_5fcurrent_5fversion_2332',['inc_current_version',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a699b712b534cc9a598af7966d6ae1a32',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['increment_5fcreated_2333',['increment_created',['../classttg__parsec_1_1_world_impl.html#a08fd71d65d7505d6df8f3a2af3376906',1,'ttg_parsec::WorldImpl']]], + ['increment_5finflight_5fmsg_2334',['increment_inflight_msg',['../classttg__parsec_1_1_world_impl.html#a3e59b58f4be9ead3aec971b0fc946081',1,'ttg_parsec::WorldImpl']]], + ['increment_5freaders_2335',['increment_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a5ada8367b37c4c0e863c145311364efd',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['infunc_2336',['infunc',['../classttg_1_1detail_1_1_traverse.html#a6aa44d45713f8fecf27bd4c91f1be475',1,'ttg::detail::Traverse::infunc()'],['../classttg_1_1_dot.html#a1f6c1780536faae0306a1317801340b3',1,'ttg::Dot::infunc()']]], + ['init_2337',['init',['../classttg_1_1_debugger.html#ab0b4815698da0db89c33d315392a5c10',1,'ttg::Debugger']]], + ['init_5fstream_5finfo_2338',['init_stream_info',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a754ed8ebc4a0aa6b31e03aa5ae113214',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['init_5fstream_5finfo_5fimpl_2339',['init_stream_info_impl',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a7d2c9ce80d11115e67821e64a738f1c5',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['initial_5fsuspend_2340',['initial_suspend',['../structttg_1_1resumable__task__state.html#ad3141e30d117d9231c178e8d2226bf84',1,'ttg::resumable_task_state']]], + ['initial_5fvalue_2341',['initial_value',['../classttg_1_1detail_1_1_f_n_vhasher.html#abc61a5f236f781259a77755957844d5b',1,'ttg::detail::FNVhasher']]], + ['initialize_2342',['initialize',['../namespacettg.html#a19c06079af2c21be154b525ff21028d1',1,'ttg::initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)'],['../namespacettg.html#a557cbca5e1f34dcc87a43afd0d03c6e4',1,'ttg::initialize(int argc, char **argv, int num_threads, RestOfArgs &&... args)']]], + ['initialize_5ffpe_2343',['initialize_fpe',['../namespacettg.html#aea8f3e1d513bfa7ddfd3bb3a4700428a',1,'ttg']]], + ['initialize_5finstance_2344',['initialize_instance',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a6464e134549f9a04956913215b151e32',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['initialize_5fwatchpoints_2345',['initialize_watchpoints',['../namespacettg__madness.html#a1d0750abcb4d3cb112ff1755f38798f1',1,'ttg_madness']]], + ['initialized_5fmpi_2346',['initialized_mpi',['../namespacettg__parsec_1_1detail.html#a063cd018b82a8ebbe7925321a3253649',1,'ttg_parsec::detail']]], + ['instance_2347',['instance',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#ad24e8fff85afd3e567910a9978c0b0c9',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]], + ['interminalbase_2348',['InTerminalBase',['../classttg_1_1_in_terminal_base.html#a3aa60efefe91dd13410a02589c472651',1,'ttg::InTerminalBase']]], + ['invalid_5ftype_2349',['invalid_type',['../structboost_1_1callable__traits_1_1detail_1_1invalid__type.html#a50384bc09a34f68a6f671e99538aec25',1,'boost::callable_traits::detail::invalid_type']]], + ['invoke_2350',['invoke',['../classttg__madness_1_1_t_t.html#ace7bff77164a2fc8d03361889dd483f5',1,'ttg_madness::TT::invoke()'],['../classttg__madness_1_1_t_t.html#a34db3ece2bbc7434401f420963cafd6b',1,'ttg_madness::TT::invoke() override'],['../classttg__parsec_1_1_t_t.html#a5492a010490444067ce27f387dead4ac',1,'ttg_parsec::TT::invoke(const Key &key, const input_values_tuple_type &args)'],['../classttg__parsec_1_1_t_t.html#a5f7ea989b87631b158bd5ca913b08605',1,'ttg_parsec::TT::invoke(const input_values_tuple_type &args)'],['../classttg__parsec_1_1_t_t.html#a31052326b1849a8bcdea5107375631e8',1,'ttg_parsec::TT::invoke(const Key &key)'],['../classttg__parsec_1_1_t_t.html#ac53c2d3cfd0ba4fc1ad4cbadbf7694c5',1,'ttg_parsec::TT::invoke()'],['../classttg__parsec_1_1_t_t.html#a3f881fe11495a4ba4f87883911372510',1,'ttg_parsec::TT::invoke() override'],['../classttg__parsec_1_1_t_t.html#a130caa6a4a811b76bd1551343b85e6c1',1,'ttg_parsec::TT::invoke(const Key &key, Arg &&arg, Args &&... args)'],['../classttg__madness_1_1_t_t.html#a79f5298371e3f9248f56d283eaf226a0',1,'ttg_madness::TT::invoke(const Key &key)'],['../classttg__madness_1_1_t_t.html#ab1e1bfc65a23e1afea928836894ba9f2',1,'ttg_madness::TT::invoke(const input_values_tuple_type &args)'],['../classttg__madness_1_1_t_t.html#a5b92d64f578a1c6a9f88fd84f138efcb',1,'ttg_madness::TT::invoke(const Key &key, const input_values_tuple_type &args)'],['../classttg_1_1_t_t_base.html#a1c8161302cb6f3f8d7d7f80b00a56e03',1,'ttg::TTBase::invoke()']]], + ['invoke_5fevaluate_2351',['invoke_evaluate',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#aa93f941d685580705196282cef29dc89',1,'ttg_parsec::detail::parsec_ttg_task_t']]], + ['invoke_5fonce_2352',['invoke_once',['../namespacettg.html#a96e44a4e786ccf29fc8c262051cfc2b0',1,'ttg::invoke_once(TT &&tt, Key &&key)'],['../namespacettg.html#a0db3006a84c1ea69ab2401d3ed53df52',1,'ttg::invoke_once(TT &tt)']]], + ['invoke_5fop_2353',['invoke_op',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a2a88ea24c00d58557d8e1a508b1d8502',1,'ttg_parsec::detail::parsec_ttg_task_t::invoke_op()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#aab4b94fc3b649f66bfad4a864685e018',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::invoke_op()']]], + ['invoke_5fpull_5fterminal_2354',['invoke_pull_terminal',['../classttg__madness_1_1_t_t.html#a1f534e3174989c17afb2ae4dee51a330',1,'ttg_madness::TT']]], + ['invoke_5fpull_5fterminals_2355',['invoke_pull_terminals',['../classttg__madness_1_1_t_t.html#acaf2c70b41806368ad1d54e808fb3f07',1,'ttg_madness::TT']]], + ['iovec_2356',['iovec',['../classttg_1_1detail_1_1iovec__ostreambuf.html#af4b5cb64259f49b47c8ce84ceb56ac7f',1,'ttg::detail::iovec_ostreambuf']]], + ['iovec_5fadd_2357',['iovec_add',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a8e326ad2ee8ac367105a262ba3251f6d',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fbegin_2358',['iovec_begin',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ab9db63706ee5e230415f1f2ac35014fb',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fcount_2359',['iovec_count',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a476614ce5647458e2509f04bddcfe935',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fend_2360',['iovec_end',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#afce06923738d01c0ebf06acf1f9509e7',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fistreambuf_2361',['iovec_istreambuf',['../classttg_1_1detail_1_1iovec__istreambuf.html#a610980dfa25f157fea7633c0a304f9ec',1,'ttg::detail::iovec_istreambuf']]], + ['iovec_5freset_2362',['iovec_reset',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ab98dfd24d538ea744e114630df34fe7e',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['iovec_5fspan_2363',['iovec_span',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a305877933099497c66e3fdac3d0b5f39',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['is_5fconnected_2364',['is_connected',['../classttg_1_1_terminal_base.html#a0827d7c76da6af9ddb2bc6bd5653659d',1,'ttg::TerminalBase']]], + ['is_5fdevice_2365',['is_device',['../classttg_1_1device_1_1_device.html#a40e2fd28be27282a6695d102f7c5fc1a',1,'ttg::device::Device']]], + ['is_5fdummy_2366',['is_dummy',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a1e05fb2586593b3368a4476aea8d61b1',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['is_5fexecutable_2367',['is_executable',['../classttg_1_1_t_t_base.html#a8603caf468f80cb578446476a7d25329',1,'ttg::TTBase']]], + ['is_5fhost_2368',['is_host',['../classttg_1_1device_1_1_device.html#a16a73248d5e812cf4df7d55458faafb4',1,'ttg::device::Device']]], + ['is_5finvalid_2369',['is_invalid',['../classttg_1_1device_1_1_device.html#a979477b9cde8927f919c75754d4d8329',1,'ttg::device::Device']]], + ['is_5flazy_5fpull_2370',['is_lazy_pull',['../classttg_1_1_t_t_base.html#adee30b248cb0d4db4213c417451be953',1,'ttg::TTBase']]], + ['is_5fmutable_2371',['is_mutable',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a142b38db9e7b5cfae9edafc049c02cd2',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['is_5fpull_5fedge_2372',['is_pull_edge',['../classttg_1_1_edge.html#ae3c4db8d5f90a570bf403383dfaf823d',1,'ttg::Edge']]], + ['is_5fttg_2373',['is_ttg',['../classttg_1_1_t_t_base.html#aa5e66ccbaacb885f49c041b9d999ef30',1,'ttg::TTBase']]], + ['is_5fvalid_2374',['is_valid',['../structttg__parsec_1_1devicescratch.html#a7872825c276bbddde5f2435a657bdc02',1,'ttg_parsec::devicescratch::is_valid()'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#a1a68f015e736584d8df71e6e58fa07b1',1,'ttg_parsec::detail::ptr_impl::is_valid()'],['../structttg__parsec_1_1_ptr.html#a0a4276873ed7a49f6cc0d6492ea5f720',1,'ttg_parsec::Ptr::is_valid()'],['../structttg__parsec_1_1_buffer.html#a3780a9611c746e0d1ea617720d469ad5',1,'ttg_parsec::Buffer::is_valid()'],['../structttg__madness_1_1_buffer.html#a873ee3d33f1b81dd8ddeec2bd05bf5cf',1,'ttg_madness::Buffer::is_valid()'],['../classttg_1_1base_1_1_world.html#af39ca1832f455a94134515f94aaa8533',1,'ttg::base::World::is_valid()'],['../classttg_1_1base_1_1_world_impl_base.html#ae8af1cf2a5cccc4d5066492a5d041630',1,'ttg::base::WorldImplBase::is_valid()']]], + ['is_5fvalid_5fon_2375',['is_valid_on',['../structttg__madness_1_1_buffer.html#ab856ca462a43f94b61ca8bc4d345383b',1,'ttg_madness::Buffer::is_valid_on()'],['../structttg__parsec_1_1_buffer.html#a57dc7b47c838715a12d2a59fb3d82b76',1,'ttg_parsec::Buffer::is_valid_on()']]] +]; diff --git a/dox-master/search/functions_a.html b/dox-master/search/functions_a.html new file mode 100644 index 000000000..5ecc152ca --- /dev/null +++ b/dox-master/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_a.js b/dox-master/search/functions_a.js new file mode 100644 index 000000000..4199487b2 --- /dev/null +++ b/dox-master/search/functions_a.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['last_2376',['last',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a91d7a05732bf7567f28c0d44fcf90eee',1,'TCB_SPAN_NAMESPACE_NAME::span::last(size_type count) const'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a2a1839f492c2dc7d0ef3489050e61db7',1,'TCB_SPAN_NAMESPACE_NAME::span::last() const']]], + ['launch_5fdebugger_2377',['launch_debugger',['../namespacettg.html#a908edd0939096bd053fcbe6a5fee9609',1,'ttg']]], + ['launch_5fgdb_2378',['launch_gdb',['../namespacettg.html#aed99f96dd2d42761584592b7adcf0908',1,'ttg']]], + ['launch_5flldb_2379',['launch_lldb',['../namespacettg.html#a852bfa03ac9a163a87014e93c59165f0',1,'ttg']]], + ['live_2380',['live',['../classttg_1_1_edge.html#ad67604be2b8bc7195521ec911820f693',1,'ttg::Edge']]], + ['load_2381',['load',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#af00b58eda201fa7ea3db27248643b4a1',1,'ttg::detail::boost_optimized_iarchive::load(T &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aa886b2d5258b272f299cfc84ced6ccdc',1,'ttg::detail::boost_optimized_iarchive::load(bool &t)']]], + ['load_5farray_2382',['load_array',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a55204e920033dad6438770f5ce5a9599',1,'ttg::detail::boost_optimized_iarchive']]], + ['load_5fbinary_2383',['load_binary',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a13b90db78bfb36dfa136a4a1ea98edc5',1,'ttg::detail::boost_optimized_iarchive']]], + ['load_5fobject_2384',['load_object',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a775693201af348b3f84822ce7d13aa05',1,'ttg::detail::boost_optimized_iarchive']]], + ['load_5foverride_2385',['load_override',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aafaf7356518a7e3e5885af89cc58a223',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::class_id_optional_type &)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a8f0baebe5f7bf24f8db8822b291cbf6f',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::class_id_reference_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a03c82b7204bf27dbdc318e388b3f9dff',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::class_id_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a8a84f6d1cdd2a00d199d9dc16b18418d',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::serialization::item_version_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a544bf354417c0cf7401b59b42c7a8b20',1,'ttg::detail::boost_optimized_iarchive::load_override(boost::archive::version_type &t)'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a32d67b987ff7baf28e11348f0ec2928f',1,'ttg::detail::boost_optimized_iarchive::load_override(T &t)']]], + ['log_2386',['log',['../namespacettg.html#aacacfe8bc9582308a405c4370650a9d4',1,'ttg']]] +]; diff --git a/dox-master/search/functions_b.html b/dox-master/search/functions_b.html new file mode 100644 index 000000000..e301fedd7 --- /dev/null +++ b/dox-master/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_b.js b/dox-master/search/functions_b.js new file mode 100644 index 000000000..aa276e46f --- /dev/null +++ b/dox-master/search/functions_b.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['main_2387',['main',['../test_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97',1,'main(int argc, char *argv[]): test.cpp'],['../simple_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): simple.cc'],['../reducing_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): reducing.cc'],['../iterative_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): iterative.cc'],['../distributed_8cc.html#a3c04138a5bfe5d72780bb7e82a18e627',1,'main(int argc, char **argv): distributed.cc']]], + ['make_5fboost_5fbuffer_5fiarchive_2388',['make_boost_buffer_iarchive',['../namespacettg_1_1detail.html#a6157de494b83458bdda6eca5c2628e90',1,'ttg::detail::make_boost_buffer_iarchive(const char(&buf)[N], std::size_t buf_offset=0)'],['../namespacettg_1_1detail.html#aa699a60527ee694e99d01da9b5e7cbd8',1,'ttg::detail::make_boost_buffer_iarchive(const void *const buf, std::size_t size, std::size_t buf_offset=0)']]], + ['make_5fboost_5fbuffer_5foarchive_2389',['make_boost_buffer_oarchive',['../namespacettg_1_1detail.html#aa68b0bedaa47cd0656c449b74f04c40b',1,'ttg::detail::make_boost_buffer_oarchive(char(&buf)[N], std::size_t buf_offset=0)'],['../namespacettg_1_1detail.html#acd72686534948b9ec5296ac2938c918e',1,'ttg::detail::make_boost_buffer_oarchive(void *const buf, std::size_t size, std::size_t buf_offset=0)']]], + ['make_5fexecutable_2390',['make_executable',['../classttg__madness_1_1_t_t.html#ad526d0c41d3361a1b68c7edd60b1b5dc',1,'ttg_madness::TT::make_executable()'],['../classttg_1_1_t_t_base.html#a641cdd1921f091d43a4deff8b8962e63',1,'ttg::TTBase::make_executable()'],['../classttg_1_1_sink_t_t.html#acf631f69a4acd031c51a3471de0c397e',1,'ttg::SinkTT::make_executable()'],['../classttg_1_1_t_t_g.html#acb38b740a0f0e8ee1802c2dc477b0ac2',1,'ttg::TTG::make_executable()'],['../classttg__parsec_1_1_t_t.html#a9114376369d29375135a298996765ab6',1,'ttg_parsec::TT::make_executable()']]], + ['make_5fexecutable_5fhook_2391',['make_executable_hook',['../namespacettg__parsec.html#ab0a8e1ea240f4196cacccdeb8f15681e',1,'ttg_parsec::make_executable_hook()'],['../namespacettg__madness.html#ab080be7b3a7b526b37185e305deac235',1,'ttg_madness::make_executable_hook()']]], + ['make_5fgraph_5fexecutable_2392',['make_graph_executable',['../namespacettg.html#a4a73294df93302d901c4a30219dcd95b',1,'ttg']]], + ['make_5foutput_5fterminal_5fptrs_2393',['make_output_terminal_ptrs',['../class_callable_wrap_t_t_args.html#a3ab5edec09997fb2a05d5a233d3d412b',1,'CallableWrapTTArgs']]], + ['make_5fptr_2394',['make_ptr',['../namespacettg.html#a87391d05d725ff254485b32cd4cce9b1',1,'ttg::make_ptr()'],['../namespacettg__parsec.html#a8ad4f3c371a2fa421e6879bc2368d9e2',1,'ttg_parsec::make_ptr()'],['../namespacettg__madness.html#a0de9867c23e58dc14b3c8803ef6f5766',1,'ttg_madness::make_ptr()']]], + ['make_5fscratch_2395',['make_scratch',['../namespacettg.html#ad2b018e52d9155f87153196dcddb1219',1,'ttg']]], + ['make_5fspan_2396',['make_span',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#ac4774551cd47001061ff02dd59384a89',1,'TCB_SPAN_NAMESPACE_NAME::make_span(const std::array< T, N > &arr) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a9176a22e6ebf1dd1347e67aa80abba4d',1,'TCB_SPAN_NAMESPACE_NAME::make_span(std::array< T, N > &arr) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a0c3dd998d4f66e2084405a285e9532ed',1,'TCB_SPAN_NAMESPACE_NAME::make_span(T(&arr)[N]) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#a5320a4998b7ba712c15f42371577693f',1,'TCB_SPAN_NAMESPACE_NAME::make_span(span< ElementType, Extent > s) noexcept'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#accc708224477a5734a6956729b33fe0f',1,'TCB_SPAN_NAMESPACE_NAME::make_span(Container &cont)'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#afd1eaa78de92663eeed21def5341b326',1,'TCB_SPAN_NAMESPACE_NAME::make_span(const Container &cont)']]], + ['make_5ftraverse_2397',['make_traverse',['../namespacettg.html#ac9c4eec56ea2e0cbc9bf52e1129bfee5',1,'ttg']]], + ['make_5ftt_2398',['make_tt',['../make__tt_8h.html#a85366a0c478cf3d6b3018f1f29576562',1,'make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")): make_tt.h'],['../make__tt_8h.html#a1a4e1393e06272cd844fc4889b110b5a',1,'make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output")): make_tt.h']]], + ['make_5ftt_5ftpl_2399',['make_tt_tpl',['../make__tt_8h.html#a5b5e81502ab33cdc1cd1546b48e6214a',1,'make_tt.h']]], + ['make_5fttg_2400',['make_ttg',['../namespacettg.html#af7f4deb4729fc2f5a5609fc521d5ffb9',1,'ttg']]], + ['make_5fvoid_5ftuple_2401',['make_void_tuple',['../namespacettg_1_1detail.html#ae15a44c421263bbc3ad0347d9dcbc3f3',1,'ttg::detail::make_void_tuple(std::index_sequence< Is... >)'],['../namespacettg_1_1detail.html#ae5c8890dc66f7b1f25df491828bccaf2',1,'ttg::detail::make_void_tuple()']]], + ['mark_5fdevice_5fout_2402',['mark_device_out',['../namespacettg__madness.html#ad455377b4050f710c3dd54197b89111d',1,'ttg_madness::mark_device_out()'],['../namespacettg__parsec_1_1detail.html#a64062122e8cf61337eec8a59373e3fed',1,'ttg_parsec::detail::mark_device_out()'],['../namespacettg__parsec.html#af9c1968d2d71fd832f8f0292aaf58979',1,'ttg_parsec::mark_device_out()']]], + ['mark_5finvalid_2403',['mark_invalid',['../classttg_1_1base_1_1_world_impl_base.html#ad1471b7fb4deb6279b873a58b2d3af5d',1,'ttg::base::WorldImplBase']]], + ['mark_5fmutable_2404',['mark_mutable',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#aa14198fff9f8a5c31ab63fd8a8ff148b',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['memorywatchpoint_5fx86_5f64_2405',['MemoryWatchpoint_x86_64',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#a9f7cde5a39cfc8e1b9c152497a7eb3f6',1,'ttg::detail::MemoryWatchpoint_x86_64']]], + ['mpi_5fsupport_2406',['mpi_support',['../classttg__parsec_1_1_world_impl.html#a75c6c1c980a7e6d3d597ce3510db40a7',1,'ttg_parsec::WorldImpl']]], + ['msg_5fheader_5ft_2407',['msg_header_t',['../structttg__parsec_1_1msg__header__t.html#aea5bd59ece46fdedd7cb9f9bbffa8fd0',1,'ttg_parsec::msg_header_t::msg_header_t(fn_id_t fid, uint32_t tid, uint64_t oid, int32_t pid, int sender, int nk)'],['../structttg__parsec_1_1msg__header__t.html#ad5bb8a2c555b6dcafafdb90e6e2a5045',1,'ttg_parsec::msg_header_t::msg_header_t()=default']]], + ['msg_5ft_2408',['msg_t',['../structttg__parsec_1_1detail_1_1msg__t.html#aad6c391ada82eca95522220105580c7f',1,'ttg_parsec::detail::msg_t::msg_t(uint64_t tt_id, uint32_t taskpool_id, msg_header_t::fn_id_t fn_id, int32_t param_id, int sender, int num_keys=1)'],['../structttg__parsec_1_1detail_1_1msg__t.html#a06e787d175a67c6f8ec2d7377aefd30e',1,'ttg_parsec::detail::msg_t::msg_t()=default']]], + ['multiindex_2409',['MultiIndex',['../structttg_1_1_multi_index.html#a050e62bdcdc66a08e66a21c1c8c923e6',1,'ttg::MultiIndex::MultiIndex(std::size_t hash)'],['../structttg_1_1_multi_index.html#a0954bfac2c54893ecfbfabdb112d2139',1,'ttg::MultiIndex::MultiIndex(Ints... ilist)'],['../structttg_1_1_multi_index.html#a065d25020e5252239efe9b663040a4d5',1,'ttg::MultiIndex::MultiIndex(std::initializer_list< Integer > ilist)'],['../structttg_1_1_multi_index.html#adc1ad27cf30609ff1b1768c1980e5b03',1,'ttg::MultiIndex::MultiIndex()=default']]] +]; diff --git a/dox-master/search/functions_c.html b/dox-master/search/functions_c.html new file mode 100644 index 000000000..c4f326877 --- /dev/null +++ b/dox-master/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_c.js b/dox-master/search/functions_c.js new file mode 100644 index 000000000..0054846a6 --- /dev/null +++ b/dox-master/search/functions_c.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['nodename_2410',['nodename',['../classttg_1_1_dot.html#a2613119aa8fbf04526b29cd7db9e9851',1,'ttg::Dot']]], + ['nsuccessors_2411',['nsuccessors',['../classttg_1_1_out_terminal_base.html#a19283a6990d4c46f7c74fbaab4fddce5',1,'ttg::OutTerminalBase']]], + ['num_5fdev_5fdata_2412',['num_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3ca00f43a4ab6e5e2324e3a47df1e61b',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['num_5fdevices_2413',['num_devices',['../namespacettg_1_1device.html#adf6007d2894bb18b4d05abb9024a49a7',1,'ttg::device::num_devices()'],['../namespacettg__madness.html#a202ee1b58cf23b411b9e30408bc0ff48',1,'ttg_madness::num_devices()'],['../namespacettg__parsec.html#a88e5f318f33a37c97978315136aaef28',1,'ttg_parsec::num_devices()']]], + ['num_5freaders_2414',['num_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ad8e2f90ddb1fe008065e271b5f3f5bbc',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['num_5fref_2415',['num_ref',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a054097c6ebb9a66b4e37b0f16034c7b9',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['num_5fthreads_2416',['num_threads',['../namespacettg_1_1detail.html#ac7958c35eef5d60f2c16fac47d3baf62',1,'ttg::detail']]] +]; diff --git a/dox-master/search/functions_d.html b/dox-master/search/functions_d.html new file mode 100644 index 000000000..7a1ed065d --- /dev/null +++ b/dox-master/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_d.js b/dox-master/search/functions_d.js new file mode 100644 index 000000000..371cb8a9b --- /dev/null +++ b/dox-master/search/functions_d.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['oarchive_5fsave_5foverride_5foptimized_5fdispatch_2417',['oarchive_save_override_optimized_dispatch',['../namespacettg_1_1detail.html#a58373e6561c381646a61fd9a03ff3b2c',1,'ttg::detail']]], + ['op_2418',['op',['../class_callable_wrap_t_t.html#a92820091cd786e63b786b7893a95b14a',1,'CallableWrapTT::op()'],['../classttg_1_1_binary_tree_broadcast.html#acd902ad351fa292af7a47764d77ad686',1,'ttg::BinaryTreeBroadcast::op()'],['../classttg_1_1_binary_tree_reduce.html#a5d9a9e47d4f19992ea1c2861131ba53a',1,'ttg::BinaryTreeReduce::op()'],['../class_callable_wrap_t_t_args.html#a245bc94ad4dbf86e6814f3dd40dceb74',1,'CallableWrapTTArgs::op(output_terminalsT &out)'],['../class_callable_wrap_t_t_args.html#a9fe77e0b1757c76846c5ec16c5c2214a',1,'CallableWrapTTArgs::op(Key &&key, output_terminalsT &out)'],['../class_callable_wrap_t_t_args.html#a7a5ee8dea14b2ae72d7528fdbb593dfd',1,'CallableWrapTTArgs::op(Key &&key, ArgsTuple &&args_tuple, output_terminalsT &out)'],['../class_callable_wrap_t_t_args.html#af819af716551369bc33501aaeb226a82',1,'CallableWrapTTArgs::op(ArgsTuple &&args_tuple, output_terminalsT &out)'],['../class_callable_wrap_t_t.html#aabebb8123753ebe60481e961a2f4e06e',1,'CallableWrapTT::op(ArgsTuple &&args_tuple, output_terminalsT &out)'],['../class_callable_wrap_t_t.html#ae154806668bfe96958111f619f13dc0e',1,'CallableWrapTT::op(Key &&key, output_terminalsT &out)'],['../class_callable_wrap_t_t.html#aaf92f8b365362d984d3970b0aa680a10',1,'CallableWrapTT::op(output_terminalsT &out)']]], + ['op_5fbase_5flazy_5fpull_5faccessor_2419',['op_base_lazy_pull_accessor',['../namespacettg_1_1detail.html#a527a16b6b160369f39c51ad04efe4e03',1,'ttg::detail']]], + ['operator_20bool_2420',['operator bool',['../structttg__madness_1_1_buffer.html#aa69f16f218365ab079b072562e427c31',1,'ttg_madness::Buffer::operator bool()'],['../structttg__parsec_1_1_buffer.html#ac9affc106bb26f35d73c59575b69fb17',1,'ttg_parsec::Buffer::operator bool()']]], + ['operator_20int_2421',['operator int',['../classttg_1_1device_1_1_device.html#a5338c49397786a569fe0324b29f48af4',1,'ttg::device::Device']]], + ['operator_20unsigned_20int_2422',['operator unsigned int',['../structboost_1_1serialization_1_1unsigned__int.html#af89caf40450aef62204c371969842da4',1,'boost::serialization::unsigned_int']]], + ['operator_21_2423',['operator!',['../namespacettg__parsec_1_1detail.html#abc0002074987edf4f673982c52a7dd0e',1,'ttg_parsec::detail']]], + ['operator_21_3d_2424',['operator!=',['../namespacettg.html#afc35f2c6f2f70b5daad7ec9cdbd3dfa6',1,'ttg']]], + ['operator_26_2425',['operator&',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a4f67bc6a79ada27fcf68c29895eda0b2',1,'ttg::detail::boost_optimized_iarchive::operator&()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a274c2471aab7c3b9711cd8e8ba04e347',1,'ttg::detail::boost_optimized_oarchive::operator&()'],['../namespacettg__parsec_1_1detail.html#a345abf8f5ee54728cc15cda79e246822',1,'ttg_parsec::detail::operator&(ttg_parsec_data_flags lhs, ttg_parsec_data_flags rhs)']]], + ['operator_26_3d_2426',['operator&=',['../namespacettg__parsec_1_1detail.html#a8d931ef5aa31cb3111750e63d9520f08',1,'ttg_parsec::detail']]], + ['operator_28_29_2427',['operator()',['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html#aa4b857a88ffda85d5811fc05c611e611',1,'ttg::detail::Traverse::null_visitor::operator()(Visitable *)'],['../structttg_1_1detail_1_1_traverse_1_1null__visitor.html#aaccdb1d25bba1b1bc7a68ecea49dfb27',1,'ttg::detail::Traverse::null_visitor::operator()(const Visitable *)'],['../classttg_1_1_dot.html#ac1e0097a81f6dd46fc9173e1b8a632c8',1,'ttg::Dot::operator()()'],['../structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html#a068a7e79a29992b5e8f632274cf8eaa9',1,'ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >::operator()()'],['../structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html#ab54d852da8d51ea2e357ac86a98bc0d9',1,'ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >::operator()()'],['../structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html#aa1e43714f8c934231d277000e13ed8d7',1,'ttg::overload::hash< void, void >::operator()() const'],['../structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html#a098c128f75e47daea13dfc1d806c57cc',1,'ttg::overload::hash< void, void >::operator()(const ttg::Void &) const'],['../structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html#a83541ed3fcea6ee5650f0f703959a83b',1,'ttg::overload::hash< Void, void >::operator()()'],['../structstd_1_1hash_3_01ttg_1_1_void_01_4.html#afc51c99b185775804d3c078ae8d18df8',1,'std::hash< ttg::Void >::operator()()'],['../classttg_1_1_traverse.html#af8d2c3ab86ea7be0a1c0ae065c89cc6d',1,'ttg::Traverse::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html#aa2607e10bc738e695f7a0d6f6c4738bd',1,'boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html#a6e72714ad3458b2ad0271c4305ece940',1,'boost::callable_traits::detail::callable_dummy::operator()()'],['../structttg_1_1detail_1_1default__priomap__impl.html#aee17b59a47996fff0bc5d54f0e2de583',1,'ttg::detail::default_priomap_impl::operator()() const'],['../structttg_1_1detail_1_1default__priomap__impl.html#a652cfc80e3ba93862c4a6a670524f2df',1,'ttg::detail::default_priomap_impl::operator()(const Key &key) const'],['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a6c977bbf221e92c8a43690b280f3295a',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke.html#a279cea7639238e78cd23ef885039d37b',1,'boost::callable_traits::detail::test_invoke::operator()()'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a0f5ca5870c29073dae15dccb2c89842e',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke.html#a3acc1fdcd80255b3d25a50a542b99967',1,'boost::callable_traits::detail::test_invoke::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html#a9c0a267a75694567b641377ebec94f38',1,'boost::callable_traits::detail::test_invoke< function< F >, true >::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html#a6ade9a24ecebe052ddcbbc0d54a1abdb',1,'boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::operator()()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html#ad4fb3e0ec2b6651ee0fd45d72830d586',1,'boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::operator()(int, U &&u) const -> success< decltype(std::declval< Obj >().*std::declval< Pmd >())>'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html#a30011fae1ddefa0693486c1db69b8f9f',1,'boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::operator()(long,...) const -> substitution_failure'],['../structttg_1_1detail_1_1value__copy__handler.html#a0f0198a1a0819cd66fa5b739d5ea3220',1,'ttg::detail::value_copy_handler::operator()()'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a00ac75bce789ce495ff7493955e55e31',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator()()'],['../structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html#a6b7b44fb67e16dee0deabeca79f96801',1,'ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::operator()()'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a8b7d37fc7ddc0f9446b17bb2ec5033e1',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator()()']]], + ['operator_2a_2428',['operator*',['../structttg__parsec_1_1_ptr.html#a04552125e6e97d76a770ad37ffe719b7',1,'ttg_parsec::Ptr::operator*()'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#afe9784fad849c9c17aa9688987560ea8',1,'ttg_parsec::detail::ttg_data_value_copy_t::operator*()']]], + ['operator_2d_3e_2429',['operator->',['../structttg__parsec_1_1_ptr.html#a67ad5cbc313a4afd40d661ed822f038b',1,'ttg_parsec::Ptr']]], + ['operator_3c_3c_2430',['operator<<',['../namespacettg_1_1iostream.html#afe1f9c87bdf78520b5d1c47c742fa207',1,'ttg::iostream::operator<<()'],['../device_2device_8h.html#af8fc4407321b20a173425ac5afe1a1c7',1,'std::operator<<()'],['../namespacettg.html#aed689fb6f70201ad9d8aba10b4121fd3',1,'ttg::operator<<()'],['../namespacettg_1_1iostream.html#a74cb730aaec9edeebb96553a2ee87361',1,'ttg::iostream::operator<<(std::ostream &s, const std::complex< T > &c)'],['../namespacettg_1_1iostream.html#ac75205669b08794155582b42a46892d9',1,'ttg::iostream::operator<<(std::ostream &s, const std::pair< T, U > &p)'],['../namespacettg_1_1iostream.html#ade4ed621e4c0de971f259e3c05a2ca72',1,'ttg::iostream::operator<<(std::ostream &s, const std::array< T, N > &v)'],['../namespacettg_1_1iostream.html#a20168c2e5bfa796aaf7303a6d2581871',1,'ttg::iostream::operator<<(std::ostream &s, const T(&v)[N])'],['../namespacettg.html#aa3f805068310194a4d757193bba3db66',1,'ttg::operator<<()'],['../distributed_8cc.html#ae4ea1ae898abcb81e64f966e498edd4a',1,'std::operator<<()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#ac7ebc4affa31436b07573852df397ca8',1,'ttg::detail::boost_optimized_oarchive::operator<<()']]], + ['operator_3d_2431',['operator=',['../structttg__parsec_1_1devicescratch.html#aafdf46dee5080f3d27677f5b971a6d31',1,'ttg_parsec::devicescratch::operator=()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a997c3e11e78beccd1e542354c8934026',1,'TCB_SPAN_NAMESPACE_NAME::span::operator=()'],['../structttg_1_1detail_1_1_container_wrapper.html#a75a27dfd7a297c3cb406d423953f4bcc',1,'ttg::detail::ContainerWrapper::operator=()'],['../structttg__parsec_1_1_t_t_value.html#a9db106061fec0c1d405f1c034c5145d5',1,'ttg_parsec::TTValue::operator=(TTValue &&v)'],['../structttg__parsec_1_1_t_t_value.html#ae6d00239cc40158e93200c23ca848138',1,'ttg_parsec::TTValue::operator=(const TTValue &v)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a8650acf7d8eea18d0a4021d061f1a6e8',1,'ttg_parsec::detail::ttg_data_value_copy_t::operator=(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_assignable_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#aba9850e4f4867d03b873f4e274df6e49',1,'ttg_parsec::detail::ttg_data_value_copy_t::operator=(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_assignable_v< value_type >)'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a68e6e72f718377ded5080007fcf81020',1,'ttg_parsec::detail::ttg_data_copy_t::operator=()'],['../classttg_1_1_t_t_base.html#aa3784609e5bb56a980cc2ed3a08d31d8',1,'ttg::TTBase::operator=()'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#aeb7853f1dd6a9f10e17f4c666a2f5ea4',1,'ttg_parsec::detail::ptr_impl::operator=()'],['../structttg__parsec_1_1_ptr.html#a6aabf35b63aa3dacfb16fc7cfc9d2835',1,'ttg_parsec::Ptr::operator=()'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#abb1bdc15933bc2860f3ec28793118ea4',1,'ttg_parsec::detail::ptr_impl::operator=()'],['../structttg__parsec_1_1devicescratch.html#a568fa6e73b3a00a091f1efb6e3da5622',1,'ttg_parsec::devicescratch::operator=()'],['../structttg__parsec_1_1_buffer.html#a7bbd291b0498e034398ae5bafc827ef5',1,'ttg_parsec::Buffer::operator=(const Buffer &db)=delete'],['../structttg__parsec_1_1_buffer.html#ae6853baa45c9ec994c4b82ba5946dcde',1,'ttg_parsec::Buffer::operator=(Buffer &&db)'],['../classttg__madness_1_1_world_impl.html#acece95a50a8c9b606fd66e087167d9d0',1,'ttg_madness::WorldImpl::operator=(WorldImpl &&other)=delete'],['../classttg__madness_1_1_world_impl.html#a1e26005ef16c5862e697ff1917a50a09',1,'ttg_madness::WorldImpl::operator=(const WorldImpl &other)=delete'],['../structttg__madness_1_1_buffer.html#a07e148c9d6ca581a6ca494fe33ec4bdd',1,'ttg_madness::Buffer::operator=(const Buffer &db)=delete'],['../structttg__madness_1_1_buffer.html#a1e421bf20e2f882a8cdfacd48f71d275',1,'ttg_madness::Buffer::operator=(Buffer &&db)'],['../structttg_1_1resumable__task__state.html#ab3fcf05a8537bede9b164e4becefa9ee',1,'ttg::resumable_task_state::operator=(resumable_task_state &&)=delete'],['../structttg_1_1resumable__task__state.html#abdf8016e17043571dd3a7bbc6222064a',1,'ttg::resumable_task_state::operator=(const resumable_task_state &)=delete'],['../classttg_1_1base_1_1_world.html#a48d198cf4df4f73d2b6c4a04713845bf',1,'ttg::base::World::operator=(World &&other)=default'],['../classttg_1_1base_1_1_world.html#afda7a9da6edea8ab699780c3aba835a7',1,'ttg::base::World::operator=(const World &other)=default'],['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ac29f3668a4c482eb52d1a5316f1eb248',1,'ttg_parsec::detail::ttg_data_copy_t::operator=()'],['../structttg__parsec_1_1_ptr.html#ab8defaabce42a8f4319c47393f2fb178',1,'ttg_parsec::Ptr::operator=()'],['../classttg__parsec_1_1_world_impl.html#a2810d6ca131ef60496c0787718f234c6',1,'ttg_parsec::WorldImpl::operator=(const WorldImpl &other)=delete'],['../classttg__parsec_1_1_world_impl.html#afa7c25885416c36d1c0b49bc6321f2e5',1,'ttg_parsec::WorldImpl::operator=(WorldImpl &&other)=delete'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#aed964ca374d309930eff747bd6c7e9b7',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator=(const value_copy_handler &h)=delete'],['../structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html#a7631ab3a23ce1839c80dad670cc0def2',1,'ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator=(value_copy_handler &&h)'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#ad06e831a19d244a212c7b8b6477e07b0',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator=(const ttg_parsec_data_wrapper_t &other)=delete'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a6bee04d50b357903a8262c2d773aed72',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator=(ttg_parsec_data_wrapper_t &&other)']]], + ['operator_3d_3d_2432',['operator==',['../namespacettg.html#a50e85e150d82bafe61a8e25d2757d138',1,'ttg']]], + ['operator_3e_3e_2433',['operator>>',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#ad2a3e35f398bef339cf4247f20a78392',1,'ttg::detail::boost_optimized_iarchive']]], + ['operator_5b_5d_2434',['operator[]',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a9df7935a7948c3e1da8dde3f104ebafe',1,'TCB_SPAN_NAMESPACE_NAME::span::operator[]()'],['../structttg_1_1_multi_index.html#ad9ca854516a2de90d8e56a2263d582db',1,'ttg::MultiIndex::operator[]()']]], + ['operator_7c_2435',['operator|',['../namespacettg__parsec_1_1detail.html#abc212eb4136afd62ecfc869517d2b761',1,'ttg_parsec::detail']]], + ['operator_7c_3d_2436',['operator|=',['../namespacettg__parsec_1_1detail.html#a5a41f5412f34996ed1d2d6146f52284a',1,'ttg_parsec::detail']]], + ['ordinal2index_2437',['ordinal2index',['../namespacettg_1_1meta.html#abf0418c9c42274ed4621c0cd97d60c47',1,'ttg::meta']]], + ['out_2438',['Out',['../classttg_1_1_out.html#ae82fbf474b7e26b9c8f69c6b6d241d82',1,'ttg::Out']]], + ['out_2439',['out',['../classttg_1_1_t_t_base.html#adb047d2ebbd32765b9dc8f8038fa7464',1,'ttg::TTBase::out(size_t i)'],['../classttg_1_1_t_t_base.html#afb9937c5abe025168dfca1d5399c64e8',1,'ttg::TTBase::out()'],['../classttg__madness_1_1_t_t.html#a51d8113198b82f17f2f37fa78b774a15',1,'ttg_madness::TT::out()'],['../classttg__parsec_1_1_t_t.html#ad43642a911bfcbe0150aa3043fd86697',1,'ttg_parsec::TT::out()'],['../classttg_1_1_t_t_g.html#a0a50b4979dceec4064951cc93e634901',1,'ttg::TTG::out()']]], + ['out_5fvisitor_2440',['out_visitor',['../classttg_1_1_traverse.html#a8fba2039dcde3a3a1ce355906fc220af',1,'ttg::Traverse']]], + ['outfunc_2441',['outfunc',['../classttg_1_1_dot.html#a239508aec6927a1815a8b7f8a88e6139',1,'ttg::Dot::outfunc()'],['../classttg_1_1detail_1_1_traverse.html#a9c047df6c224aa7c87d9b72d15efc4c6',1,'ttg::detail::Traverse::outfunc()']]], + ['outputs_5ftls_5fptr_5faccessor_2442',['outputs_tls_ptr_accessor',['../classttg_1_1_t_t_base.html#a8732c0ff38a483f5949fd9aa88b93996',1,'ttg::TTBase']]], + ['outterminalbase_2443',['OutTerminalBase',['../classttg_1_1_out_terminal_base.html#a2688238b38f58c451dde6ebb5520b990',1,'ttg::OutTerminalBase']]], + ['owner_2444',['owner',['../classttg__madness_1_1_t_t.html#a4251d2f5a481454fa199ff75ac2fc7b9',1,'ttg_madness::TT::owner(const Key &key) const'],['../classttg__madness_1_1_t_t.html#a77735f7bc5677f489c91c1bceaf655b4',1,'ttg_madness::TT::owner() const']]], + ['owner_5fdevice_5fptr_2445',['owner_device_ptr',['../structttg__parsec_1_1_buffer.html#ad5e987fb08944e5ef6ac1e60bc2a17a6',1,'ttg_parsec::Buffer::owner_device_ptr()'],['../structttg__madness_1_1_buffer.html#a8a4213586321ed4a09dd061df38073ea',1,'ttg_madness::Buffer::owner_device_ptr()'],['../structttg__madness_1_1_buffer.html#a6776c5af8332cbbaad90171b4f715129',1,'ttg_madness::Buffer::owner_device_ptr() const'],['../structttg__parsec_1_1_buffer.html#a0dd23747ba069de37120efe49995aea0',1,'ttg_parsec::Buffer::owner_device_ptr()']]] +]; diff --git a/dox-master/search/functions_e.html b/dox-master/search/functions_e.html new file mode 100644 index 000000000..22d2a6bf5 --- /dev/null +++ b/dox-master/search/functions_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_e.js b/dox-master/search/functions_e.js new file mode 100644 index 000000000..987e3c9ed --- /dev/null +++ b/dox-master/search/functions_e.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['pack_2446',['pack',['../classttg__parsec_1_1_t_t.html#a04793b6b68d77d4b13e1fccdc5572af2',1,'ttg_parsec::TT']]], + ['pack_5fpayload_2447',['pack_payload',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#aba325a592c8867460f28940c57dc2b34',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::pack_payload()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#ad393c2f0f07becb0097a6ff7ea88dd88',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::pack_payload()']]], + ['parent_5fkey_2448',['parent_key',['../classttg_1_1_binary_spanning_tree.html#a31c570498d5fa0e40944ef57ccfc8ef1',1,'ttg::BinarySpanningTree']]], + ['parsec_5fadd_5ffetch_5fruntime_5ftask_2449',['parsec_add_fetch_runtime_task',['../ttg_2parsec_2ttg_8h.html#a1c710959a10d207205de788ae298f081',1,'ttg.h']]], + ['parsec_5fdata_2450',['parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#ad3c8b86b543f3aa82209af79020d2e1c',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::parsec_data()'],['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a5fbbc7f4e4d4de0ab1e47438dff4f976',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t::parsec_data() const']]], + ['parsec_5fdevice_5fto_5fttg_5fdevice_2451',['parsec_device_to_ttg_device',['../namespacettg__parsec_1_1detail.html#a2209440310cdedf55f4d3846ffdc9a2f',1,'ttg_parsec::detail']]], + ['parsec_5ftaskpool_5ftermination_5fdetected_2452',['parsec_taskpool_termination_detected',['../ttg_2parsec_2ttg_8h.html#a545323e30c662cc79a6781fc00bbaaa6',1,'ttg.h']]], + ['parsec_5fttg_5frma_5ftag_2453',['parsec_ttg_rma_tag',['../classttg__parsec_1_1_world_impl.html#a1a48b204f4c37b552647f195ffd8fbde',1,'ttg_parsec::WorldImpl']]], + ['parsec_5fttg_5ftag_2454',['parsec_ttg_tag',['../classttg__parsec_1_1_world_impl.html#aa444d4b6882eac7542e53560ac2143a2',1,'ttg_parsec::WorldImpl']]], + ['parsec_5fttg_5ftask_5fbase_5ft_2455',['parsec_ttg_task_base_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#aed030a12932a83cbd8380e75eaeab244',1,'ttg_parsec::detail::parsec_ttg_task_base_t::parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a4c4bdaf9dbfd84242d1a947539786097',1,'ttg_parsec::detail::parsec_ttg_task_base_t::parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)']]], + ['parsec_5fttg_5ftask_5ft_2456',['parsec_ttg_task_t',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a89dd19d2c4b7afbfe98a8d5c961d4fdc',1,'ttg_parsec::detail::parsec_ttg_task_t::parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a853337730210dccd59088db746f832dc',1,'ttg_parsec::detail::parsec_ttg_task_t::parsec_ttg_task_t(const key_type &key, parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a0555b703270f0c1a778490a046e92752',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a3502860a4ddf6872c2e190f719665e6f',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)']]], + ['payload_5fsize_2457',['payload_size',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#a704e941f7d12becad7f53362a923f876',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::payload_size()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#ad578b8a4fc4118f8bbed56f9cfa0e087',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::payload_size()']]], + ['persistent_2458',['persistent',['../namespacettg__parsec.html#a7450fc9c257ec02b48bae32a73582584',1,'ttg_parsec']]], + ['pin_2459',['pin',['../structttg__madness_1_1_buffer.html#a9074ae695f68f8ccd9d28194a2727115',1,'ttg_madness::Buffer::pin()'],['../structttg__parsec_1_1_buffer.html#a81d5a3ca306853a1f0db20a2cfb8d05f',1,'ttg_parsec::Buffer::pin()']]], + ['pin_5fon_2460',['pin_on',['../structttg__madness_1_1_buffer.html#ad1d5bbed3ad77ef71788861acb4d311c',1,'ttg_madness::Buffer::pin_on()'],['../structttg__parsec_1_1_buffer.html#ab2aba12447a6ddbbf4a58559ee66d81b',1,'ttg_parsec::Buffer::pin_on()']]], + ['pkey_2461',['pkey',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a04523540e04faaa2b90801e47635e0bf',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::pkey()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#abb07736d132548ee6293dc5deb51258d',1,'ttg_parsec::detail::parsec_ttg_task_t::pkey()']]], + ['post_5fdevice_5fout_2462',['post_device_out',['../namespacettg__parsec.html#ab22c9936889e19bb34845fafcd699c9e',1,'ttg_parsec::post_device_out()'],['../namespacettg__parsec_1_1detail.html#acfab5fde82e7fa34a3d65f33434d25f5',1,'ttg_parsec::detail::post_device_out()'],['../namespacettg__madness.html#aefb743f08ad939f6bc8c8c35b2dab37f',1,'ttg_madness::post_device_out()']]], + ['prefer_5fdevice_2463',['prefer_device',['../structttg__parsec_1_1_buffer.html#a17ee629839b81f7e11adf24164f3116b',1,'ttg_parsec::Buffer']]], + ['prepare_5fsend_2464',['prepare_send',['../classttg_1_1_in.html#a4b2504c174100cbbe19037a9aa4545ee',1,'ttg::In::prepare_send(const rangeT &keylist, Value &&value)'],['../classttg_1_1_in.html#a99f93f38cb84a01ce4fb9d3c2e1255e5',1,'ttg::In::prepare_send(Value &&value)'],['../classttg_1_1_out.html#a28fe7e17c6566c0d05e1da67619358ba',1,'ttg::Out::prepare_send(const rangeT &keylist, const Value &value)'],['../classttg_1_1_out.html#a134aba0ef8bbdc2247e526f67d924dad',1,'ttg::Out::prepare_send(const Value &value)'],['../classttg__parsec_1_1_t_t.html#abff9ecffebd797cef516b03aa34e20b6',1,'ttg_parsec::TT::prepare_send(const Value &value)'],['../classttg__parsec_1_1_t_t.html#a0adf1b4025a43778edf349235715d7cc',1,'ttg_parsec::TT::prepare_send(const ttg::span< const Key > &keylist, const Value &value)']]], + ['print_2465',['print',['../namespacettg.html#aa3510e128b769afb53720d24fa83fb97',1,'ttg::print()'],['../structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html#a842bbdcbc98bbdb5c7f2de0525e708cd',1,'ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >::print()'],['../structttg_1_1detail_1_1printer__helper.html#a18921c2ba224ad730515265569fe654e',1,'ttg::detail::printer_helper::print()']]], + ['print_5ferror_2466',['print_error',['../namespacettg.html#aacafa23974f833f3ac9c42ab4fbd7e68',1,'ttg']]], + ['print_5fhelper_2467',['print_helper',['../namespacettg_1_1detail.html#a0962faf06b5d64cf1a89638be19d0a58',1,'ttg::detail::print_helper(std::ostream &out, const T &t, const Ts &... ts)'],['../namespacettg_1_1detail.html#a3b97a6770819b8b1816c0d281c88cf77',1,'ttg::detail::print_helper(std::ostream &out)']]], + ['print_5fincomplete_5ftasks_2468',['print_incomplete_tasks',['../classttg__parsec_1_1_t_t.html#a157b07d80c68059bab321c3823d2869c',1,'ttg_parsec::TT']]], + ['print_5fmutex_5faccessor_2469',['print_mutex_accessor',['../namespacettg_1_1detail.html#a48cdb4d089881081f13eb32855a71f66',1,'ttg::detail']]], + ['process_5freturn_2470',['process_return',['../class_callable_wrap_t_t_args.html#aedf10ef59239bd3c8682012fb45aab53',1,'CallableWrapTTArgs']]], + ['profile_5foff_2471',['profile_off',['../classttg_1_1base_1_1_world_impl_base.html#a7a0e83a9cd728fd56fb85245493cae39',1,'ttg::base::WorldImplBase::profile_off()'],['../classttg_1_1base_1_1_world.html#a76b803f256dea63be319e554c79df3d8',1,'ttg::base::World::profile_off()'],['../classttg__parsec_1_1_world_impl.html#a4f0f3b552c1a3fc949f715d957129701',1,'ttg_parsec::WorldImpl::profile_off()']]], + ['profile_5fon_2472',['profile_on',['../classttg_1_1base_1_1_world_impl_base.html#a7bb31c85545ee1231cc07fa76283a5d1',1,'ttg::base::WorldImplBase::profile_on()'],['../classttg__parsec_1_1_world_impl.html#ad4f99fc6c215bdaceb6d1c3fbbadfaf2',1,'ttg_parsec::WorldImpl::profile_on()'],['../classttg_1_1base_1_1_world.html#a1172a34d335eb0bf14f358a7c0b6a775',1,'ttg::base::World::profile_on()']]], + ['profiling_2473',['profiling',['../classttg__parsec_1_1_world_impl.html#a7ad2c7cfea43ec89bff0002603160a45',1,'ttg_parsec::WorldImpl::profiling()'],['../classttg_1_1base_1_1_world.html#aad02b3b19f41452e32dc3bc911a2188d',1,'ttg::base::World::profiling()'],['../classttg_1_1base_1_1_world_impl_base.html#a4bf92b1c34c33c97ed52e28ab50f5584',1,'ttg::base::WorldImplBase::profiling()']]], + ['ptr_2474',['Ptr',['../structttg__parsec_1_1_ptr.html#a3b23a0ed87741cf829296384bf5605e8',1,'ttg_parsec::Ptr::Ptr(Ptr &&p)=default'],['../structttg__parsec_1_1_ptr.html#adc52848bcb93e76089ef9ec37344b33c',1,'ttg_parsec::Ptr::Ptr(const Ptr &p)'],['../structttg__parsec_1_1_ptr.html#a28137dd99af961bef821688060be0a15',1,'ttg_parsec::Ptr::Ptr()=default']]], + ['ptr_5fimpl_2475',['ptr_impl',['../structttg__parsec_1_1detail_1_1ptr__impl.html#a3cb9e1ee6ad948296ad10583a11f256b',1,'ttg_parsec::detail::ptr_impl::ptr_impl(ptr_impl &&p)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#a7e7445d185fae740185ae00ec50e1211',1,'ttg_parsec::detail::ptr_impl::ptr_impl(const ptr_impl &p)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#a3d59e4676b69f4e3e5e2136bee544b84',1,'ttg_parsec::detail::ptr_impl::ptr_impl(copy_type *copy)']]] +]; diff --git a/dox-master/search/functions_f.html b/dox-master/search/functions_f.html new file mode 100644 index 000000000..54b7dee08 --- /dev/null +++ b/dox-master/search/functions_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/functions_f.js b/dox-master/search/functions_f.js new file mode 100644 index 000000000..9963f0274 --- /dev/null +++ b/dox-master/search/functions_f.js @@ -0,0 +1,38 @@ +var searchData= +[ + ['rank_2476',['rank',['../classttg_1_1base_1_1_world.html#a7c354d1e43268884cb3b947f44ce0f5e',1,'ttg::base::World::rank()'],['../namespacettg.html#ac0ad1dd3b87329e4acf9774df6dc8473',1,'ttg::rank()'],['../classttg_1_1base_1_1_world_impl_base.html#a950c5b477177504efe894584a00e6056',1,'ttg::base::WorldImplBase::rank()']]], + ['rbegin_2477',['rbegin',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a8006cedeefa1990a48aa7f5be347b917',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['ready_2478',['ready',['../structttg_1_1resumable__task__state.html#aa5af2ccc2791fd9eebb7e62106718613',1,'ttg::resumable_task_state::ready()'],['../group__resumable__task.html#ga211f762392058277a7f13313db2090ab',1,'ttg::resumable_task::ready()']]], + ['reducer_5ftask_5ft_2479',['reducer_task_t',['../structttg__parsec_1_1detail_1_1reducer__task__t.html#a3722937d2eca8884204ec8e41cbe8dff',1,'ttg_parsec::detail::reducer_task_t']]], + ['reference_5ferror_2480',['reference_error',['../structboost_1_1callable__traits_1_1detail_1_1reference__error.html#adad9a090d8c23762c58ba89114661319',1,'boost::callable_traits::detail::reference_error']]], + ['register_5fcallback_2481',['register_callback',['../classttg_1_1base_1_1_world_impl_base.html#ac632952b6643c1cbdde7a5259e873dae',1,'ttg::base::WorldImplBase']]], + ['register_5fdata_5fcopy_2482',['register_data_copy',['../namespacettg__parsec_1_1detail.html#a9c2cec25e19cda9be147f1deb0b32813',1,'ttg_parsec::detail']]], + ['register_5fdevice_5fmemory_2483',['register_device_memory',['../namespacettg__parsec.html#af8d611f46a2ca75cc727e1d84f1f9452',1,'ttg_parsec::register_device_memory()'],['../namespacettg__madness.html#add519a37bb1e28647aad37b57e2bc22d',1,'ttg_madness::register_device_memory()'],['../namespacettg__parsec_1_1detail.html#ab90903b036af1e96ad7028f89907f30a',1,'ttg_parsec::detail::register_device_memory()']]], + ['register_5finput_5fterminals_2484',['register_input_terminals',['../classttg_1_1_t_t_base.html#ad27fa3b380e1ccec338e7ce022a58150',1,'ttg::TTBase']]], + ['register_5fop_2485',['register_op',['../classttg_1_1base_1_1_world_impl_base.html#a6d5f2b8160f47b69a485756cdc3e9ed0',1,'ttg::base::WorldImplBase']]], + ['register_5foutput_5fterminals_2486',['register_output_terminals',['../classttg_1_1_t_t_base.html#afe6845510fba3a5fc90126c9a0257306',1,'ttg::TTBase']]], + ['register_5fptr_2487',['register_ptr',['../classttg_1_1base_1_1_world_impl_base.html#af37c0711c2fd3d3fa4cd6ac01ec56d00',1,'ttg::base::WorldImplBase::register_ptr(const std::shared_ptr< T > &ptr)'],['../classttg_1_1base_1_1_world_impl_base.html#a8827844e807ab00fbb223a6bcfa79cba',1,'ttg::base::WorldImplBase::register_ptr(std::unique_ptr< T > &&ptr)']]], + ['register_5fstatic_5fop_5ffunction_2488',['register_static_op_function',['../classttg__parsec_1_1_t_t.html#aad3506214d071b72b84a4f573a422f91',1,'ttg_parsec::TT']]], + ['register_5fstatus_2489',['register_status',['../classttg_1_1base_1_1_world_impl_base.html#aa4de0e778e33e84398b570320fc18ec1',1,'ttg::base::WorldImplBase']]], + ['register_5fterminal_2490',['register_terminal',['../classttg_1_1_t_t_base.html#a500de0f83bc473aee96f9156eced7842',1,'ttg::TTBase']]], + ['register_5fterminals_2491',['register_terminals',['../classttg_1_1_t_t_base.html#ad3e1b27e96a9a12f75204b2b7fced53c',1,'ttg::TTBase']]], + ['register_5ftt_5fprofiling_2492',['register_tt_profiling',['../classttg__parsec_1_1_world_impl.html#a4b4b51c4039f6049073f993af2346d6c',1,'ttg_parsec::WorldImpl']]], + ['register_5fworld_2493',['register_world',['../namespacettg_1_1detail.html#a99c009274b0a628be74a6d87c9255406',1,'ttg::detail::register_world(ttg::base::WorldImplBase &world)'],['../namespacettg_1_1detail.html#a42830b45dee1b85b51c028cd39bef3ba',1,'ttg::detail::register_world(WorldImplT &world)']]], + ['release_2494',['release',['../classttg_1_1_debugger.html#af18b7e16e97d1ce30cc2aa226a247a1b',1,'ttg::Debugger::release()'],['../classttg__parsec_1_1_t_t.html#a9b8dd2de8d555fbac4b9167534680ed7',1,'ttg_parsec::TT::release()'],['../classttg_1_1_t_t_base.html#aaa5e3e652a4181ae402812c86db2a003',1,'ttg::TTBase::release()']]], + ['release_5fdata_5fcopy_2495',['release_data_copy',['../namespacettg__parsec_1_1detail.html#ae5ff24305f6e31fcfd83447922cdb5d9',1,'ttg_parsec::detail']]], + ['release_5fops_2496',['release_ops',['../classttg_1_1base_1_1_world_impl_base.html#a4cf5efcd1c577c54c6634708a141230b',1,'ttg::base::WorldImplBase']]], + ['release_5ftask_2497',['release_task',['../classttg__parsec_1_1_t_t.html#a99cbcab15f7af1b902da9d8d8a364aa9',1,'ttg_parsec::TT::release_task()'],['../structttg__parsec_1_1detail_1_1reducer__task__t.html#aeae458f02e712a3d51fabdc1bc218f4f',1,'ttg_parsec::detail::reducer_task_t::release_task()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#af9246483d815a6eed3c3f5d108219fe7',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::release_task()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#ad5cb0f91ede170fec5354d78f9b14797',1,'ttg_parsec::detail::parsec_ttg_task_t::release_task()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a004fccc34134e079736f510c618771b3',1,'ttg_parsec::detail::parsec_ttg_task_base_t::release_task()']]], + ['remove_5fdata_5fcopy_2498',['remove_data_copy',['../namespacettg__parsec_1_1detail.html#a8381024dd9b3d2c47224254dcf19c581',1,'ttg_parsec::detail']]], + ['remove_5fdevice_5fdata_2499',['remove_device_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a4c47b34fb972b8e3ae31f7568adb732f',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['remove_5ffrom_5fowner_2500',['remove_from_owner',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a047fc1589ed77409d11c5133c17fc2e1',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['rend_2501',['rend',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#ac7dda7054167814e2b5f8877e805e7b6',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['reset_2502',['reset',['../structttg__madness_1_1_buffer.html#a4f5a8b92e6f5f9f5ebafb626956b8476',1,'ttg_madness::Buffer::reset(std::size_t n)'],['../structttg__madness_1_1_buffer.html#aa7440faaf5d1dd71e046cb59f9766c9f',1,'ttg_madness::Buffer::reset(T *ptr, std::size_t n=1)'],['../structttg__parsec_1_1_buffer.html#aadaad9445e633628314b086ce937bd74',1,'ttg_parsec::Buffer::reset(std::size_t n)'],['../structttg__parsec_1_1_buffer.html#a53652e3c91749e8000f4381b04eeeb3a',1,'ttg_parsec::Buffer::reset(T *ptr, std::size_t n=1)'],['../structttg__parsec_1_1detail_1_1ptr__impl.html#ac3a0cf2f50dc087ae3bd9abab25f2250',1,'ttg_parsec::detail::ptr_impl::reset()'],['../structttg__parsec_1_1_ptr.html#a74bc158b282e380ed91962afe75a7d2f',1,'ttg_parsec::Ptr::reset()'],['../classttg_1_1detail_1_1_traverse.html#a22d05df03933ab48f7fd671213b8b9c1',1,'ttg::detail::Traverse::reset()']]], + ['reset_5fparsec_5fdata_2503',['reset_parsec_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a78b5cae1d1bb607847c95cfe50d4dfe4',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['reset_5freaders_2504',['reset_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3b04f6116bfe07ada540a0e36a516588',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['resumable_5ftask_2505',['resumable_task',['../structttg_1_1resumable__task.html#a701b40392630bb526b9b820d436fe073',1,'ttg::resumable_task']]], + ['resumable_5ftask_5fevents_2506',['resumable_task_events',['../structttg_1_1resumable__task__events.html#a5c06d3d66a6c36b8ac1b904b38815126',1,'ttg::resumable_task_events::resumable_task_events()'],['../group__resumable__task.html#gad2da4e87063e853786de5c879f00f49a',1,'ttg::resumable_task_events()']]], + ['resumable_5ftask_5fstate_2507',['resumable_task_state',['../structttg_1_1resumable__task__state.html#a2435a44fe942f6509d6df2df44017cc9',1,'ttg::resumable_task_state::resumable_task_state(resumable_task_state &&)=delete'],['../structttg_1_1resumable__task__state.html#aa48d5b8e410659042c28ce305a0ffb1a',1,'ttg::resumable_task_state::resumable_task_state(const resumable_task_state &)=delete'],['../structttg_1_1resumable__task__state.html#a657799f82f6f9aa8868ec71749e47188',1,'ttg::resumable_task_state::resumable_task_state() noexcept=default']]], + ['return_5fvoid_2508',['return_void',['../structttg_1_1resumable__task__state.html#a8a92992d8037d8d1a60e77a77cbe9aec',1,'ttg::resumable_task_state']]], + ['rma_5fdelayed_5factivate_2509',['rma_delayed_activate',['../classttg__parsec_1_1detail_1_1rma__delayed__activate.html#aecefc63d0ab2e79c5eca008a55113277',1,'ttg_parsec::detail::rma_delayed_activate']]], + ['root_2510',['root',['../classttg_1_1_binary_spanning_tree.html#a60c79c0dfd1e45ccb6b9395ca2bbb5f6',1,'ttg::BinarySpanningTree']]] +]; diff --git a/dox-master/search/groups_0.html b/dox-master/search/groups_0.html new file mode 100644 index 000000000..c600b4970 --- /dev/null +++ b/dox-master/search/groups_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/groups_0.js b/dox-master/search/groups_0.js new file mode 100644 index 000000000..2b82849e1 --- /dev/null +++ b/dox-master/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resumable_5ftask_20coroutine_3224',['resumable_task coroutine',['../group__resumable__task.html',1,'']]] +]; diff --git a/dox-master/search/mag_sel.svg b/dox-master/search/mag_sel.svg new file mode 100644 index 000000000..03626f64a --- /dev/null +++ b/dox-master/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/dox-master/search/namespaces_0.html b/dox-master/search/namespaces_0.html new file mode 100644 index 000000000..21db2c3a5 --- /dev/null +++ b/dox-master/search/namespaces_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/namespaces_0.js b/dox-master/search/namespaces_0.js new file mode 100644 index 000000000..927dfde37 --- /dev/null +++ b/dox-master/search/namespaces_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['archive_1971',['archive',['../namespaceboost_1_1archive.html',1,'boost']]], + ['boost_1972',['boost',['../namespaceboost.html',1,'']]], + ['callable_5ftraits_1973',['callable_traits',['../namespaceboost_1_1callable__traits.html',1,'boost']]], + ['detail_1974',['detail',['../namespaceboost_1_1callable__traits_1_1detail.html',1,'boost::callable_traits']]], + ['serialization_1975',['serialization',['../namespaceboost_1_1serialization.html',1,'boost']]] +]; diff --git a/dox-master/search/namespaces_1.html b/dox-master/search/namespaces_1.html new file mode 100644 index 000000000..a01efeb1e --- /dev/null +++ b/dox-master/search/namespaces_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/namespaces_1.js b/dox-master/search/namespaces_1.js new file mode 100644 index 000000000..96fc2d183 --- /dev/null +++ b/dox-master/search/namespaces_1.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['base_1976',['base',['../namespacettg_1_1base.html',1,'ttg']]], + ['detail_1977',['detail',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html',1,'TCB_SPAN_NAMESPACE_NAME::detail'],['../namespacettg_1_1detail.html',1,'ttg::detail'],['../namespacettg_1_1device_1_1detail.html',1,'ttg::device::detail'],['../namespacettg_1_1meta_1_1detail.html',1,'ttg::meta::detail'],['../namespacettg__madness_1_1detail.html',1,'ttg_madness::detail'],['../namespacettg__parsec_1_1detail.html',1,'ttg_parsec::detail']]], + ['device_1978',['device',['../namespacettg_1_1device.html',1,'ttg']]], + ['iostream_1979',['iostream',['../namespacettg_1_1iostream.html',1,'ttg']]], + ['meta_1980',['meta',['../namespacettg_1_1meta.html',1,'ttg']]], + ['overload_1981',['overload',['../namespacettg_1_1overload.html',1,'ttg']]], + ['tcb_5fspan_5fnamespace_5fname_1982',['TCB_SPAN_NAMESPACE_NAME',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html',1,'']]], + ['ttg_1983',['ttg',['../namespacettg.html',1,'']]], + ['ttg_5fmadness_1984',['ttg_madness',['../namespacettg__madness.html',1,'']]], + ['ttg_5fparsec_1985',['ttg_parsec',['../namespacettg__parsec.html',1,'']]] +]; diff --git a/dox-master/search/nomatches.html b/dox-master/search/nomatches.html new file mode 100644 index 000000000..2b9360b6b --- /dev/null +++ b/dox-master/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/dox-master/search/pages_0.html b/dox-master/search/pages_0.html new file mode 100644 index 000000000..8517b48f0 --- /dev/null +++ b/dox-master/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/pages_0.js b/dox-master/search/pages_0.js new file mode 100644 index 000000000..741f81009 --- /dev/null +++ b/dox-master/search/pages_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['coding_20standards_3225',['Coding Standards',['../_coding-_standards.html',1,'']]], + ['contributor_20guide_3226',['Contributor Guide',['../contribguide.html',1,'']]] +]; diff --git a/dox-master/search/pages_1.html b/dox-master/search/pages_1.html new file mode 100644 index 000000000..a0fb67963 --- /dev/null +++ b/dox-master/search/pages_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/pages_1.js b/dox-master/search/pages_1.js new file mode 100644 index 000000000..ee7a6b191 --- /dev/null +++ b/dox-master/search/pages_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['developer_20guide_3227',['Developer Guide',['../devguide.html',1,'']]], + ['device_20task_20design_3228',['Device Task Design',['../_design-_device.html',1,'']]], + ['documenting_20ttg_3229',['Documenting TTG',['../_documenting-_t_t_g.html',1,'']]] +]; diff --git a/dox-master/search/pages_2.html b/dox-master/search/pages_2.html new file mode 100644 index 000000000..084edfd03 --- /dev/null +++ b/dox-master/search/pages_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/pages_2.js b/dox-master/search/pages_2.js new file mode 100644 index 000000000..b3a839507 --- /dev/null +++ b/dox-master/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['managing_20continuous_20intergration_20_28ci_29_3230',['Managing Continuous Intergration (CI)',['../_c_i-_administration-_notes.html',1,'']]] +]; diff --git a/dox-master/search/pages_3.html b/dox-master/search/pages_3.html new file mode 100644 index 000000000..c0b45b0fc --- /dev/null +++ b/dox-master/search/pages_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/pages_3.js b/dox-master/search/pages_3.js new file mode 100644 index 000000000..3abd4ba15 --- /dev/null +++ b/dox-master/search/pages_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pull_20terminals_20design_20notes_3231',['Pull Terminals Design Notes',['../_design-_pull.html',1,'']]] +]; diff --git a/dox-master/search/pages_4.html b/dox-master/search/pages_4.html new file mode 100644 index 000000000..0f05c2e73 --- /dev/null +++ b/dox-master/search/pages_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/pages_4.js b/dox-master/search/pages_4.js new file mode 100644 index 000000000..fd80e9685 --- /dev/null +++ b/dox-master/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['recommended_20workflow_20elements_3232',['Recommended Workflow Elements',['../_recommended-_workflow-_elements.html',1,'']]] +]; diff --git a/dox-master/search/pages_5.html b/dox-master/search/pages_5.html new file mode 100644 index 000000000..27e2b6c78 --- /dev/null +++ b/dox-master/search/pages_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/pages_5.js b/dox-master/search/pages_5.js new file mode 100644 index 000000000..9e367226c --- /dev/null +++ b/dox-master/search/pages_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['template_20task_20graph_20user_20guide_3233',['Template Task Graph User Guide',['../userguide.html',1,'']]], + ['ttg_20build_20infrastructure_3234',['TTG Build Infrastructure',['../_t_t_g-_build-_infrastructure.html',1,'']]] +]; diff --git a/dox-master/search/related_0.html b/dox-master/search/related_0.html new file mode 100644 index 000000000..506aaecc0 --- /dev/null +++ b/dox-master/search/related_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_0.js b/dox-master/search/related_0.js new file mode 100644 index 000000000..035f9e240 --- /dev/null +++ b/dox-master/search/related_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['common_5fiarchive_3c_20boost_5foptimized_5fiarchive_20_3e_3143',['common_iarchive< boost_optimized_iarchive >',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#acee45cce02dd5b2e87818929e1adcac8',1,'ttg::detail::boost_optimized_iarchive']]], + ['common_5foarchive_3c_20streamorstreambuf_20_3e_3144',['common_oarchive< StreamOrStreambuf >',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a8512a4b472dae63c618c6fa53c890d6e',1,'ttg::detail::boost_optimized_oarchive']]], + ['save_5faccess_3145',['save_access',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#aaca003bb8a4fc59424e4025130da4edd',1,'ttg::detail::boost_optimized_oarchive::save_access()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aaca003bb8a4fc59424e4025130da4edd',1,'ttg::detail::boost_optimized_iarchive::save_access()']]] +]; diff --git a/dox-master/search/related_1.html b/dox-master/search/related_1.html new file mode 100644 index 000000000..605d4b78f --- /dev/null +++ b/dox-master/search/related_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_1.js b/dox-master/search/related_1.js new file mode 100644 index 000000000..0868f86f8 --- /dev/null +++ b/dox-master/search/related_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['get_5fcopy_3146',['get_copy',['../structttg__parsec_1_1_ptr.html#ae59ef36542ca029151d81b475e303102',1,'ttg_parsec::Ptr']]], + ['get_5fparsec_5fdata_3147',['get_parsec_data',['../structttg__parsec_1_1_buffer.html#aba95d89bcef1705a7147cba25f78562e',1,'ttg_parsec::Buffer::get_parsec_data()'],['../structttg__parsec_1_1devicescratch.html#ad664a59f532be69f663b7800df430062',1,'ttg_parsec::devicescratch::get_parsec_data()']]] +]; diff --git a/dox-master/search/related_2.html b/dox-master/search/related_2.html new file mode 100644 index 000000000..6d6ae3309 --- /dev/null +++ b/dox-master/search/related_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_2.js b/dox-master/search/related_2.js new file mode 100644 index 000000000..0c039d7f8 --- /dev/null +++ b/dox-master/search/related_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['get_5fptr_3148',['get_ptr',['../structttg__parsec_1_1_ptr.html#a3c44d979e62ebbede2149f9cbc344a2b',1,'ttg_parsec::Ptr']]] +]; diff --git a/dox-master/search/related_3.html b/dox-master/search/related_3.html new file mode 100644 index 000000000..e6c5d179b --- /dev/null +++ b/dox-master/search/related_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_3.js b/dox-master/search/related_3.js new file mode 100644 index 000000000..e9fa7992d --- /dev/null +++ b/dox-master/search/related_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['in_3149',['In',['../classttg_1_1_terminal_base.html#ab0d4e2893c2652b04f29ce6365e5d74a',1,'ttg::TerminalBase']]] +]; diff --git a/dox-master/search/related_4.html b/dox-master/search/related_4.html new file mode 100644 index 000000000..ed79c3b25 --- /dev/null +++ b/dox-master/search/related_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_4.js b/dox-master/search/related_4.js new file mode 100644 index 000000000..08f33dade --- /dev/null +++ b/dox-master/search/related_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['make_5fptr_3150',['make_ptr',['../structttg__parsec_1_1_ptr.html#ae110548b7742d949f8a03fa4fb3ccc30',1,'ttg_parsec::Ptr']]], + ['memorywatchpool_3151',['MemoryWatchPool',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64.html#ac8644245ba9a733f2a25a4c2085748b4',1,'ttg::detail::MemoryWatchpoint_x86_64']]] +]; diff --git a/dox-master/search/related_5.html b/dox-master/search/related_5.html new file mode 100644 index 000000000..c48055800 --- /dev/null +++ b/dox-master/search/related_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_5.js b/dox-master/search/related_5.js new file mode 100644 index 000000000..6b5173350 --- /dev/null +++ b/dox-master/search/related_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['operator_21_3d_3152',['operator!=',['../structttg_1_1_multi_index.html#abdeb15fee147c23ce9d311393a6d8972',1,'ttg::MultiIndex']]], + ['operator_3d_3d_3153',['operator==',['../structttg_1_1_multi_index.html#a8c13e6fbb1ad600a3a2082f23850effc',1,'ttg::MultiIndex']]], + ['out_3154',['Out',['../classttg_1_1_terminal_base.html#a5d3082871d22dcf772cde49c6c2ebd1d',1,'ttg::TerminalBase']]] +]; diff --git a/dox-master/search/related_6.html b/dox-master/search/related_6.html new file mode 100644 index 000000000..6e9993770 --- /dev/null +++ b/dox-master/search/related_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_6.js b/dox-master/search/related_6.js new file mode 100644 index 000000000..1517a92b3 --- /dev/null +++ b/dox-master/search/related_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['resumable_5ftask_5fevents_3155',['resumable_task_events',['../structttg_1_1resumable__task__state.html#a1c2c29df70177400e62f1c82de7cb8be',1,'ttg::resumable_task_state']]] +]; diff --git a/dox-master/search/related_7.html b/dox-master/search/related_7.html new file mode 100644 index 000000000..2c1a1beb8 --- /dev/null +++ b/dox-master/search/related_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/related_7.js b/dox-master/search/related_7.js new file mode 100644 index 000000000..575b0310f --- /dev/null +++ b/dox-master/search/related_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ttbase_3156',['TTBase',['../classttg_1_1_terminal_base.html#aa770a1ae1e0135f15ad4bfec8b926f1c',1,'ttg::TerminalBase']]], + ['ttg_3157',['TTG',['../classttg_1_1_t_t_base.html#aea1efe97b0fec6ceb97754ba21a4aae2',1,'ttg::TTBase']]] +]; diff --git a/dox-master/search/search.css b/dox-master/search/search.css new file mode 100644 index 000000000..4d7612ff6 --- /dev/null +++ b/dox-master/search/search.css @@ -0,0 +1,271 @@ +/*---------------- Search Box */ + +#FSearchBox { + float: left; +} + +#MSearchBox { + white-space : nowrap; + position: absolute; + float: none; + display: inline; + margin-top: 8px; + right: 0px; + width: 170px; + z-index: 102; + background-color: white; +} + +#MSearchBox .left +{ + display:block; + position:absolute; + left:10px; + width:20px; + height:19px; + background:url('search_l.png') no-repeat; + background-position:right; +} + +#MSearchSelect { + display:block; + position:absolute; + width:20px; + height:19px; +} + +.left #MSearchSelect { + left:4px; +} + +.right #MSearchSelect { + right:5px; +} + +#MSearchField { + display:block; + position:absolute; + height:19px; + background:url('search_m.png') repeat-x; + border:none; + width:111px; + margin-left:20px; + padding-left:4px; + color: #909090; + outline: none; + font: 9pt Arial, Verdana, sans-serif; +} + +#FSearchBox #MSearchField { + margin-left:15px; +} + +#MSearchBox .right { + display:block; + position:absolute; + right:10px; + top:0px; + width:20px; + height:19px; + background:url('search_r.png') no-repeat; + background-position:left; +} + +#MSearchClose { + display: none; + position: absolute; + top: 4px; + background : none; + border: none; + margin: 0px 4px 0px 0px; + padding: 0px 0px; + outline: none; +} + +.left #MSearchClose { + left: 6px; +} + +.right #MSearchClose { + right: 2px; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 1; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + width: 60ex; + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; +} + +.SRResult { + display: none; +} + +DIV.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/dox-master/search/search.js b/dox-master/search/search.js new file mode 100644 index 000000000..fb226f734 --- /dev/null +++ b/dox-master/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/dox-master/search/search_r.png b/dox-master/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/dox-master/search/searchdata.js b/dox-master/search/searchdata.js new file mode 100644 index 000000000..01351cb2b --- /dev/null +++ b/dox-master/search/searchdata.js @@ -0,0 +1,51 @@ +var indexSectionsWithContent = +{ + 0: "_abcdefghiklmnopqrstuvwx~", + 1: "_abcdefghikmnopqrstuvw", + 2: "bt", + 3: "abcdefhiklmpqrstuvw", + 4: "_abcdefghilmnoprstuvwx~", + 5: "abcdefghiklmnopqrstuvw", + 6: "abcdefghiklmnopqrstuvw", + 7: "bcdefrst", + 8: "acdhiklmnprsw", + 9: "bdgimort", + 10: "bhnst", + 11: "r", + 12: "cdmprt" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "namespaces", + 3: "files", + 4: "functions", + 5: "variables", + 6: "typedefs", + 7: "enums", + 8: "enumvalues", + 9: "related", + 10: "defines", + 11: "groups", + 12: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Namespaces", + 3: "Files", + 4: "Functions", + 5: "Variables", + 6: "Typedefs", + 7: "Enumerations", + 8: "Enumerator", + 9: "Friends", + 10: "Macros", + 11: "Modules", + 12: "Pages" +}; + diff --git a/dox-master/search/typedefs_0.html b/dox-master/search/typedefs_0.html new file mode 100644 index 000000000..a4684c4ad --- /dev/null +++ b/dox-master/search/typedefs_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_0.js b/dox-master/search/typedefs_0.js new file mode 100644 index 000000000..21cca5dc2 --- /dev/null +++ b/dox-master/search/typedefs_0.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['add_5fmember_5fconst_2879',['add_member_const',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#af61d7f649e93e66c6b5e6bc8bc56c426',1,'boost::callable_traits::detail::function< T & >::add_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aee9f73c7bf42c24b9cdaa360108ea827',1,'boost::callable_traits::detail::default_callable_traits::add_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a5892637b3dc2d3535f66d51062a2ec92',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a86dc38bf22b278e0d3ace8889ed77740',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a44c0a44c63f65d875548f4b9c0a93551',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a5807cb6d1d882a2b687c595ed92c5adf',1,'boost::callable_traits::detail::function_object::add_member_const()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a3f99793f7dd8ac95b26ea557c5907cc2',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const()']]], + ['add_5fmember_5fconst_5ft_2880',['add_member_const_t',['../namespaceboost_1_1callable__traits.html#a510d821234accb030b72c6fb41fe397b',1,'boost::callable_traits']]], + ['add_5fmember_5fcv_2881',['add_member_cv',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a55e3bd70fc04e8f742203c23545c3eb8',1,'boost::callable_traits::detail::default_callable_traits::add_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a56a6df56ab93245a76ca0e5c6b2d6a41',1,'boost::callable_traits::detail::function< T & >::add_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a8be25ded7351525408ed8e50f61d306e',1,'boost::callable_traits::detail::function_object::add_member_cv()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a94219666bb46206600ad50dc27f3a368',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a425778f91b97c2d85174e793f4c7358a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#adb027d7f41d3de6921fbecfa675c541a',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a9f5fc103ab168929e16f5d24f4740c9a',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv()']]], + ['add_5fmember_5fcv_5ft_2882',['add_member_cv_t',['../namespaceboost_1_1callable__traits.html#a0eef79a4b912c44edc5259cbcab0c224',1,'boost::callable_traits']]], + ['add_5fmember_5flvalue_5freference_2883',['add_member_lvalue_reference',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ad3747aaea91b228963f4a07179aa2257',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#af2932fff8eff25bed07c20ce0f062afa',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ac4e23444f731e21bc9d4cca507ba3c7b',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ae8db4853809f292c7a1fa6c875378d46',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a1321c982adc97645af0004a429760661',1,'boost::callable_traits::detail::function_object::add_member_lvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ad31080343951e46f21d8c7058b20e15d',1,'boost::callable_traits::detail::function< T & >::add_member_lvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a0bf4ede928ce5a18ea24f4892fa3912c',1,'boost::callable_traits::detail::default_callable_traits::add_member_lvalue_reference()']]], + ['add_5fmember_5flvalue_5freference_5ft_2884',['add_member_lvalue_reference_t',['../namespaceboost_1_1callable__traits.html#a47d6c19c42264f7b845dc10344a3bb5c',1,'boost::callable_traits']]], + ['add_5fmember_5fpointer_2885',['add_member_pointer',['../namespaceboost_1_1callable__traits_1_1detail.html#a82d421acaeffaaa1c19e665ee0bbbb90',1,'boost::callable_traits::detail']]], + ['add_5fmember_5frvalue_5freference_2886',['add_member_rvalue_reference',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#afd60f9f9ea5ab0ecdee2c8955cbcc63b',1,'boost::callable_traits::detail::default_callable_traits::add_member_rvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ae6e8d2c59bcf0d87a555fab2601092a1',1,'boost::callable_traits::detail::function< T & >::add_member_rvalue_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a8d746c9f01232e31b3d5248f2bfc3a83',1,'boost::callable_traits::detail::function_object::add_member_rvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a986bb604f624bfe5b5618c2e850458cc',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a629f608ffa11528a775a00f6c5cb4f19',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#aa503c33ae34c38464f1dcdc9d0daf8a2',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a76ccb6de57e45715b64f5d2bbd79760c',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference()']]], + ['add_5fmember_5frvalue_5freference_5ft_2887',['add_member_rvalue_reference_t',['../namespaceboost_1_1callable__traits.html#ad472511c3c8e9df8b35221d3d76db12e',1,'boost::callable_traits']]], + ['add_5fmember_5fvolatile_2888',['add_member_volatile',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a96024fc6a4029d3c1ba6224a1b2f3fea',1,'boost::callable_traits::detail::function< T & >::add_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#adcfee3f4177fd663b084e3be0a2795fa',1,'boost::callable_traits::detail::default_callable_traits::add_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a124c7d0f9a36091767135ba90798b124',1,'boost::callable_traits::detail::function_object::add_member_volatile()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a508b68c75774316a67764d34b49f11b6',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a94c44f6590e17297993b1efe1950ae5f',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a2b14cb3cb48e9cf408b423023c985b81',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a4f5c101b4873abfa111bbedb97805fd0',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile()']]], + ['add_5fmember_5fvolatile_5ft_2889',['add_member_volatile_t',['../namespaceboost_1_1callable__traits.html#a9478887db0cc8648ed0a62520bef5ca4',1,'boost::callable_traits']]], + ['add_5fnoexcept_2890',['add_noexcept',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a5e1afed9087377e45097e2a87a886967',1,'boost::callable_traits::detail::default_callable_traits::add_noexcept()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a4d940d58e2a2c2e10a6a2b1f523ef440',1,'boost::callable_traits::detail::function_object::add_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a35c990211070fd2f187a88271f968b07',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#acbbab87c8e1ec5daac725cd4977ed83c',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a3e70da8a1085b1abe1ce4436f3d31743',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a81877a00118e6aaa033d8dc10997f004',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a1ce29260cde578799ee5a222ad5187f5',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a7235aca8de95c651857b06e3159fbb8d',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_noexcept()']]], + ['add_5ftransaction_5fsafe_2891',['add_transaction_safe',['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a4f94dcb499cc19ed7071c28b4a7ee330',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#ae9c5a296889f3fa9682e0d18bacbb89f',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3354ac19123de29076842aaf3306c174',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a4c513359f41f7f35a59b9130746f1f3c',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a1f5f7ff90e9dfdb3331cfa35640fed09',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a45f0cd8783a2c5f419cd00e4f6c297f1',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a644f443e2542e916279d204c47a7f26f',1,'boost::callable_traits::detail::function_object::add_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a93ef06ee3d0b4fccdaa5696b3563dbd8',1,'boost::callable_traits::detail::default_callable_traits::add_transaction_safe()']]], + ['add_5fvarargs_2892',['add_varargs',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa9c4d0942c8c1790cca47093a61877ce',1,'boost::callable_traits::detail::default_callable_traits::add_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a74a4809fc0e00cd199fdba310cca2751',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ac2c9ead0863ec2bf92b7a3f7b2a485eb',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a6527aa89d3b11082c9c7a6f0ede284fb',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#ae5c102b46975deb844ae5fa9adb1a29f',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a5ab6ecdcf9c53205ef4a3e96e7b4802a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad47be824570f42b64ad4491e083958b8',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a93e056d3e7fc4f7fbdbae3878deb5341',1,'boost::callable_traits::detail::function_object::add_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a02e801723771ca97582def099fb81b0b',1,'boost::callable_traits::detail::function< T & >::add_varargs()']]], + ['add_5fvarargs_5ft_2893',['add_varargs_t',['../namespaceboost_1_1callable__traits.html#a243c65f9263dd23715bbe69b4d6fb366',1,'boost::callable_traits']]], + ['allocator_5ftraits_2894',['allocator_traits',['../structttg__madness_1_1_buffer.html#adbc3aa77184257d236da7d3bf3a948f8',1,'ttg_madness::Buffer::allocator_traits()'],['../structttg__parsec_1_1_buffer.html#a90c207a227742311c5a57f7d72d83e1c',1,'ttg_parsec::Buffer::allocator_traits()']]], + ['allocator_5ftype_2895',['allocator_type',['../structttg__parsec_1_1_buffer.html#ac78074e7acb06deb18983336685e634a',1,'ttg_parsec::Buffer::allocator_type()'],['../structttg__madness_1_1_buffer.html#ac6157afc94c1721197eebc9a41cfbd08',1,'ttg_madness::Buffer::allocator_type()']]], + ['apply_5fmember_5fpointer_2896',['apply_member_pointer',['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a7dd3722cff2c25c5021839160301cd8f',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#aa908ecd6154470ef5dec500b7dc03242',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#aadec31c9e97b1a6933b1234845a769a8',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a6fa9ed7c27da793435d390dcf4e54845',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a439c23f5b4fd7a248c9c75c707cb8c53',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a56edbd082309ff15aac2032039c47bfb',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a2c59d6bf38c26df176d35721779c39f2',1,'boost::callable_traits::detail::pmd< D T::* >::apply_member_pointer()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#ac79e46fff2b89f39f06dc728df1a90ee',1,'boost::callable_traits::detail::function_object::apply_member_pointer()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a441194656e80691ecaf49cd2ccd958e6',1,'boost::callable_traits::detail::default_callable_traits::apply_member_pointer()']]], + ['apply_5fmember_5fpointer_5ft_2897',['apply_member_pointer_t',['../namespaceboost_1_1callable__traits.html#a099fce5bba16849f1bf6fb2944afc503',1,'boost::callable_traits']]], + ['apply_5freturn_2898',['apply_return',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ac9a43771f599896f7d6b71cbec2d7e72',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a1637fdb4b3cd0a82a35cd7500fd291ec',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a9c6cfa3bb30472aeac39ba29465848cf',1,'boost::callable_traits::detail::default_callable_traits::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a6943567528c3c68bf295605491cf7e3b',1,'boost::callable_traits::detail::function< T & >::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a87fea47d62138feae2ea7c02f55349fc',1,'boost::callable_traits::detail::function_object::apply_return()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#ac54892e9f9f337ce24eb6615090856da',1,'boost::callable_traits::detail::pmd< D T::* >::apply_return()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a8899703851a94816d216135b504b1012',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#afab881fb91abb49142cad61d404ee054',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a1f744ff6bebde2baf0a7ddf8dd6cf2ed',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#ac15efdac2c3c858c0500514d732763d3',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return()']]], + ['apply_5freturn_5ft_2899',['apply_return_t',['../namespaceboost_1_1callable__traits.html#a00dc15b18cd908bb659da05e3f255011',1,'boost::callable_traits']]], + ['arg_5ftypes_2900',['arg_types',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#af93311d1c5c15d08e7f8b62d4d18e634',1,'boost::callable_traits::detail::default_callable_traits::arg_types()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a990e34d335d9a7212d4cc3f5ef70c519',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ae7739d1643c1d5e71e230d8a3dbb8a52',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a070506cba0ace6da4115a36ca24dcaf6',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a4759f808ab350c518b45c0a1b359e923',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a4e79cb5d754b256e28c55ad2bc55fbd6',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#aa62af253fd1f1a1ae328053285417526',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#ab9e320a651b67046150e00ce6709bdba',1,'boost::callable_traits::detail::pmd< D T::* >::arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a1f3b4ff5c8b867af4b7d942c1b99ccb1',1,'boost::callable_traits::detail::function_object::arg_types()']]], + ['args_5ft_2901',['args_t',['../namespaceboost_1_1callable__traits.html#aa21006f2d853460db6c66f1e48e19e43',1,'boost::callable_traits']]], + ['at_2902',['at',['../namespaceboost_1_1callable__traits_1_1detail.html#a21ec1beaf496ed9e2caee0badb19bf7d',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/typedefs_1.html b/dox-master/search/typedefs_1.html new file mode 100644 index 000000000..46cf01e62 --- /dev/null +++ b/dox-master/search/typedefs_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_1.js b/dox-master/search/typedefs_1.js new file mode 100644 index 000000000..6841501d1 --- /dev/null +++ b/dox-master/search/typedefs_1.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['base_2903',['base',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#afa05200138c1aeef5e72cb6e31277648',1,'boost::callable_traits::detail::function< T & >']]], + ['base_5ftype_2904',['base_type',['../structttg_1_1resumable__task.html#ad7844d7e4f11c6cffed6f48f989218b3',1,'ttg::resumable_task::base_type()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#abe8c9361eae4a4ec0783ad548cef13fd',1,'ttg::detail::boost_optimized_oarchive::base_type()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a278ae091297c069f26c2917a4920235e',1,'ttg::detail::boost_optimized_iarchive::base_type()'],['../classttg_1_1_in.html#ac6dbe0e0948196f1482d9f8b674aa110',1,'ttg::In::base_type()']]], + ['baset_2905',['baseT',['../classttg_1_1_binary_tree_broadcast.html#a1c5fd3be73a5c27725e781191f744ed8',1,'ttg::BinaryTreeBroadcast::baseT()'],['../classttg_1_1_binary_tree_reduce.html#aaed10e587897475593547f798d961ae4',1,'ttg::BinaryTreeReduce::baseT()']]], + ['bool_5ftype_2906',['bool_type',['../namespaceboost_1_1callable__traits_1_1detail.html#ac252195c4b31b47988c6f284a8f9c603',1,'boost::callable_traits::detail']]], + ['boost_5fbuffer_5fiarchive_2907',['boost_buffer_iarchive',['../namespacettg_1_1detail.html#aa8fc928a58b618764c9034f5af7fd9f4',1,'ttg::detail']]], + ['boost_5fbuffer_5foarchive_2908',['boost_buffer_oarchive',['../namespacettg_1_1detail.html#a01fe40f58997dde3df7cf6dce72602a3',1,'ttg::detail']]], + ['boost_5fbyte_5fiarchive_2909',['boost_byte_iarchive',['../namespacettg_1_1detail.html#afc5638180f1ff92683a99d94916d55eb',1,'ttg::detail']]], + ['boost_5fbyte_5foarchive_2910',['boost_byte_oarchive',['../namespacettg_1_1detail.html#aac3175d58ac6238adafd458000707294',1,'ttg::detail']]], + ['boost_5fcounting_5foarchive_2911',['boost_counting_oarchive',['../namespacettg_1_1detail.html#a2a4bd7d824c60862350521deb556d53d',1,'ttg::detail']]], + ['boost_5fiovec_5fiarchive_2912',['boost_iovec_iarchive',['../namespacettg_1_1detail.html#acbc13605d5af04dfc675ff36e8e794fc',1,'ttg::detail']]], + ['boost_5fiovec_5foarchive_2913',['boost_iovec_oarchive',['../namespacettg_1_1detail.html#ae3254ae5e52181621a71e2316a2af186',1,'ttg::detail']]], + ['broadcast_5fcallback_5ftype_2914',['broadcast_callback_type',['../classttg_1_1_in.html#ab23cd191614c57a57670188b367d1ed1',1,'ttg::In']]], + ['buffer_2915',['Buffer',['../namespacettg.html#aca5897f2652ac83927eab5b2eda1c3b6',1,'ttg']]], + ['byte_2916',['byte',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#add3514d658e15f203bfef6e0a614115b',1,'TCB_SPAN_NAMESPACE_NAME']]] +]; diff --git a/dox-master/search/typedefs_10.html b/dox-master/search/typedefs_10.html new file mode 100644 index 000000000..cbfb221cf --- /dev/null +++ b/dox-master/search/typedefs_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_10.js b/dox-master/search/typedefs_10.js new file mode 100644 index 000000000..a99e69cd2 --- /dev/null +++ b/dox-master/search/typedefs_10.js @@ -0,0 +1,33 @@ +var searchData= +[ + ['ref_5fof_3020',['ref_of',['../namespaceboost_1_1callable__traits_1_1detail.html#a4830bc75e831dc6c22adc0ba8a6e65c1',1,'boost::callable_traits::detail']]], + ['reference_3021',['reference',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#ae20eed08efab872b4930d635b23cfc5f',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['reference_5ftype_3022',['reference_type',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#a733189db4494352f3bf0beacde4f8495',1,'ttg_parsec::detail::persistent_value_ref']]], + ['release_5ftask_5ffn_3023',['release_task_fn',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a6f89b3b9409beba55ba3ae1a9b121094',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['remove_5fargs_3024',['remove_args',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ab15232c99824afa6147bbd22cbbdc689',1,'boost::callable_traits::detail::function< T & >::remove_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aba9cbc151278aa7547397959eca6419e',1,'boost::callable_traits::detail::default_callable_traits::remove_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a229655e0c303b17222ab73f331eba8b6',1,'boost::callable_traits::detail::function_object::remove_args()']]], + ['remove_5fconst_5fflag_3025',['remove_const_flag',['../namespaceboost_1_1callable__traits_1_1detail.html#a496d5f7429beb89581abcfabec1a2485',1,'boost::callable_traits::detail']]], + ['remove_5fcvr_5ft_3026',['remove_cvr_t',['../namespacettg_1_1meta.html#a8ae5d2c1fa1373a399e7cf1a27dd696f',1,'ttg::meta']]], + ['remove_5fmember_5fconst_3027',['remove_member_const',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a75fa5421eef1756b9ac6275d6fd7a596',1,'boost::callable_traits::detail::function< T & >::remove_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ad96f2a83a495369945def3c0b108268d',1,'boost::callable_traits::detail::default_callable_traits::remove_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#aafc7dc66b4041b4a482b63a7e4aeba3e',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#af053dabf80df3a1d07ae890c8332857a',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#adde8a30479ebeb0b4508fbf12df22845',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad1f2a3f35ba676bf84fd54193b15d1bb',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a0ef90d6cf52844e1a24d5623e1884f55',1,'boost::callable_traits::detail::function_object::remove_member_const()']]], + ['remove_5fmember_5fconst_5ft_3028',['remove_member_const_t',['../namespaceboost_1_1callable__traits.html#a0678a0b17002581632a7ffc55facc7a4',1,'boost::callable_traits']]], + ['remove_5fmember_5fcv_3029',['remove_member_cv',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a2a8dc046e1cd2b8e38fa8d4bb7a172e8',1,'boost::callable_traits::detail::default_callable_traits::remove_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#acc9510e2ad4f29ffd391c40bfaaae062',1,'boost::callable_traits::detail::function< T & >::remove_member_cv()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a9db74e5234ce793477a22b662863a658',1,'boost::callable_traits::detail::function_object::remove_member_cv()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a3dd59cc3d63c18b2e58752c9ce25fea2',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a0241926775b62e2dee9031e122e1588d',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a2d018156e1eb66fde5b4238dc801ac94',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#adce6273e25d46c4eba1b26444bad41f0',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv()']]], + ['remove_5fmember_5fcv_5ft_3030',['remove_member_cv_t',['../namespaceboost_1_1callable__traits.html#a0fb28df325d105d5179e024ce94901e5',1,'boost::callable_traits']]], + ['remove_5fmember_5fpointer_3031',['remove_member_pointer',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a54384b60b37da46a7127fcd1ded701dd',1,'boost::callable_traits::detail::default_callable_traits']]], + ['remove_5fmember_5freference_3032',['remove_member_reference',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a9907a8bfe83f9a66921be983cc6b6247',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#aa51f65f9df036f0bd410688aac9f2c02',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ae5bb7feb47e583ffbbd4b18866b0237b',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#af4afbd41f03d455fb7c9e893804a0f71',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a820899d10d2eb6c7d9a5990bac70115f',1,'boost::callable_traits::detail::function_object::remove_member_reference()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#aeb501e39a154a7b6902cdd8c60aee85c',1,'boost::callable_traits::detail::function< T & >::remove_member_reference()']]], + ['remove_5fmember_5freference_5ft_3033',['remove_member_reference_t',['../namespaceboost_1_1callable__traits.html#aa30ad0dfc36fc68c98032dd958dd8c50',1,'boost::callable_traits']]], + ['remove_5fmember_5fvolatile_3034',['remove_member_volatile',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#aa1ed8f23b8c21cd5a336204cca1ba421',1,'boost::callable_traits::detail::function< T & >::remove_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a2fb3770d07326afcd6619929dacc1880',1,'boost::callable_traits::detail::default_callable_traits::remove_member_volatile()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a10979d7ab9f0662b0af712d5f0481c26',1,'boost::callable_traits::detail::function_object::remove_member_volatile()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad07e9a337071e15c56d9760680ac6655',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a9c7b26d5f3e14f4f11db43304b38b69c',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#aefee0f0ab39c16bae4fa580a8265a3e9',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a8670eb56c77103d524331efe7b97e696',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile()']]], + ['remove_5fmember_5fvolatile_5ft_3035',['remove_member_volatile_t',['../namespaceboost_1_1callable__traits.html#a4f99984effef7c9d8b85a31c936da24d',1,'boost::callable_traits']]], + ['remove_5fnoexcept_3036',['remove_noexcept',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a0f0360db490a81d06404276636fead76',1,'boost::callable_traits::detail::function_object::remove_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#ae31dc9306043283cfb9c7f69d2135fea',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a94ce40fa72b8d7138add42b4a2574e17',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#aa57985d7908f77eb9f078dd7363070c8',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#aa70bf8a8a36d463b33a31e76c5bf138a',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a2278d0a660db701152adb402849db26a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a44ee987ddc70d39abfa6eb7097e9b1ff',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a22d6b360b3cf3c7ede9d0f5198194264',1,'boost::callable_traits::detail::default_callable_traits::remove_noexcept()']]], + ['remove_5fnoexcept_5ft_3037',['remove_noexcept_t',['../namespaceboost_1_1callable__traits.html#aff772390c1cdf350ff5ae3a53f213cff',1,'boost::callable_traits']]], + ['remove_5fpointer_5ft_3038',['remove_pointer_t',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#ac3914c5ccaed380eacbac14729d7b0d0',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['remove_5freference_3039',['remove_reference',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a775ad7c4b9a9e4bcf7bfdc29abbca3bf',1,'boost::callable_traits::detail::default_callable_traits']]], + ['remove_5ftransaction_5fsafe_3040',['remove_transaction_safe',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa00843b0a23cd3f45c73cb38a2811b2f',1,'boost::callable_traits::detail::default_callable_traits::remove_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a40344adb2e26bc6cc291b65c0e3cfa22',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a1bc46e82efbd3cf93da372c77bd5f35a',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a422d6093367512ff9b5125e6c851e2a2',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#abf5d58d3b3be3be78ad6ece0e9567392',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a85ba72bff11c5d007db20b3fb63faba9',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1810ba29d844743fa77c9bdbaa699164',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#afa4708ce287553510864ab7a9853e539',1,'boost::callable_traits::detail::function_object::remove_transaction_safe()']]], + ['remove_5ftransaction_5fsafe_5ft_3041',['remove_transaction_safe_t',['../namespaceboost_1_1callable__traits.html#ae59ebcc4c2d8e0c453643baf810c8d62',1,'boost::callable_traits']]], + ['remove_5fvarargs_3042',['remove_varargs',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#acf9103b5910fad1b8cf08ee8b7154e2a',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a7c9a729e56d73f7c191371c1e155573a',1,'boost::callable_traits::detail::default_callable_traits::remove_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a6f3b474f668863e620665860dd56657a',1,'boost::callable_traits::detail::function< T & >::remove_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a21fc4f8e205ce2bd1adcc1563df37573',1,'boost::callable_traits::detail::function_object::remove_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a81223ff3e707b947edebc9a0cd4dfa89',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3de4fb1df2a368e231b3cb202efded58',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a7626216c23690e724a9c90ec6de7fb09',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a0015b71c4f3d4942af9a27486e25a9ab',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ac23c30306dd842467149c4b72f071b9c',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs()']]], + ['remove_5fvarargs_5ft_3043',['remove_varargs_t',['../namespaceboost_1_1callable__traits.html#a2f15db8b1952bcc4c302886edcdd9c22',1,'boost::callable_traits']]], + ['remove_5fvolatile_5fflag_3044',['remove_volatile_flag',['../namespaceboost_1_1callable__traits_1_1detail.html#adcc68e074d5a33012007a80ca4e3ece0',1,'boost::callable_traits::detail']]], + ['replace_5fargs_3045',['replace_args',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#aedd6404b0a4f9c8873c6f37508cd9283',1,'boost::callable_traits::detail::function_object::replace_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1af34f6df2806866123a7942bc00646a',1,'boost::callable_traits::detail::function< T & >::replace_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aae39f949f83ae2cbffa7d24de1e78481',1,'boost::callable_traits::detail::default_callable_traits::replace_args()']]], + ['result_3046',['result',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#a62054bdb5b8c0ea6608703170278c5c0',1,'boost::callable_traits::detail::is_invocable_r_impl::result()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#a42fa8aa7da99acdf628301698c0a7b0b',1,'boost::callable_traits::detail::is_invocable_impl::result()']]], + ['return_5ftype_3047',['return_type',['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a37f827382efe0f9596d1a9dab1e2d58d',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#aa78339f8fd0679fd202021f4db4d9299',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a5116e8ed582c429b0714637641001a8c',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#ab232aabd9f794840492ffb6bba1ac883',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#aba9f759d790b61c705a230e484994054',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#aa73d501e66d0011b271a16f28ca33671',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a5d327a72bbb91b52ca224c777316b48c',1,'boost::callable_traits::detail::pmd< D T::* >::return_type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aefb99865c2723e25bac30f2ec14cbc84',1,'boost::callable_traits::detail::default_callable_traits::return_type()']]], + ['return_5ftype_5ft_3048',['return_type_t',['../namespaceboost_1_1callable__traits.html#a268167decdb5ef3722fad1ed1c374d4a',1,'boost::callable_traits']]], + ['reverse_5fiterator_3049',['reverse_iterator',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a5130a00ef3e5906087cc2fc2fe8d2734',1,'TCB_SPAN_NAMESPACE_NAME::span']]] +]; diff --git a/dox-master/search/typedefs_11.html b/dox-master/search/typedefs_11.html new file mode 100644 index 000000000..007a6f565 --- /dev/null +++ b/dox-master/search/typedefs_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_11.js b/dox-master/search/typedefs_11.js new file mode 100644 index 000000000..ff451e318 --- /dev/null +++ b/dox-master/search/typedefs_11.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['send_5fcallback_5ftype_3050',['send_callback_type',['../classttg_1_1_in.html#a82dce7a9a73863b6ce012cfc1bb62ec3',1,'ttg::In']]], + ['set_5ffunction_5fqualifiers_3051',['set_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#af0cc12a89c80b776a3577b5c78038386',1,'boost::callable_traits::detail']]], + ['set_5fmember_5ffunction_5fqualifiers_3052',['set_member_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#adf595588ffe7220a87a1bfe648d3e850',1,'boost::callable_traits::detail']]], + ['set_5fqualifiers_3053',['set_qualifiers',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ad987a0d4539b463384da57de623dd68b',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a3a4733aff57d3392676539d3a3ab80ad',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a575ccc55dd1f732f3a89baf3d021b815',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a3f8630ca31fe938820615cd64dbbadd3',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers()']]], + ['set_5fvarargs_5ffunction_5fqualifiers_3054',['set_varargs_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#a2c393b02f3818fa85bf4cab2bc700319',1,'boost::callable_traits::detail']]], + ['set_5fvarargs_5fmember_5ffunction_5fqualifiers_3055',['set_varargs_member_function_qualifiers',['../namespaceboost_1_1callable__traits_1_1detail.html#a894f88a8d042850adfba402e1730859c',1,'boost::callable_traits::detail']]], + ['setsize_5fcallback_5ftype_3056',['setsize_callback_type',['../classttg_1_1_in_terminal_base.html#a83efdcf37551fb69454688a20418e544',1,'ttg::InTerminalBase::setsize_callback_type()'],['../classttg_1_1_in.html#a0e8cd123deeb7d26e6747eb34c2fd855',1,'ttg::In::setsize_callback_type()']]], + ['sfinae_5ftry_3057',['sfinae_try',['../namespaceboost_1_1callable__traits_1_1detail.html#af375cb06d2ed9ac7cb236174eed72f6a',1,'boost::callable_traits::detail']]], + ['shallow_5fdecay_3058',['shallow_decay',['../namespaceboost_1_1callable__traits_1_1detail.html#a6b8b5c8a9ea54f78d39e2094198ab85b',1,'boost::callable_traits::detail']]], + ['size_5ftype_3059',['size_type',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a4868a27d2e98194918ad6dc31c543129',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['static_5fset_5farg_5ffct_5farg_5ft_3060',['static_set_arg_fct_arg_t',['../namespacettg__parsec.html#a1075e0fbf418d1d1f2d081cf969197cf',1,'ttg_parsec']]], + ['static_5fset_5farg_5ffct_5fcall_5ft_3061',['static_set_arg_fct_call_t',['../namespacettg__parsec.html#af29efae902d2ec162d15b946a8b69f07',1,'ttg_parsec']]], + ['static_5fset_5farg_5ffct_5ftype_3062',['static_set_arg_fct_type',['../namespacettg__parsec.html#ab3a42fadc53625d83072fb469f0669f7',1,'ttg_parsec']]], + ['subspan_5freturn_5ft_3063',['subspan_return_t',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a5453b44d03e0d5a845afac8844a26051',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['suspend_5falways_3064',['suspend_always',['../namespacettg.html#a114e1b4adc6d820448a181d716bd2d09',1,'ttg']]], + ['suspend_5fnever_3065',['suspend_never',['../namespacettg.html#a7c52f21c6bca6712b18466e695ce0c3b',1,'ttg']]] +]; diff --git a/dox-master/search/typedefs_12.html b/dox-master/search/typedefs_12.html new file mode 100644 index 000000000..717b8e29a --- /dev/null +++ b/dox-master/search/typedefs_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_12.js b/dox-master/search/typedefs_12.js new file mode 100644 index 000000000..98e6c5a7c --- /dev/null +++ b/dox-master/search/typedefs_12.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['templatetask_3066',['TemplateTask',['../namespacettg__parsec.html#aca935deb06ab0acbe26b71bbd5403db9',1,'ttg_parsec::TemplateTask()'],['../namespacettg__madness.html#a06ada57fe807f14450cbec6cd678e1b6',1,'ttg_madness::TemplateTask()']]], + ['templatetaskbase_3067',['TemplateTaskBase',['../namespacettg.html#a7f224bde1b397dffa290aee99ac1aafb',1,'ttg']]], + ['templatetaskgraph_3068',['TemplateTaskGraph',['../namespacettg.html#acece4ffc004ce01117434b438d5eb2dc',1,'ttg']]], + ['test_3069',['test',['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#a86e1a32482e2f4a570b8405b8a437c76',1,'boost::callable_traits::detail::is_invocable_r_impl::test()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#a2b094b206dabe03948ed14b169f012a5',1,'boost::callable_traits::detail::is_invocable_impl::test()']]], + ['traits_3070',['traits',['../namespaceboost_1_1callable__traits_1_1detail.html#a8fd48269d0f16b39c44a579e362718a1',1,'boost::callable_traits::detail::traits()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a0065365cea9262cd092cd6852543900e',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a0873fcdc413043bfd51c245cdad38fb5',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#abbe4e4e42da47dca8640722ad5983374',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a3113517e4d5c535eecfc27062c3d3abc',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ac2d439c55b7ea915fb1467f740bbdd1d',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1273d420f855d65d064ac3f334ac66b7',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#ae5c099c6041e2680e5df169fe853cef2',1,'boost::callable_traits::detail::pmd< D T::* >::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#a1ce8fd4d7cd2e24053142565527c2a39',1,'boost::callable_traits::detail::is_invocable_r_impl::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#a454b9a9cb0045d446e5f87c23794a3b8',1,'boost::callable_traits::detail::is_invocable_impl::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a28e7f262293463021815f3f3a6ede762',1,'boost::callable_traits::detail::function_object::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a384a6f28d8c1381fc0740d60025b3532',1,'boost::callable_traits::detail::function< T & >::traits()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a247e2fa93d1dce773337ac59ba0b39e4',1,'boost::callable_traits::detail::default_callable_traits::traits()']]], + ['try_5fbut_5ffail_5fif_5finvalid_3071',['try_but_fail_if_invalid',['../namespaceboost_1_1callable__traits_1_1detail.html#a43a2a235393faa4f7646f6939c920ba7',1,'boost::callable_traits::detail']]], + ['ttt_3072',['ttT',['../classttg__parsec_1_1_t_t.html#a5506750c89f5d11176d205159b8e7dd1',1,'ttg_parsec::TT::ttT()'],['../classttg__madness_1_1_t_t.html#adba80859d8b5641e25bea8d7dc0c0ebc',1,'ttg_madness::TT::ttT()']]], + ['ttvalue_3073',['TTValue',['../namespacettg.html#a3c462cef30045d5f18896ea9fe418fa5',1,'ttg']]], + ['tuple_5fconcat_5ft_3074',['tuple_concat_t',['../namespacettg_1_1meta.html#ac259ebad2e9815e6ad0c7ff70f4cc585',1,'ttg::meta']]], + ['type_3075',['type',['../structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html#a333c1209d6c6bc36b3c0f2e9f47d7836',1,'ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > >::type()'],['../structboost_1_1callable__traits_1_1is__invocable.html#a18d140840ff86ef2ced2464b5cb465b0',1,'boost::callable_traits::is_invocable::type()'],['../structttg_1_1detail_1_1input__terminals__tuple.html#ac6cb7a69f1352b2f58db7ba01815ab8a',1,'ttg::detail::input_terminals_tuple::type()'],['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html#aa4ffd03f6ef06111fe38314adb217d27',1,'CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >::type()'],['../struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html#a0a24a472a350f3deb1e28289365471bd',1,'CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >::type()'],['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html#a5689af2d3d7e975b410cc5538ad9c89d',1,'CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >::type()'],['../struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html#af8ac620790b0879fcc00609dfd043c42',1,'CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html#aaf33f13c7c34b304aed15379e45b6c06',1,'boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html#a7cc5281e12870089820b57770baac355',1,'boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html#a0358c94c312f34ac40e62555116fd9ad',1,'boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html#afb77ffdba28d0f917cc2e5466f1f6e74',1,'boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html#a231fa8ecec8c72124fd6c57b11007fbb',1,'boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typenamcb09f71f583ed9400b45e4d1a52d5e8f.html#a8c9e91e95c51c885b55aadfb750d9987',1,'boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html#a07de3df2fb1d20ce5618a62f3281eb2c',1,'boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html#a0424fbdf282810962d44efc71aff6278',1,'boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html#aaa2901e9fb82ff0e63950500f1e7c9d8',1,'boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1is__volatile__member.html#a0c0398300ff70c218a179d27efef9147',1,'boost::callable_traits::is_volatile_member::type()'],['../structboost_1_1callable__traits_1_1is__transaction__safe.html#a924e7ef7978245e20161ab75715fa5ba',1,'boost::callable_traits::is_transaction_safe::type()'],['../structboost_1_1callable__traits_1_1is__rvalue__reference__member.html#af0b394b238ba2e9a1dbc2875ca5e99f0',1,'boost::callable_traits::is_rvalue_reference_member::type()'],['../structboost_1_1callable__traits_1_1is__reference__member.html#aa72992ebbff1e6f1b48e253db449d9ce',1,'boost::callable_traits::is_reference_member::type()'],['../structboost_1_1callable__traits_1_1is__noexcept.html#a9e022ea26028c0e20346afb7b6fdd685',1,'boost::callable_traits::is_noexcept::type()'],['../structboost_1_1callable__traits_1_1is__lvalue__reference__member.html#abababd9cc53c31eeb3440e7120e51a73',1,'boost::callable_traits::is_lvalue_reference_member::type()'],['../structboost_1_1callable__traits_1_1is__invocable__r.html#a3d30c749a235310800b2dc3e654ffc17',1,'boost::callable_traits::is_invocable_r::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html#a61ea9c7cd29c515d546382f61199f35f',1,'boost::callable_traits::detail::is_reference_wrapper_t::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html#af790a231e72af4429c460a08230cfa51',1,'ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>::type()'],['../structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html#a61d832961f498e9f0d9dc638bae5743e',1,'std::tuple_element< I, ttg::meta::typelist< Ts... > >::type()'],['../structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html#a1a7393df93685c1f296c43936e2ed288',1,'ttg::meta::typelist_to_tuple< typelist< T... > >::type()'],['../structttg_1_1meta_1_1type__identity.html#a35a804bf5ce9b989a47e3febf5ea7cf3',1,'ttg::meta::type_identity::type()'],['../classstd_1_1tuple__element_3_01_i_00_01_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span_3_93b789f899ee7baa4f7d754ce2758ef3.html#ad528a0814927fbf53188b8915a8203de',1,'std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >::type()'],['../structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html#ae122639213546867713800b3d4cc70f3',1,'ttg::meta::take_first_n< typelist< Ts... >, N >::type()'],['../structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html#a8b3b1fe76f88d217d2e017b1aaa27159',1,'ttg::meta::take_first_n< std::tuple< Ts... >, N >::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html#a33455324e6a2daf99c4d1a442d59b591',1,'ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html#a5fe11c25dde4a28e6406582d9df8cdb3',1,'ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html#acaee8d4570b1525a7eb3f8e20a2a7d2b',1,'ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>::type()'],['../structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html#a5d8e8bb2e1b28433f2c1bcdf6cce5515',1,'ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html#a08fc2b0f437b94e514c8ca976126abf2',1,'ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html#af2dbe4ffc466cc3f24f4c0f1a9eec704',1,'ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >::type()'],['../structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html#ab5a53343519526233dc6c6bddaf62669',1,'ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >::type()'],['../structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html#aa67aefc5ac6367b569921e7826e2f42d',1,'ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>::type()'],['../structttg_1_1meta_1_1void__to___void_3_01void_01_4.html#aa733c4632539b0587f819793879f0b36',1,'ttg::meta::void_to_Void< void >::type()'],['../structttg_1_1meta_1_1void__to___void.html#a82227aef43276bf19b15b48158fd2c78',1,'ttg::meta::void_to_Void::type()'],['../structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html#a38d25f1aa7142589b27de3175c5892e9',1,'ttg::meta::filtered_tuple< std::tuple< Es... >, Pred >::type()'],['../structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html#ad232319bc662aaf652cb2e4a91d282e6',1,'ttg::meta::detail::keep_or_drop< false >::type()'],['../structttg_1_1meta_1_1detail_1_1keep__or__drop.html#a36887f912193b7645e57df87c03e7427',1,'ttg::meta::detail::keep_or_drop::type()'],['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html#a89b43872f257afebbab47e0bcd26a234',1,'ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >::type()'],['../structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html#a62c3772b4afbb8620da69a38e075c43a',1,'ttg::meta::tuple_concat< std::tuple< Ts... > >::type()'],['../structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html#a7c361466ddae0c851111008bef855a79',1,'ttg::meta::nonref_tuple< std::tuple< Ts... > >::type()'],['../structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html#abce4eb71a0d69a3da2d432069845f882',1,'ttg::meta::candidate_argument_bindings< const void, void >::type()'],['../structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html#a1adc19990f6bb1931d7c20f12f7d72a8',1,'ttg::meta::candidate_argument_bindings< void, void >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html#a357b13b76ccaa132dec442aa4b4d3a13',1,'boost::callable_traits::detail::apply_return_helper::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html#aa865c0f5ad4c2b7b014e1c6f26c64ca2',1,'boost::callable_traits::detail::is_invocable_r_impl::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html#a975bd1d7d4c46a6dd585ebeed8dd36c7',1,'boost::callable_traits::detail::is_invocable_impl< void, Args... >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html#ae6075d2a9f19887777b1c34163395eaf',1,'boost::callable_traits::detail::is_invocable_impl::type()'],['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html#a5502aef3fa896118f2302f15c5c9cef5',1,'boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html#a3661213dabafb2a4c8dbeef85c058d2f',1,'boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1generalize__t.html#a0a86cb418b0022d39c29abed5426e45e',1,'boost::callable_traits::detail::generalize_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#af299b92fc0e35091ab9571a0b216f12f',1,'boost::callable_traits::detail::function_object::type()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#af31f3335c2577952629dd3fdbefe5dfe',1,'boost::callable_traits::detail::function< T & >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a5f42c782ad205eea1abf6c57a319276c',1,'boost::callable_traits::detail::default_callable_traits::type()'],['../structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html#a040ccadf87cdde4a9aac5a4cc19d9b36',1,'boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html#ab6a0e2d867d7efb5646d7d470c54a57f',1,'boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html#a7b3de24a3b65094fd6a2af21fa54729e',1,'boost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html#a91c06f9afe1a0ec8c3cf62e0d0549b13',1,'boost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R >::type()'],['../structboost_1_1callable__traits_1_1has__varargs.html#a7d191145daba1f54c988eaee67c588f8',1,'boost::callable_traits::has_varargs::type()'],['../structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html#ace97b78962992a164739487457f17181',1,'boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html#a43aee39976e08eba5f0fd25a0a2ca223',1,'boost::callable_traits::detail::make_member_pointer< T, C, false >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html#ac79b7b3524c1aa5541bab0e83837c125',1,'boost::callable_traits::detail::make_member_pointer< void, C, true >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html#a11fc83cf5b254cce6f7f522144dbbee1',1,'boost::callable_traits::detail::make_member_pointer< T, C, true >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isebb1b3f4b3764f1094c0ca20cf2ce92f.html#a48a51c84f5944e429397b3ae3efbc016',1,'boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html#a87cfd4856c889e4404622aa4dee27dbf',1,'boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html#a20ba9f2b148da20d23b14c72c7cd756d',1,'boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html#a71d8c325d99d9cce2c09a03c662fc5b5',1,'boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html#a490c6354743820f391209d7f3d4eba8c',1,'boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html#af4c1a566e83757cecdeedec6f01ac1c9',1,'boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >::type()'],['../structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html#a84ce0679927744271af164e60475638b',1,'ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >::type()'],['../structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html#a5b858a057236cfb905816540fe981f34',1,'ttg::edges_to_output_terminals< std::tuple< edgesT... > >::type()'],['../structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html#a665cf7d9a14c935fd7ee840fef40bfeb',1,'ttg::terminals_to_edges< std::tuple< termsT... > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#aa709f8bbad85f642309a3e52fff5713f',1,'boost::callable_traits::detail::pmd< D T::* >::type()'],['../structboost_1_1callable__traits_1_1is__const__member.html#a5f335cb075653f0966fb306561cf993e',1,'boost::callable_traits::is_const_member::type()'],['../structboost_1_1callable__traits_1_1has__member__qualifiers.html#ae1ec614cf11551e628c117a9578a5d4c',1,'boost::callable_traits::has_member_qualifiers::type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html#acd89d6338b13b19a21515fc61f82585e',1,'boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html#a7ea88b69ddcab4973b6ebc57b3ea0921',1,'boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html#a995ebd708a46ce3bff5408455358571a',1,'boost::callable_traits::detail::unwrap_reference_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html#a13877dc1d954d61ceab4cc8d1b2aa6bb',1,'boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html#a1f15ac61b33ce0fe7ed0538129ad87a8',1,'boost::callable_traits::detail::force_sfinae::type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a84ce2ec5ba08001fee20eeb30ca2826f',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html#a5d0141e0899d5d56c1b12eb17f6534c7',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html#a3610b3ab772dbbb95bf31ab0baa5f363',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html#ad39664cc8346ad87b1de5d3ad92b471e',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html#a6f159c64fa2a4b998687ae9d64a4c414',1,'set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a0b511149bfbaf86b41c96a4378861486',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html#a133deffb63151f9fd61aedbb208ebef6',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html#a2bde628c2fd4fc60213202bbeffb83a1',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html#a51ff154d20922d01d2a3f9a41bb95e8c',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html#a058126c2ef1c8855b8b6636bc4034151',1,'set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a6142bd140cb79b7f0462ca99fba92934',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#adfb9d7f0f9290f59089f75d6c9bcc90a',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#aedeb7fe5b1341236705e3efbf77b2738',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ae57060b737e22530f0fea22b83a578fd',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type()'],['../structboost_1_1callable__traits_1_1detail_1_1fail.html#a1c260c8ad5ef41ce2e3c516abf8c54a8',1,'boost::callable_traits::detail::fail::type()'],['../structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html#accb3fa64349ac9f1eb834d6ba467ece2',1,'boost::callable_traits::detail::success::_::type()'],['../structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html#a179fb41bb31ada5a5ff6761123dbfcbd',1,'boost::callable_traits::detail::set_varargs_function_qualifiers_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html#ad76f73f1673498341581d3e375d94dad',1,'boost::callable_traits::detail::set_function_qualifiers_t::type()'],['../structboost_1_1callable__traits_1_1detail_1_1index__sequence.html#a279f3dae28f296fb8ba4e9171dfb8a64',1,'boost::callable_traits::detail::index_sequence::type()'],['../structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html#a53710fd282bd8155edd47b4d1966b2b8',1,'boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... >::type()']]], + ['typelist_3076',['typelist',['../namespacettg.html#a554f7017735b6f0fe5464f840bfa6a27',1,'ttg']]], + ['typelist_5fto_5ftuple_5ft_3077',['typelist_to_tuple_t',['../namespacettg_1_1meta.html#aed64ce194dc02ec4206991bd96ee7b6b',1,'ttg::meta']]] +]; diff --git a/dox-master/search/typedefs_13.html b/dox-master/search/typedefs_13.html new file mode 100644 index 000000000..1dda4adb1 --- /dev/null +++ b/dox-master/search/typedefs_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_13.js b/dox-master/search/typedefs_13.js new file mode 100644 index 000000000..cd4ec6bf1 --- /dev/null +++ b/dox-master/search/typedefs_13.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['uncvref_5ft_3078',['uncvref_t',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#a2ab5e5037d16dad0437e1192684bda59',1,'TCB_SPAN_NAMESPACE_NAME::detail']]], + ['unwrap_5freference_3079',['unwrap_reference',['../namespaceboost_1_1callable__traits_1_1detail.html#ae5f0e612ef80abfddfd49f0150501b49',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/typedefs_14.html b/dox-master/search/typedefs_14.html new file mode 100644 index 000000000..78a8691d3 --- /dev/null +++ b/dox-master/search/typedefs_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_14.js b/dox-master/search/typedefs_14.js new file mode 100644 index 000000000..49fa4acc4 --- /dev/null +++ b/dox-master/search/typedefs_14.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['value_5ftype_3080',['value_type',['../classttg_1_1_edge.html#a9e5bedfb56285f66e7bb51a6c4384443',1,'ttg::Edge::value_type()'],['../structttg__parsec_1_1_ptr.html#afccdcd6f986580b3799a69ec8c62ecb2',1,'ttg_parsec::Ptr::value_type()'],['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#ab4869205597cd6adcc763961d88864d8',1,'ttg_parsec::detail::ttg_data_value_copy_t::value_type()'],['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#acb21b63f85d0e0dae046829f4c6d9a6d',1,'ttg_parsec::detail::persistent_value_ref::value_type()'],['../classttg_1_1_in.html#a5616aeacc1e54bb164d2a467da80b095',1,'ttg::In::value_type()'],['../classttg_1_1_out.html#a81c9c3bbabaed405c2496511136dd619',1,'ttg::Out::value_type()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a7ac45b1bcd06d84d2774cc319ac3c645',1,'TCB_SPAN_NAMESPACE_NAME::span::value_type()']]], + ['void_5ft_3081',['void_t',['../namespacettg_1_1meta.html#a81921dc33d6c66f8223e648a5edd0c20',1,'ttg::meta::void_t()'],['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail.html#aa2c107c07b9872908e80aa8e986072de',1,'TCB_SPAN_NAMESPACE_NAME::detail::void_t()']]], + ['void_5fto_5fvoid_5ft_3082',['void_to_Void_t',['../namespacettg_1_1meta.html#a068f4b01f77baa848e84c2b07dd9f8ce',1,'ttg::meta']]] +]; diff --git a/dox-master/search/typedefs_15.html b/dox-master/search/typedefs_15.html new file mode 100644 index 000000000..d874de6c0 --- /dev/null +++ b/dox-master/search/typedefs_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_15.js b/dox-master/search/typedefs_15.js new file mode 100644 index 000000000..d29ece7df --- /dev/null +++ b/dox-master/search/typedefs_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['worldobjt_3083',['worldobjT',['../classttg__madness_1_1_t_t.html#acfa2e9ae795ec1ae645cc36c313fbdf1',1,'ttg_madness::TT']]] +]; diff --git a/dox-master/search/typedefs_2.html b/dox-master/search/typedefs_2.html new file mode 100644 index 000000000..6835ee65b --- /dev/null +++ b/dox-master/search/typedefs_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_2.js b/dox-master/search/typedefs_2.js new file mode 100644 index 000000000..369998603 --- /dev/null +++ b/dox-master/search/typedefs_2.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['can_5fdereference_2917',['can_dereference',['../namespaceboost_1_1callable__traits_1_1detail.html#a0135d034f23718aaf26d3cd30536e13b',1,'boost::callable_traits::detail']]], + ['candidate_5fargument_5fbindings_5ft_2918',['candidate_argument_bindings_t',['../namespacettg_1_1meta.html#acae6e97823dc5fd776c435c77c323fd7',1,'ttg::meta']]], + ['class_5fof_5ft_2919',['class_of_t',['../namespaceboost_1_1callable__traits.html#a581dffd13b67a6b72427e411aaa5da51',1,'boost::callable_traits']]], + ['class_5ft_2920',['class_t',['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html#a2d87eb5e10f7c463b5fe40dcbcea041f',1,'boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::class_t()'],['../structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html#a575ccdf957ee2025bbf7dd2e70d2bb12',1,'boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::class_t()']]], + ['class_5ftype_2921',['class_type',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1d8cfd9bd30303ebbff39d980ec8d71e',1,'boost::callable_traits::detail::default_callable_traits::class_type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a28df029060731a7d42cf1ecefc02b35e',1,'boost::callable_traits::detail::function_object::class_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a0a609526f141273706f8aa69f6d49b22',1,'boost::callable_traits::detail::pmd< D T::* >::class_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3325bc437f9c0c9cb80fc973f3aa2cd3',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::class_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a96aec3db26740c2d3c325f5a6e690987',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::class_type()']]], + ['clear_5fargs_2922',['clear_args',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ab9606f74d4eda1f1592f35d061280c9b',1,'boost::callable_traits::detail::default_callable_traits::clear_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#aa02985668f63fdeba742aeb54390ab53',1,'boost::callable_traits::detail::function< T & >::clear_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#adde9775b6101fc6512e5613d79a4a250',1,'boost::callable_traits::detail::function_object::clear_args()']]], + ['collapse_5fflags_2923',['collapse_flags',['../namespaceboost_1_1callable__traits_1_1detail.html#a890a01102bf5f2b5f29f2897eeedce41',1,'boost::callable_traits::detail']]], + ['compositeop_2924',['CompositeOp',['../namespacettg.html#a2e89c3e984c06c03b334020f27d90625',1,'ttg']]], + ['const_5fpointer_2925',['const_pointer',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a70a6ee7ca957bfc9cde6e8dd8c81c7cc',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['const_5freference_2926',['const_reference',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a81d1de0c99411401ae029828ce37d5b5',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['copy_5ftype_2927',['copy_type',['../structttg__parsec_1_1detail_1_1ptr__impl.html#a53e4c96336818852cd953bd534daf69f',1,'ttg_parsec::detail::ptr_impl']]], + ['coroutine_5fhandle_2928',['coroutine_handle',['../namespacettg.html#a7fb99b7ddb73d33bdb28104e17b93b05',1,'ttg']]], + ['cv_5fof_2929',['cv_of',['../namespaceboost_1_1callable__traits_1_1detail.html#a451302ee26b5da224f9e376d187ef73a',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/typedefs_3.html b/dox-master/search/typedefs_3.html new file mode 100644 index 000000000..017004765 --- /dev/null +++ b/dox-master/search/typedefs_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_3.js b/dox-master/search/typedefs_3.js new file mode 100644 index 000000000..f8ff3fa37 --- /dev/null +++ b/dox-master/search/typedefs_3.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['default_5fto_5ffunction_5fobject_2930',['default_to_function_object',['../namespaceboost_1_1callable__traits_1_1detail.html#a1e731c82ff220471f59438cbc4cce133',1,'boost::callable_traits::detail']]], + ['derived_5ftype_2931',['derived_type',['../structttg__parsec_1_1_t_t_value.html#a55a1d5201292213de2151df948e9cbdc',1,'ttg_parsec::TTValue']]], + ['devicescratch_2932',['devicescratch',['../namespacettg.html#a74965466bea01837d3a2728f70c21f5c',1,'ttg']]], + ['difference_5ftype_2933',['difference_type',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a81f6f8122fa759b28978a7deca3e8e6c',1,'TCB_SPAN_NAMESPACE_NAME::span']]] +]; diff --git a/dox-master/search/typedefs_4.html b/dox-master/search/typedefs_4.html new file mode 100644 index 000000000..81466a5d2 --- /dev/null +++ b/dox-master/search/typedefs_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_4.js b/dox-master/search/typedefs_4.js new file mode 100644 index 000000000..7e410b7cd --- /dev/null +++ b/dox-master/search/typedefs_4.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['edge_5ftype_2934',['edge_type',['../classttg_1_1_out.html#abd2ce9580cb3e4501ad85dafa927449d',1,'ttg::Out::edge_type()'],['../classttg_1_1_in.html#a6369d76b9fc57468de3ca11b624948c2',1,'ttg::In::edge_type()']]], + ['edges_5ftuple_5ft_2935',['edges_tuple_t',['../namespacettg_1_1detail.html#acb7c8eae1b9a7f9ba6fc8416ea374480',1,'ttg::detail']]], + ['element_5ftype_2936',['element_type',['../structttg__madness_1_1_buffer.html#a5504a8f88fb1177b80db0c20f4050a55',1,'ttg_madness::Buffer::element_type()'],['../structttg__parsec_1_1_buffer.html#a0106039b80ab92bfcea18d38d2b978b1',1,'ttg_parsec::Buffer::element_type()'],['../structttg__parsec_1_1devicescratch.html#a06e54fc603c81201a7410ad405e8ad4b',1,'ttg_parsec::devicescratch::element_type()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a53e1af56da83c7e1aa9d6f2d0539728c',1,'TCB_SPAN_NAMESPACE_NAME::span::element_type()']]], + ['error_5ft_2937',['error_t',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa0935b08ebeacf67602f5f1914b5a4d3',1,'boost::callable_traits::detail::default_callable_traits::error_t()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a6cce3f6c7ffadcf4faf8f75d5b30d915',1,'boost::callable_traits::detail::function_object::error_t()']]], + ['error_5ftype_2938',['error_type',['../namespaceboost_1_1callable__traits_1_1detail.html#a1e93f6425b6d3a010c3907f4e3937047',1,'boost::callable_traits::detail']]], + ['expand_5fargs_2939',['expand_args',['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a0701458b2c7d7aadec0c5105380bdeac',1,'boost::callable_traits::detail::pmd< D T::* >::expand_args()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1478c3608ebb882f71650ba629d4e865',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a4dcf3890929c2dfd57495c61db5dc890',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a0813c868f6f9ff6ddaf26c778eba439e',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a93cfb21804feece0948ee485b63a8540',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ae265f6e0725a69b9e0469830f718adf7',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a6f6d06136fce2e163dfcda2faa46260d',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a10fc39bdd16b3fd659470aed2116ad8f',1,'boost::callable_traits::detail::function_object::expand_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ab475d4c0ea5c3edbaeea1ebdc5b9672c',1,'boost::callable_traits::detail::default_callable_traits::expand_args()']]], + ['expand_5fargs_5fleft_2940',['expand_args_left',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ac1265531b82a2f8351a6a867ecb07e2c',1,'boost::callable_traits::detail::default_callable_traits::expand_args_left()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a8720118f895e1ac61bf036c726ee7f1c',1,'boost::callable_traits::detail::function_object::expand_args_left()']]], + ['expand_5fargs_5fright_2941',['expand_args_right',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#af4effa96560dcda7eb8ed980b684e9bf',1,'boost::callable_traits::detail::default_callable_traits::expand_args_right()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#ab633be4db6080066eb033d834b751031',1,'boost::callable_traits::detail::function_object::expand_args_right()']]] +]; diff --git a/dox-master/search/typedefs_5.html b/dox-master/search/typedefs_5.html new file mode 100644 index 000000000..43fbec1fe --- /dev/null +++ b/dox-master/search/typedefs_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_5.js b/dox-master/search/typedefs_5.js new file mode 100644 index 000000000..3ad35ff1c --- /dev/null +++ b/dox-master/search/typedefs_5.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['fail_5fif_5finvalid_2942',['fail_if_invalid',['../namespaceboost_1_1callable__traits_1_1detail.html#a81f9a0ce9b9f0178ba78aaed6e5342a1',1,'boost::callable_traits::detail']]], + ['fail_5fwhen_5fsame_2943',['fail_when_same',['../namespaceboost_1_1callable__traits_1_1detail.html#a3efb9eda2686deb6d35700bc1c259a9f',1,'boost::callable_traits::detail']]], + ['fallback_5fif_5finvalid_2944',['fallback_if_invalid',['../namespaceboost_1_1callable__traits_1_1detail.html#a88a02bdf21fbc70581e849c6a5e23e0b',1,'boost::callable_traits::detail']]], + ['filtered_5ftuple_5ft_2945',['filtered_tuple_t',['../namespacettg_1_1meta.html#ab05bf89d70cd478221dfea07612012c1',1,'ttg::meta']]], + ['finalize_5fcallback_5ftype_2946',['finalize_callback_type',['../classttg_1_1_in.html#a0b94b61075542d47bd3b5f659241c1b9',1,'ttg::In::finalize_callback_type()'],['../classttg_1_1_in_terminal_base.html#ab8108e6045f61b44d2a57c928c8d2cf9',1,'ttg::InTerminalBase::finalize_callback_type()']]], + ['fn_5fid_5ft_2947',['fn_id_t',['../structttg__parsec_1_1msg__header__t.html#a340b3487cf2ba7e41ba44930cd28a8c1',1,'ttg_parsec::msg_header_t']]], + ['function_5fobject_5fbase_2948',['function_object_base',['../namespaceboost_1_1callable__traits_1_1detail.html#a2f0943ee5870fb225cc9e98c3f890c38',1,'boost::callable_traits::detail']]], + ['function_5fobject_5fsignature_2949',['function_object_signature',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1faa6644ead1b6ee7be5c6427c563d8e',1,'boost::callable_traits::detail::default_callable_traits::function_object_signature()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a857b2535e4797e5ca7ead056710b75c4',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_object_signature()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a7d72789269a02bd87e45b7123826b279',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_object_signature()']]], + ['function_5ftype_2950',['function_type',['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a0904884055daa3be5945969d43ccdc3e',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a148ef1ef9ada91c724fc0b9e36005525',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a308f4ffd47a8217c06d747868a6b38ce',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#afbc2ef09a432491409c610284f642566',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a3ee2e63bc45ae94fec20748030736826',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a3018f84b835563b92dc2dcde63fba540',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a9fa6728800840e3832f48d0bb23d8d24',1,'boost::callable_traits::detail::pmd< D T::* >::function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a155ba2175455de3cc484e62ab0867afb',1,'boost::callable_traits::detail::function_object::function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a259249abef9f4629019e0b90f96795f9',1,'boost::callable_traits::detail::default_callable_traits::function_type()']]], + ['function_5ftype_5ft_2951',['function_type_t',['../namespaceboost_1_1callable__traits.html#a6d8aba53db4009266ea86abc87d19dc9',1,'boost::callable_traits']]] +]; diff --git a/dox-master/search/typedefs_6.html b/dox-master/search/typedefs_6.html new file mode 100644 index 000000000..99479c2d5 --- /dev/null +++ b/dox-master/search/typedefs_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_6.js b/dox-master/search/typedefs_6.js new file mode 100644 index 000000000..9408a34e0 --- /dev/null +++ b/dox-master/search/typedefs_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['generalize_2952',['generalize',['../namespaceboost_1_1callable__traits_1_1detail.html#afcb72b22db7b9921c4acd2b91c874b0e',1,'boost::callable_traits::detail']]], + ['generalize_5fif_5fdissimilar_2953',['generalize_if_dissimilar',['../namespaceboost_1_1callable__traits_1_1detail.html#a2dc8539c3eed3d38ba5d053e0036ed98',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/typedefs_7.html b/dox-master/search/typedefs_7.html new file mode 100644 index 000000000..9a825e0a2 --- /dev/null +++ b/dox-master/search/typedefs_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_7.js b/dox-master/search/typedefs_7.js new file mode 100644 index 000000000..dd525cf4d --- /dev/null +++ b/dox-master/search/typedefs_7.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['handle_5ftype_2954',['handle_type',['../structttg_1_1resumable__task__state.html#af93568dbd723169578f630f69146f642',1,'ttg::resumable_task_state']]], + ['has_5ffreestanding_5fboost_5fserialize_5fwith_5fversion_5ft_2955',['has_freestanding_boost_serialize_with_version_t',['../namespacettg_1_1detail.html#a0d4b3d58e7f125d2db00ffb0e0accc64',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5ft_2956',['has_freestanding_serialize_t',['../namespacettg_1_1detail.html#a1e8ad0efa938cb3fac08d315bde69241',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5fwith_5fversion_5ft_2957',['has_freestanding_serialize_with_version_t',['../namespacettg_1_1detail.html#ae65c05514498d34a1bc28de8f0edbdc4',1,'ttg::detail']]], + ['has_5fmember_5fload_5ft_2958',['has_member_load_t',['../namespacettg_1_1detail.html#a5cd3fdc36711ed8043a3e47e59048579',1,'ttg::detail']]], + ['has_5fmember_5fload_5fwith_5fversion_5ft_2959',['has_member_load_with_version_t',['../namespacettg_1_1detail.html#aea9d89fde0632f309c09c532c77307a1',1,'ttg::detail']]], + ['has_5fmember_5fqualifiers_2960',['has_member_qualifiers',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ac20065371143b488aed4569eac58893d',1,'boost::callable_traits::detail::default_callable_traits']]], + ['has_5fmember_5fsave_5ft_2961',['has_member_save_t',['../namespacettg_1_1detail.html#a2845126dd4dbc662db1d3d0b2c0ed54b',1,'ttg::detail']]], + ['has_5fmember_5fsave_5fwith_5fversion_5ft_2962',['has_member_save_with_version_t',['../namespacettg_1_1detail.html#a624e4e87491fad99ad9c92dd4412fac4',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5ft_2963',['has_member_serialize_t',['../namespacettg_1_1detail.html#a5682c49378d701b250aff519dcef42c6',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5fwith_5fversion_5ft_2964',['has_member_serialize_with_version_t',['../namespacettg_1_1detail.html#ab99d168530b97c5fbbe5870387dba508',1,'ttg::detail']]], + ['has_5fvarargs_2965',['has_varargs',['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a952500ec36be3243d8f35192322c9054',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#afa72a2143161365f10fecd79c3c46e5c',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a7b3cfd3f695454d53d21ee5e4437269b',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a5e2a5186f302580ee57f9a138e375e52',1,'boost::callable_traits::detail::default_callable_traits::has_varargs()']]], + ['hash_5ft_2966',['hash_t',['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#a7f9710af412c1bb19e8131c795fad36a',1,'ttg::runtime_traits< Runtime::MADWorld >::hash_t()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#a53a0b4b87a48030ad31efa2ba8c2c5f0',1,'ttg::runtime_traits< Runtime::PaRSEC >::hash_t()']]] +]; diff --git a/dox-master/search/typedefs_8.html b/dox-master/search/typedefs_8.html new file mode 100644 index 000000000..e968613ec --- /dev/null +++ b/dox-master/search/typedefs_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_8.js b/dox-master/search/typedefs_8.js new file mode 100644 index 000000000..761dd268c --- /dev/null +++ b/dox-master/search/typedefs_8.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['input_5fargs_5ftype_2967',['input_args_type',['../classttg__parsec_1_1_t_t.html#abb37c0f880512fa75a25d10842baefbe',1,'ttg_parsec::TT::input_args_type()'],['../classttg__madness_1_1_t_t.html#a444d5f2f75e1ecaa509e67b3e9092a9e',1,'ttg_madness::TT::input_args_type()']]], + ['input_5fedges_5ftype_2968',['input_edges_type',['../classttg__madness_1_1_t_t.html#acee89d6e346a4668669cacab01a5cb26',1,'ttg_madness::TT::input_edges_type()'],['../classttg__parsec_1_1_t_t.html#a768a5a016ebe624b007484eea6dd7270',1,'ttg_parsec::TT::input_edges_type()']]], + ['input_5frefs_5ffull_5ftuple_5ftype_2969',['input_refs_full_tuple_type',['../classttg__madness_1_1_t_t.html#aa6092619a00a046661c1f6c81c0fb540',1,'ttg_madness::TT::input_refs_full_tuple_type()'],['../classttg__parsec_1_1_t_t.html#a0ca3828ff8520354b140d5815f5da1e3',1,'ttg_parsec::TT::input_refs_full_tuple_type()']]], + ['input_5frefs_5ftuple_5ftype_2970',['input_refs_tuple_type',['../classttg__madness_1_1_t_t.html#a58a707b385dad6796ae2ece20f1f33a2',1,'ttg_madness::TT::input_refs_tuple_type()'],['../classttg__parsec_1_1_t_t.html#a5449819f687ae3a1dfb52e62b06c73f5',1,'ttg_parsec::TT::input_refs_tuple_type()']]], + ['input_5fterminals_5ftuple_5ft_2971',['input_terminals_tuple_t',['../namespacettg_1_1detail.html#a8f34a0bbca4a0c85a7d184e5cdf4c96b',1,'ttg::detail']]], + ['input_5fterminals_5ftype_2972',['input_terminals_type',['../classttg__parsec_1_1_t_t.html#a5622a2630a9503c2c0cff35d8463c2b7',1,'ttg_parsec::TT::input_terminals_type()'],['../classttg_1_1_t_t_g.html#a5d1c01ea5a614099d16067f96a0cb1a7',1,'ttg::TTG::input_terminals_type()'],['../classttg__madness_1_1_t_t.html#af3c016c06ee6f46f1720ca64fc814522',1,'ttg_madness::TT::input_terminals_type()']]], + ['input_5fvalues_5ffull_5ftuple_5ftype_2973',['input_values_full_tuple_type',['../classttg__madness_1_1_t_t.html#a18ddf951dd451d4cd205b2422d453c27',1,'ttg_madness::TT::input_values_full_tuple_type()'],['../classttg__parsec_1_1_t_t.html#aebc5a2e56108a8e73741d13665b6f3d9',1,'ttg_parsec::TT::input_values_full_tuple_type()']]], + ['input_5fvalues_5ftuple_5ftype_2974',['input_values_tuple_type',['../classttg__madness_1_1_t_t.html#add2c1800d3faf8adbe771530ad5510a4',1,'ttg_madness::TT::input_values_tuple_type()'],['../classttg__parsec_1_1_t_t.html#ad13abd5cb3d2ce002f58d9f92ce80c49',1,'ttg_parsec::TT::input_values_tuple_type()']]], + ['insert_5fargs_2975',['insert_args',['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#ac0c49da6f5b074bc08962ac92b2b17c1',1,'boost::callable_traits::detail::function< T & >::insert_args()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#aa852213f484d9c64fb81ab428e48d620',1,'boost::callable_traits::detail::function_object::insert_args()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a4f2359dcac38c913693bb06e93651acf',1,'boost::callable_traits::detail::default_callable_traits::insert_args()']]], + ['invoke_5ftype_2976',['invoke_type',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1904b711f335d21b0a59e602445cbf12',1,'boost::callable_traits::detail::default_callable_traits::invoke_type()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a2f51e3618229a0e560b62376a81112be',1,'boost::callable_traits::detail::function_object::invoke_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a37522426867bf6b5c1d41abd64557bdf',1,'boost::callable_traits::detail::pmd< D T::* >::invoke_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#abc15c7b1f1e5ba4d2f7c77e2dc0bdeb3',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::invoke_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a41acdb31365f8b05b15c2f15e8e2ea86',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::invoke_type()']]], + ['iovec_5fiterator_2977',['iovec_iterator',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ada5480f52f94446a69c89e5890a6f1d5',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['is_5fconst_2978',['is_const',['../namespaceboost_1_1callable__traits_1_1detail.html#afe17ca88f0092167d353ecfec1aa0333',1,'boost::callable_traits::detail']]], + ['is_5fconst_5fmember_2979',['is_const_member',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a288730301231c9596e1bd6cc7d427885',1,'boost::callable_traits::detail::default_callable_traits']]], + ['is_5fcv_5fmember_2980',['is_cv_member',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a1376f9fe898065fc3ca68eb5ddad9f8b',1,'boost::callable_traits::detail::default_callable_traits']]], + ['is_5flvalue_5freference_5fmember_2981',['is_lvalue_reference_member',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a8e15d0b6334c019be4f00ff00e1e323d',1,'boost::callable_traits::detail::default_callable_traits']]], + ['is_5fmember_5fpointer_2982',['is_member_pointer',['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#af791a88bd764fb201a721bddefad4207',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a4e47baca055366282e365340592726ce',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3b98c181c62b1966e9b65c8610817253',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a32750990778f35021bb0547aadfb6d71',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a0efdfb30ff0f68c46873bfdc10b39430',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a91a3d2780cd440c0fea50bb62ec7b2f1',1,'boost::callable_traits::detail::pmd< D T::* >::is_member_pointer()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a6a9d87a0fcea0b8dff697b18a0fe09e6',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer()']]], + ['is_5fnoexcept_2983',['is_noexcept',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a9187ee66fd69b55cd8ebbf13be205605',1,'boost::callable_traits::detail::default_callable_traits::is_noexcept()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a105ab1781690fc8e383933011b49fb5a',1,'boost::callable_traits::detail::function_object::is_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ae9fa452a360f7ea3c749ba8d22533d24',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#ae3773d4bcf1fc74ec2cae2bdf0272094',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#aa7bc2ae307c1bd001f54366b0f776ca7',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a6b81b630d1461179a1a4ae424b34216b',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a63602c74428b210b17674437f87636b2',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a13603a158af498c55ab5bb1a6376aec0',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept()']]], + ['is_5freference_5fmember_2984',['is_reference_member',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a8d185c4041155aef3cf24ff33dfac08f',1,'boost::callable_traits::detail::default_callable_traits']]], + ['is_5freference_5fwrapper_2985',['is_reference_wrapper',['../namespaceboost_1_1callable__traits_1_1detail.html#ac65acdb77d5486ccd4c994f9c70d2adb',1,'boost::callable_traits::detail']]], + ['is_5frvalue_5freference_5fmember_2986',['is_rvalue_reference_member',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a4e3d50ad321a22191f40673570d5d440',1,'boost::callable_traits::detail::default_callable_traits']]], + ['is_5ftransaction_5fsafe_2987',['is_transaction_safe',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a84fc63e7170db1c4d9765b1518395fe0',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a6f924fa71f9cd25d50e6699df962445a',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a29a716689e7886c4e27910664e58508e',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a1089144d7acfd1bac6297de95558b05b',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#ac031aa4e73c8fc1247fad8617e81aae5',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a1f18bd1e0b0d2e2258cf9a4d143ccf29',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a9a3c54c4ccf583e5ff9132a1a2ebde17',1,'boost::callable_traits::detail::function_object::is_transaction_safe()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ae4ab48f105c1d2b1c38a6d26093246b3',1,'boost::callable_traits::detail::default_callable_traits::is_transaction_safe()']]], + ['is_5fvolatile_5fmember_2988',['is_volatile_member',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#ad105d5e4cfdc81e11b814534d4073efb',1,'boost::callable_traits::detail::default_callable_traits']]], + ['iterator_2989',['iterator',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a30213ef8aafc8ee8303fe71dcc154e9e',1,'ttg_parsec::detail::ttg_data_copy_t::iterator()'],['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a900fe5ad2055285857870283d49b0f84',1,'TCB_SPAN_NAMESPACE_NAME::span::iterator()']]] +]; diff --git a/dox-master/search/typedefs_9.html b/dox-master/search/typedefs_9.html new file mode 100644 index 000000000..2e9153256 --- /dev/null +++ b/dox-master/search/typedefs_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_9.js b/dox-master/search/typedefs_9.js new file mode 100644 index 000000000..6e0638a30 --- /dev/null +++ b/dox-master/search/typedefs_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['key2_2990',['Key2',['../distributed_8cc.html#a4ed3c6c3b234257403b35824408bc652',1,'Key2(): distributed.cc'],['../iterative_8cc.html#a4ed3c6c3b234257403b35824408bc652',1,'Key2(): iterative.cc'],['../reducing_8cc.html#a4ed3c6c3b234257403b35824408bc652',1,'Key2(): reducing.cc']]], + ['key_5ftype_2991',['key_type',['../classttg_1_1_edge.html#ade4021c5ff7cec3db94f3b3f65d44b3e',1,'ttg::Edge::key_type()'],['../classttg__madness_1_1_t_t.html#afdfb1cdda00733910c0633a5ea60d188',1,'ttg_madness::TT::key_type()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a70e2a8707044b009d58a9f333455924f',1,'ttg_parsec::detail::parsec_ttg_task_t::key_type()'],['../classttg__parsec_1_1_t_t.html#a294f6368c269894c018bd8124e8f370f',1,'ttg_parsec::TT::key_type()'],['../classttg_1_1_in_terminal_base.html#a63bb3ef0e37d82cf03ca76ae4a23d7db',1,'ttg::InTerminalBase::key_type()'],['../classttg_1_1_in.html#a7b850adc82f9741fb8f73dc8da2ef4a8',1,'ttg::In::key_type()'],['../classttg_1_1_out_terminal_base.html#af0b0a09a0e74016a4fbb9868d90b19be',1,'ttg::OutTerminalBase::key_type()'],['../classttg_1_1_out.html#aadf97ec5a90ce32c1d8a8e2c5a85ad7d',1,'ttg::Out::key_type()']]] +]; diff --git a/dox-master/search/typedefs_a.html b/dox-master/search/typedefs_a.html new file mode 100644 index 000000000..bb6ac2a82 --- /dev/null +++ b/dox-master/search/typedefs_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_a.js b/dox-master/search/typedefs_a.js new file mode 100644 index 000000000..faf61dd97 --- /dev/null +++ b/dox-master/search/typedefs_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lvalue_5freference_5ftype_2992',['lvalue_reference_type',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#a9bb77251241b82860092ce670abc5c88',1,'ttg_parsec::detail::persistent_value_ref']]] +]; diff --git a/dox-master/search/typedefs_b.html b/dox-master/search/typedefs_b.html new file mode 100644 index 000000000..566bbec43 --- /dev/null +++ b/dox-master/search/typedefs_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_b.js b/dox-master/search/typedefs_b.js new file mode 100644 index 000000000..31ba2bee7 --- /dev/null +++ b/dox-master/search/typedefs_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['make_5findex_5fsequence_2993',['make_index_sequence',['../namespaceboost_1_1callable__traits_1_1detail.html#a5f408152af25c5111d94928d233236aa',1,'boost::callable_traits::detail']]], + ['make_5fmember_5fpointer_5ft_2994',['make_member_pointer_t',['../namespaceboost_1_1callable__traits_1_1detail.html#af113cd4d4b40d4cbdecd7ebf5b818477',1,'boost::callable_traits::detail']]], + ['move_5fcallback_5ftype_2995',['move_callback_type',['../classttg_1_1_in.html#ac27eae622532ae3ad67a1cbcc03532ec',1,'ttg::In']]] +]; diff --git a/dox-master/search/typedefs_c.html b/dox-master/search/typedefs_c.html new file mode 100644 index 000000000..974c71a28 --- /dev/null +++ b/dox-master/search/typedefs_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_c.js b/dox-master/search/typedefs_c.js new file mode 100644 index 000000000..b6abb8491 --- /dev/null +++ b/dox-master/search/typedefs_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['non_5finvoke_5farg_5ftypes_2996',['non_invoke_arg_types',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aecd35973d9a5c3c8617b5ac6593d6ea3',1,'boost::callable_traits::detail::default_callable_traits::non_invoke_arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a2db1ab9fbcefa341438328b3e92a09cc',1,'boost::callable_traits::detail::function_object::non_invoke_arg_types()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#af905de096bd70f3cf0c543261cf34012',1,'boost::callable_traits::detail::pmd< D T::* >::non_invoke_arg_types()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a1e9e606293c7917e9b213f1c130900f6',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a858f5d9d60de84b075c7546e799b1fb5',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a02a71d530245f4dd8d309936596c41da',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a3d292ad0e02ff8014ccb1db96b4b401a',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a8a449cc369f26fc531e8f00899371a07',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types()']]], + ['nonref_5ftuple_5ft_2997',['nonref_tuple_t',['../namespacettg_1_1meta.html#a819e20d1caa572e53130d36b874c4f59',1,'ttg::meta']]] +]; diff --git a/dox-master/search/typedefs_d.html b/dox-master/search/typedefs_d.html new file mode 100644 index 000000000..7b7ff3008 --- /dev/null +++ b/dox-master/search/typedefs_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_d.js b/dox-master/search/typedefs_d.js new file mode 100644 index 000000000..ff5f22b6f --- /dev/null +++ b/dox-master/search/typedefs_d.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['op_2998',['Op',['../namespacettg__madness.html#abc8af20f7db8b84a0d170edadec49f99',1,'ttg_madness::Op()'],['../namespacettg__parsec.html#a468485b42e3870016d8c6961e435cd4b',1,'ttg_parsec::Op()']]], + ['opbase_2999',['OpBase',['../namespacettg.html#adcdb54d96d39cc9a3ba05dca5aa182e1',1,'ttg']]], + ['output_5fedges_5ftype_3000',['output_edges_type',['../classttg__madness_1_1_t_t.html#aef907d3f0ce6f3cce3fa6b72e048ce21',1,'ttg_madness::TT::output_edges_type()'],['../classttg__parsec_1_1_t_t.html#a34d4f7ccf9ae70a0bec083f62e21905b',1,'ttg_parsec::TT::output_edges_type()']]], + ['output_5fterminal_5ftype_3001',['output_terminal_type',['../classttg_1_1_edge.html#ae41c9b4c8361342f7259d6a84dfbfdde',1,'ttg::Edge']]], + ['output_5fterminals_5ftype_3002',['output_terminals_type',['../classttg__madness_1_1_t_t.html#adf925526cfd01735e2cc8853edf4525e',1,'ttg_madness::TT::output_terminals_type()'],['../classttg__parsec_1_1_t_t.html#a59b1c7f4f7fc3e5d086dccdfc230a0fc',1,'ttg_parsec::TT::output_terminals_type()'],['../classttg_1_1_t_t_g.html#adc826d43d06d2ce7fb6aaea3be0f5400',1,'ttg::TTG::output_terminals_type()']]] +]; diff --git a/dox-master/search/typedefs_e.html b/dox-master/search/typedefs_e.html new file mode 100644 index 000000000..97b2a8eb2 --- /dev/null +++ b/dox-master/search/typedefs_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_e.js b/dox-master/search/typedefs_e.js new file mode 100644 index 000000000..99743e6d5 --- /dev/null +++ b/dox-master/search/typedefs_e.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['parsec_5fdata_5fptr_3003',['parsec_data_ptr',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#abc04ea75f9260926d1bc5033f0f6070d',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['parsec_5fstatic_5fop_5ft_3004',['parsec_static_op_t',['../namespacettg__parsec_1_1detail.html#a3aa0f98216159a470ccff8055af36a33',1,'ttg_parsec::detail']]], + ['pbase_5ftype_3005',['pbase_type',['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a4b716d6c60234fef947bfa87e5b71e16',1,'ttg::detail::boost_optimized_oarchive::pbase_type()'],['../classttg_1_1detail_1_1boost__optimized__iarchive.html#a2987b19cdc3534ab2b8d6b66c08c777b',1,'ttg::detail::boost_optimized_iarchive::pbase_type()']]], + ['pointer_3006',['pointer',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#acde0c33d0e22fbf24cb697c251280b23',1,'TCB_SPAN_NAMESPACE_NAME::span']]], + ['pop_5fargs_5fback_3007',['pop_args_back',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a7fda4d2ff912846b365f4baedaff25fb',1,'boost::callable_traits::detail::function_object']]], + ['pop_5fargs_5ffront_3008',['pop_args_front',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a22495e4acdb0378e9ab53fb1321ffa96',1,'boost::callable_traits::detail::function_object']]], + ['pop_5fback_3009',['pop_back',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a9a4e8383f249cd2d9d9f59c1dbb53447',1,'boost::callable_traits::detail::default_callable_traits::pop_back()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a91af131f99cf76b5a6407a9544b6d67a',1,'boost::callable_traits::detail::function< T & >::pop_back()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a28787feb72c51006b8097db90b010683',1,'boost::callable_traits::detail::function_object::pop_back()']]], + ['pop_5ffront_3010',['pop_front',['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a647d71cafb3c0ef996956e3abff3f3d2',1,'boost::callable_traits::detail::function_object::pop_front()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a450ac010a4dabfc5cbc2b9b555532746',1,'boost::callable_traits::detail::function< T & >::pop_front()'],['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a2352b432739e7a3a2fdf8abcc6c6e23e',1,'boost::callable_traits::detail::default_callable_traits::pop_front()']]], + ['prepare_5fsend_5fcallback_5ftype_3011',['prepare_send_callback_type',['../classttg_1_1_in.html#ab5b414b67dd84715af67dcf3ef690d12',1,'ttg::In']]], + ['promise_5ftype_3012',['promise_type',['../structttg_1_1resumable__task.html#abc863bef6a3eacc4dd614cd253742122',1,'ttg::resumable_task']]], + ['ptr_3013',['Ptr',['../namespacettg.html#a7a6518193113343addafa372e4200a93',1,'ttg']]], + ['push_5fback_3014',['push_back',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa2996bbbcbfb6e3f4d1bf1f36979af37',1,'boost::callable_traits::detail::default_callable_traits::push_back()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1bee4aa1d2da8d987e676e4d761476b6',1,'boost::callable_traits::detail::function< T & >::push_back()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a51ee162aa856c4db77bc6a124a381f30',1,'boost::callable_traits::detail::function_object::push_back()']]], + ['push_5ffront_3015',['push_front',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a890c4b768ba4c30ff3a22e8109dfa2b8',1,'boost::callable_traits::detail::default_callable_traits::push_front()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1534a0f679d71201e8bd06476895c8a6',1,'boost::callable_traits::detail::function< T & >::push_front()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a65cd02d2b21e66983260168927312b81',1,'boost::callable_traits::detail::function_object::push_front()']]] +]; diff --git a/dox-master/search/typedefs_f.html b/dox-master/search/typedefs_f.html new file mode 100644 index 000000000..38a3a2143 --- /dev/null +++ b/dox-master/search/typedefs_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/typedefs_f.js b/dox-master/search/typedefs_f.js new file mode 100644 index 000000000..b9c680f2a --- /dev/null +++ b/dox-master/search/typedefs_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['qualified_5fclass_5fof_5ft_3016',['qualified_class_of_t',['../namespaceboost_1_1callable__traits.html#a675fe6525973e89843ba9f476d34bce0',1,'boost::callable_traits']]], + ['qualified_5ffunction_5ftype_3017',['qualified_function_type',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a60387302212ecf701aae83c1e694d87d',1,'boost::callable_traits::detail::default_callable_traits::qualified_function_type()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#a4a4886eb52f3e247b2b683bb2ac5707e',1,'boost::callable_traits::detail::pmd< D T::* >::qualified_function_type()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a40455b30f33540b5bcca8d5742ba7b28',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#adfecd50ae3766bc6c50339767ce99d04',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a47d8140394a1fbd79751c9359ea2bdaf',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a073afd7caea8cbc426dd8e4c996a0c3e',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a4f79e7f0e44d8921db695e45c77d6a4c',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#afc5d1499fcb21f642a1fdcc12327e7ec',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type()']]], + ['qualifier_5fflags_3018',['qualifier_flags',['../namespaceboost_1_1callable__traits_1_1detail.html#a72b911342c19b5cf050a04843f8d4247',1,'boost::callable_traits::detail']]], + ['qualifiers_3019',['qualifiers',['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#a8cb93ce50f0a1f43747d81401901dd8b',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#a87f3b4f5b26a78a11aa52b6a218e51f3',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a9689318d160c4c31cc6b4face0685ef8',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#a3bf80cc5e5dae7e60275d1e5ab9bf649',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers()']]] +]; diff --git a/dox-master/search/variables_0.html b/dox-master/search/variables_0.html new file mode 100644 index 000000000..1e477c08c --- /dev/null +++ b/dox-master/search/variables_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_0.js b/dox-master/search/variables_0.js new file mode 100644 index 000000000..15ef570bb --- /dev/null +++ b/dox-master/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['available_5fexecution_5fspace_2663',['available_execution_space',['../namespacettg_1_1device.html#aa2e4c3c192f4374d5fa02893df4cdf86',1,'ttg::device']]] +]; diff --git a/dox-master/search/variables_1.html b/dox-master/search/variables_1.html new file mode 100644 index 000000000..ea73d9a49 --- /dev/null +++ b/dox-master/search/variables_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_1.js b/dox-master/search/variables_1.js new file mode 100644 index 000000000..c6a7aee48 --- /dev/null +++ b/dox-master/search/variables_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bytes_2664',['bytes',['../structttg__parsec_1_1detail_1_1msg__t.html#acf0f11603d21e743d98c110a99457a30',1,'ttg_parsec::detail::msg_t']]] +]; diff --git a/dox-master/search/variables_10.html b/dox-master/search/variables_10.html new file mode 100644 index 000000000..dc9920b6d --- /dev/null +++ b/dox-master/search/variables_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_10.js b/dox-master/search/variables_10.js new file mode 100644 index 000000000..e9875da10 --- /dev/null +++ b/dox-master/search/variables_10.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['reduce_5fcopies_2837',['reduce_copies',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#afec6adea574334e3d21baf5800f0565d',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t']]], + ['reduce_5fcount_2838',['reduce_count',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#a02328acf5ab1285d4e41f01fd556f2e8',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t']]], + ['ref_5fflags_2839',['ref_flags',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a59c8dd2ebde46a20d234f6d2fdfe1022',1,'boost::callable_traits::detail::default_callable_traits']]], + ['release_5ftask_5fcb_2840',['release_task_cb',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a852cb153035b905964ffc61057e4f529',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['remove_5ffrom_5fhash_2841',['remove_from_hash',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a5e5cfff313e43d3d34343c0e9f6c15f1',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['rref_5f_2842',['rref_',['../namespaceboost_1_1callable__traits_1_1detail.html#a19ec0de1501c4010a1a2036f1d3e9b17',1,'boost::callable_traits::detail']]], + ['runtime_2843',['runtime',['../classttg__parsec_1_1_t_t.html#afd276832da510057edde64f8da369d79',1,'ttg_parsec::TT']]] +]; diff --git a/dox-master/search/variables_11.html b/dox-master/search/variables_11.html new file mode 100644 index 000000000..704bcb187 --- /dev/null +++ b/dox-master/search/variables_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_11.js b/dox-master/search/variables_11.js new file mode 100644 index 000000000..a5d38b37e --- /dev/null +++ b/dox-master/search/variables_11.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['self_2844',['self',['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html#a844cbac41fc9fab964ad5535df09d02e',1,'ttg_parsec::detail::ttg_data_copy_self_t::self()'],['../structttg__parsec_1_1detail_1_1_parsec_t_t_base.html#a4b3d6cbf2915257d3acf3e7890911af5',1,'ttg_parsec::detail::ParsecTTBase::self()']]], + ['sender_2845',['sender',['../structttg__parsec_1_1msg__header__t.html#aa690428b845a1794618fa74fd8f104a0',1,'ttg_parsec::msg_header_t']]], + ['serialize_5fsize_5fis_5fconst_2846',['serialize_size_is_const',['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html#ad82e5c2f338fab30789f4175700e5540',1,'ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::serialize_size_is_const()'],['../structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html#a61849848e2901e6a12ebc76afc481b0b',1,'ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::serialize_size_is_const()']]], + ['setsize_5fcallback_2847',['setsize_callback',['../classttg_1_1_in_terminal_base.html#a6624aa2fb8ccc73351e513d0b0ef4b61',1,'ttg::InTerminalBase']]], + ['size_2848',['size',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#a2bf2a92e19c664e2f4ee53f0d8e73780',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t::size()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#a910543bb9f617d05749166a2fa6c3fdd',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::size()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#aef0c689be866d909927c501560eaf14d',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::size()']]], + ['sleep_5f_2849',['sleep_',['../classttg_1_1_debugger.html#ad9bdfa6f8668a2b8a73d74d2efb67c0d',1,'ttg::Debugger']]], + ['static_5fid_5fto_5fop_5fmap_2850',['static_id_to_op_map',['../namespacettg__parsec.html#a22b8eb86f34e2d830353962d5a207cfd',1,'ttg_parsec']]], + ['static_5fmap_5fmutex_2851',['static_map_mutex',['../namespacettg__parsec.html#a7ca6da9af9be7a00e953eb19f5a09812',1,'ttg_parsec']]], + ['stream_2852',['stream',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a68db7b7ec605af429fa4d57e96d262e4',1,'ttg_parsec::detail::device_ptr_t']]], + ['streams_2853',['streams',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#abf1c3f21f73794576635a50b2f9cf74e',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::streams()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a4d9f15127f1b8b0abd2e0ef767442d66',1,'ttg_parsec::detail::parsec_ttg_task_t::streams()']]], + ['super_2854',['super',['../structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html#ae2242be24c58af2c3cc5f5b48e7dae4d',1,'ttg_parsec::detail::ttg_data_copy_self_t']]], + ['support_5fdevice_2855',['support_device',['../structttg__parsec_1_1detail_1_1device__state__t.html#abdcb4504fdd00c16c37914ddce93d640',1,'ttg_parsec::detail::device_state_t::support_device()'],['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#ac54f9673b32f68afcb1b4c5be63f2da6',1,'ttg_parsec::detail::device_state_t< true >::support_device()']]], + ['supports_5fasync_5freduction_2856',['supports_async_reduction',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#aeb731d096f19145437217fe79697e4b8',1,'ttg::runtime_traits< Runtime::PaRSEC >::supports_async_reduction()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#ae573378b7760dc8619db23717c665a9d',1,'ttg::runtime_traits< Runtime::MADWorld >::supports_async_reduction()']]], + ['supports_5fstreaming_5fterminal_2857',['supports_streaming_terminal',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#a09a57da3029cd2bef387ecad74fa893a',1,'ttg::runtime_traits< Runtime::PaRSEC >::supports_streaming_terminal()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#ae23df26b21c3635cacea38b7c2935242',1,'ttg::runtime_traits< Runtime::MADWorld >::supports_streaming_terminal()']]] +]; diff --git a/dox-master/search/variables_12.html b/dox-master/search/variables_12.html new file mode 100644 index 000000000..a3a32eb8e --- /dev/null +++ b/dox-master/search/variables_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_12.js b/dox-master/search/variables_12.js new file mode 100644 index 000000000..f1d1459b4 --- /dev/null +++ b/dox-master/search/variables_12.js @@ -0,0 +1,17 @@ +var searchData= +[ + ['task_5fclass_2858',['task_class',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a6595ab943fb458be9d3722c2cb5d9764',1,'ttg_parsec::detail::device_ptr_t']]], + ['taskpool_5fid_2859',['taskpool_id',['../structttg__parsec_1_1msg__header__t.html#a67324e3fa282cedf4a6efeec7605d219',1,'ttg_parsec::msg_header_t']]], + ['tasks_5ftable_2860',['tasks_table',['../structttg__parsec_1_1detail_1_1_parsec_t_t_base.html#acdff3aa5a369ee1110832574c622dd9e',1,'ttg_parsec::detail::ParsecTTBase']]], + ['threaddata_2861',['threaddata',['../classttg__madness_1_1_t_t.html#a4ea41ba4be5baf6bee24848868fceadb',1,'ttg_madness::TT']]], + ['threshold_2862',['threshold',['../reducing_8cc.html#a1d82d181e6f77a3479faa6152c83b438',1,'threshold(): reducing.cc'],['../distributed_8cc.html#a1d82d181e6f77a3479faa6152c83b438',1,'threshold(): distributed.cc'],['../iterative_8cc.html#a1d82d181e6f77a3479faa6152c83b438',1,'threshold(): iterative.cc']]], + ['traceback_5f_2863',['traceback_',['../classttg_1_1_debugger.html#ac1fda6a36c601c3dce33e7bed8faaf4e',1,'ttg::Debugger']]], + ['tt_2864',['tt',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a5dde7ff744972748c5de9c7a3784f5c3',1,'ttg_parsec::detail::parsec_ttg_task_t::tt()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a148cc77e6b5cfbaba8d461902ffb9fba',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::tt()']]], + ['tt_5fht_5fitem_2865',['tt_ht_item',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#ad0463133c865927ee283b55ebcdd2e01',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['tt_5fid_2866',['tt_id',['../structttg__parsec_1_1detail_1_1msg__t.html#a37ee54388101271d25def1addda48188',1,'ttg_parsec::detail::msg_t']]], + ['ttg_5fdata_5fcopy_5ft_2867',['ttg_data_copy_t',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#a7282b5b6befd31e4df2bf6b0d7c514c9',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['ttg_5fruntime_2868',['ttg_runtime',['../namespacettg.html#a249e13a71ad8438d69bb4bdd5b2809ac',1,'ttg']]], + ['typelist_5fis_5fempty_5fv_2869',['typelist_is_empty_v',['../namespacettg_1_1meta.html#a58819bf430cd9581930c3b9e9c383f16',1,'ttg::meta']]], + ['typelist_5fis_5fnot_5fempty_5fv_2870',['typelist_is_not_empty_v',['../namespacettg_1_1meta.html#aeb96c42d4703d34893952cc9b45966c9',1,'ttg::meta']]], + ['typelist_5fsize_5fv_2871',['typelist_size_v',['../namespacettg_1_1meta.html#ae7a61ae6ab8ec834784aa73d4f4c6ced',1,'ttg::meta']]] +]; diff --git a/dox-master/search/variables_13.html b/dox-master/search/variables_13.html new file mode 100644 index 000000000..7d05bd863 --- /dev/null +++ b/dox-master/search/variables_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_13.js b/dox-master/search/variables_13.js new file mode 100644 index 000000000..5f24d2bd8 --- /dev/null +++ b/dox-master/search/variables_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unpack_5fpayload_2872',['unpack_payload',['../structttg__data__descriptor.html#abe695ce360ceccb2a906437a680a68e5',1,'ttg_data_descriptor']]] +]; diff --git a/dox-master/search/variables_14.html b/dox-master/search/variables_14.html new file mode 100644 index 000000000..ab9e0fa9b --- /dev/null +++ b/dox-master/search/variables_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_14.js b/dox-master/search/variables_14.js new file mode 100644 index 000000000..63bea3f3f --- /dev/null +++ b/dox-master/search/variables_14.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['v_2873',['v',['../structboost_1_1serialization_1_1unsigned__int.html#a435b20f3a69d0e096ead40f1ad925c6f',1,'boost::serialization::unsigned_int']]], + ['value_2874',['value',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#a683d8bf0b9666a9fb778f9ed09c5b33c',1,'boost::callable_traits::detail::default_callable_traits::value()'],['../structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html#a69da59a0caeb3593a2c274c58847f3ae',1,'std::tuple_size< ttg::meta::typelist< Ts... > >::value()'],['../structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html#ae740ea466f33ecf72f7d11e4b048d720',1,'ttg::meta::typelist_size< typelist< Ts... > >::value()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html#a733b065b86c2bbbb3525ede53a813146',1,'TCB_SPAN_NAMESPACE_NAME::detail::is_container::value()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html#abca7005ae47ce4ae2b1fb158b5419147',1,'pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html#a565c6fcd217cc8aba138d1a48ea31d31',1,'pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html#a4d5a14416a3264935a4f9111aa3c49fe',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html#a03142bdd948b6b7ecf95e7a602a34572',1,'function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html#aa914d14e9c69e735cb8f122401dee6c3',1,'function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html#ab3deabe733c15998f76175d01ecc95ce',1,'function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1fail__if.html#a686c0e109f7685146eb8effd233067fa',1,'boost::callable_traits::detail::fail_if::value()'],['../structboost_1_1callable__traits_1_1detail_1_1success.html#a278a3cb4e06a1e40e41593bd8622090a',1,'boost::callable_traits::detail::success::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html#abc18179f32ce1de35de36c90a95b4cc5',1,'boost::callable_traits::detail::flag_map< T const volatile && >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html#ac0f207b1dff3549e2845dd863c76173d',1,'boost::callable_traits::detail::flag_map< T const volatile & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html#a975cc1421064a4c9cb7dc0f6bdc1546e',1,'boost::callable_traits::detail::flag_map< T const volatile >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html#a02e99ebc504d58e14cc0dbc51327a3cb',1,'boost::callable_traits::detail::flag_map< T volatile & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html#a9d0f00493342813d4652158d56a458b7',1,'boost::callable_traits::detail::has_normal_call_operator::value()'],['../structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html#a1f110efe96e9d6b5ba6828c2a0594591',1,'boost::callable_traits::detail::function< T & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1function__object.html#a6c8bd9f8d57bfdc11a382eee46c17411',1,'boost::callable_traits::detail::function_object::value()'],['../structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html#a116c8a0727889177adf23c439dae7405',1,'boost::callable_traits::detail::can_dereference_t::value()'],['../structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html#aaae822efbc6f695db2fb7a862dd1258b',1,'boost::callable_traits::detail::pmd< D T::* >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map.html#a14600da01bc4dab8ae3130a747b360a9',1,'boost::callable_traits::detail::flag_map::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html#a824a7e2a0cfacce148a30bc5c152196f',1,'boost::callable_traits::detail::flag_map< T & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html#ad4703b77348c60d464d1c736fc52ef08',1,'boost::callable_traits::detail::flag_map< T && >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html#aeb01bd79e1014f6fc3f740f73608e753',1,'boost::callable_traits::detail::flag_map< T const >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html#aef77f03f7aa2a4b76a80e05be8491550',1,'boost::callable_traits::detail::flag_map< T const & >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html#a59824c25cbd56eab3859fdf4b0c132b8',1,'boost::callable_traits::detail::flag_map< T const && >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html#a395d5d4556b57ffbebe143702618de4e',1,'boost::callable_traits::detail::flag_map< T volatile >::value()'],['../structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html#adb10fd1f138d8f8a9525e6e0677efb28',1,'boost::callable_traits::detail::flag_map< T volatile && >::value()']]], + ['value_5fref_2875',['value_ref',['../structttg__parsec_1_1detail_1_1persistent__value__ref.html#aa9d708a4bf3b58680ce7daeb2cafb096',1,'ttg_parsec::detail::persistent_value_ref']]], + ['version_5fas_5fadl_5ftag_2876',['version_as_adl_tag',['../namespaceboost_1_1serialization.html#ac82a78b86c62763c6a7c0c5a06477146',1,'boost::serialization']]], + ['volatile_5f_2877',['volatile_',['../namespaceboost_1_1callable__traits_1_1detail.html#a16f75165ffa631aa3018829b10248528',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/variables_15.html b/dox-master/search/variables_15.html new file mode 100644 index 000000000..45b78e3d9 --- /dev/null +++ b/dox-master/search/variables_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_15.js b/dox-master/search/variables_15.js new file mode 100644 index 000000000..cbb5e169a --- /dev/null +++ b/dox-master/search/variables_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wait_5ffor_5fdebugger_5f_2878',['wait_for_debugger_',['../classttg_1_1_debugger.html#af796dbf4287e7c7df1bcce9d918d533a',1,'ttg::Debugger']]] +]; diff --git a/dox-master/search/variables_2.html b/dox-master/search/variables_2.html new file mode 100644 index 000000000..0580462e9 --- /dev/null +++ b/dox-master/search/variables_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_2.js b/dox-master/search/variables_2.js new file mode 100644 index 000000000..31be6aad1 --- /dev/null +++ b/dox-master/search/variables_2.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['call_5fdepth_2665',['call_depth',['../classttg__madness_1_1_t_t.html#af03939341c0d121f41bd884b88119968',1,'ttg_madness::TT']]], + ['callable_5fargs_2666',['callable_args',['../namespacettg_1_1meta.html#a78070067d8a45b11b6fed75dd2667efd',1,'ttg::meta']]], + ['cmd_5f_2667',['cmd_',['../classttg_1_1_debugger.html#a4d6999b28ee5432aa8f4e3fe7f43a33f',1,'ttg::Debugger']]], + ['const_5f_2668',['const_',['../namespaceboost_1_1callable__traits_1_1detail.html#a3f5ec2e02dd99b0c6b64962eaeeb5ee2',1,'boost::callable_traits::detail']]], + ['container_2669',['container',['../classttg_1_1_in.html#a50ab22cdf0e2298fddba1a0979f7fc3d',1,'ttg::In']]], + ['copies_2670',['copies',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a2b63ab4d9a37979987fff61e341ba0b3',1,'ttg_parsec::detail::parsec_ttg_task_base_t::copies()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#adddb59904b8ba12da7d9affb3223ea77',1,'ttg_parsec::detail::parsec_ttg_task_t::copies()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a48d23ed3ffd3443ea4e36f771a9b98d9',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::copies()']]], + ['cv_5f_2671',['cv_',['../namespaceboost_1_1callable__traits_1_1detail.html#a488b6e04d3b1a7c42772c85b2725550f',1,'boost::callable_traits::detail']]], + ['cv_5fflags_2672',['cv_flags',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#aa1ce660fb44d538fdd6c911b927c519f',1,'boost::callable_traits::detail::default_callable_traits']]] +]; diff --git a/dox-master/search/variables_3.html b/dox-master/search/variables_3.html new file mode 100644 index 000000000..0d69e7619 --- /dev/null +++ b/dox-master/search/variables_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_3.js b/dox-master/search/variables_3.js new file mode 100644 index 000000000..1b48614a7 --- /dev/null +++ b/dox-master/search/variables_3.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['data_2673',['data',['../structttg_1_1iovec.html#ad747a8f65880d58bcbb2451f0ea236bd',1,'ttg::iovec']]], + ['data_5fcount_2674',['data_count',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#ab96d7df65622a852c8137718e7fc83b9',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['data_5fflags_2675',['data_flags',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a9a31ef114346e939014dd3a91566b2a0',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['debug_5f_2676',['debug_',['../classttg_1_1_debugger.html#a4ab2bc0399844ae88458760b6c3510e8',1,'ttg::Debugger']]], + ['debugger_5fready_5f_2677',['debugger_ready_',['../classttg_1_1_debugger.html#a3be6983006ced530b1eef1de1e667f08',1,'ttg::Debugger']]], + ['decays_5fto_5foutput_5fterminal_5ftuple_5fv_2678',['decays_to_output_terminal_tuple_v',['../namespacettg_1_1meta.html#a2426e54cbcc1532ecbcf5df2d42f8ef7',1,'ttg::meta']]], + ['default_5f_2679',['default_',['../namespaceboost_1_1callable__traits_1_1detail.html#abca1cb7f1b8cc2810f1a989c473d1e6d',1,'boost::callable_traits::detail']]], + ['default_5fdebugger_5f_2680',['default_debugger_',['../classttg_1_1_debugger.html#af4f9da9ae1385992bb40a383413bfe81',1,'ttg::Debugger']]], + ['defer_5fwriter_2681',['defer_writer',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a212d301656a65d79713b17519ee978d9',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['delayed_5funpack_5factions_2682',['delayed_unpack_actions',['../namespacettg__parsec.html#a32a3b01d1073bb1e943c1c5253ee10bb',1,'ttg_parsec']]], + ['dev_5fptr_2683',['dev_ptr',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#ae905905ebcde7a180b5f68f302c549d4',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['dev_5fstate_2684',['dev_state',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#aca7fd7865d28f9fa5913d7f28d4092b9',1,'ttg_parsec::detail::parsec_ttg_task_t::dev_state()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#a61eeea7f1212b8b47876c80c45d3ff3c',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::dev_state()']]], + ['device_2685',['device',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#ac8b782a6e24d74008fd5bf57fc20fac3',1,'ttg_parsec::detail::device_ptr_t']]], + ['dummy_2686',['dummy',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#acf6128e3a3068102f4d3f4cfa56989af',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['dynamic_5fextent_2687',['dynamic_extent',['../namespace_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e.html#ad3333be9a57e35aa367e546176beb477',1,'TCB_SPAN_NAMESPACE_NAME']]] +]; diff --git a/dox-master/search/variables_4.html b/dox-master/search/variables_4.html new file mode 100644 index 000000000..a4b6506bb --- /dev/null +++ b/dox-master/search/variables_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_4.js b/dox-master/search/variables_4.js new file mode 100644 index 000000000..fe6cbb165 --- /dev/null +++ b/dox-master/search/variables_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['exec_5f_2688',['exec_',['../classttg_1_1_debugger.html#a79e4d1603d582ca8bd825b5aa7cf19e0',1,'ttg::Debugger']]], + ['execution_5fspaces_2689',['execution_spaces',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#a6c453fddf1be0282128f8a389e5505e5',1,'ttg::runtime_traits< Runtime::PaRSEC >::execution_spaces()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#a67107a706c1f0281e8ae9eeee590f4d1',1,'ttg::runtime_traits< Runtime::MADWorld >::execution_spaces()']]], + ['exit_5fon_5fsignal_5f_2690',['exit_on_signal_',['../classttg_1_1_debugger.html#a97ce3fe6e14152aab7f4011089437ad2',1,'ttg::Debugger']]], + ['extent_2691',['extent',['../class_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1span.html#a6e271f4e5012e85087a156603411bfd5',1,'TCB_SPAN_NAMESPACE_NAME::span']]] +]; diff --git a/dox-master/search/variables_5.html b/dox-master/search/variables_5.html new file mode 100644 index 000000000..7e345d16c --- /dev/null +++ b/dox-master/search/variables_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_5.js b/dox-master/search/variables_5.js new file mode 100644 index 000000000..b0fa4d7d7 --- /dev/null +++ b/dox-master/search/variables_5.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['finalize_5fcallback_2692',['finalize_callback',['../classttg_1_1_in_terminal_base.html#a5d571ee25683118a0a7531285a484dc2',1,'ttg::InTerminalBase']]], + ['first_5fdevice_5fid_2693',['first_device_id',['../namespacettg__parsec_1_1detail.html#a31448390c01d60752410afc9d34e25eb',1,'ttg_parsec::detail']]], + ['flows_2694',['flows',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a72f860d8669c2f8fbf7f3f6af5969584',1,'ttg_parsec::detail::device_ptr_t']]], + ['fn_5fid_2695',['fn_id',['../structttg__parsec_1_1msg__header__t.html#a982d70820f975307a0930da4b027f1f6',1,'ttg_parsec::msg_header_t']]] +]; diff --git a/dox-master/search/variables_6.html b/dox-master/search/variables_6.html new file mode 100644 index 000000000..7d48e75e2 --- /dev/null +++ b/dox-master/search/variables_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_6.js b/dox-master/search/variables_6.js new file mode 100644 index 000000000..30fc182b4 --- /dev/null +++ b/dox-master/search/variables_6.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['get_2696',['get',['../structttg_1_1detail_1_1_container_wrapper.html#ad783636e739e3b08a25547d78238ad73',1,'ttg::detail::ContainerWrapper::get()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html#a7e109b0c09c512311e325eba0c53dbb9',1,'ttg::detail::ContainerWrapper< void, valueT >::get()'],['../structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html#a9b2a30ff5f391cb82c754287455c57ee',1,'ttg::detail::ContainerWrapper< keyT, void >::get()'],['../structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html#a48c6f6603da70ba03201bd24f90d63d7',1,'ttg::detail::ContainerWrapper< ttg::Void, valueT >::get()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html#a72a0bb5a9e83adff50f74aa07edfe1b3',1,'ttg::detail::ContainerWrapper< void, void >::get()']]], + ['goal_2697',['goal',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html#a98f2cd365ce06df8e171fc3b2bc72956',1,'ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t']]], + ['gpu_5ftask_2698',['gpu_task',['../structttg__parsec_1_1detail_1_1device__ptr__t.html#a09836520cfe65fba3601e3a604d50020',1,'ttg_parsec::detail::device_ptr_t']]] +]; diff --git a/dox-master/search/variables_7.html b/dox-master/search/variables_7.html new file mode 100644 index 000000000..5c2634092 --- /dev/null +++ b/dox-master/search/variables_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_7.js b/dox-master/search/variables_7.js new file mode 100644 index 000000000..252e3ac33 --- /dev/null +++ b/dox-master/search/variables_7.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['handle_5fsigint_5f_2699',['handle_sigint_',['../classttg_1_1_debugger.html#a72c43bd0013252744e64cd77d4ecbed4',1,'ttg::Debugger']]], + ['has_5ffreestanding_5fboost_5fserialize_5fwith_5fversion_5fv_2700',['has_freestanding_boost_serialize_with_version_v',['../namespacettg_1_1detail.html#aca0a6c553e20f672dedd33f5ae2dbea8',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5fv_2701',['has_freestanding_serialize_v',['../namespacettg_1_1detail.html#af617582b4a28864a1712f6c07fa367fa',1,'ttg::detail']]], + ['has_5ffreestanding_5fserialize_5fwith_5fversion_5fv_2702',['has_freestanding_serialize_with_version_v',['../namespacettg_1_1detail.html#a8e4169ab044608413a424e6bd63fafe2',1,'ttg::detail']]], + ['has_5fmember_5ffunction_5fhash_5fv_2703',['has_member_function_hash_v',['../namespacettg_1_1meta.html#a45554104316cd10ac679432f96aa4eee',1,'ttg::meta']]], + ['has_5fmember_5fload_5fwith_5fversion_5fv_2704',['has_member_load_with_version_v',['../namespacettg_1_1detail.html#a8b18bba953596d3d309deb142672fcf8',1,'ttg::detail']]], + ['has_5fmember_5fqualifiers_5fv_2705',['has_member_qualifiers_v',['../namespaceboost_1_1callable__traits.html#a5e5a45b0322da48a5ed3f484c903bfa6',1,'boost::callable_traits']]], + ['has_5fmember_5fsave_5fwith_5fversion_5fv_2706',['has_member_save_with_version_v',['../namespacettg_1_1detail.html#ad196693927e37fb7288ac1a78d9ebed7',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5fv_2707',['has_member_serialize_v',['../namespacettg_1_1detail.html#a8e165b39ef30e8301e89e5bd1f6720c3',1,'ttg::detail']]], + ['has_5fmember_5fserialize_5fwith_5fversion_5fv_2708',['has_member_serialize_with_version_v',['../namespacettg_1_1detail.html#a312ab9e00f4b3cd57301ff0aa244451c',1,'ttg::detail']]], + ['has_5fttg_5fhash_5fspecialization_5fv_2709',['has_ttg_hash_specialization_v',['../namespacettg_1_1meta.html#af1b06006615ea4bf69412c4db78dbb5e',1,'ttg::meta']]], + ['has_5fvarargs_5fv_2710',['has_varargs_v',['../namespaceboost_1_1callable__traits.html#adaaaa79a0595f87564176fbf18d7d377',1,'boost::callable_traits']]], + ['has_5fvoid_5freturn_5fv_2711',['has_void_return_v',['../namespaceboost_1_1callable__traits.html#acdf7667c88ee53ac969a56c6c5989869',1,'boost::callable_traits']]], + ['have_5fcuda_5fop_2712',['have_cuda_op',['../class_callable_wrap_t_t_args.html#adf81238f0d5759577de355ea0406ab28',1,'CallableWrapTTArgs']]], + ['have_5fhip_5fop_2713',['have_hip_op',['../class_callable_wrap_t_t_args.html#ada357f9973761ab946e3abb32678cfe3',1,'CallableWrapTTArgs']]], + ['have_5flevel_5fzero_5fop_2714',['have_level_zero_op',['../class_callable_wrap_t_t_args.html#a733f75c100b3bc1a04931a3d409d6bba',1,'CallableWrapTTArgs']]] +]; diff --git a/dox-master/search/variables_8.html b/dox-master/search/variables_8.html new file mode 100644 index 000000000..dc9ec54a5 --- /dev/null +++ b/dox-master/search/variables_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_8.js b/dox-master/search/variables_8.js new file mode 100644 index 000000000..21e4521ac --- /dev/null +++ b/dox-master/search/variables_8.js @@ -0,0 +1,63 @@ +var searchData= +[ + ['in_5fdata_5fcount_2715',['in_data_count',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a5fd137a6889b7ab10e5cdb579b888169',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['inline_5fdata_2716',['inline_data',['../structttg__parsec_1_1msg__header__t.html#aaafb324de862736857ded5fcd3260dc8',1,'ttg_parsec::msg_header_t']]], + ['is_5fa_5fterminal_2717',['is_a_terminal',['../classttg_1_1_terminal_base.html#a05f429f32a226786eedd6f3cbf3670f1',1,'ttg::TerminalBase']]], + ['is_5fall_5fvoid_5fv_2718',['is_all_void_v',['../namespacettg_1_1meta.html#af01cf046e0d5ee1f8d17438db0623d25',1,'ttg::meta']]], + ['is_5fall_5fvoid_5fv_2719',['is_all_Void_v',['../namespacettg_1_1meta.html#a707e4be405835a9d31f3ea7815966ef4',1,'ttg::meta']]], + ['is_5fan_5finput_5fterminal_2720',['is_an_input_terminal',['../classttg_1_1_in_terminal_base.html#a9bc3f52ca95a47afe13bc6f21f6ef5d5',1,'ttg::InTerminalBase::is_an_input_terminal()'],['../classttg_1_1_in.html#a4883cdcc912b3d1679fae95715ab0576',1,'ttg::In::is_an_input_terminal()']]], + ['is_5fan_5foutput_5fterminal_2721',['is_an_output_terminal',['../classttg_1_1_out_terminal_base.html#a064e921bb0c7f7c7851212291f0aeb2f',1,'ttg::OutTerminalBase::is_an_output_terminal()'],['../classttg_1_1_out.html#a0b0d6ec3edafe6e5fdf02422266b07e6',1,'ttg::Out::is_an_output_terminal()']]], + ['is_5fany_5fnonconst_5flvalue_5freference_5fv_2722',['is_any_nonconst_lvalue_reference_v',['../namespacettg_1_1meta.html#a1cb29d0cd1d33c2a8b5470570df16d94',1,'ttg::meta']]], + ['is_5fany_5fvoid_5fv_2723',['is_any_Void_v',['../namespacettg_1_1meta.html#a86086d0b5997d1ac2e5c9bb4b6fa4543',1,'ttg::meta']]], + ['is_5fany_5fvoid_5fv_2724',['is_any_void_v',['../namespacettg_1_1meta.html#a5eb768bc7b2ec9d0e5efe27578e77b06',1,'ttg::meta']]], + ['is_5farchive_5fv_2725',['is_archive_v',['../namespacettg_1_1detail.html#acf0379ce0da7614205e6fdf1d30d1d7f',1,'ttg::detail']]], + ['is_5fboost_5farchive_5fv_2726',['is_boost_archive_v',['../namespacettg_1_1detail.html#a362322a45c610c982dcce45079339f07',1,'ttg::detail']]], + ['is_5fboost_5fbuffer_5fserializable_5fv_2727',['is_boost_buffer_serializable_v',['../namespacettg_1_1detail.html#ab8f4fb861a4fbacf7069f37036d62d48',1,'ttg::detail']]], + ['is_5fboost_5fdefault_5fbuffer_5fserializable_5fv_2728',['is_boost_default_buffer_serializable_v',['../namespacettg_1_1detail.html#a83b3f06f3f7ec77e50daad56e6be032c',1,'ttg::detail']]], + ['is_5fboost_5finput_5farchive_5fv_2729',['is_boost_input_archive_v',['../namespacettg_1_1detail.html#ab30f24d7f23e2cc70a799fe12d36fe5e',1,'ttg::detail']]], + ['is_5fboost_5foutput_5farchive_5fv_2730',['is_boost_output_archive_v',['../namespacettg_1_1detail.html#a0f47f4e1605e627e8c4691c89add7fc2',1,'ttg::detail']]], + ['is_5fboost_5fuser_5fbuffer_5fserializable_5fv_2731',['is_boost_user_buffer_serializable_v',['../namespacettg_1_1detail.html#ab16cb565efa5ff0d14c9c58daaf3ea8d',1,'ttg::detail']]], + ['is_5fbuffer_5fv_2732',['is_buffer_v',['../namespacettg_1_1meta.html#aa4af8b1185f7b52614853568d936ce39',1,'ttg::meta']]], + ['is_5fconst_5flvalue_5freference_5fv_2733',['is_const_lvalue_reference_v',['../namespacettg_1_1meta.html#a8c86e6b5fba2647d93d40348d4a01f0a',1,'ttg::meta']]], + ['is_5fconst_5fmember_5fv_2734',['is_const_member_v',['../namespaceboost_1_1callable__traits.html#ac512eddc567545283a482d972a647fd8',1,'boost::callable_traits']]], + ['is_5fdevicescratch_5fv_2735',['is_devicescratch_v',['../namespacettg_1_1meta.html#a8a17483e21367e205a2a508c9d32db64',1,'ttg::meta']]], + ['is_5ffirst_2736',['is_first',['../structttg__parsec_1_1detail_1_1reducer__task__t.html#ab7908c07423e97210e5cfc67740da850',1,'ttg_parsec::detail::reducer_task_t']]], + ['is_5fgeneric_5fcallable_5fv_2737',['is_generic_callable_v',['../namespacettg_1_1meta.html#a95d2411b83f468c150b321b3f1a966b2',1,'ttg::meta']]], + ['is_5finput_5farchive_5fv_2738',['is_input_archive_v',['../namespacettg_1_1detail.html#a5efefeda1267b372e1a7cdfe903beb52',1,'ttg::detail']]], + ['is_5finput_5fterminal_5fv_2739',['is_input_terminal_v',['../namespacettg_1_1meta.html#a832a9ea7ec8a3c5f0dbc5bd2fb744bba',1,'ttg::meta']]], + ['is_5finput_5fterminal_5fv_3c_20in_3c_20keyt_2c_20valuet_20_3e_20_3e_2740',['is_input_terminal_v< In< keyT, valueT > >',['../namespacettg_1_1meta.html#a5071fb9e52acb6192a97692b475910d7',1,'ttg::meta']]], + ['is_5finput_5fterminal_5fv_3c_20interminalbase_3c_20keyt_20_3e_20_3e_2741',['is_input_terminal_v< InTerminalBase< keyT > >',['../namespacettg_1_1meta.html#ac7408db4a2fc92c98e0a8d30e16ddbab',1,'ttg::meta']]], + ['is_5finvocable_5fr_5fv_2742',['is_invocable_r_v',['../namespaceboost_1_1callable__traits.html#a50581215c00d5bac274f66fff94309ea',1,'boost::callable_traits']]], + ['is_5finvocable_5fv_2743',['is_invocable_v',['../namespaceboost_1_1callable__traits.html#a7390ea84b137bf90c024360dce0b8fac',1,'boost::callable_traits']]], + ['is_5flast_5fvoid_5fv_2744',['is_last_void_v',['../namespacettg_1_1meta.html#a8b3318a1a4b898cf6ae258b405ed4194',1,'ttg::meta']]], + ['is_5flvalue_5freference_5fmember_5fv_2745',['is_lvalue_reference_member_v',['../namespaceboost_1_1callable__traits.html#a0a91da774851046a8fe6cbb228eaae41',1,'boost::callable_traits']]], + ['is_5fmadness_5farchive_5fv_2746',['is_madness_archive_v',['../namespacettg_1_1detail.html#a8550764631e467133b4690cd6c8d259f',1,'ttg::detail']]], + ['is_5fmadness_5fbuffer_5fserializable_5fv_2747',['is_madness_buffer_serializable_v',['../namespacettg_1_1detail.html#ae3e64be3d0b56b8a6cb524f9e1112a39',1,'ttg::detail']]], + ['is_5fmadness_5finput_5farchive_5fv_2748',['is_madness_input_archive_v',['../namespacettg_1_1detail.html#ab1dd9e28d01161681319428438979f6b',1,'ttg::detail']]], + ['is_5fmadness_5foutput_5farchive_5fv_2749',['is_madness_output_archive_v',['../namespacettg_1_1detail.html#a4938112d970a791c439489022c29c83b',1,'ttg::detail']]], + ['is_5fmadness_5fuser_5fbuffer_5fserializable_5fv_2750',['is_madness_user_buffer_serializable_v',['../namespacettg_1_1detail.html#ace2855581859b2bd5d73fb6fabfc6f01',1,'ttg::detail']]], + ['is_5fmemcpyable_5foverride_5fv_2751',['is_memcpyable_override_v',['../namespacettg_1_1detail.html#a3dcd86ceb7c1d16372e5708930b9a16f',1,'ttg::detail']]], + ['is_5fmemcpyable_5fv_2752',['is_memcpyable_v',['../namespacettg_1_1detail.html#ab8efb3c8c3e38f5a523dc091543a6eab',1,'ttg::detail']]], + ['is_5fnoexcept_5fv_2753',['is_noexcept_v',['../namespaceboost_1_1callable__traits.html#a85507a546c08e2bd50d4c048a7a3e66c',1,'boost::callable_traits']]], + ['is_5fnonconst_5flvalue_5freference_5fto_5foutput_5fterminal_5ftuple_5fv_2754',['is_nonconst_lvalue_reference_to_output_terminal_tuple_v',['../namespacettg_1_1meta.html#aaef59a95b406dbb7da071eefd4d6d086',1,'ttg::meta']]], + ['is_5fnonconst_5flvalue_5freference_5fv_2755',['is_nonconst_lvalue_reference_v',['../namespacettg_1_1meta.html#a8b9d4a35fd16b945020d687d46771e88',1,'ttg::meta']]], + ['is_5fnone_5fvoid_5fv_2756',['is_none_void_v',['../namespacettg_1_1meta.html#ae18e5e511db800c600395567e28f604b',1,'ttg::meta']]], + ['is_5fnone_5fvoid_5fv_2757',['is_none_Void_v',['../namespacettg_1_1meta.html#a02a11e1d2f7854dd18df8a99fbcea27f',1,'ttg::meta']]], + ['is_5fnonvoid_5fv_2758',['is_nonvoid_v',['../namespacettg_1_1meta.html#abccca66c39e0e9e668988cba0b432e06',1,'ttg::meta']]], + ['is_5foutput_5farchive_5fv_2759',['is_output_archive_v',['../namespacettg_1_1detail.html#a7756bc04fe762010903ac072565087c8',1,'ttg::detail']]], + ['is_5foutput_5fterminal_5ftuple_5fv_2760',['is_output_terminal_tuple_v',['../namespacettg_1_1meta.html#ab76a47e4b843374dbcb9d54259507f64',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5fv_2761',['is_output_terminal_v',['../namespacettg_1_1meta.html#a029d7be23f909676079eb025eb1c1670',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5fv_3c_20out_3c_20keyt_2c_20valuet_20_3e_20_3e_2762',['is_output_terminal_v< Out< keyT, valueT > >',['../namespacettg_1_1meta.html#a96b9c7eb626b45588a342386cb943c4f',1,'ttg::meta']]], + ['is_5foutput_5fterminal_5fv_3c_20outterminalbase_3c_20keyt_20_3e_20_3e_2763',['is_output_terminal_v< OutTerminalBase< keyT > >',['../namespacettg_1_1meta.html#a9ebde8147419e33d53ccbd7621b8e0f5',1,'ttg::meta']]], + ['is_5fptr_5fv_2764',['is_ptr_v',['../namespacettg_1_1meta.html#aa65ca5614b2054d2da9a2878c73fed1c',1,'ttg::meta']]], + ['is_5fpull_5fterminal_2765',['is_pull_terminal',['../classttg_1_1_terminal_base.html#a23e5cfafff297e43b623da0b7d609c1b',1,'ttg::TerminalBase']]], + ['is_5freference_5fmember_5fv_2766',['is_reference_member_v',['../namespaceboost_1_1callable__traits.html#aa3d25cedf9ba148f7344e3720c0e2fd5',1,'boost::callable_traits']]], + ['is_5frvalue_5freference_5fmember_5fv_2767',['is_rvalue_reference_member_v',['../namespaceboost_1_1callable__traits.html#a02abfeadb1cd8d1ab2297037e3597e83',1,'boost::callable_traits']]], + ['is_5fterminal_5fv_2768',['is_terminal_v',['../namespacettg_1_1meta.html#a48e4966554fecb3c6ba6bb7f096bb91f',1,'ttg::meta']]], + ['is_5ftransaction_5fsafe_5fv_2769',['is_transaction_safe_v',['../namespaceboost_1_1callable__traits.html#a65daffbfa525decb735b20758fbe5b15',1,'boost::callable_traits']]], + ['is_5ftypelist_5fv_2770',['is_typelist_v',['../namespacettg_1_1meta.html#a7da41ffccb626b36b66759047b9f907b',1,'ttg::meta']]], + ['is_5fuser_5fbuffer_5fserializable_5fv_2771',['is_user_buffer_serializable_v',['../namespacettg_1_1detail.html#abd3e84288cf7ea855b0b0d5f61b5fd06',1,'ttg::detail']]], + ['is_5fvoid_5fv_2772',['is_void_v',['../namespacettg_1_1meta.html#afe10689bc6c9d224a03b330a47b591ec',1,'ttg::meta']]], + ['is_5fvoid_5fv_2773',['is_Void_v',['../namespacettg_1_1meta.html#a0e641de4b056f948d513ab64f9b7a592',1,'ttg::meta']]], + ['is_5fvolatile_5fmember_5fv_2774',['is_volatile_member_v',['../namespaceboost_1_1callable__traits.html#afc25c8585c49b3a3b126265cff5fd060',1,'boost::callable_traits']]] +]; diff --git a/dox-master/search/variables_9.html b/dox-master/search/variables_9.html new file mode 100644 index 000000000..7b0147509 --- /dev/null +++ b/dox-master/search/variables_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_9.js b/dox-master/search/variables_9.js new file mode 100644 index 000000000..2c9d0d5d5 --- /dev/null +++ b/dox-master/search/variables_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['key_2775',['key',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#abe05b86a2a3cf40014238087a9fcd471',1,'ttg_parsec::detail::parsec_ttg_task_t']]], + ['key_5fhash_2776',['key_hash',['../classttg__madness_1_1_t_t.html#ac5cea6902485c47e7a701ecb9c16dd1e',1,'ttg_madness::TT']]], + ['key_5foffset_2777',['key_offset',['../structttg__parsec_1_1msg__header__t.html#ac5d46856c8ccae40ce1912d0d82ffe9f',1,'ttg_parsec::msg_header_t']]] +]; diff --git a/dox-master/search/variables_a.html b/dox-master/search/variables_a.html new file mode 100644 index 000000000..52a724d19 --- /dev/null +++ b/dox-master/search/variables_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_a.js b/dox-master/search/variables_a.js new file mode 100644 index 000000000..967620431 --- /dev/null +++ b/dox-master/search/variables_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['lref_5f_2778',['lref_',['../namespaceboost_1_1callable__traits_1_1detail.html#a67edbd19fbfb6d41de3a6007ca978325',1,'boost::callable_traits::detail']]] +]; diff --git a/dox-master/search/variables_b.html b/dox-master/search/variables_b.html new file mode 100644 index 000000000..f376b27af --- /dev/null +++ b/dox-master/search/variables_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_b.js b/dox-master/search/variables_b.js new file mode 100644 index 000000000..b415b7977 --- /dev/null +++ b/dox-master/search/variables_b.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['m_5fdata_2779',['m_data',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#accbe20cc9561e78530c087fb427c539e',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['m_5fdev_5fdata_2780',['m_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a3b99e13084ee29575f1b52151aefd7d4',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fdev_5fptr_2781',['m_dev_ptr',['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#afdaecb40d240da0068498555c3d6adb8',1,'ttg_parsec::detail::device_state_t< true >']]], + ['m_5fflows_2782',['m_flows',['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#aef423623ce1a64b240889768b2a85574',1,'ttg_parsec::detail::device_state_t< true >']]], + ['m_5fiovecs_2783',['m_iovecs',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a8516cf46144546f670d617c876add897',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fnext_5ftask_2784',['m_next_task',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a0bdd5cca6246ca2f04d754a2fe293b76',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fnum_5fdev_5fdata_2785',['m_num_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a5b48f08aca743d7fd064de9bd6219b89',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5freaders_2786',['m_readers',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a484bce976069d51720430661c65fa21a',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5frefs_2787',['m_refs',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#ad0f88bfd79944a6692af2adf473d1d97',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fsingle_5fdev_5fdata_2788',['m_single_dev_data',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a2a8fa91be91c96263b2ad581e86561a7',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['m_5fttg_5fcopy_2789',['m_ttg_copy',['../structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html#aa3bcd3416233697458f4bfbf17fb409a',1,'ttg_parsec::detail::ttg_parsec_data_wrapper_t']]], + ['m_5fvalue_2790',['m_value',['../structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html#a35579d20a30c554f0a8ad0790137cf08',1,'ttg_parsec::detail::ttg_data_value_copy_t']]], + ['max_5findex_2791',['max_index',['../structttg_1_1_multi_index.html#aa4eee95d7a30630a54d8062155090972',1,'ttg::MultiIndex']]], + ['max_5findex_5fsquare_2792',['max_index_square',['../structttg_1_1_multi_index.html#a5296bb5e9c6e30ba570868f239b0e244',1,'ttg::MultiIndex']]], + ['max_5finline_5fsize_2793',['max_inline_size',['../namespacettg__parsec_1_1detail.html#a3ccdf968e3332a3d0e3dcf5dce2c9f29',1,'ttg_parsec::detail']]], + ['max_5fpayload_5fsize_2794',['max_payload_size',['../structttg__parsec_1_1detail_1_1msg__t.html#a7b9825fb1874f8f3d6f444c1c7663d37',1,'ttg_parsec::detail::msg_t']]], + ['maxnumevents_2795',['MaxNumEvents',['../structttg_1_1resumable__task__state.html#ad407611387fcf0a390e26bb533a14465',1,'ttg::resumable_task_state']]], + ['mutable_5ftag_2796',['mutable_tag',['../structttg__parsec_1_1detail_1_1ttg__data__copy__t.html#a16e8fd902c4386fd197c74bfca6e3f21',1,'ttg_parsec::detail::ttg_data_copy_t']]], + ['mysigs_5f_2797',['mysigs_',['../classttg_1_1_debugger.html#a1d86153ebe39b63fe7621caad42604c6',1,'ttg::Debugger']]] +]; diff --git a/dox-master/search/variables_c.html b/dox-master/search/variables_c.html new file mode 100644 index 000000000..6019eba96 --- /dev/null +++ b/dox-master/search/variables_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_c.js b/dox-master/search/variables_c.js new file mode 100644 index 000000000..9d4f16c04 --- /dev/null +++ b/dox-master/search/variables_c.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['name_2798',['name',['../structttg__data__descriptor.html#ac05a0d47d308fd79f41b07858aecfcfa',1,'ttg_data_descriptor']]], + ['num_5fbytes_2799',['num_bytes',['../structttg_1_1iovec.html#a40396049928f600014b24f3eb6b2f735',1,'ttg::iovec']]], + ['num_5fcopies_2800',['num_copies',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#a00ed31ef61f99603a990e9f62f3938dd',1,'ttg_parsec::detail::parsec_ttg_task_t']]], + ['num_5fexecution_5fspaces_2801',['num_execution_spaces',['../structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html#ae56a5b659392c1c73b4b58708a10fe23',1,'ttg::runtime_traits< Runtime::PaRSEC >::num_execution_spaces()'],['../structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html#a779ab7ef297969d1e2aebb515306bb45',1,'ttg::runtime_traits< Runtime::MADWorld >::num_execution_spaces()']]], + ['num_5fflows_2802',['num_flows',['../structttg__parsec_1_1detail_1_1device__state__t.html#ab3b9d97a977027c6fefac52619e217eb',1,'ttg_parsec::detail::device_state_t::num_flows()'],['../structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html#ae9316038a764631c24cd796c6fdae9d0',1,'ttg_parsec::detail::device_state_t< true >::num_flows()']]], + ['num_5fiovecs_2803',['num_iovecs',['../structttg__parsec_1_1msg__header__t.html#aaae9f758860826a94fdb65c3ee7efb1c',1,'ttg_parsec::msg_header_t']]], + ['num_5fkeys_2804',['num_keys',['../structttg__parsec_1_1msg__header__t.html#a053486ef0098af65981d2efd950246d1',1,'ttg_parsec::msg_header_t']]], + ['num_5fstreams_2805',['num_streams',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html#aa65b39128b4b1eef80eab790c55ca429',1,'ttg_parsec::detail::parsec_ttg_task_t::num_streams()'],['../structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html#aa4c65b546fcb70d39f6867f731e76f77',1,'ttg_parsec::detail::parsec_ttg_task_t< TT, true >::num_streams()']]], + ['numinedges_2806',['numinedges',['../classttg__madness_1_1_t_t.html#a9a95b88a9b83ebf16af8757a28430d3f',1,'ttg_madness::TT']]], + ['numins_2807',['numins',['../classttg__madness_1_1_t_t.html#aae9616ec4d0cf2e9d15985eb0dde1acb',1,'ttg_madness::TT::numins()'],['../classttg_1_1_t_t_g.html#aadd01091767986ac67fdc694472ac9f1',1,'ttg::TTG::numins()']]], + ['numinvals_2808',['numinvals',['../classttg__parsec_1_1_t_t.html#a8685dcdca4bc7cbe65a8da0d4ed1fa42',1,'ttg_parsec::TT']]], + ['numouts_2809',['numouts',['../classttg__madness_1_1_t_t.html#ae8681980872a6ef67c137c13c262ff1d',1,'ttg_madness::TT::numouts()'],['../classttg_1_1_t_t_g.html#ad4c120830f50a7b026e7fd353e1d5294',1,'ttg::TTG::numouts()']]], + ['nwatchpoints_5fper_5fthread_2810',['nwatchpoints_per_thread',['../classttg_1_1detail_1_1_memory_watchpoint__x86__64_1_1_pool.html#a76c247b4e6563b5ba6c1ba99ae3b3d0d',1,'ttg::detail::MemoryWatchpoint_x86_64::Pool']]] +]; diff --git a/dox-master/search/variables_d.html b/dox-master/search/variables_d.html new file mode 100644 index 000000000..f61ae7511 --- /dev/null +++ b/dox-master/search/variables_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_d.js b/dox-master/search/variables_d.js new file mode 100644 index 000000000..d026db496 --- /dev/null +++ b/dox-master/search/variables_d.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['op_5fid_2811',['op_id',['../structttg__parsec_1_1msg__header__t.html#aaad08d93667c9a356bdc820a7144bdab',1,'ttg_parsec::msg_header_t']]], + ['owner_2812',['owner',['../structttg_1_1detail_1_1_container_wrapper.html#a4016a09f0036742915e3a3badca4c6c6',1,'ttg::detail::ContainerWrapper::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html#a4fd12add577d7d30cf0d0de92f5f2c37',1,'ttg::detail::ContainerWrapper< void, valueT >::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html#abf988afb36dde4232ffc56179243731f',1,'ttg::detail::ContainerWrapper< keyT, void >::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html#a0e28a9279d949e34d66e7c053f5ea4e7',1,'ttg::detail::ContainerWrapper< ttg::Void, valueT >::owner()'],['../structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html#ae20db2bc31689eaa4f04a34c66607cee',1,'ttg::detail::ContainerWrapper< void, void >::owner()']]] +]; diff --git a/dox-master/search/variables_e.html b/dox-master/search/variables_e.html new file mode 100644 index 000000000..7bfd37215 --- /dev/null +++ b/dox-master/search/variables_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_e.js b/dox-master/search/variables_e.js new file mode 100644 index 000000000..40a582b36 --- /dev/null +++ b/dox-master/search/variables_e.js @@ -0,0 +1,26 @@ +var searchData= +[ + ['pack_5fpayload_2813',['pack_payload',['../structttg__data__descriptor.html#a73880eb0f436bd8878456ef640964310',1,'ttg_data_descriptor']]], + ['param_5fid_2814',['param_id',['../structttg__parsec_1_1msg__header__t.html#ad088bf7a1f8d3ea34cd89588730c38bd',1,'ttg_parsec::msg_header_t']]], + ['parent_5ftask_2815',['parent_task',['../structttg__parsec_1_1detail_1_1reducer__task__t.html#a11d9a765a35485aea7dd86dcd644832f',1,'ttg_parsec::detail::reducer_task_t']]], + ['parsec_5ftask_2816',['parsec_task',['../structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html#a2391ed321069d5b36519d976a4ad619a',1,'ttg_parsec::detail::parsec_ttg_task_base_t']]], + ['parsec_5ftaskclass_5fparam0_2817',['parsec_taskclass_param0',['../namespacettg__parsec_1_1detail.html#afca9439526c6ab1b79b0ab0335f8203b',1,'ttg_parsec::detail']]], + ['parsec_5ftaskclass_5fparam1_2818',['parsec_taskclass_param1',['../namespacettg__parsec_1_1detail.html#a518c61806e589ac75b74057a3f0b28c4',1,'ttg_parsec::detail']]], + ['parsec_5ftaskclass_5fparam2_2819',['parsec_taskclass_param2',['../namespacettg__parsec_1_1detail.html#aaecb250ae0731985c26c4ba3bb3eb943',1,'ttg_parsec::detail']]], + ['parsec_5ftaskclass_5fparam3_2820',['parsec_taskclass_param3',['../namespacettg__parsec_1_1detail.html#af6507bd3e3af9129c2ecb206cfca1e72',1,'ttg_parsec::detail']]], + ['parsec_5fttg_5fcaller_2821',['parsec_ttg_caller',['../namespacettg__parsec_1_1detail.html#adea6e8fb585cf518e803805499b16869',1,'ttg_parsec::detail']]], + ['parsec_5fttg_5fmax_5fam_5fsize_2822',['PARSEC_TTG_MAX_AM_SIZE',['../namespacettg__parsec_1_1detail.html#a7e588351929c6eb7fd05ee067aa59eda',1,'ttg_parsec::detail']]], + ['payload_5fsize_2823',['payload_size',['../structttg__data__descriptor.html#aaf8e28bf8ec6ee0a2852ebd6c5beff6a',1,'ttg_data_descriptor']]], + ['pbase_5fderived_5ffrom_5fstdstreambuf_2824',['pbase_derived_from_stdstreambuf',['../classttg_1_1detail_1_1boost__optimized__iarchive.html#aede0c519ab40e239e49c5512a2f3cd1f',1,'ttg::detail::boost_optimized_iarchive::pbase_derived_from_stdstreambuf()'],['../classttg_1_1detail_1_1boost__optimized__oarchive.html#a5c8c6169be3bab9d374f1c56dac74c17',1,'ttg::detail::boost_optimized_oarchive::pbase_derived_from_stdstreambuf()']]], + ['prefix_5f_2825',['prefix_',['../classttg_1_1_debugger.html#ab46dd5a33dcac2b402f9830f4ef7ff62',1,'ttg::Debugger']]], + ['print_2826',['print',['../structttg__data__descriptor.html#aea3c37f07e270d58aa7542109cab4b8d',1,'ttg_data_descriptor']]], + ['print_5fseparator_2827',['print_separator',['../namespacettg.html#aa57f00b3a16b9fe8994078edb66ced24',1,'ttg']]], + ['print_5fseq_5fbegin_2828',['print_seq_begin',['../namespacettg.html#ae36c92288ec3e59936a61f688f2f7982',1,'ttg']]], + ['print_5fseq_5fend_2829',['print_seq_end',['../namespacettg.html#adb5fe5884bc96ef0e390206c5fdc52e4',1,'ttg']]], + ['print_5fseq_5fseparator_2830',['print_seq_separator',['../namespacettg.html#a001321e42bab8b9f07ea166da9034fff',1,'ttg']]], + ['probe_5fall_5fv_2831',['probe_all_v',['../namespacettg_1_1meta.html#a6809e9edb959658388fc55c2c28e9484',1,'ttg::meta']]], + ['probe_5fany_5fv_2832',['probe_any_v',['../namespacettg_1_1meta.html#a63aa1a1397bd781ec8b3ca80c9e64c64',1,'ttg::meta']]], + ['probe_5ffirst_5fv_2833',['probe_first_v',['../namespacettg_1_1meta.html#a9f14059c69f74f3a81e07042b36a6156',1,'ttg::meta']]], + ['probe_5flast_5fv_2834',['probe_last_v',['../namespacettg_1_1meta.html#a1ec850718d587be5b61845eaa8f55528',1,'ttg::meta']]], + ['ptr_2835',['ptr',['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html#a9e1669b53858975661dacd4eae3c5c4b',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::ptr()'],['../struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html#ac06bc5b64bafee66082302031c13eca0',1,'TCB_SPAN_NAMESPACE_NAME::detail::span_storage::ptr()']]] +]; diff --git a/dox-master/search/variables_f.html b/dox-master/search/variables_f.html new file mode 100644 index 000000000..d97920d08 --- /dev/null +++ b/dox-master/search/variables_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/dox-master/search/variables_f.js b/dox-master/search/variables_f.js new file mode 100644 index 000000000..6ba90d357 --- /dev/null +++ b/dox-master/search/variables_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['q_5fflags_2836',['q_flags',['../structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html#afac9c89ab616da0956d713f1a2ec73eb',1,'boost::callable_traits::detail::default_callable_traits']]] +]; diff --git a/dox-master/serialization_2std_2pair_8h.html b/dox-master/serialization_2std_2pair_8h.html new file mode 100644 index 000000000..373f99c6c --- /dev/null +++ b/dox-master/serialization_2std_2pair_8h.html @@ -0,0 +1,127 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/pair.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pair.h File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/serialization_2std_2pair_8h_source.html b/dox-master/serialization_2std_2pair_8h_source.html new file mode 100644 index 000000000..233499a2a --- /dev/null +++ b/dox-master/serialization_2std_2pair_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/pair.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pair.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 5/11/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_STD_PAIR_H
    +
    6 #define TTG_SERIALIZATION_STD_PAIR_H
    +
    7 
    + +
    9 
    +
    10 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    11 // MADNESS supports std::pair serialization by default
    +
    12 #endif
    +
    13 
    +
    14 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    15 #include <boost/serialization/utility.hpp>
    +
    16 
    +
    17 namespace ttg::detail {
    +
    18  template <typename Archive, typename T1, typename T2>
    +
    19  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, std::pair<T1, T2>> =
    +
    20  is_boost_serializable_v<Archive, T1>&& is_boost_serializable_v<Archive, T2>;
    +
    21  template <typename Archive, typename T1, typename T2>
    +
    22  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, const std::pair<T1, T2>> =
    +
    23  is_boost_serializable_v<Archive, const T1>&& is_boost_serializable_v<Archive, const T2>;
    +
    24 } // namespace ttg::detail
    +
    25 
    +
    26 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    27 
    +
    28 #endif // TTG_SERIALIZATION_STD_PAIR_H
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/serialization_8h.html b/dox-master/serialization_8h.html new file mode 100644 index 000000000..b50f55034 --- /dev/null +++ b/dox-master/serialization_8h.html @@ -0,0 +1,128 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    serialization.h File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/serialization_8h_source.html b/dox-master/serialization_8h_source.html new file mode 100644 index 000000000..141baf4e8 --- /dev/null +++ b/dox-master/serialization_8h_source.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    serialization.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 5/3/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_H
    +
    6 #define TTG_SERIALIZATION_H
    +
    7 
    + +
    9 
    + +
    11 
    +
    12 #endif // TTG_SERIALIZATION_H
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/set__function__qualifiers_8hpp.html b/dox-master/set__function__qualifiers_8hpp.html new file mode 100644 index 000000000..c33048f20 --- /dev/null +++ b/dox-master/set__function__qualifiers_8hpp.html @@ -0,0 +1,202 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/set_function_qualifiers.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    set_function_qualifiers.hpp File Reference
    +
    +
    + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::set_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >
     
    struct  boost::callable_traits::detail::set_varargs_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + +

    +Macros

    #define BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(QUAL)
     
    + + + + + + + +

    +Typedefs

    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using boost::callable_traits::detail::set_function_qualifiers = typename set_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept, typename... Ts>
    using boost::callable_traits::detail::set_varargs_function_qualifiers = typename set_varargs_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type
     
    + + + + + + + + + + + + + + + +

    +Functions

     boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const)
     
    BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS & boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (&&);BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(const &
     
     boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const &&)
     
     boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (volatile &)
     
     boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (volatile &&)
     
     boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const volatile &)
     
     boost::callable_traits::detail::BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS (const volatile &&)
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS

    + +
    +
    + + + + + + + + +
    #define BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS( QUAL)
    +
    + +

    Definition at line 14 of file set_function_qualifiers.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/set__function__qualifiers_8hpp_source.html b/dox-master/set__function__qualifiers_8hpp_source.html new file mode 100644 index 000000000..6086368b6 --- /dev/null +++ b/dox-master/set__function__qualifiers_8hpp_source.html @@ -0,0 +1,256 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/set_function_qualifiers.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    set_function_qualifiers.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_DETAIL_SET_FUNCTION_QUALIFIERS_HPP
    +
    10 #define BOOST_CLBL_TRTS_DETAIL_SET_FUNCTION_QUALIFIERS_HPP
    +
    11 
    + +
    13 
    +
    14 #define BOOST_CLBL_TRTS_SET_FUNCTION_QUALIFIERS(QUAL) \
    +
    15 template<typename Return, typename... Args> \
    +
    16 struct set_function_qualifiers_t < \
    +
    17  flag_map<int QUAL>::value, false, false, Return, Args...> { \
    +
    18  using type = Return(Args...) QUAL; \
    +
    19 }; \
    +
    20  \
    +
    21 template<typename Return, typename... Args> \
    +
    22 struct set_function_qualifiers_t < \
    +
    23  flag_map<int QUAL>::value, true, false, Return, Args...> { \
    +
    24  using type = Return(Args...) QUAL \
    +
    25  BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER; \
    +
    26 }; \
    +
    27  \
    +
    28 template<typename Return, typename... Args> \
    +
    29 struct set_function_qualifiers_t < \
    +
    30  flag_map<int QUAL>::value, false, true, Return, Args...> { \
    +
    31  using type = Return(Args...) QUAL \
    +
    32  BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER; \
    +
    33 }; \
    +
    34  \
    +
    35 template<typename Return, typename... Args> \
    +
    36 struct set_function_qualifiers_t < \
    +
    37  flag_map<int QUAL>::value, true, true, Return, Args...> { \
    +
    38  using type = Return(Args...) QUAL \
    +
    39  BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER \
    +
    40  BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER; \
    +
    41 }; \
    +
    42  \
    +
    43 template<typename Return, typename... Args> \
    +
    44 struct set_varargs_function_qualifiers_t < \
    +
    45  flag_map<int QUAL>::value, false, false, Return, Args...> { \
    +
    46  using type = Return(Args..., ...) QUAL; \
    +
    47 }; \
    +
    48  \
    +
    49 template<typename Return, typename... Args> \
    +
    50 struct set_varargs_function_qualifiers_t < \
    +
    51  flag_map<int QUAL>::value, true, false, Return, Args...> { \
    +
    52  using type = Return(Args..., ...) QUAL \
    +
    53  BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER; \
    +
    54 }; \
    +
    55  \
    +
    56 template<typename Return, typename... Args> \
    +
    57 struct set_varargs_function_qualifiers_t < \
    +
    58  flag_map<int QUAL>::value, false, true, Return, Args...> { \
    +
    59  using type = Return(Args..., ...) QUAL \
    +
    60  BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER; \
    +
    61 }; \
    +
    62  \
    +
    63 template<typename Return, typename... Args> \
    +
    64 struct set_varargs_function_qualifiers_t < \
    +
    65  flag_map<int QUAL>::value, true, true, Return, Args...> { \
    +
    66  using type = Return(Args..., ...) QUAL \
    +
    67  BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER \
    +
    68  BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER; \
    +
    69 } \
    +
    70 
    +
    71 
    +
    72 namespace boost { namespace callable_traits { namespace detail {
    +
    73 
    +
    74  template<qualifier_flags Applied, bool IsTransactionSafe,
    +
    75  bool IsNoexcept, typename Return, typename... Args>
    + +
    77  using type = Return(Args...);
    +
    78  };
    +
    79 
    +
    80  template<qualifier_flags Applied, bool IsTransactionSafe,
    +
    81  bool IsNoexcept, typename Return, typename... Args>
    + +
    83  using type = Return(Args..., ...);
    +
    84  };
    +
    85 
    +
    86 #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    87 
    + + + +
    91 
    +
    92 #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    93 
    + + + + + + + + +
    102 
    +
    103 #endif // #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    104 #endif // #ifndef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    105 
    +
    106  template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
    +
    107  typename... Ts>
    + +
    109  typename set_function_qualifiers_t<Flags, IsTransactionSafe, IsNoexcept,
    +
    110  Ts...>::type;
    +
    111 
    +
    112  template<qualifier_flags Flags, bool IsTransactionSafe, bool IsNoexcept,
    +
    113  typename... Ts>
    + +
    115  typename set_varargs_function_qualifiers_t<Flags, IsTransactionSafe,
    +
    116  IsNoexcept, Ts...>::type;
    +
    117 
    +
    118 }}} // namespace boost::callable_traits::detail
    +
    119 
    +
    120 #endif //BOOST_CLBL_TRTS_DETAIL_SET_FUNCTION_QUALIFIERS_HPP
    +
    typename set_varargs_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_varargs_function_qualifiers
    + + +
    typename set_function_qualifiers_t< Flags, IsTransactionSafe, IsNoexcept, Ts... >::type set_function_qualifiers
    + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/sfinae__errors_8hpp.html b/dox-master/sfinae__errors_8hpp.html new file mode 100644 index 000000000..e2f57162c --- /dev/null +++ b/dox-master/sfinae__errors_8hpp.html @@ -0,0 +1,294 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/sfinae_errors.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    sfinae_errors.hpp File Reference
    +
    +
    + + + + + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::sfinae_error
     
    struct  boost::callable_traits::detail::success< T >
     
    struct  boost::callable_traits::detail::success< T >::_
     
    struct  boost::callable_traits::detail::fail_if< B, T >
     
    struct  boost::callable_traits::detail::fail< FailMsg, ForceTwoPhaseLookup >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_PP_CAT_(x, y)   x ## y
     
    #define BOOST_CLBL_TRTS_PP_CAT(x, y)   BOOST_CLBL_TRTS_PP_CAT_(x, y)
     
    #define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
     
    #define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
     
    + + + + +

    +Typedefs

    template<typename T , typename... FailIfs>
    using boost::callable_traits::detail::sfinae_try = typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN

    + +
    +
    + + + + + + + + +
    #define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN( origin)
    +
    +Value:
    namespace error { \
    +
    template<typename ErrorMessage> \
    +
    struct origin : \
    + +
    { struct _ {}; }; \
    +
    } \
    + +
    +

    Definition at line 47 of file sfinae_errors.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_PP_CAT

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define BOOST_CLBL_TRTS_PP_CAT( x,
     
    )   BOOST_CLBL_TRTS_PP_CAT_(x, y)
    +
    + +

    Definition at line 45 of file sfinae_errors.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_PP_CAT_

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define BOOST_CLBL_TRTS_PP_CAT_( x,
     
    )   x ## y
    +
    + +

    Definition at line 44 of file sfinae_errors.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_SFINAE_MSG

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    #define BOOST_CLBL_TRTS_SFINAE_MSG( origin,
     name 
    )
    +
    +Value:
    struct BOOST_CLBL_TRTS_PP_CAT(name, _ ){}; \
    +
    struct name : error::origin< \
    +
    BOOST_CLBL_TRTS_PP_CAT(name, _ )>{}; \
    +
    #define BOOST_CLBL_TRTS_PP_CAT(x, y)
    +
    +

    Definition at line 56 of file sfinae_errors.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/sfinae__errors_8hpp_source.html b/dox-master/sfinae__errors_8hpp_source.html new file mode 100644 index 000000000..d3639c46a --- /dev/null +++ b/dox-master/sfinae__errors_8hpp_source.html @@ -0,0 +1,230 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/sfinae_errors.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    sfinae_errors.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 @Copyright Barrett Adair 2016-2017
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_SFINAE_ERRORS_HPP
    +
    10 #define BOOST_CLBL_TRTS_SFINAE_ERRORS_HPP
    +
    11 
    + +
    13 
    +
    14 namespace boost { namespace callable_traits { namespace detail {
    +
    15 
    +
    16  struct sfinae_error{};
    +
    17 
    +
    18  template<typename T>
    +
    19  struct success {
    +
    20  static constexpr bool value = true;
    +
    21  struct _ { using type = T; };
    +
    22  };
    +
    23 
    +
    24  template<bool B, typename T>
    +
    25  struct fail_if : T {
    +
    26  static_assert(std::is_base_of<sfinae_error, T>::value,
    +
    27  "incorrect usage of fail_if");
    +
    28 
    +
    29  static constexpr bool value = B;
    +
    30  };
    +
    31 
    +
    32  template<typename T, typename... FailIfs>
    + +
    34  FailIfs..., success<T>)::_::type;
    +
    35 
    +
    36  template<typename FailMsg, typename ForceTwoPhaseLookup>
    +
    37  struct fail {
    +
    38  using type = typename std::conditional<std::is_same<ForceTwoPhaseLookup, std::false_type>::value,
    +
    39  FailMsg, FailMsg>::type::_::type;
    +
    40  };
    +
    41 
    +
    42 }}} // namespace boost::callable_traits::detail
    +
    43 
    +
    44 #define BOOST_CLBL_TRTS_PP_CAT_(x, y) x ## y
    +
    45 #define BOOST_CLBL_TRTS_PP_CAT(x, y) BOOST_CLBL_TRTS_PP_CAT_(x, y)
    +
    46 
    +
    47 #define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin) \
    +
    48 namespace error { \
    +
    49  template<typename ErrorMessage> \
    +
    50  struct origin : \
    +
    51  ::boost::callable_traits::detail::sfinae_error \
    +
    52  { struct _ {}; }; \
    +
    53 } \
    +
    54 
    +
    55 
    +
    56 #define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name) \
    +
    57 struct BOOST_CLBL_TRTS_PP_CAT(name, _ ){}; \
    +
    58 struct name : error::origin< \
    +
    59  BOOST_CLBL_TRTS_PP_CAT(name, _ )>{}; \
    +
    60 
    +
    61 
    +
    62 namespace boost { namespace callable_traits {
    +
    63 
    + +
    65  BOOST_CLBL_TRTS_SFINAE_MSG(parameters, index_out_of_range_for_parameter_list)
    +
    66  BOOST_CLBL_TRTS_SFINAE_MSG(parameters, cannot_determine_parameters_for_this_type)
    +
    67 
    + +
    69  BOOST_CLBL_TRTS_SFINAE_MSG(varargs, varargs_are_illegal_for_this_type)
    +
    70 
    + +
    72  BOOST_CLBL_TRTS_SFINAE_MSG(member_qualifiers, member_qualifiers_are_illegal_for_this_type)
    +
    73  BOOST_CLBL_TRTS_SFINAE_MSG(member_qualifiers, this_compiler_doesnt_support_abominable_function_types)
    +
    74 
    + +
    76  BOOST_CLBL_TRTS_SFINAE_MSG(transaction_safe_, transaction_safe_is_not_supported_by_this_configuration)
    +
    77 
    + +
    79  BOOST_CLBL_TRTS_SFINAE_MSG(expand_args, cannot_expand_the_parameter_list_of_first_template_argument)
    +
    80 
    +
    81  BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(member_pointer_required)
    +
    82  BOOST_CLBL_TRTS_SFINAE_MSG(member_pointer_required, type_is_not_a_member_pointer)
    +
    83 
    + +
    85  BOOST_CLBL_TRTS_SFINAE_MSG(reference_error, reference_type_not_supported_by_this_metafunction)
    +
    86 
    +
    87 }} // namespace boost::callable_traits
    +
    88 
    +
    89 #endif // #ifndef BOOST_CLBL_TRTS_SFINAE_ERRORS_HPP
    + +
    #define BOOST_CLBL_TRTS_DISJUNCTION(...)
    Definition: config.hpp:69
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
    + +
    #define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name)
    +
    #define BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(origin)
    + + + +
    typename std::conditional< std::is_same< ForceTwoPhaseLookup, std::false_type >::value, FailMsg, FailMsg >::type::_::type type
    + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/simple_8cc-example.html b/dox-master/simple_8cc-example.html new file mode 100644 index 000000000..5192245cc --- /dev/null +++ b/dox-master/simple_8cc-example.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: simple.cc + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    simple.cc
    +
    +
    +

    This is the first example of a simple diamond DAG using Template Task Graph.

    +
    #include <ttg.h>
    +
    +
    static void a(std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task A ");
    +
    ttg::send<0>(0, 1.0, out);
    +
    ttg::send<0>(1, 2.0, out);
    +
    }
    +
    +
    static void b(const int &key, const double &input, std::tuple<ttg::Out<void, double>, ttg::Out<void, double>> &out) {
    +
    ttg::print("Called task B(", key, ") with input data ", input);
    +
    if (key == 0) ttg::sendv<0>(input + 1.0, out);
    +
    else ttg::sendv<1>(input + 1.0, out);
    +
    }
    +
    +
    static void c(const double &b0, const double &b1, std::tuple<> &out) {
    +
    ttg::print("Called task C with inputs ", b0, " from B(0) and ", b1, " from B(1)");
    +
    }
    +
    +
    int main(int argc, char **argv) {
    +
    ttg::initialize(argc, argv, -1);
    +
    + +
    ttg::Edge<void, double> B_C0("B->C0");
    +
    ttg::Edge<void, double> B_C1("B->C1");
    +
    +
    auto wa(ttg::make_tt<void>(a, ttg::edges(), ttg::edges(A_B), "A", {}, {"to B"}));
    +
    auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C0, B_C1), "B", {"from A"}, {"to 1st input of C", "to 2nd input of C"}));
    +
    auto wc(ttg::make_tt(c, ttg::edges(B_C0, B_C1), ttg::edges(), "C", {"From B", "From B"}, {}));
    +
    + +
    +
    if (wa->get_world().rank() == 0) wa->invoke();
    +
    + + +
    + +
    return EXIT_SUCCESS;
    +
    }
    +
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    void sendv(valueT &&value, ttg::Out< void, valueT > &t)
    Sends a value (without an accompanying task id) to the given output terminal.
    Definition: func.h:179
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    +
    int main(int argc, char **argv)
    Definition: simple.cc:23
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/simple_8cc.html b/dox-master/simple_8cc.html new file mode 100644 index 000000000..702dc848f --- /dev/null +++ b/dox-master/simple_8cc.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/simple.cc File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    simple.cc File Reference
    +
    +
    +
    #include <ttg.h>
    +
    + + + +

    +Functions

    int main (int argc, char **argv)
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int argc,
    char ** argv 
    )
    +
    +
    Examples
    simple.cc.
    +
    + +

    Definition at line 23 of file simple.cc.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/simple_8cc_source.html b/dox-master/simple_8cc_source.html new file mode 100644 index 000000000..aa2814a12 --- /dev/null +++ b/dox-master/simple_8cc_source.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: doc/dox/user/examples/simple.cc Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    simple.cc
    +
    +
    +Go to the documentation of this file.
    1 #include <ttg.h>
    +
    2 
    +
    3 static void a(std::tuple<ttg::Out<int, double>> &out) {
    +
    4  ttg::print("Called task A ");
    +
    5  ttg::send<0>(0, 1.0, out);
    +
    7  ttg::send<0>(1, 2.0, out);
    +
    9 }
    +
    10 
    +
    11 static void b(const int &key, const double &input, std::tuple<ttg::Out<void, double>, ttg::Out<void, double>> &out) {
    +
    12  ttg::print("Called task B(", key, ") with input data ", input);
    +
    13  if (key == 0) ttg::sendv<0>(input + 1.0, out);
    +
    15  else ttg::sendv<1>(input + 1.0, out);
    +
    17 }
    +
    18 
    +
    19 static void c(const double &b0, const double &b1, std::tuple<> &out) {
    +
    20  ttg::print("Called task C with inputs ", b0, " from B(0) and ", b1, " from B(1)");
    +
    21 }
    +
    22 
    +
    23 int main(int argc, char **argv) {
    +
    24  ttg::initialize(argc, argv, -1);
    +
    25 
    +
    26  ttg::Edge<int, double> A_B("A->B");
    +
    27  ttg::Edge<void, double> B_C0("B->C0");
    +
    28  ttg::Edge<void, double> B_C1("B->C1");
    +
    29 
    +
    30  auto wa(ttg::make_tt<void>(a, ttg::edges(), ttg::edges(A_B), "A", {}, {"to B"}));
    +
    31  auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C0, B_C1), "B", {"from A"}, {"to 1st input of C", "to 2nd input of C"}));
    +
    32  auto wc(ttg::make_tt(c, ttg::edges(B_C0, B_C1), ttg::edges(), "C", {"From B", "From B"}, {}));
    +
    33 
    + +
    35 
    +
    36  if (wa->get_world().rank() == 0) wa->invoke();
    +
    37 
    +
    38  ttg::execute();
    + +
    40 
    +
    41  ttg::finalize();
    +
    42  return EXIT_SUCCESS;
    +
    43 }
    +
    44 
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    void sendv(valueT &&value, ttg::Out< void, valueT > &t)
    Sends a value (without an accompanying task id) to the given output terminal.
    Definition: func.h:179
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    +
    int main(int argc, char **argv)
    Definition: simple.cc:23
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/span_8h.html b/dox-master/span_8h.html new file mode 100644 index 000000000..203bb0fa0 --- /dev/null +++ b/dox-master/span_8h.html @@ -0,0 +1,435 @@ + + + + + + + + + + + ttg: ttg/ttg/util/span.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    span.h File Reference
    +
    +
    +
    #include <array>
    +#include <cstddef>
    +#include <cstdint>
    +#include <type_traits>
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_span< typename >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_span< span< T, S > >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< typename >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< std::array< T, N > >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< typename, typename >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< typename, typename, typename >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_complete< typename, typename >
     
    struct  TCB_SPAN_NAMESPACE_NAME::detail::is_complete< T, decltype(sizeof(T))>
     
    class  TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent >
     
    class  std::tuple_size< TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >
     
    class  std::tuple_element< I, TCB_SPAN_NAMESPACE_NAME::span< ElementType, Extent > >
     
    + + + + + +

    +Namespaces

     TCB_SPAN_NAMESPACE_NAME
     
     TCB_SPAN_NAMESPACE_NAME::detail
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define TCB_SPAN_NAMESPACE_NAME   ttg
     
    #define TCB_SPAN_NO_EXCEPTIONS
     
    #define TCB_SPAN_NO_CONTRACT_CHECKING
     
    #define TCB_SPAN_EXPECT(cond)
     
    #define TCB_SPAN_INLINE_VAR
     
    #define TCB_SPAN_CONSTEXPR14
     
    #define TCB_SPAN_CONSTEXPR_ASSIGN
     
    #define TCB_SPAN_CONSTEXPR11   constexpr
     
    #define TCB_SPAN_ARRAY_CONSTEXPR
     
    #define TCB_SPAN_NODISCARD
     
    + + + + + + + + + + + + +

    +Typedefs

    using TCB_SPAN_NAMESPACE_NAME::byte = unsigned char
     
    template<typename... >
    using TCB_SPAN_NAMESPACE_NAME::detail::void_t = void
     
    template<typename T >
    using TCB_SPAN_NAMESPACE_NAME::detail::uncvref_t = typename std::remove_cv< typename std::remove_reference< T >::type >::type
     
    template<typename T >
    using TCB_SPAN_NAMESPACE_NAME::detail::remove_pointer_t = typename std::remove_pointer< T >::type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<class C >
    constexpr auto TCB_SPAN_NAMESPACE_NAME::detail::size (const C &c) -> decltype(c.size())
     
    template<class T , std::size_t N>
    constexpr std::size_t TCB_SPAN_NAMESPACE_NAME::detail::size (const T(&)[N]) noexcept
     
    template<class C >
    constexpr auto TCB_SPAN_NAMESPACE_NAME::detail::data (C &c) -> decltype(c.data())
     
    template<class C >
    constexpr auto TCB_SPAN_NAMESPACE_NAME::detail::data (const C &c) -> decltype(c.data())
     
    template<class T , std::size_t N>
    constexpr T * TCB_SPAN_NAMESPACE_NAME::detail::data (T(&array)[N]) noexcept
     
    template<class E >
    constexpr const E * TCB_SPAN_NAMESPACE_NAME::detail::data (std::initializer_list< E > il) noexcept
     
    template<typename ElementType , std::size_t Extent>
    constexpr span< ElementType, Extent > TCB_SPAN_NAMESPACE_NAME::make_span (span< ElementType, Extent > s) noexcept
     
    template<typename T , std::size_t N>
    constexpr span< T, N > TCB_SPAN_NAMESPACE_NAME::make_span (T(&arr)[N]) noexcept
     
    template<typename T , std::size_t N>
    TCB_SPAN_ARRAY_CONSTEXPR span< T, N > TCB_SPAN_NAMESPACE_NAME::make_span (std::array< T, N > &arr) noexcept
     
    template<typename T , std::size_t N>
    TCB_SPAN_ARRAY_CONSTEXPR span< const T, N > TCB_SPAN_NAMESPACE_NAME::make_span (const std::array< T, N > &arr) noexcept
     
    template<typename Container >
    constexpr span< typename Container::value_type > TCB_SPAN_NAMESPACE_NAME::make_span (Container &cont)
     
    template<typename Container >
    constexpr span< const typename Container::value_type > TCB_SPAN_NAMESPACE_NAME::make_span (const Container &cont)
     
    template<typename ElementType , std::size_t Extent>
    span< const byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> TCB_SPAN_NAMESPACE_NAME::as_bytes (span< ElementType, Extent > s) noexcept
     
    template<class ElementType , size_t Extent, typename std::enable_if<!std::is_const< ElementType >::value, int >::type = 0>
    span< byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> TCB_SPAN_NAMESPACE_NAME::as_writable_bytes (span< ElementType, Extent > s) noexcept
     
    template<std::size_t N, typename E , std::size_t S>
    constexpr auto TCB_SPAN_NAMESPACE_NAME::get (span< E, S > s) -> decltype(s[N])
     
    + + + +

    +Variables

    constexpr TCB_SPAN_INLINE_VAR std::size_t TCB_SPAN_NAMESPACE_NAME::dynamic_extent = SIZE_MAX
     
    +

    Macro Definition Documentation

    + +

    ◆ TCB_SPAN_ARRAY_CONSTEXPR

    + +
    +
    + + + + +
    #define TCB_SPAN_ARRAY_CONSTEXPR
    +
    + +

    Definition at line 131 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_CONSTEXPR11

    + +
    +
    + + + + +
    #define TCB_SPAN_CONSTEXPR11   constexpr
    +
    + +

    Definition at line 111 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_CONSTEXPR14

    + +
    +
    + + + + +
    #define TCB_SPAN_CONSTEXPR14
    +
    + +

    Definition at line 101 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_CONSTEXPR_ASSIGN

    + +
    +
    + + + + +
    #define TCB_SPAN_CONSTEXPR_ASSIGN
    +
    + +

    Definition at line 107 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_EXPECT

    + +
    +
    + + + + + + + + +
    #define TCB_SPAN_EXPECT( cond)
    +
    + +

    Definition at line 85 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_INLINE_VAR

    + +
    +
    + + + + +
    #define TCB_SPAN_INLINE_VAR
    +
    + +

    Definition at line 91 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_NAMESPACE_NAME

    + +
    +
    + + + + +
    #define TCB_SPAN_NAMESPACE_NAME   ttg
    +
    + +

    Definition at line 14 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_NO_CONTRACT_CHECKING

    + +
    +
    + + + + +
    #define TCB_SPAN_NO_CONTRACT_CHECKING
    +
    + +

    Definition at line 64 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_NO_EXCEPTIONS

    + +
    +
    + + + + +
    #define TCB_SPAN_NO_EXCEPTIONS
    +
    + +

    Definition at line 35 of file span.h.

    + +
    +
    + +

    ◆ TCB_SPAN_NODISCARD

    + +
    +
    + + + + +
    #define TCB_SPAN_NODISCARD
    +
    + +

    Definition at line 143 of file span.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/span_8h_source.html b/dox-master/span_8h_source.html new file mode 100644 index 000000000..355d57821 --- /dev/null +++ b/dox-master/span_8h_source.html @@ -0,0 +1,721 @@ + + + + + + + + + + + ttg: ttg/ttg/util/span.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    span.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_UTIL_SPAN_H
    +
    2 #define TTG_UTIL_SPAN_H
    +
    3 
    +
    4 /* if TCB_SPAN_NAMESPACE_NAME already defined someone imported TCB span somewhere,
    +
    5  * then reset it here to the ttg namespace, don't forget to revert back */
    +
    6 #ifdef TCB_SPAN_NAMESPACE_NAME
    +
    7 
    +
    8 #define TTG_TCB_SPAN_NAMESPACE_NAME_AT_TOP_OF_SPAN_H TCB_SPAN_NAMESPACE_NAME
    +
    9 #undef TCB_SPAN_NAMESPACE_NAME
    +
    10 
    +
    11 #endif
    +
    12 
    +
    13 /* Use the TTG namespace */
    +
    14 #define TCB_SPAN_NAMESPACE_NAME ttg
    +
    15 
    +
    16 /*
    +
    17 This is an implementation of C++20's std::span
    +
    18 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/n4820.pdf
    +
    19 Code taken from https://github.com/tcbrindle/span/
    +
    20 */
    +
    21 
    +
    22 // Copyright Tristan Brindle 2018.
    +
    23 // Distributed under the Boost Software License, Version 1.0.
    +
    24 // (See accompanying file ../../LICENSE_1_0.txt or copy at
    +
    25 // https://www.boost.org/LICENSE_1_0.txt)
    +
    26 
    +
    27 #include <array>
    +
    28 #include <cstddef>
    +
    29 #include <cstdint>
    +
    30 #include <type_traits>
    +
    31 
    +
    32 #ifndef TCB_SPAN_NO_EXCEPTIONS
    +
    33 // Attempt to discover whether we're being compiled with exception support
    +
    34 #if !(defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND))
    +
    35 #define TCB_SPAN_NO_EXCEPTIONS
    +
    36 #endif
    +
    37 #endif
    +
    38 
    +
    39 #ifndef TCB_SPAN_NO_EXCEPTIONS
    +
    40 #include <cstdio>
    +
    41 #include <stdexcept>
    +
    42 #endif
    +
    43 
    +
    44 // Various feature test macros
    +
    45 
    +
    46 #ifndef TCB_SPAN_NAMESPACE_NAME
    +
    47 #define TCB_SPAN_NAMESPACE_NAME tcb
    +
    48 #endif
    +
    49 
    +
    50 #if __cplusplus >= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201703L)
    +
    51 #define TCB_SPAN_HAVE_CPP17
    +
    52 #endif
    +
    53 
    +
    54 #if __cplusplus >= 201402L || (defined(_MSVC_LANG) && _MSVC_LANG >= 201402L)
    +
    55 #define TCB_SPAN_HAVE_CPP14
    +
    56 #endif
    +
    57 
    + +
    59 
    +
    60 // Establish default contract checking behavior
    +
    61 #if !defined(TCB_SPAN_THROW_ON_CONTRACT_VIOLATION) && !defined(TCB_SPAN_TERMINATE_ON_CONTRACT_VIOLATION) && \
    +
    62  !defined(TCB_SPAN_NO_CONTRACT_CHECKING)
    +
    63 #if defined(NDEBUG) || !defined(TCB_SPAN_HAVE_CPP14)
    +
    64 #define TCB_SPAN_NO_CONTRACT_CHECKING
    +
    65 #else
    +
    66 #define TCB_SPAN_TERMINATE_ON_CONTRACT_VIOLATION
    +
    67 #endif
    +
    68 #endif
    +
    69 
    +
    70 #if defined(TCB_SPAN_THROW_ON_CONTRACT_VIOLATION)
    +
    71  struct contract_violation_error : std::logic_error {
    +
    72  explicit contract_violation_error(const char* msg) : std::logic_error(msg) {}
    +
    73  };
    +
    74 
    +
    75  inline void contract_violation(const char* msg) { throw contract_violation_error(msg); }
    +
    76 
    +
    77 #elif defined(TCB_SPAN_TERMINATE_ON_CONTRACT_VIOLATION)
    +
    78  [[noreturn]] inline void contract_violation(const char* /*unused*/) { std::terminate(); }
    +
    79 #endif
    +
    80 
    +
    81 #if !defined(TCB_SPAN_NO_CONTRACT_CHECKING)
    +
    82 #define TCB_SPAN_STRINGIFY(cond) #cond
    +
    83 #define TCB_SPAN_EXPECT(cond) cond ? (void)0 : contract_violation("Expected " TCB_SPAN_STRINGIFY(cond))
    +
    84 #else
    +
    85 #define TCB_SPAN_EXPECT(cond)
    +
    86 #endif
    +
    87 
    +
    88 #if defined(TCB_SPAN_HAVE_CPP17) || defined(__cpp_inline_variables)
    +
    89 #define TCB_SPAN_INLINE_VAR inline
    +
    90 #else
    +
    91 #define TCB_SPAN_INLINE_VAR
    +
    92 #endif
    +
    93 
    +
    94 #if defined(TCB_SPAN_HAVE_CPP14) || (defined(__cpp_constexpr) && __cpp_constexpr >= 201304)
    +
    95 #define TCB_SPAN_HAVE_CPP14_CONSTEXPR
    +
    96 #endif
    +
    97 
    +
    98 #if defined(TCB_SPAN_HAVE_CPP14_CONSTEXPR)
    +
    99 #define TCB_SPAN_CONSTEXPR14 constexpr
    +
    100 #else
    +
    101 #define TCB_SPAN_CONSTEXPR14
    +
    102 #endif
    +
    103 
    +
    104 #if defined(TCB_SPAN_HAVE_CPP14_CONSTEXPR) && (!defined(_MSC_VER) || _MSC_VER > 1900)
    +
    105 #define TCB_SPAN_CONSTEXPR_ASSIGN constexpr
    +
    106 #else
    +
    107 #define TCB_SPAN_CONSTEXPR_ASSIGN
    +
    108 #endif
    +
    109 
    +
    110 #if defined(TCB_SPAN_NO_CONTRACT_CHECKING)
    +
    111 #define TCB_SPAN_CONSTEXPR11 constexpr
    +
    112 #else
    +
    113 #define TCB_SPAN_CONSTEXPR11 TCB_SPAN_CONSTEXPR14
    +
    114 #endif
    +
    115 
    +
    116 #if defined(TCB_SPAN_HAVE_CPP17) || defined(__cpp_deduction_guides)
    +
    117 #define TCB_SPAN_HAVE_DEDUCTION_GUIDES
    +
    118 #endif
    +
    119 
    +
    120 #if defined(TCB_SPAN_HAVE_CPP17) || defined(__cpp_lib_byte)
    +
    121 #define TCB_SPAN_HAVE_STD_BYTE
    +
    122 #endif
    +
    123 
    +
    124 #if defined(TCB_SPAN_HAVE_CPP17) || defined(__cpp_lib_array_constexpr)
    +
    125 #define TCB_SPAN_HAVE_CONSTEXPR_STD_ARRAY_ETC
    +
    126 #endif
    +
    127 
    +
    128 #if defined(TCB_SPAN_HAVE_CONSTEXPR_STD_ARRAY_ETC)
    +
    129 #define TCB_SPAN_ARRAY_CONSTEXPR constexpr
    +
    130 #else
    +
    131 #define TCB_SPAN_ARRAY_CONSTEXPR
    +
    132 #endif
    +
    133 
    +
    134 #ifdef TCB_SPAN_HAVE_STD_BYTE
    +
    135  using byte = std::byte;
    +
    136 #else
    +
    137  using byte = unsigned char;
    +
    138 #endif
    +
    139 
    +
    140 #if defined(TCB_SPAN_HAVE_CPP17)
    +
    141 #define TCB_SPAN_NODISCARD [[nodiscard]]
    +
    142 #else
    +
    143 #define TCB_SPAN_NODISCARD
    +
    144 #endif
    +
    145 
    +
    146  TCB_SPAN_INLINE_VAR constexpr std::size_t dynamic_extent = SIZE_MAX;
    +
    147 
    +
    148  template <typename ElementType, std::size_t Extent = dynamic_extent>
    +
    149  class span;
    +
    150 
    +
    151  namespace detail {
    +
    152 
    +
    153  template <typename E, std::size_t S>
    +
    154  struct span_storage {
    +
    155  constexpr span_storage() noexcept = default;
    +
    156 
    +
    157  constexpr span_storage(E* p_ptr, std::size_t /*unused*/) noexcept : ptr(p_ptr) {}
    +
    158 
    +
    159  E* ptr = nullptr;
    +
    160  static constexpr std::size_t size = S;
    +
    161  };
    +
    162 
    +
    163  template <typename E>
    + +
    165  constexpr span_storage() noexcept = default;
    +
    166 
    +
    167  constexpr span_storage(E* p_ptr, std::size_t p_size) noexcept : ptr(p_ptr), size(p_size) {}
    +
    168 
    +
    169  E* ptr = nullptr;
    +
    170  std::size_t size = 0;
    +
    171  };
    +
    172 
    +
    173 // Reimplementation of C++17 std::size() and std::data()
    +
    174 #if defined(TCB_SPAN_HAVE_CPP17) || defined(__cpp_lib_nonmember_container_access)
    +
    175  using std::data;
    +
    176  using std::size;
    +
    177 #else
    +
    178  template <class C>
    +
    179  constexpr auto size(const C& c) -> decltype(c.size()) {
    +
    180  return c.size();
    +
    181  }
    +
    182 
    +
    183  template <class T, std::size_t N>
    +
    184  constexpr std::size_t size(const T (&)[N]) noexcept {
    +
    185  return N;
    +
    186  }
    +
    187 
    +
    188  template <class C>
    +
    189  constexpr auto data(C& c) -> decltype(c.data()) {
    +
    190  return c.data();
    +
    191  }
    +
    192 
    +
    193  template <class C>
    +
    194  constexpr auto data(const C& c) -> decltype(c.data()) {
    +
    195  return c.data();
    +
    196  }
    +
    197 
    +
    198  template <class T, std::size_t N>
    +
    199  constexpr T* data(T (&array)[N]) noexcept {
    +
    200  return array;
    +
    201  }
    +
    202 
    +
    203  template <class E>
    +
    204  constexpr const E* data(std::initializer_list<E> il) noexcept {
    +
    205  return il.begin();
    +
    206  }
    +
    207 #endif // TCB_SPAN_HAVE_CPP17
    +
    208 
    +
    209 #if defined(TCB_SPAN_HAVE_CPP17) || defined(__cpp_lib_void_t)
    +
    210  using std::void_t;
    +
    211 #else
    +
    212  template <typename...>
    +
    213  using void_t = void;
    +
    214 #endif
    +
    215 
    +
    216  template <typename T>
    +
    217  using uncvref_t = typename std::remove_cv<typename std::remove_reference<T>::type>::type;
    +
    218 
    +
    219  template <typename>
    +
    220  struct is_span : std::false_type {};
    +
    221 
    +
    222  template <typename T, std::size_t S>
    +
    223  struct is_span<span<T, S> > : std::true_type {};
    +
    224 
    +
    225  template <typename>
    +
    226  struct is_std_array : std::false_type {};
    +
    227 
    +
    228  template <typename T, std::size_t N>
    +
    229  struct is_std_array<std::array<T, N> > : std::true_type {};
    +
    230 
    +
    231  template <typename, typename = void>
    +
    232  struct has_size_and_data : std::false_type {};
    +
    233 
    +
    234  template <typename T>
    + +
    236  T, void_t<decltype(detail::size(std::declval<T>())), decltype(detail::data(std::declval<T>()))> >
    +
    237  : std::true_type {};
    +
    238 
    +
    239  template <typename C, typename U = uncvref_t<C> >
    +
    240  struct is_container {
    +
    241  static constexpr bool value =
    +
    242  !is_span<U>::value && !is_std_array<U>::value && !std::is_array<U>::value && has_size_and_data<C>::value;
    +
    243  };
    +
    244 
    +
    245  template <typename T>
    +
    246  using remove_pointer_t = typename std::remove_pointer<T>::type;
    +
    247 
    +
    248  template <typename, typename, typename = void>
    +
    249  struct is_container_element_type_compatible : std::false_type {};
    +
    250 
    +
    251  template <typename T, typename E>
    + +
    253  T, E,
    +
    254  typename std::enable_if<
    +
    255  !std::is_same<typename std::remove_cv<decltype(detail::data(std::declval<T>()))>::type, void>::value>::type>
    +
    256  : std::is_convertible<remove_pointer_t<decltype(detail::data(std::declval<T>()))> (*)[], E (*)[]> {};
    +
    257 
    +
    258  template <typename, typename = size_t>
    +
    259  struct is_complete : std::false_type {};
    +
    260 
    +
    261  template <typename T>
    +
    262  struct is_complete<T, decltype(sizeof(T))> : std::true_type {};
    +
    263 
    +
    264  } // namespace detail
    +
    265 
    +
    266  template <typename ElementType, std::size_t Extent>
    +
    267  class span {
    +
    268  static_assert(std::is_object<ElementType>::value,
    +
    269  "A span's ElementType must be an object type (not a "
    +
    270  "reference type or void)");
    + +
    272  "A span's ElementType must be a complete type (not a forward "
    +
    273  "declaration)");
    +
    274  static_assert(!std::is_abstract<ElementType>::value, "A span's ElementType cannot be an abstract class type");
    +
    275 
    + +
    277 
    +
    278  public:
    +
    279  // constants and types
    +
    280  using element_type = ElementType;
    +
    281  using value_type = typename std::remove_cv<ElementType>::type;
    +
    282  using size_type = std::size_t;
    +
    283  using difference_type = std::ptrdiff_t;
    + +
    285  using const_pointer = const element_type*;
    + + +
    288  using iterator = pointer;
    +
    289  using reverse_iterator = std::reverse_iterator<iterator>;
    +
    290 
    +
    291  static constexpr size_type extent = Extent;
    +
    292 
    +
    293  // [span.cons], span constructors, copy, assignment, and destructor
    +
    294  template <std::size_t E = Extent, typename std::enable_if<(E == dynamic_extent || E <= 0), int>::type = 0>
    +
    295  constexpr span() noexcept {}
    +
    296 
    +
    297  TCB_SPAN_CONSTEXPR11 span(pointer ptr, size_type count) : storage_(ptr, count) {
    +
    298  TCB_SPAN_EXPECT(extent == dynamic_extent || count == extent);
    +
    299  }
    +
    300 
    +
    301  TCB_SPAN_CONSTEXPR11 span(pointer first_elem, pointer last_elem) : storage_(first_elem, last_elem - first_elem) {
    +
    302  TCB_SPAN_EXPECT(extent == dynamic_extent || last_elem - first_elem == static_cast<std::ptrdiff_t>(extent));
    +
    303  }
    +
    304 
    +
    305  template <std::size_t N, std::size_t E = Extent,
    +
    306  typename std::enable_if<(E == dynamic_extent || N == E) && detail::is_container_element_type_compatible<
    +
    307  element_type (&)[N], ElementType>::value,
    +
    308  int>::type = 0>
    +
    309  constexpr span(element_type (&arr)[N]) noexcept : storage_(arr, N) {}
    +
    310 
    +
    311  template <std::size_t N, std::size_t E = Extent,
    +
    312  typename std::enable_if<
    +
    313  (E == dynamic_extent || N == E) &&
    +
    314  detail::is_container_element_type_compatible<std::array<value_type, N>&, ElementType>::value,
    +
    315  int>::type = 0>
    +
    316  TCB_SPAN_ARRAY_CONSTEXPR span(std::array<value_type, N>& arr) noexcept : storage_(arr.data(), N) {}
    +
    317 
    +
    318  template <std::size_t N, std::size_t E = Extent,
    +
    319  typename std::enable_if<(E == dynamic_extent || N == E) &&
    +
    320  detail::is_container_element_type_compatible<const std::array<value_type, N>&,
    +
    321  ElementType>::value,
    +
    322  int>::type = 0>
    +
    323  TCB_SPAN_ARRAY_CONSTEXPR span(const std::array<value_type, N>& arr) noexcept : storage_(arr.data(), N) {}
    +
    324 
    +
    325  template <typename Container, std::size_t E = Extent,
    +
    326  typename std::enable_if<E == dynamic_extent && detail::is_container<Container>::value &&
    + +
    328  int>::type = 0>
    +
    329  constexpr span(Container& cont) : storage_(detail::data(cont), detail::size(cont)) {}
    +
    330 
    +
    331  template <
    +
    332  typename Container, std::size_t E = Extent,
    +
    333  typename std::enable_if<E == dynamic_extent && detail::is_container<Container>::value &&
    + +
    335  int>::type = 0>
    +
    336  constexpr span(const Container& cont) : storage_(detail::data(cont), detail::size(cont)) {}
    +
    337 
    +
    338  constexpr span(const span& other) noexcept = default;
    +
    339 
    +
    340  template <typename OtherElementType, std::size_t OtherExtent,
    +
    341  typename std::enable_if<(Extent == OtherExtent || Extent == dynamic_extent) &&
    +
    342  std::is_convertible<OtherElementType (*)[], ElementType (*)[]>::value,
    +
    343  int>::type = 0>
    +
    344  constexpr span(const span<OtherElementType, OtherExtent>& other) noexcept : storage_(other.data(), other.size()) {}
    +
    345 
    +
    346  ~span() noexcept = default;
    +
    347 
    +
    348  TCB_SPAN_CONSTEXPR_ASSIGN span& operator=(const span& other) noexcept = default;
    +
    349 
    +
    350  // [span.sub], span subviews
    +
    351  template <std::size_t Count>
    + +
    353  TCB_SPAN_EXPECT(Count <= size());
    +
    354  return {data(), Count};
    +
    355  }
    +
    356 
    +
    357  template <std::size_t Count>
    + +
    359  TCB_SPAN_EXPECT(Count <= size());
    +
    360  return {data() + (size() - Count), Count};
    +
    361  }
    +
    362 
    +
    363  template <std::size_t Offset, std::size_t Count = dynamic_extent>
    + +
    365  span<ElementType,
    +
    366  Count != dynamic_extent ? Count : (Extent != dynamic_extent ? Extent - Offset : dynamic_extent)>;
    +
    367 
    +
    368  template <std::size_t Offset, std::size_t Count = dynamic_extent>
    + +
    370  TCB_SPAN_EXPECT(Offset <= size() && (Count == dynamic_extent || Offset + Count <= size()));
    +
    371  return {data() + Offset, Count != dynamic_extent ? Count : size() - Offset};
    +
    372  }
    +
    373 
    + +
    375  TCB_SPAN_EXPECT(count <= size());
    +
    376  return {data(), count};
    +
    377  }
    +
    378 
    + +
    380  TCB_SPAN_EXPECT(count <= size());
    +
    381  return {data() + (size() - count), count};
    +
    382  }
    +
    383 
    + +
    385  size_type count = dynamic_extent) const {
    +
    386  TCB_SPAN_EXPECT(offset <= size() && (count == dynamic_extent || offset + count <= size()));
    +
    387  return {data() + offset, count == dynamic_extent ? size() - offset : count};
    +
    388  }
    +
    389 
    +
    390  // [span.obs], span observers
    +
    391  constexpr size_type size() const noexcept { return storage_.size; }
    +
    392 
    +
    393  constexpr size_type size_bytes() const noexcept { return size() * sizeof(element_type); }
    +
    394 
    +
    395  TCB_SPAN_NODISCARD constexpr bool empty() const noexcept { return size() == 0; }
    +
    396 
    +
    397  // [span.elem], span element access
    + +
    399  TCB_SPAN_EXPECT(idx < size());
    +
    400  return *(data() + idx);
    +
    401  }
    +
    402 
    + + +
    405  return *data();
    +
    406  }
    +
    407 
    + + +
    410  return *(data() + (size() - 1));
    +
    411  }
    +
    412 
    +
    413  constexpr pointer data() const noexcept { return storage_.ptr; }
    +
    414 
    +
    415  // [span.iterators], span iterator support
    +
    416  constexpr iterator begin() const noexcept { return data(); }
    +
    417 
    +
    418  constexpr iterator end() const noexcept { return data() + size(); }
    +
    419 
    + +
    421 
    + +
    423 
    +
    424  private:
    +
    425  storage_type storage_{};
    +
    426  };
    +
    427 
    +
    428 #ifdef TCB_SPAN_HAVE_DEDUCTION_GUIDES
    +
    429 
    +
    430  /* Deduction Guides */
    +
    431  template <class T, size_t N>
    +
    432  span(T (&)[N]) -> span<T, N>;
    +
    433 
    +
    434  template <class T, size_t N>
    +
    435  span(std::array<T, N>&) -> span<T, N>;
    +
    436 
    +
    437  template <class T, size_t N>
    +
    438  span(const std::array<T, N>&) -> span<const T, N>;
    +
    439 
    +
    440  template <class Container>
    +
    441  span(Container&) -> span<typename Container::value_type>;
    +
    442 
    +
    443  template <class Container>
    +
    444  span(const Container&) -> span<const typename Container::value_type>;
    +
    445 
    +
    446 #endif // TCB_HAVE_DEDUCTION_GUIDES
    +
    447 
    +
    448  template <typename ElementType, std::size_t Extent>
    + +
    450  return s;
    +
    451  }
    +
    452 
    +
    453  template <typename T, std::size_t N>
    +
    454  constexpr span<T, N> make_span(T (&arr)[N]) noexcept {
    +
    455  return {arr};
    +
    456  }
    +
    457 
    +
    458  template <typename T, std::size_t N>
    +
    459  TCB_SPAN_ARRAY_CONSTEXPR span<T, N> make_span(std::array<T, N>& arr) noexcept {
    +
    460  return {arr};
    +
    461  }
    +
    462 
    +
    463  template <typename T, std::size_t N>
    +
    464  TCB_SPAN_ARRAY_CONSTEXPR span<const T, N> make_span(const std::array<T, N>& arr) noexcept {
    +
    465  return {arr};
    +
    466  }
    +
    467 
    +
    468  template <typename Container>
    +
    469  constexpr span<typename Container::value_type> make_span(Container& cont) {
    +
    470  return {cont};
    +
    471  }
    +
    472 
    +
    473  template <typename Container>
    +
    474  constexpr span<const typename Container::value_type> make_span(const Container& cont) {
    +
    475  return {cont};
    +
    476  }
    +
    477 
    +
    478  template <typename ElementType, std::size_t Extent>
    +
    479  span<const byte, ((Extent == dynamic_extent) ? dynamic_extent : sizeof(ElementType) * Extent)> as_bytes(
    +
    480  span<ElementType, Extent> s) noexcept {
    +
    481  return {reinterpret_cast<const byte*>(s.data()), s.size_bytes()};
    +
    482  }
    +
    483 
    +
    484  template <class ElementType, size_t Extent,
    +
    485  typename std::enable_if<!std::is_const<ElementType>::value, int>::type = 0>
    +
    486  span<byte, ((Extent == dynamic_extent) ? dynamic_extent : sizeof(ElementType) * Extent)> as_writable_bytes(
    +
    487  span<ElementType, Extent> s) noexcept {
    +
    488  return {reinterpret_cast<byte*>(s.data()), s.size_bytes()};
    +
    489  }
    +
    490 
    +
    491  template <std::size_t N, typename E, std::size_t S>
    +
    492  constexpr auto get(span<E, S> s) -> decltype(s[N]) {
    +
    493  return s[N];
    +
    494  }
    +
    495 
    +
    496 } // namespace TCB_SPAN_NAMESPACE_NAME
    +
    497 
    +
    498 namespace std {
    +
    499 
    +
    500  template <typename ElementType, size_t Extent>
    +
    501  class tuple_size<TCB_SPAN_NAMESPACE_NAME::span<ElementType, Extent> > : public integral_constant<size_t, Extent> {};
    +
    502 
    +
    503  template <typename ElementType>
    +
    504  class tuple_size<TCB_SPAN_NAMESPACE_NAME::span<ElementType, TCB_SPAN_NAMESPACE_NAME::dynamic_extent> >; // not
    +
    505  // defined
    +
    506 
    +
    507  template <size_t I, typename ElementType, size_t Extent>
    +
    508  class tuple_element<I, TCB_SPAN_NAMESPACE_NAME::span<ElementType, Extent> > {
    +
    509  public:
    +
    510  static_assert(Extent != TCB_SPAN_NAMESPACE_NAME::dynamic_extent && I < Extent, "");
    +
    511  using type = ElementType;
    +
    512  };
    +
    513 
    +
    514 } // end namespace std
    +
    515 
    +
    516 /* revert TCB_SPAN_NAMESPACE_NAME to the original value, if needed */
    +
    517 #ifdef TTG_TCB_SPAN_NAMESPACE_NAME_AT_TOP_OF_SPAN_H
    +
    518 
    +
    519 #undef TCB_SPAN_NAMESPACE_NAME
    +
    520 #define TCB_SPAN_NAMESPACE_NAME TTG_TCB_SPAN_NAMESPACE_NAME_AT_TOP_OF_SPAN_H
    +
    521 #undef TTG_TCB_SPAN_NAMESPACE_NAME_AT_TOP_OF_SPAN_H
    +
    522 
    +
    523 #endif
    +
    524 
    +
    525 #endif // TTG_UTIL_SPAN_H
    + +
    constexpr span(Container &cont)
    Definition: span.h:329
    +
    TCB_SPAN_CONSTEXPR11 span< element_type, Count > last() const
    Definition: span.h:358
    +
    TCB_SPAN_CONSTEXPR11 subspan_return_t< Offset, Count > subspan() const
    Definition: span.h:369
    +
    constexpr TCB_SPAN_NODISCARD bool empty() const noexcept
    Definition: span.h:395
    +
    TCB_SPAN_ARRAY_CONSTEXPR span(const std::array< value_type, N > &arr) noexcept
    Definition: span.h:323
    + +
    constexpr iterator end() const noexcept
    Definition: span.h:418
    +
    ~span() noexcept=default
    +
    constexpr span(const Container &cont)
    Definition: span.h:336
    +
    std::reverse_iterator< iterator > reverse_iterator
    Definition: span.h:289
    +
    ElementType element_type
    Definition: span.h:280
    +
    constexpr iterator begin() const noexcept
    Definition: span.h:416
    +
    TCB_SPAN_ARRAY_CONSTEXPR span(std::array< value_type, N > &arr) noexcept
    Definition: span.h:316
    +
    static constexpr size_type extent
    Definition: span.h:291
    +
    const element_type * const_pointer
    Definition: span.h:285
    +
    constexpr span(const span &other) noexcept=default
    +
    TCB_SPAN_CONSTEXPR11 span< element_type, dynamic_extent > first(size_type count) const
    Definition: span.h:374
    +
    typename std::remove_cv< ElementType >::type value_type
    Definition: span.h:281
    +
    TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator rbegin() const noexcept
    Definition: span.h:420
    +
    const element_type & const_reference
    Definition: span.h:287
    +
    std::ptrdiff_t difference_type
    Definition: span.h:283
    +
    TCB_SPAN_CONSTEXPR11 span< element_type, Count > first() const
    Definition: span.h:352
    + +
    TCB_SPAN_CONSTEXPR11 span< element_type, dynamic_extent > last(size_type count) const
    Definition: span.h:379
    +
    TCB_SPAN_CONSTEXPR11 reference back() const
    Definition: span.h:408
    +
    constexpr size_type size() const noexcept
    Definition: span.h:391
    +
    TCB_SPAN_CONSTEXPR11 reference front() const
    Definition: span.h:403
    +
    constexpr size_type size_bytes() const noexcept
    Definition: span.h:393
    +
    TCB_SPAN_CONSTEXPR11 reference operator[](size_type idx) const
    Definition: span.h:398
    +
    constexpr span(element_type(&arr)[N]) noexcept
    Definition: span.h:309
    +
    constexpr pointer data() const noexcept
    Definition: span.h:413
    +
    TCB_SPAN_ARRAY_CONSTEXPR reverse_iterator rend() const noexcept
    Definition: span.h:422
    +
    constexpr span(const span< OtherElementType, OtherExtent > &other) noexcept
    Definition: span.h:344
    +
    element_type * pointer
    Definition: span.h:284
    +
    TCB_SPAN_CONSTEXPR11 span< element_type, dynamic_extent > subspan(size_type offset, size_type count=dynamic_extent) const
    Definition: span.h:384
    +
    element_type & reference
    Definition: span.h:286
    + +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type uncvref_t
    Definition: span.h:217
    +
    constexpr std::size_t size(const T(&)[N]) noexcept
    Definition: span.h:184
    +
    constexpr auto size(const C &c) -> decltype(c.size())
    Definition: span.h:179
    + +
    typename std::remove_pointer< T >::type remove_pointer_t
    Definition: span.h:246
    +
    constexpr const E * data(std::initializer_list< E > il) noexcept
    Definition: span.h:204
    +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    + +
    span< byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> as_writable_bytes(span< ElementType, Extent > s) noexcept
    Definition: span.h:486
    +
    constexpr span< ElementType, Extent > make_span(span< ElementType, Extent > s) noexcept
    Definition: span.h:449
    +
    constexpr auto get(span< E, S > s) -> decltype(s[N])
    Definition: span.h:492
    +
    span< const byte,((Extent==dynamic_extent) ? dynamic_extent :sizeof(ElementType) *Extent)> as_bytes(span< ElementType, Extent > s) noexcept
    Definition: span.h:479
    +
    constexpr TCB_SPAN_INLINE_VAR std::size_t dynamic_extent
    Definition: span.h:146
    +
    unsigned char byte
    Definition: span.h:137
    +
    #define TCB_SPAN_EXPECT(cond)
    Definition: span.h:85
    +
    #define TCB_SPAN_INLINE_VAR
    Definition: span.h:91
    +
    #define TCB_SPAN_NODISCARD
    Definition: span.h:143
    +
    #define TCB_SPAN_ARRAY_CONSTEXPR
    Definition: span.h:131
    +
    #define TCB_SPAN_CONSTEXPR_ASSIGN
    Definition: span.h:107
    +
    #define TCB_SPAN_CONSTEXPR11
    Definition: span.h:111
    + + + + + + + + + +
    constexpr span_storage() noexcept=default
    +
    static constexpr std::size_t size
    Definition: span.h:160
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/splitbar.png b/dox-master/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/dox-master/splitmd__data__descriptor_8h.html b/dox-master/splitmd__data__descriptor_8h.html new file mode 100644 index 000000000..b43d4e9fc --- /dev/null +++ b/dox-master/splitmd__data__descriptor_8h.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/splitmd_data_descriptor.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    splitmd_data_descriptor.h File Reference
    +
    +
    +
    #include <type_traits>
    +#include "ttg/util/meta.h"
    +#include "ttg/util/iovec.h"
    +
    + + + + + +

    +Classes

    struct  ttg::has_split_metadata< T, Enabler >
     
    struct  ttg::has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >
     
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/splitmd__data__descriptor_8h_source.html b/dox-master/splitmd__data__descriptor_8h_source.html new file mode 100644 index 000000000..a0aa70e9e --- /dev/null +++ b/dox-master/splitmd__data__descriptor_8h_source.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/splitmd_data_descriptor.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    splitmd_data_descriptor.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_SERIALIZATION_SPLITMD_DATA_DESCRIPTOR_H
    +
    2 #define TTG_SERIALIZATION_SPLITMD_DATA_DESCRIPTOR_H
    +
    3 
    +
    4 #include <type_traits>
    +
    5 #include "ttg/util/meta.h"
    +
    6 #include "ttg/util/iovec.h"
    +
    7 
    +
    8 namespace ttg {
    +
    9 
    +
    34  template <typename T>
    + +
    36 
    +
    37  /* Trait signalling whether metadata and data payload can be transfered separately */
    +
    38  template <typename T, typename Enabler = void>
    +
    39  struct has_split_metadata : std::false_type {};
    +
    40 
    +
    41  template <typename T>
    + +
    43  T, ttg::meta::void_t<decltype(std::declval<SplitMetadataDescriptor<T>>().get_metadata(std::declval<T>()))>>
    +
    44  : std::true_type {};
    +
    45 
    +
    46 } // namespace ttg
    +
    47 
    +
    48 #endif // TTG_SERIALIZATION_SPLITMD_DATA_DESCRIPTOR_H
    + + +
    void void_t
    Definition: meta.h:23
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/stream_8h.html b/dox-master/stream_8h.html new file mode 100644 index 000000000..329feb7e3 --- /dev/null +++ b/dox-master/stream_8h.html @@ -0,0 +1,158 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/stream.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    stream.h File Reference
    +
    +
    +
    #include <streambuf>
    +#include <cstring>
    +
    + + + + + + + + + + + + + + + + +

    +Classes

    class  ttg::detail::counting_streambuf
     streambuf that counts bytes More...
     
    class  ttg::detail::iovec_ostreambuf
     streambuf that records vector of address-size pairs More...
     
    class  ttg::detail::iovec_istreambuf
     streambuf that reads vector of address-size pairs More...
     
    class  ttg::detail::byte_ostreambuf
     streambuf that writes bytes to a buffer in memory More...
     
    class  ttg::detail::byte_istreambuf
     streambuf that writes bytes to a buffer in memory More...
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/stream_8h_source.html b/dox-master/stream_8h_source.html new file mode 100644 index 000000000..5c644eb73 --- /dev/null +++ b/dox-master/stream_8h_source.html @@ -0,0 +1,272 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/stream.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    stream.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 5/12/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_STREAM_H
    +
    6 #define TTG_SERIALIZATION_STREAM_H
    +
    7 
    +
    8 #include <streambuf>
    +
    9 #include <cstring>
    +
    10 
    +
    11 namespace ttg::detail {
    +
    12 
    +
    14  class counting_streambuf : public std::streambuf {
    +
    15  public:
    +
    16  using std::streambuf::streambuf;
    +
    17 
    +
    19  size_t size() const { return size_; }
    +
    20 
    +
    21  protected:
    +
    22  std::streamsize xsputn(const char_type* s, std::streamsize n) override {
    +
    23  this->size_ += n;
    +
    24  return n;
    +
    25  }
    +
    26 
    +
    27  private:
    +
    28  size_t size_ = 0;
    +
    29  };
    +
    30 
    +
    32  class iovec_ostreambuf : public std::streambuf {
    +
    33  public:
    +
    34  using std::streambuf::streambuf;
    +
    35 
    +
    36  const auto& iovec() const { return iovec_; };
    +
    37 
    +
    38  protected:
    +
    39  std::streamsize xsputn(const char_type* s, std::streamsize n) override {
    +
    40  iovec_.emplace_back(s, n);
    +
    41  return n;
    +
    42  }
    +
    43 
    +
    44  private:
    +
    45  std::vector<std::pair<const void*, std::size_t>> iovec_ = {};
    +
    46  };
    +
    47 
    +
    49  class iovec_istreambuf : public std::streambuf {
    +
    50  public:
    +
    51  using std::streambuf::streambuf;
    +
    52 
    +
    53  iovec_istreambuf(const std::vector<std::pair<const void*, std::size_t>>& iovec) : iovec_(iovec) {}
    +
    54 
    +
    55  protected:
    +
    56  std::streamsize xsgetn(char_type* s, std::streamsize max_n) override {
    +
    57  const auto n = iovec_[current_item_].second;
    +
    58  if (n > max_n)
    +
    59  throw std::out_of_range("iovec_istreambuf::xsgetn(dest, max_n): actual size of data exceeds max_n");
    +
    60  const char* ptr = static_cast<const char*>(iovec_[current_item_].first);
    +
    61  std::copy(ptr, ptr + n, s);
    +
    62  return n;
    +
    63  }
    +
    64 
    +
    65  private:
    +
    66  std::size_t current_item_ = 0;
    +
    67  const std::vector<std::pair<const void*, std::size_t>>& iovec_;
    +
    68  };
    +
    69 
    +
    71  class byte_ostreambuf : public std::streambuf {
    +
    72  public:
    +
    73  using std::streambuf::streambuf;
    +
    74 
    +
    75  byte_ostreambuf(char_type* buffer, std::streamsize buffer_size = std::numeric_limits<std::streamsize>::max()) : buffer_(buffer), cursor_(buffer_), buffer_size_(buffer_size) {}
    +
    76 
    +
    77  // hides basic_streambuf::sputn so can avoid the virtual function dispatch if the compiler is not aggressive enough
    +
    78  std::streamsize sputn(const char_type* s, std::streamsize n) noexcept {
    +
    79  return this->xsputn(s, n);
    +
    80  }
    +
    81 
    +
    82  std::streamsize xsputn(const char_type* s, std::streamsize n) noexcept override final {
    +
    83  assert((cursor_ - buffer_) + n <= buffer_size_);
    +
    84  std::memcpy(cursor_, s, n * sizeof(char_type));
    +
    85  cursor_ += n;
    +
    86  return n;
    +
    87  }
    +
    88 
    +
    90  std::streamsize size() const noexcept {
    +
    91  return cursor_ - buffer_;
    +
    92  }
    +
    93 
    +
    94  private:
    +
    95  char_type* buffer_;
    +
    96  char_type* cursor_; // current location in buffer_
    +
    97  std::streamsize buffer_size_;
    +
    98  };
    +
    99 
    +
    101  class byte_istreambuf : public std::streambuf {
    +
    102  public:
    +
    103  using std::streambuf::streambuf;
    +
    104 
    +
    105  byte_istreambuf(const char_type* buffer, std::size_t buffer_size = std::numeric_limits<std::size_t>::max()) : buffer_(buffer), cursor_(buffer_), buffer_size_(buffer_size) {}
    +
    106 
    +
    107  // hides basic_streambuf::sgetn so can avoid the virtual function dispatch if the compiler is not aggressive enough
    +
    108  std::streamsize sgetn(char_type* s, std::streamsize n) noexcept {
    +
    109  return this->xsgetn(s, n);
    +
    110  }
    +
    111 
    +
    112  std::streamsize xsgetn(char_type* s, std::streamsize max_n) noexcept override final {
    +
    113  const auto n_to_read = std::min(buffer_size_ - (cursor_ - buffer_), max_n);
    +
    114  std::memcpy(s, cursor_, n_to_read * sizeof(char_type));
    +
    115  cursor_ += n_to_read;
    +
    116  return n_to_read;
    +
    117  }
    +
    118 
    +
    120  std::streamsize size() const noexcept {
    +
    121  return cursor_ - buffer_;
    +
    122  }
    +
    123 
    +
    124  private:
    +
    125  const char_type* buffer_;
    +
    126  const char_type* cursor_; // current location in buffer_
    +
    127  std::streamsize buffer_size_;
    +
    128  };
    +
    129 
    +
    130 } // namespace ttg::detail
    +
    131 
    +
    132 #endif // TTG_SERIALIZATION_STREAM_H
    +
    streambuf that writes bytes to a buffer in memory
    Definition: stream.h:101
    +
    byte_istreambuf(const char_type *buffer, std::size_t buffer_size=std::numeric_limits< std::size_t >::max())
    Definition: stream.h:105
    +
    std::streamsize xsgetn(char_type *s, std::streamsize max_n) noexcept override final
    Definition: stream.h:112
    +
    std::streamsize sgetn(char_type *s, std::streamsize n) noexcept
    Definition: stream.h:108
    +
    std::streamsize size() const noexcept
    number of characters read from the buffer
    Definition: stream.h:120
    +
    streambuf that writes bytes to a buffer in memory
    Definition: stream.h:71
    +
    std::streamsize xsputn(const char_type *s, std::streamsize n) noexcept override final
    Definition: stream.h:82
    +
    std::streamsize sputn(const char_type *s, std::streamsize n) noexcept
    Definition: stream.h:78
    +
    byte_ostreambuf(char_type *buffer, std::streamsize buffer_size=std::numeric_limits< std::streamsize >::max())
    Definition: stream.h:75
    +
    std::streamsize size() const noexcept
    number of characters written to the buffer
    Definition: stream.h:90
    +
    streambuf that counts bytes
    Definition: stream.h:14
    +
    std::streamsize xsputn(const char_type *s, std::streamsize n) override
    Definition: stream.h:22
    + +
    streambuf that reads vector of address-size pairs
    Definition: stream.h:49
    +
    std::streamsize xsgetn(char_type *s, std::streamsize max_n) override
    Definition: stream.h:56
    +
    iovec_istreambuf(const std::vector< std::pair< const void *, std::size_t >> &iovec)
    Definition: stream.h:53
    +
    streambuf that records vector of address-size pairs
    Definition: stream.h:32
    +
    std::streamsize xsputn(const char_type *s, std::streamsize n) override
    Definition: stream.h:39
    +
    const auto & iovec() const
    Definition: stream.h:36
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_args_as_typelist.html b/dox-master/struct_callable_wrap_t_t_args_as_typelist.html new file mode 100644 index 000000000..eae15f241 --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_args_as_typelist.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_values_typelistT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_values_typelistT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT, typename output_terminalsT, typename input_values_typelistT>
    +struct CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, input_values_typelistT >

    + + +

    Definition at line 383 of file make_tt.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter1ea4a15775597eac016882f437f297ec.html b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter1ea4a15775597eac016882f437f297ec.html new file mode 100644 index 000000000..b1498f017 --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter1ea4a15775597eac016882f437f297ec.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html new file mode 100644 index 000000000..d5027dec5 --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter3b664cb5b00006baf66fbd21bf698429.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT, typename output_terminalsT, typename... input_valuesT>
    +struct CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >

    + + +

    Definition at line 387 of file make_tt.h.

    +
    + + + +

    +Public Types

    using type = CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::remove_reference_t< input_valuesT >... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
    + + + + +
    using CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::tuple< input_valuesT... > >::type = CallableWrapTTArgs<funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::remove_reference_t<input_valuesT>...>
    +
    + +

    Definition at line 389 of file make_tt.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter40d1bb60d677324c85caad54df01ae30.html b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter40d1bb60d677324c85caad54df01ae30.html new file mode 100644 index 000000000..a898ac596 --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outter40d1bb60d677324c85caad54df01ae30.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html new file mode 100644 index 000000000..b3d701980 --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_args_as_typelist_3_01func_t_00_01return_t_00_01func_t__receives__outtere72486ff9ca2e41e31e519c9a3ec32f0.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename funcT, typename returnT, bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT, typename output_terminalsT, typename... input_valuesT>
    +struct CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >

    + + +

    Definition at line 395 of file make_tt.h.

    +
    + + + +

    +Public Types

    using type = CallableWrapTTArgs< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::remove_reference_t< input_valuesT >... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename funcT , typename returnT , bool funcT_receives_outterm_tuple, ttg::ExecutionSpace space, typename keyT , typename output_terminalsT , typename... input_valuesT>
    + + + + +
    using CallableWrapTTArgsAsTypelist< funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >::type = CallableWrapTTArgs<funcT, returnT, funcT_receives_outterm_tuple, space, keyT, output_terminalsT, std::remove_reference_t<input_valuesT>...>
    +
    + +

    Definition at line 397 of file make_tt.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_unwrap_typelist.html b/dox-master/struct_callable_wrap_t_t_unwrap_typelist.html new file mode 100644 index 000000000..8cf886e14 --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_unwrap_typelist.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_values_tupleT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_values_tupleT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename funcT, bool funcT_receives_outterm_tuple, typename keyT, typename output_terminalsT, typename input_values_tupleT>
    +struct CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, input_values_tupleT >

    + + +

    Definition at line 107 of file make_tt.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html new file mode 100644 index 000000000..4caa4d7ad --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k39ff4e52f207da634b4900c72be1d0bf.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename funcT, bool funcT_receives_outterm_tuple, typename keyT, typename output_terminalsT, typename... input_valuesT>
    +struct CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >

    + + +

    Definition at line 112 of file make_tt.h.

    +
    + + + +

    +Public Types

    using type = CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::remove_reference_t< input_valuesT >... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
    + + + + +
    using CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > >::type = CallableWrapTT<funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::remove_reference_t<input_valuesT>...>
    +
    + +

    Definition at line 115 of file make_tt.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html new file mode 100644 index 000000000..fd918cbcc --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k590d9bc3999c471ee4613e34344250fa.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename funcT, bool funcT_receives_outterm_tuple, typename keyT, typename output_terminalsT, typename... input_valuesT>
    +struct CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >

    + + +

    Definition at line 122 of file make_tt.h.

    +
    + + + +

    +Public Types

    using type = CallableWrapTT< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::remove_reference_t< input_valuesT >... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename funcT , bool funcT_receives_outterm_tuple, typename keyT , typename output_terminalsT , typename... input_valuesT>
    + + + + +
    using CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > >::type = CallableWrapTT<funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::remove_reference_t<input_valuesT>...>
    +
    + +

    Definition at line 124 of file make_tt.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k630a561a47b71aa9e3edd09485b80306.html b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k630a561a47b71aa9e3edd09485b80306.html new file mode 100644 index 000000000..50a99dded --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01k630a561a47b71aa9e3edd09485b80306.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, std::tuple< input_valuesT... > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01kcc606679f9dc6a631b54e9ba76088b42.html b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01kcc606679f9dc6a631b54e9ba76088b42.html new file mode 100644 index 000000000..674843a2f --- /dev/null +++ b/dox-master/struct_callable_wrap_t_t_unwrap_typelist_3_01func_t_00_01func_t__receives__outterm__tuple_00_01kcc606679f9dc6a631b54e9ba76088b42.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    CallableWrapTTUnwrapTypelist< funcT, funcT_receives_outterm_tuple, keyT, output_terminalsT, ttg::meta::typelist< input_valuesT... > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.html new file mode 100644 index 000000000..e0fd84158 --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< typename, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< typename, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< typename, typename >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename, typename = void>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< typename, typename >

    + + +

    Definition at line 232 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data.png new file mode 100644 index 0000000000000000000000000000000000000000..27d3285cc9285ac19417bbdaaccef8e4ecc4ecdd GIT binary patch literal 1152 zcmeAS@N?(olHy`uVBq!ia0y~yVEhDR2XHV0$*XVJHv=h&0G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu1{Qu#7srqa#CgYF-~9Z#^U4jcc=OneDz;7PTIMTb{w?a^%h31if3UH$cFmuuE5Cn_p7(v`-qUQMKwXXQTJq1{ zT5bG2dzV|d|D<^?Et_kW)D%s7f9kW&^dN+4FM&0OXqKrt5OR^}F<2yOAYB1pJPI4}t`hwuq>A>-Jc zYwK^{{dXw*O8W>mZ-u;n*Vn%N^q)_5E42H5{ngNMIRE~Q z-}cjYL*8A!T;ue$DtqU-t*b3oZv0a`@7TpxLi-=+xzt*Jy*`yW<`Ls5b^p0*jJ}?> zkN;Rvx41?o_fP5cMbn;ce9HO%@|#b&yl?;Cy1MmgU(nJg3s&uXUwtY6@-K-ldB^Wt z>a(x^*HetKT{S~m0b;<)PY&=s#u98YPj6tBCw$F92V z?=RJ-r(O$g@n3ys*JpXt^=wwb_vZEA{&YWn_sjV{H$D71t$LsB+AqIVYKnA(vDfv` z*{W*Ug%n8pF z)9S#}QSp;sUrSl@$Kzh}k-8^t@voZBO)>v_ZR72!uibCT|8-eT&n(FaLOv zx8Tn8jHh$ltV8R>w%&gFHf%;p(>CjPqh4FzUwdagta~x};0F$-Q(qT9yBr&Ld&i1B ze^)&Ycpdh1cSh{VxhtNhzl!oOXB>`Qi7O<>vR_&pN;T z#bW2=)rCEqr279)$$DOUL*_%cwMGNWgYyzH5)A5Fj-NaGtYQB>&G_;Qt#W$dEIZEJ zcVW%2eEV|Ehj#+Ew{R5r<^S=Y%B;e$|43a8Q_TVX*~^O>3YHW#1R&!*Q)bUpO-pn9 a!S2v+Tq5{u5eKliVDNPHb6Mw<&;$UPcS2|Y literal 0 HcmV?d00001 diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.html new file mode 100644 index 000000000..ab90dd5ad --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::has_size_and_data< T, void_t< decltype(detail::size(std::declval< T >())), decltype(detail::data(std::declval< T >()))> >

    + + +

    Definition at line 235 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1has__size__and__data_3_01_t_00fcf51269242c64e6f704600d32eb2114.png new file mode 100644 index 0000000000000000000000000000000000000000..ad09d3fd9cc7414079d5d6f6f45a6f313880a34f GIT binary patch literal 1734 zcmc&#eK^xw9RDGDkwhu%N}+N+UTQb1yhclH;m*tQWb)b_vRR5J(nhJ6hFZ&VCqg%6 z&Ag2aS;UGvDzOc#9;S>&OWtYshv&I}-h2PM=XuWee9t-G&-s47-|utIA)`ExYOOO| z2LON;;uzc;0Ms%-9koUcl<7^u;ozW;a`!!=R4PGr_{(HmR?|&TTkbp_Po3Ov3{Ka? zdVBf+pwUw6Zu5l#fCd@?ckzu^k>BeJE#m5`GlQ^;N@D^)`HkLJ_e;M^EmPCAhI^>U zMI`(xIc<-Q&Mp&^wXRf(nE?VyrCq_(%uEq(RA_ky^|aZmW8S-}y_WadUcivlTi{-f z$PF>K_Q~jX|I+5Ti9+PttY#SU?XNsgjJJY9K;|2^d>bDUpHnViq=`=Efu)_s&Uu~f zLhwKt7DRLR?~wZ?R7x7685VKsyWJ67ThPgvpu&~q&CZPv9USI>WVloe&cfcQ{;k)lwW9+tvSxr5HyUs{GNrjiz45k7^lE&d8?5 z6vWrBn7)cnk`s&p30o+Tt&N>cE78oH!+$C>klmjOF_jcSEtAs~0~F>YYqL+ko_>a! zc_|iqy};%;Q8asDwOyX%9V)f9JS{@Az~JI!JgYVqvpJU*PeQw7`7=N4E6?RzJkt^f zQL$EJX9zF;aDrq_Izf>37-iLw@K%rM;bK*z>{nWG(Sy>`iHMp)S;151@|gbK19`_; zW1mXJoCTq@6+JGGI-4d(aGj=0M!Kn)^Xlo$nhWEnXVH`jR?rkGbI8^nA0Whr>3;K1 zWTNTDl(3CjWkCeo8*L4{fWjB3%ZuDIgHh9djN#X<)$l)>t2nDrqh71S!oW~A=Wjk5;0JYjFkP}lUu`2Z>U(WcA+{0+@ z*?@OA!?Evh%LzX#rvE8-;B_nMB9~V}>T7E8 zw{`S2!ea_;VnSdVJA^3~d|SxTtpdyMe!K4W&6FPshiQBf@(&wv50u4tJj0x`9{EC@ z7C-58*+i&55zgwCG>S(^NR}0@ed>}fDv%8o^w)P(5VucS()gi!6VZ)Xjed=XVmuy> z+CtEGN=9K74c-ZJFt)V-D=*hafMd!-U_FmN z!^_=@kutcm3$2f|yKgv>lI|N6sD95CKb79oENTeY_z{{Psds; + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_complete< typename, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_complete< typename, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_complete< typename, typename >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename, typename = size_t>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_complete< typename, typename >

    + + +

    Definition at line 259 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete.png new file mode 100644 index 0000000000000000000000000000000000000000..14624af9987085a7256a55cdb7390165c4b1b5a4 GIT binary patch literal 1102 zcmeAS@N?(olHy`uVBq!ia0y~yU_1e22XHV0$yK(ZPC!Z`z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op%N|?tuyW77^Z)C9@8GZ`#g)IC}ta*5Ko}Wj-zLE42@??`%Dt@oHbKK)05F-;v|sF2qktQ+CRf?XJ0c>hI66%-YsI;3l6BX9uT#>u`h9(piR9<$ zVV=JvXM1?gnjf$BY3uua|GSO@T^79gthK9Gkdo(r7R{hZOcRt;H5uRx{fTL5oilG< zVQ6{It-v^Awg{(zeSCbTP(oFZ%7H(7Y?gU8-1MBtpy<)d01O4%;vb?)XU_;3Z{B&3 zL8xIS&{h;1Z@Aw2wLSJNf6d`{AFo}k?VtbdecXQWW|_5jW-kw%{p{}5!p}J$`xf=y zXSR8E{*B6Z<=Ccgp6008{JUap-rao^j_|5x9h*miHq{H6cPHuB$g%l;+DY*OeJIGaPhtX}Jr z$DN7o&BhaRyR{}Szj&{6Psgq}y`6TqwuZC)dwg`-eAQOfa~iYaIYZB{-mRNuyqAAh zc>DR8C%)ae8TS0&4b`n@JEhn9R(4iNo#p*+lcm4(?ftpa^R6*JU9Pmd{@s`5ammw_ z=9ibRe)+5~=lOp1^(t4@4@XC3A2X;vobgz;(mX5jV7B6&T`|+IeOL1CdAdrk@2%G7 zWb?<BOz`_t)+=}PMtm053!ec<~gt?YeS%4dE4>v`7S zJTuu(JzxB8x%H-VAAKjjUDM~hDmwf9qSE|%F1jc8X>>34s-Cs^cKVY*Jw5HGnVEkx zzjqrK-9OnZ8*_DE8voYr-#Sm-6Ky)f`2QQc3iSNmwdHwQWzqwC-_kpMuY$I2*M0wL zb~oD&|Cy)aivO;>+*{A{EwcPTeN8Bf$1N*{g63sSjC&Sl{n=yv!2Z3!=_`SmpTX1B&t;ucLK6V*CioWs literal 0 HcmV?d00001 diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.html new file mode 100644 index 000000000..218bbb76f --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_complete< T, decltype(sizeof(T))> Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_complete< T, decltype(sizeof(T))> Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_complete< T, decltype(sizeof(T))>:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_complete< T, decltype(sizeof(T))>

    + + +

    Definition at line 262 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__complete_3_01_t_00_01decltype_07sizeof_07_t_08_08_4.png new file mode 100644 index 0000000000000000000000000000000000000000..40c68b59829edf4e55dba6bf0d554f565443182b GIT binary patch literal 1126 zcmeAS@N?(olHy`uVBq!ia0y~yU_1t72XHV0$t_=0KLRO<0G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu2IjAxE{-7;jBn@OoOV}>ht*qu@Bjb( z?=$%o*!*{ThCK;0zkQrdrp1fp=%F)oIDN8kOQ9NZZgW zsA4bk<8AGmre3z)`|*yNn2>W!hcabVa@`rz>3B~Gab)|U%Hl5b$?XS5N zSOp?G1r>Jf+c!zsp+MEG;l-~2pFW0-QzaPV7PN2(!~rGu2q`;M0HuJz!0-?#0SpDE zmhdDNj`c^VqQIVU@yy6mXLL3hG>ACFpj&jk@8Y%nZ}Z-N5N?0>*0p@@_jk$j?@#WZ z5}Eg8<<-1j1>th@Wbe-0dd~RncXi{x&l#n5o@L-E(z|(w`Ny+G7k8%rPut$Oth%~5 zcK_@OgXEu?)2ugN>nr)aV^h`3AMrjm;u6dM_8Y{lJ)K{-n`im5qZJ=a7*@P{vu4+G z?w;c8&vWl?ikg_;em%Y|<4v*e-^hFS^S+(`c8%e>U)Y15cXy8#%nW2Ym%iBOAnSww zMQ!-@v37ot2@ zt94uNNnO}-j`J+noWOFw-3zTEzTfw=@K~kn)^MfpB(ufUwJ&3*RsVRzc+|V+wdeki zb8ibX=Dj{2u{ZnQ&2sqzKVC~P)~%`ApZ)C+>yK|8k6V(GSUNCL;;#e~WAB+WS+CVQ Xxk`AmNcjf>3k3#GS3j3^P6 + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U > Member List
    +
    +
    + +

    This is the complete list of members for TCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U >, including all inherited members.

    + + +
    valueTCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html new file mode 100644 index 000000000..f66a3ec38 --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename C, typename U = uncvref_t<C>>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U >

    + + +

    Definition at line 240 of file span.h.

    +
    + + + +

    +Static Public Attributes

    static constexpr bool value
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename C , typename U = uncvref_t<C>>
    + + + + + +
    + + + + +
    constexpr bool TCB_SPAN_NAMESPACE_NAME::detail::is_container< C, U >::value
    +
    +staticconstexpr
    +
    +Initial value:
    =
    +
    !is_span<U>::value && !is_std_array<U>::value && !std::is_array<U>::value && has_size_and_data<C>::value
    +
    +

    Definition at line 241 of file span.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.html new file mode 100644 index 000000000..b5b39bea0 --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename E>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< T, E, typename std::enable_if< !std::is_same< typename std::remove_cv< decltype(detail::data(std::declval< T >()))>::type, void >::value >::type >

    + + +

    Definition at line 252 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__0c28d3e6adf337284cfc3b0cc90ba466.png new file mode 100644 index 0000000000000000000000000000000000000000..fa28aa57e5b6c8d86670bcf28ca74508ce0e561e GIT binary patch literal 2916 zcmds2XH=8v5)PLY1PSbwVnhVpjVPk9dI?2}7wL!)qzRD(1SugDK?nkZiyEW|ONSsJ z2qMJLLRqA0Vj^97Nueni={1B9a)Z0;xxel?`}e-*eDBOR=b87+%z0)e7HVk%6qOYP z002NUQ^V^3zyTm%haME<-;V-coZ<@*)WX(?$K&zUFAJN&N$-B+Yu~=MwzdPYGzI?e z!MoQjZ2)}G{u%19y$Aq^uA3R^+lC4(=JwrMe=Yt)Oit7U@2OSJsKBGjTy@_TdG*^^ z(4mt*IQc0ROWBw!y-d4qp;Vl8-P}<;4t&(?Vv0Ms-L(JK4dAJE)0AZJ&t^WiAZdJI zoRR>>#|}aHVjoqbXm9Wr7|RDU5iZmiN=QU7LXS+RqMw=er+rmJ=WmERLk!JCX%p@P zB-eXqILqfm9Kk8rVRRbD;xzUuzzT*~xtZN8J-73nl%R{qb^B{e$6;NZ!TZnXYvUk=ReyRPw`Glz<$<-- zR#Z>w0xIPi9vvu`3Y`_zs96&z~gLT$yes%zO33I(4U{}j5XP&k2Cx* zjgcPm+MFG~yA!4^S$M3l0wtbFA-Ot(9zKo3+82#0hD<3tS`9ct>M`RVZZ2zvnc>NY zuJQxt{=_d|m}-*KSMV9BfxX}2>}|5M!wef_eR~H3$`uv|@tbcamxMHLcA+flpO8HA z`m;y2)0m?M5-()y==4GEhu+@7j<7Rk{$wQo@~9}Ty8DnUCe3|IU$XaVxJhShz8_AA zMS^tlaIXK_B!>N%iUg(OfsIaJ-D@@a{U$jt(iD?XK9LC$9a4EAGbcX4(CEzD*h{t5 z^5*@pDp~V>Dl@&H6bny&iPU^$&r_Cx!QM+k(rl^8vWZ6WcbksNmG~;guStcGMUtW~ znR?5#gUBc5R;NXgAk{~6Lm!>~jBUBtw6?aGIy3;?tv%D&@j9|l{%%XSbavQl*?{L5 zebIL)2p09JT=&KM*j@RtSFgO+|7jO5R3#S3pr5%g=gS%y{Pq-OKh0VDL-m)MOATzO z&P-bV5~4XomqDk{j2#G7gJC8~?c;?@#=eX9k zCAxhhgXKOMRBe_N%yxpe8Y;T?9-A(cdA&$YA-8?z9_F)g-`~d5ef=1nC!p0us??*m zlxPqk-`vChZdd))f@=ks;mAE5Oe`#5RnJ@mInei zQh0j=xqo~!+LOK;B`(zbX_WbHl=eCKK;RdEkju5#7=RG}p$CvE**`pozk?)k{}-Ui z-0!9PW8$3?KJaJhWWJZ~f92}#Kn&!eTDKC11HLeX)OqU+E}g=93zopmb`#(a*(>v_ z0ZgF}&j6pEjqA*bPd?!wuPi+n|C$(by!Vk<0I6@I#F*tQgpB8`(;@{7BRyjQh@U$< zBFdYFt6kZyK1h!&9lFBvx=IJPp~Yiw1l1PXrQlY(J{FfC3qj4NHNds=3}c35KgjZ& zAA%m@&e+j7+35+lN}p>0-mBW|99r4^U{NzW0VNjsmtg>iX`VSS=EiJ{cCD7hG6AV+ z(^M)KdH(UT9kG4jxtm@3yYZYkNk~`o=T*d-Q~J6`MEK_RNG^fH*?WmYD9of5;Ei(X zkTx;P1;%Iz4s9Ns#SMkfbCU2CJwUa^8^Dq~VpjCPubVYSDMdf6s*|?IE-$Q+?o=Z@ z1@=Y{``4vD?Wrq_($Ie8>q3~Rx;?cJ(2JU7^5?6}hAu=$ce5SkoM4h+Vie%Lbb4r| zK+jn%1_?TUNedgMZ9^2SVCA!N%W=z5(q6E91{X*8a#Nk7mWU^!@o@$-*&^`MZ&8fu zA(AQOW8(6bTH;hG%+fSCqr82fvTLz`AqgF~KT+eQDe_Bb#MI$Ng0#jP)ozrA8)|IQ zJ8dkheJXDh>gDw7{(SZcY*PGuvr!@gqRqm`^bJ`*XFg!l=y4v%ZMFci@z5%Rt`Zgo z6{eTLOBh&YJ_~!QRzcxx6?G)FfZdG_y=a1VoJ!b~Bq)0*Ug7deSQGa%~P95*9d4CZI!pH`o!@*Q3>=48xBUQRd-221gO+m zBOBKSE4$%Od}dd7XjGydgr;y>!?O^BHyXqn_{ShaKL!6*vrx^P)3zoqIEeWN0x53k z2+-t>*?-gq zBeO`u#!|{>pR)U>^fVh&H$0LPTrHAD%B%H(s;KvN5L8Lt4e_;z+Ua+SkAG%qmW~Vt zX!dQ!iKIl#`i8D2jJ%-=r^r~6?r}Ywq=tT}>Y+Ui4}$tXtVg93oRAD|D8vvR9IC<7 zD^;GnP6MXfdt(qg!dJftmfUDFNx~+ zX>L`Q;C%JhJuoiQ9~@O?y~y^(sKbf1qpheC(Vzg|5W)qzHZeclntW=?_NlW!kqGfT;?>h&?1bfb^SQ`KYSB{AliUyD} zSTM((B8d@MKme29U`uhQ$l+m$6^c{QpuIBNUB8}*YSMB(O>MTd0y9<}X(!fN%HJ%L#VE5V^Q!{z?jzHH z?W?=*Pg&mD6ATR17n>kRXU^9Bt)2790C@Gk_8@ + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< typename, typename, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< typename, typename, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< typename, typename, typename >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename, typename, typename = void>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_container_element_type_compatible< typename, typename, typename >

    + + +

    Definition at line 249 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__compatible.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__container__element__type__compatible.png new file mode 100644 index 0000000000000000000000000000000000000000..27b2ecde01e4ea727213208b1fd30276076a14a6 GIT binary patch literal 1433 zcmcIkdpOf;9RIm>R3to3oE*ALIAu88#NlNH2qzlQmTnf>3xy5mrP!^4! z<+0g>9rPf{Ic9T9m&d7SW-33+*mi#F>72j%_q@;ZzVG+_Jm2^8y}a-DdnJJArN8Qj zRR93!6TCh40e~hQmIHLP;5AE_=?ibB0ltBrDwPTrr)HpYw2oV_^kwq-e4Q)LE#aeX z!am}D09H~D;gi4}0H9+-@Yo%gq#-FAKl=c^R)>1@p;ASog(GMe+rg=eJ=_ zcP0Z7vhnWOA?wF&vxk2i#&hrb4C<)CyxNPNJ1(65R^{ML=j(YebEF!>dA})|a+%|Z;uC^lr*AZhgfU?ghr zG6X}mtWp@-C^F^)h%SnzX&RhYKIdPH&a!MIp3JrY4CC(Zx8sl%}RbzVfgGl zE$8q>$B7pj!VhkY#qqgth-tC3(AQ#j5((y9TPNiAX20`#GvpjhWu&+uBa&-6TJ5Nx zra0oD9SRJE_-sv>i67k(;wzRj>65XO$Ijcv>?PN=L+$R+4Ap%xsmlN-HiXy(+pR7H zN0-N0x;;Y&JuQA@(em~XSio)B)=63u*&iLB@lqH+d_0whalkGa-mnzJg7dDuJf}zf zqk|e+m%Zv@7NhVe+iQC1BSvk#f-I5PJfdvdZ~ec>9Th&}d;QferH&7hxlabNoJuf) zPfG?i-IYs;+e|y;R>G*J9!enRn|!v5my<<4-5e%k^HC zyhi1DSf?l`Nzm00CS9?ABHyNVsO4}AXGm6I+!;Ihp6nPywl73BUoLf$)zJN-ddJuW z$-Y=#aL4re3rQve^D|pWZ=;vQ5ygbcHVeg>&!VH?G`H;6vZ|EZT3E4Rt2bkm2)XuA zPBS@meJNpGOmx%g*)XprNyDA`&;BX=BLm8_?TsMgcf|X|W&ciwu+i~dC0$YNI)J$d zPLrGCtz%e|U97!eIlH2QE{&R{ZY@H|_Oky%q`y6c9s7W?zLfArO6yo(BEQts1iCk! zvBmfcS5SM%Ygo6i@nNlG^kBsS(ZcThJCgC8o`v;e zN=HAeG|250D9zTg>m%c=lSRX~$lLy70~1s6-Bf^qq?0 z9AF8~ANfg;X@)e=Zhjj1u+2)L7(rK_LW9Q2sDgA7Ky-c&mAu{+-%Qb5MvJRcc@$-6 pvFqzE)%Ez>)n!4!f9-i!Rlr9 + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_span< typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_span< typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_span< typename >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_span< typename >

    + + +

    Definition at line 220 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7a7e542138ee6202a1b974a4e742ab606ddaaf GIT binary patch literal 1035 zcmeAS@N?(olHy`uVBq!ia0y~yU@QW%12~w0r149>O+ZQ_z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op+g3N}i^{!))6P$kzw&93P4-Tey9wG-+`aeC2R&S~?z*#W z)RF$PlfJOXMMbE*tj+;CX5k;!r>FIHKHY5Zb&2_Ba^yZ=wW;1gKySRXR|GONR>n+n z@_af;r=K%r#x8m@awjFcka!LdH%{u?n}hK zIm;`zY&%;2fjjX0)c*~e?g!Qtn4VY_9RIK8_}^dLPd{gTz8TvUWq*E~-=D-2pYnLu zPuzat->S$LsS=;p{SKAPl7BeuQ*GDpj`F@K-)(1E%Desc`ssP)Yf0gr@2}7E{8?YS z>FxgSH;(f5x`)5s{!uuq>&e7V`|R>&2ITF2dETvFVY!=a&$GCC`z&J(^9^}Z{$5(a zdEv|ZaA)bVAKCWR=8FFx>ZSeMz&y2f9q*&kD{@a4fB!tkZFc(4t1C>eUt6^4{fTfc z@9X>Z^$xdx*MAuo5`EmMaPc($t2_E~raZ3xQslRIu9khbRZ8XjuGlY;Og$@ar&UHj zdgaZhbwi^je(u{>-Lpey7hwMEGS@ zM#@eOy}0I&p1$?dT01lDjd}+=KRx?uzW80~k~N + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_span< span< T, S > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_span< span< T, S > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_span< span< T, S > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, std::size_t S>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_span< span< T, S > >

    + + +

    Definition at line 223 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span_3_01span_3_01_t_00_01_s_01_4_01_4.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__span_3_01span_3_01_t_00_01_s_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..82efb6b9eafc0c2b98600703d3559869d4e27d3f GIT binary patch literal 1013 zcmeAS@N?(olHy`uVBq!ia0y~yU~C7n12~w0|ze;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z}({L;uuoF_;&8?qT2>Mtm68X|NkE^ zEm`W}wJd#7$yvQ`*(p$ z|H9|3Nxz->^~A@<-TIT%D_&fwie}HZ`I6^->1~BueAVlRzvFke{MxSivdkuN{yUTD z=c+997AC!}ICAXoj=u{(2IL5@Wq;2<>5KB2+DyHQy~*pv_gnklKB*?{edX=_PmHym zlkCzyDtP)o(65}a?Q!a}>GLO*l>d8C6%ltzPUWP>B?*u_Z#1hsP3E68rQg;g$WEVM zP*6=tNw{J8XVwIUppEPeCHwa2Feyk^Gk82-dQgdB5>UuGft%sy4Q2q!zFjj-T(2z`D^+&1Fqe@xoOd<{xsVV@wzmh!dC=>0Y3(e<`HX?LH$yfb-QZqX9`(2u^CC3#+#E_!zT)wvG`|6M5g zQ7e;s^i;>Lr0F;HY-3V$uQ~5ETJ>gc + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< typename >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< typename >

    + + +

    Definition at line 226 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array.png new file mode 100644 index 0000000000000000000000000000000000000000..f1a6158dfc77bb13c3ccbf790b9939844d6c8dc2 GIT binary patch literal 1085 zcmeAS@N?(olHy`uVBq!ia0y~yVC)6512~w00G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu2Ie!KE{-7;jBn@Op7dCOhc#Ni_}~A2 zb75%#aqDx}&h^a+n%b`~!Lma2W7o{cQ)hG<3_QI&FRj=n5a(qhk>Z{kAzuq@Gk>_<-*DBNF(*H~4VmHcG>($jwuRc5F?e4EP{@cYZyFW=J z;9=&BD|-Jg&avI{v+(bV51hs9QgicvTV0WrTMqHKu-WY6zwH7NyOFD zdD0>cxX;*mjWjM=g6+W(Im3l6@r?7gnn?f&>d_NU~}r#?TlzV=?+HEv>NEq$^_VwAfDb?F@wDqDM%t}7}Ii8lCQbwkbm*R2gd_m&CEU6jZ!j12Cb zUU>ZQv1xVLVf<@%zP!KvmhLItoQS700!+=s0`04gtxvX^+9xOc$+fgz-F#W|2AS=9 z1>di{w)n{57fnmImgdE5y>+NywaxDd+*7k053gS(G9y$-_t4Sv_Iz`a_g?EVKi9kR z)Ag5PCN=#R^Os-q%bXKAw;JZFw`NXr;EQvkAY+F^zYZ zwyVBtax?!sJ1jdB`#@kz=tMsNHcdlH- zIDx5R?bgd->AD9}_b%Fa^lq!9UOCH-HS;(AI`!vtq<_L64c-Qk2kVU`JeeOTW27d2 iskAgr + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< std::array< T, N > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< std::array< T, N > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< std::array< T, N > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, std::size_t N>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::is_std_array< std::array< T, N > >

    + + +

    Definition at line 229 of file span.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array_3_01std_1_1array_3_01_t_00_01_n_01_4_01_4.png b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1is__std__array_3_01std_1_1array_3_01_t_00_01_n_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..01ebad304506ed66d61a89578ce3d3485a8fd4a5 GIT binary patch literal 1078 zcmeAS@N?(olHy`uVBq!ia0y~yVB8C22XHV0$z8G0^MI5@fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1M^W&7srqa#U7LGyy^G5dB_$qLk07r}Z>D@vIT`BdKPhG^jPcYzU%Gzg zv8Oe4H-mhuCOy&0uKFlhy=M8L)V=Zl!Xmt#zZPWwkI{MiHQ961B;&mk`WElI`TkVy zcdy?~g-)|B&lb?KEO*ZT7BOi~O1x$M%i90PO6J;6Q&Eq+{5o^a)418|u1@O;ss-E^sfV_2HKsT;}Gx+y*bcDFH%x9?ExQ`)-q0Os`VcD-= zUNsE!z^nt_H4M{$tbJZ(3_zW<#lPNuQBn#L6l_xhx}*%al14(|FNOJEMOunRkczdUln6(#PU2ZQFnCVB&f8a_$}8LiKQA`>Me8ork%b=iS>Q93boea%#rZlj3tP zzOFWTXkEH{arwhtaqAfG{Qerw_|do|xBRbaS%{s#vhe2@;pXfrU*EUQwu`U7 zSN$z;s_2#S72jm3=ZC*uS$mH?Zns(UDzhX7r?`^&H-8TeJR&6ky6=ZTO)A#PPo!_r)O^E*ecD>DtIg@W(UwrFT>C}j~Im`I; zd6r$4ICkUuI`QB4HWW|2==b8P?JtY?U9p#T7s(c_KY!?4?WSqJVi$PN&D&Y_$E`h_ z?fMtFr*YCZ+P}03ZCd|p-@Ut+r04A^v~8-`_kQk_rL$|_tNZ|(mEA14_td|e`^r_S zx4$o4y7u(6$-D_2#Vf1T^WHv>-!;u?=k?Qbe_Rp@kl%c2r`x`@bKZL0llpbk)Jn$n z_ew|clb)3f8CR!;HHaMO{a1X!k2lWp{>A9)UztxImt~ZDeSXKioA>L!>Nif`$^Id% so=@%ox2i2eI6AI<;R?!>f4=bl4-xWO^>1nsFq1QQy85}Sb4q9e0EIFc*8l(j literal 0 HcmV?d00001 diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage-members.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage-members.html new file mode 100644 index 000000000..b13aa0cad --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html new file mode 100644 index 000000000..a4a325f33 --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage.html @@ -0,0 +1,279 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename E, std::size_t S>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >

    + + +

    Definition at line 154 of file span.h.

    +
    + + + + + +

    +Public Member Functions

    constexpr span_storage () noexcept=default
     
    constexpr span_storage (E *p_ptr, std::size_t) noexcept
     
    + + + +

    +Public Attributes

    E * ptr = nullptr
     
    + + + +

    +Static Public Attributes

    static constexpr std::size_t size = S
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ span_storage() [1/2]

    + +
    +
    +
    +template<typename E , std::size_t S>
    + + + + + +
    + + + + + + + +
    constexpr TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >::span_storage ()
    +
    +constexprdefaultnoexcept
    +
    + +
    +
    + +

    ◆ span_storage() [2/2]

    + +
    +
    +
    +template<typename E , std::size_t S>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    constexpr TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >::span_storage (E * p_ptr,
    std::size_t  
    )
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 157 of file span.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ ptr

    + +
    +
    +
    +template<typename E , std::size_t S>
    + + + + +
    E* TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >::ptr = nullptr
    +
    + +

    Definition at line 159 of file span.h.

    + +
    +
    + +

    ◆ size

    + +
    +
    +
    +template<typename E , std::size_t S>
    + + + + + +
    + + + + +
    constexpr std::size_t TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, S >::size = S
    +
    +staticconstexpr
    +
    + +

    Definition at line 160 of file span.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4-members.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4-members.html new file mode 100644 index 000000000..0af16be6f --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html new file mode 100644 index 000000000..1a274ea8c --- /dev/null +++ b/dox-master/struct_t_c_b___s_p_a_n___n_a_m_e_s_p_a_c_e___n_a_m_e_1_1detail_1_1span__storage_3_01_e_00_01dynamic__extent_01_4.html @@ -0,0 +1,267 @@ + + + + + + + + + + + ttg: TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename E>
    +struct TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >

    + + +

    Definition at line 164 of file span.h.

    +
    + + + + + +

    +Public Member Functions

    constexpr span_storage () noexcept=default
     
    constexpr span_storage (E *p_ptr, std::size_t p_size) noexcept
     
    + + + + + +

    +Public Attributes

    E * ptr = nullptr
     
    std::size_t size = 0
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ span_storage() [1/2]

    + +
    +
    +
    +template<typename E >
    + + + + + +
    + + + + + + + +
    constexpr TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::span_storage ()
    +
    +constexprdefaultnoexcept
    +
    + +
    +
    + +

    ◆ span_storage() [2/2]

    + +
    +
    +
    +template<typename E >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    constexpr TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::span_storage (E * p_ptr,
    std::size_t p_size 
    )
    +
    +inlineconstexprnoexcept
    +
    + +

    Definition at line 167 of file span.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ ptr

    + +
    +
    +
    +template<typename E >
    + + + + +
    E* TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::ptr = nullptr
    +
    + +

    Definition at line 169 of file span.h.

    + +
    +
    + +

    ◆ size

    + +
    +
    +
    +template<typename E >
    + + + + +
    std::size_t TCB_SPAN_NAMESPACE_NAME::detail::span_storage< E, dynamic_extent >::size = 0
    +
    + +

    Definition at line 170 of file span.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__const.html b/dox-master/structboost_1_1callable__traits_1_1add__member__const.html new file mode 100644 index 000000000..d2e64f58a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__member__const.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_member_const< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_member_const< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::add_member_const< T >:
    +
    +
    + + +boost::callable_traits::detail::add_member_const_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_member_const< T >

    + + +

    Definition at line 62 of file add_member_const.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__const.png b/dox-master/structboost_1_1callable__traits_1_1add__member__const.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa3da9d38981506eab2767805ceca544c0a952d GIT binary patch literal 1152 zcmeAS@N?(olHy`uVBq!ia0y~yUw53~gPES%1^VIST>grmdlDewHD`**2t3?q{+TImmpucX2VXy z9F1A$`aeg{U0yZ)MOJR0XRcP@bFQ2WgYLZAEGy0A{j-ieYTspio1@%)TmJh#(~q|^ zCh4|i7+f_8TrR%%7so8qE#{}K1Oz|ctCp_bcCqQ;hMU_nE~(vo)X_HaamnheqNV#! zOt!8ni4m5~``wsUedc$u?7E57-*(?jFcvhud}HF_rf`?FbN4p6i|kafvU{U;bCYYM zqNV4n)YmnRSKj9oJyj7p6JGGDyg2U8H}Ct4y5%j+_OEZq`0&bp&*JL~jqcq%YaunK z=`_Rh!V;@PmVNW~{Zj0UW1ThGLdxfBn2hb|uV$aV`(6L`r@QE{xEVB7qL*`m(&kPWX_(2~|zs`wD3#um+P|HzivD7V9nN#dTqCVC@xyPSxj`xN|(9X8x|g{ z*!%Tj$LYA&_IH<0Er?I~{mna4_{Fi~lDhPJwfwqS;I#8N_=xwSYq#PKD*uZSy1U&l zK{{CUKz6OimH3q>?@snG@VEZD+cN*|#mTPEw+jpK_J8WXfAMvI++E&Z@jrO=db6w@7&TB&g;q@k36gT{i@#L zI`b5UxEI?y>?R+x?tkh0xc?gSj + + + + + + + + + + ttg: boost::callable_traits::add_member_cv< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_member_cv< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::add_member_cv< T >:
    +
    +
    + + +boost::callable_traits::detail::add_member_cv_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_member_cv< T >

    + + +

    Definition at line 62 of file add_member_cv.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__cv.png b/dox-master/structboost_1_1callable__traits_1_1add__member__cv.png new file mode 100644 index 0000000000000000000000000000000000000000..1044934503e95bc05f8e45ac5cbc1eea34e94351 GIT binary patch literal 1109 zcmeAS@N?(olHy`uVBq!ia0y~yU~~ks12~w0U0!$Z3~0>6~`n=n>>ONp2;FSCE@)z$7EBrb$x* z1*a_O;cN1p^vp`Ks`UHBx0y4ftmd3enN&UNZS}T(mCCy_KAkPOfAw1Zq$giav+OUv z%KJ~t(UWV}N5gp!PL&_7`6JVR_<>tN{mtKR{(Svunznpz{F|F)tN+DY%s)K4bXD@c z^EPES?r_MP=xjfIq}lxMlm}V47d>(_HXjrXcwsO*FFDI9voOYY7>Dt-4w^VM+9L!XmvHr2q z8x^+x#_T4=S^Of=MekmUA3C!1W1d(JTT_~(wQ){`>xEl4XS}hLwojH4DqCDocx3fc zKF9y6|2~{EuIAa8cxP>;;MwW>&N5X$yD`JwoU=}>`TEklf2!uMAGGX>{k({e&)w|W z!OJ>)r3E%uBYe}A$zMIVdH0R5S9ULc-K*cc`^SRhoHC}rQ_fD^clYS;S9$%Dci*s1 ze{(1{XD(N#fz12KyCWufi7!#fTsB|nhu(vQ0^XPQFJqVX@lBgs-?TvGZ+<9?>dWgP zEUKD|l{7phMIAj)tpLT4e$(kqI!l33m(KL#@-HS0Mw<{p7LOONR|_!Ngo9YD8-T1Z zL6#FMe=w$murLDSlL4r`p{Gm1!Oc}bVX+d&gg~J53JxX;rN4aV+;%N$<<@I*U2FkN z6-&?z-sSrt>DI{$t9SS3_#eJ<;b9KL^>f!4K2!;a{yxg}Vd6iDgQt7zrX(DCWp?mu z!?t3py1wIy11%zzGZ(yF&bjVf zq{)RgGwB${R=&qy&D@gjeOvzTa&1)SH{WgL`=^=~>h&f6O=f)eVzJIV$4%C^Pi%~o z;dE`fsJ6@GjkR$`!fa)WwJeQm?|-v9EOT()taGhfRle)+EqrpR!kpV|-;sLn3sJX0 zX(N{Bp-tMy*f!55yOckS^V7fWcw_MH+8)tn_1S$p6ZiiPPyVp$%Gv$j(q!iZ%wJ=< zvUz!=%&P|#Now(R>-py0J-ThycgO4B|INO8^tf(PPMO!ae^2!K#Q$A96l)XncJujv z4|hu}U=jEdFIXe~(|?j`=A2vn4?;wnvBuX6*9}{*d9B_0&F4Qu>kG#pQ`2M;fMo!K Mr>mdKI;Vst0A82~r~m)} literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__lvalue__reference.html b/dox-master/structboost_1_1callable__traits_1_1add__member__lvalue__reference.html new file mode 100644 index 000000000..7698fc50b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__member__lvalue__reference.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_member_lvalue_reference< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_member_lvalue_reference< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::add_member_lvalue_reference< T >:
    +
    +
    + + +boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_member_lvalue_reference< T >

    + + +

    Definition at line 73 of file add_member_lvalue_reference.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__lvalue__reference.png b/dox-master/structboost_1_1callable__traits_1_1add__member__lvalue__reference.png new file mode 100644 index 0000000000000000000000000000000000000000..082db2092d426b0f6f6fef94be7d03bb82b1e975 GIT binary patch literal 1317 zcmeAS@N?(olHy`uVBq!ia0y~yV4MPE2XHV0Nlww?79b@N;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z_P{D#WAFU@$KA)MW3~JSf@Xpx$nR7 zeV-mi&Nmh>ugCei>#A>KY)o+cb$VNFbk^-{x_viPG*vwVrv#{I&JgNSVGVYgxFo?# zW0Hsuuh+ySTm5FqUERBMpKokz>&D0uqx{vC=buefS^ZgW{hTRFBA7e9P!)u#WR zlP>BzS3X^p$;0|IS7nmP%X?Rtr^rUCUYC1YnzbgNuYYmgoBjLkZyn1!&tJ?mJM@3y ziP`4W;msdk+)P`Mw}Z8G_O*lSk67AQ#aZ(u&n(@YEB$Qay*=Ei+qcX65sllG#z;i{5JI@6j)=FnO5$^lioq z|APWP%bxZI?CG`b`P|Z-H(lGl`K5XBKF#$DeE6z->*nuBb2@#}Hr{rh+*7edZ>Dgs-}CwG+=H7H&solI;}Z{viTghD zKcC2M%WpPw+PC~v@_CzfrrWywJzuWa4K6VLtrxwifLqe*&oJ|awo8DFW&Gb7sC)n@s^wXMo%D2vIZLJmAr+5DJa?8~9Yrn6z&C<&)|CV7= zdj9{zr1L9_HdvZ%m7kNh)%@GVvod>MXFWa6vG>N*H4DD%TqC_LoxlEZgtN-*ZMmhv zH3G4Bb@^Q<1x@;*9F@0EW$l;XfO(qdRZTsArTsDWiwsU&lU%Acn#z0SrkmUu&;qXbEy+>{!Y^c?pw%Cnu}I93f5z z167d*U~*vq8oHrBf^xF)U$Nq=9Zr zp7YKZWtYCJc&Ga{_th({9^QmgHzgRt^pEe@x^CfRclGUW>KWc^N=&hq{`EV+j$dtl z-QL1?&-?j} z7ol%0dQz`F*~aqX>GFkd?%ggGDM-D#L;r9nPuz7guGd9-zPf+UY`>zu@_yN>iz#oP zzM1j)RFCP}le2EWwCiZdZ(V=2>)6cWs=W`hx3ZQ+WIv9zy1hemXXyKr`mb+rPRYC& zmnIyheqh}byJ_zoUmBj=v0?dkxqWvU&B2M$EOuXuQB=SC&Q=ZU`$=x^BR-`<3n98BOj9-G<_pPfcoe&UsX}@^3|R|KaQZrv-mYd@Y*aKP&(CUOOq@yPxZK z{3*7Q&FSkk|5iHbvEkB|gO4KDOxM<^J!bc<a{hXG}@ZX^_7)QFWT`(ocYt@vXLoe)m_6A+?yS|7CSf(*}y85}S Ib4q9e0Qq-jUH||9 literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__rvalue__reference.html b/dox-master/structboost_1_1callable__traits_1_1add__member__rvalue__reference.html new file mode 100644 index 000000000..51b43340c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__member__rvalue__reference.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_member_rvalue_reference< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_member_rvalue_reference< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::add_member_rvalue_reference< T >:
    +
    +
    + + +boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_member_rvalue_reference< T >

    + + +

    Definition at line 73 of file add_member_rvalue_reference.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__rvalue__reference.png b/dox-master/structboost_1_1callable__traits_1_1add__member__rvalue__reference.png new file mode 100644 index 0000000000000000000000000000000000000000..d208fdfd1e72bb2605015112668f4d27e49146b9 GIT binary patch literal 1319 zcmeAS@N?(olHy`uVBq!ia0y~yV4MbI2XHWhL>?^O38W+fd_r9R|NjqUzIgMswExfq zAPbBS95}$*c}E_|pf8=UOlw`QC#r-Y0H8eI}4>|n&;oyT&QyLRjZo0^z`W1c_rE1r~avXy4m+U zHD0~UNMhRU0F}&(+}bG{-(1kz{q1tx^iy3=e^{J4_U-rY#d$g3{uoqmaQ*sU?Zw%% z_pUV9L~RpX)tl)Q+*5ixY0ck@)wvd5($eg7?`$YuJAZe?w~W^tJuW{EeJ8fODe*$o z@&Cx5pSMsydZ*jhh3H$ALIn_)2p?cjLmOUz&lV&_G9^RXIMW!Y@4jA42aQXVb zpPXX5ZOYu|sBfFxo9VZ)ILfcu>hm*M$MZKfXhIh>>BiG}mEZGjdcT&;vHu#D`~2Gq zlhpI|habkRKco08;@ZB_sw;6ftIddKd(6pj80Y0`zqx>RZm_nPppiqz5GDoKp-|`1+Sq~RkUeHgfv|qYMyps8} z-`+#{_HRp9u8HXDU!0S(f4{x$m$dWzn;*aOsNRrRyCDB!X~)SoBFS^NNMz@J36>?(y6Vk(*4xhC@=fa7{xx8|@z&j+*!{st@F6G( zUV3?XXSCns8ztLyPKP{PqnNM0F@AUSx4hSe`SxF*<);4zCp~ATi1k;2Nv}#cp53x; zT6bbch26EK{Y(3AR>$*)`8Ox$JKIHzvA#IZEA~Et(Sz|%OC9&=&sBSh*X)<5QGVim pjp1MOr!6?rM^yqOQdut9TPzN?3Cz=+2Q1YXJYD@<);T3K0RZG5Z)*Sm literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__volatile.html b/dox-master/structboost_1_1callable__traits_1_1add__member__volatile.html new file mode 100644 index 000000000..9c69b1477 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__member__volatile.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_member_volatile< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_member_volatile< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::add_member_volatile< T >:
    +
    +
    + + +boost::callable_traits::detail::add_member_volatile_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_member_volatile< T >

    + + +

    Definition at line 62 of file add_member_volatile.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__member__volatile.png b/dox-master/structboost_1_1callable__traits_1_1add__member__volatile.png new file mode 100644 index 0000000000000000000000000000000000000000..0e0911896a27c2a9bc248fe41d5212137d18731c GIT binary patch literal 1199 zcmeAS@N?(olHy`uVBq!ia0y~yV2lQ`12~w0WWz$W6+lWNz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opJkanXwR-d7~|r> zZ623m)ScJAGuvd(8@!t@-FW7cd1-a$|9DKg-m4ir{rxtBvZ-(9t62U$o^xOKD(^qW zZRT&^eJIZ{|MZ(t#{T$YgB_dK>Tf-N?*6>^(Q$oACFp z{_$Bp+ZHNa-xXr`^Tmgg#|ozjr~O!ySU=-g8z1-Eq$4+P1kbaale#Z4cXPkkNweeM z)}8j|f46Vmk++5gXSeNUWMA@k)%D+(Tc>$*U0t(T(k#m^IlYW;eOcby9GUH_-+$_O z{>1mUZconcOIO9WTj%_h^Htn=MmRZw?{V!X>)njgvuDS)-8|HGVwTQIk8Ql>&)f^E z=LY!;U!7ZHZOQ-pYd%(EH!{*0wR%Q!Zx|1A4-(f#MO=~ovUUEh`S>Umh8@BLr* zr^i2DwRvUEt)H_O)n3Woe{u07iEcYn`SSf{`zL?o+Mcp;_nYsQ-M1AF`V={x51SM; zsbs09v*#?$uD4NqyIS-;+sy}U>t1iD-ur8TWQKjNZ(C>W_jPMdrgVzL ztah}yV|AaiV5PfdV%zzuZ5Pvu59Jug%2>{>^K8C9(~YHQZDn?Hg+O!v>bn|Cs){LXvEjJJ#z z-fv*_V7zl}e$wt~J?i3b+K<_PV*kLKdWY$V#!XE8;^?+1K|xEWe9HXGd_c(EVOr(P RDZtW&!PC{xWt~$(695l3O@jac literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1add__noexcept.html b/dox-master/structboost_1_1callable__traits_1_1add__noexcept.html new file mode 100644 index 000000000..cfbb4678f --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__noexcept.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_noexcept< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_noexcept< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_noexcept< T >

    + + +

    Definition at line 28 of file add_noexcept.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__noexcept__t.html b/dox-master/structboost_1_1callable__traits_1_1add__noexcept__t.html new file mode 100644 index 000000000..831e1bfec --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__noexcept__t.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_noexcept_t< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_noexcept_t< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_noexcept_t< T >

    + + +

    Definition at line 22 of file add_noexcept.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__transaction__safe.html b/dox-master/structboost_1_1callable__traits_1_1add__transaction__safe.html new file mode 100644 index 000000000..7676c69b0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__transaction__safe.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_transaction_safe< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_transaction_safe< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_transaction_safe< T >

    + + +

    Definition at line 28 of file add_transaction_safe.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__transaction__safe__t.html b/dox-master/structboost_1_1callable__traits_1_1add__transaction__safe__t.html new file mode 100644 index 000000000..29fff6655 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__transaction__safe__t.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_transaction_safe_t< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_transaction_safe_t< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_transaction_safe_t< T >

    + + +

    Definition at line 22 of file add_transaction_safe.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__varargs.html b/dox-master/structboost_1_1callable__traits_1_1add__varargs.html new file mode 100644 index 000000000..9bc49d9f2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1add__varargs.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::add_varargs< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::add_varargs< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::add_varargs< T >:
    +
    +
    + + +boost::callable_traits::detail::add_varargs_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::add_varargs< T >

    + + +

    Definition at line 46 of file add_varargs.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1add__varargs.png b/dox-master/structboost_1_1callable__traits_1_1add__varargs.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb0efdf013ef24572015fbf1e41fb691e4b0a12 GIT binary patch literal 1072 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!12~w0z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opG$$^x4w|OI>KQpnL?zWTXu=d# zPe;B;*GbRjq}bYRpJQt(^44z03{S=Bv$j@W>r-*v`R3rSZGR`L9Iw}Ty>7MM=h#gu zE0r(g>t_e=l(wzwdop3?=~en)XY1}?Dqp$n#;>I18(p{l-?h@BYP0CuFSEjYqfKLz z|L9!5x4q6g>wNDT-CI!;PJK9I^xf_!f0<6W=(ZaRCwlJQI@2+%*lfw!6SLNY2F<@2 zdi%(kZ4b}1^S((xp3{}M;qH;$64tq!+0>67+t`;-PO^H-TlAa z4ZU7({xeVh+6KL}38||#s_tfUkG$Qt%C&8a^ogl!-r2nO|I?v!KhwVXd314%h4a4E zpObpyzMVaxHEErM{;mAAYhEX3-h26Arm0}g>pd2m+ipspTeEA1%2dnC#;ezVxM}?Q zjoBLah38A|U)z5(x1z(quyjMN)7hoF?x$`oyMFA8Sq`&p)s?0B+a79fU#Rjoa2YfI z6VFMHV>ex6-feB7`tmr3*@L_jo+sQ-Oj^?az%Ap{q$TAOHmPWO02vCJ-jkY^=y-B{ zny^*p^dz0ro9-}uXslsWVfem8r$Hh>J(OgLipm zNcq|VQwGELJ<-?9%CZ^3X`=2of7zaJ(OEs;9;ce7JKy?J)sgdHvpGLE=-&RC zusu;fd6Pwq&;6wf?;7q{eLTqfMpUfTn%C8vZrv-2z0r4m8}Dw`N8b{8Unl)3tWjG1 zt#18B|J|X_+HdYX+OO15{cO`8rw^NJ_L&~fYOe`@-n)h=#?bG;?eJ?~H=4*td^j_U zW8M|Zd6A`tjH&0=&y7sq{;=-ljqJ?7N&D8;Z@&G(Vv4Vi=%Yu=w + + + + + + + + + + ttg: boost::callable_traits::apply_member_pointer< T, C > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::apply_member_pointer< T, C > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::apply_member_pointer< T, C >:
    +
    +
    + + +boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename > + +
    +

    Documentation

    +

    template<typename T, typename C>
    +struct boost::callable_traits::apply_member_pointer< T, C >

    + + +

    Definition at line 81 of file apply_member_pointer.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1apply__member__pointer.png b/dox-master/structboost_1_1callable__traits_1_1apply__member__pointer.png new file mode 100644 index 0000000000000000000000000000000000000000..4cce8bcdd1109c21de142dea2232c5df5ae3d8ca GIT binary patch literal 1279 zcmeAS@N?(olHy`uVBq!ia0y~yU@QZ&12~w0q!rV;6F^ELz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opu*kIhIK4^7J1cUUYLL#PDU+61sFrzhg(pp4QUGVj-so28 zExlBlz0US_bown5i}{Tct7rRU+9i5^+nHrK>sYhJzLjh0b0@2qavl4Z@u}|Aq>@$d zkN;~r-fAN4W_;s%?#;62KP=;RpX2@gZ{zmJ-(UY;OF#Qg-b{W~_}}$6L+sn6@97kN zw>(oWynorN$JN(X{>rR)t@n)i&GOsf8`ppQ)6{jvX7RbHS(g*o?)?fW`LyM)R+hZ= zv6}(qBIjy;f4ioqeM@oojcZjho43xqvY>FHW{$ zZ$DV^SmwmZ2eof5&YC^rZPB^Se+}j)=lfkcn7>-Kx->)RSm?~f2P)_1Jyq-3n!_d| zx2>&z(NznYl9{Mepjjw+sBU zckh4qeg4~ZR_FfTdwJ{K|E$DU;%T*JGgDT^WvBPr$t|AuPwnCz6JM77YOj;3XQ@a< zlpF5Wx-{qMS{tuPmm6az{oCQwYpp+TQc2|c-REuPkNwqr^IbY~$HhrsW>vj8p8EGm z!0ywg%P%qnpFf^xZ*}|ry{q$2m3hv3HF<;grTRrj^gJJWy_qDk4$hGNmKr(j3NSq^ zV6Y2~XV7f$P%Uf7sI65kZ%6>K?ygWTZ-@Z0;sc!6Il_}@i?6FE>o1)WqPf(ii)jK= zM=+Xo*HhmJZ=Sp^y7=wQdsdg19sJ4AQ)(N!E~?C!H6!HO{%xEOBL5n`5qGS$|JE&6 zJ8h5Ak>DHGYwvFRj+zwh+Ox|37jUNjjm_B4WBx7i(evoqn)6n@wQ_sE3jBWk^{3Uh zQrWtTth3Uu>>wA9Ny7xv#t1qxSdtG?M7AyY9}Wy;0^W@}e_WKe&J7-Sqr-XEPtZJY4oy@7aebJ7;c> zHk8_D-@iF$z4^2EX}|Z>%wPA!D_1@zRDAQ={lafpUm0sir*Ex|Nm1Kcdwcr)wQs*Y zT5o^5woGKo-pgC>{=a(YivGP{Z``Zj#AmxsZq4Ir+cW?D&8Ar_FW1PHRqNX`|7Lx| zuwNs1|2b{#1F3r-{>&wiWl|2zEpU(Fkg t|CE6#16XVz@ZAm5gS=Kv31a%n&)(v*hyUUH)xgq)a~}Wz literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1apply__return.html b/dox-master/structboost_1_1callable__traits_1_1apply__return.html new file mode 100644 index 000000000..ece24f23c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1apply__return.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::apply_return< T, R > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::apply_return< T, R > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::apply_return< T, R >:
    +
    +
    + + +boost::callable_traits::detail::apply_return_impl< T, R, typename > + +
    +

    Documentation

    +

    template<typename T, typename R>
    +struct boost::callable_traits::apply_return< T, R >

    + + +

    Definition at line 63 of file apply_return.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1apply__return.png b/dox-master/structboost_1_1callable__traits_1_1apply__return.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9f42262cf7b4caeb6638087214958ef422b353 GIT binary patch literal 1130 zcmeAS@N?(olHy`uVBq!ia0y~yV6+9Y12~w0WK2ZRd>|ze;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|!2HwG#WAFU@$KBVMX#+mT&HhK`}MEC zra1XHla94vrvGKhb07V3YZbP%Jka0!J?_=s?=3GTg-lvdz+V+H}71^glg-;mvdJ53Oq=kRy3h8+`*NLMQ(S0eGNbgmovEzN#(3Y48?$9}Ot)`lbMWCR z&pLO*>WihV@u|CaBo(qX=gr@_zIy%KNc-cv%%Tg7-n{tGUOup34*H!y29%1%Cq*e)%Oc5 z-p~Bu{YB;F<`7VfEK>K36t(p{wd#duP?&iYB>rAA{Ya=~oWdZaRmI?0TPteUFsDn- zA;`RLyQS;C$jSGcS=UwW|83BA*FGlU#?NylH;!AC-@I&9Q!FEK z-hTP^iZ`|S0`nrDZ`ybvK_>op#u<6*{|C<8JGNoZUB>FH0~IoRwab58Iy;wf)4ClI z2Il3vjMJ~3@6?l(@rlTHJAW#Q_e+u#ONHzEi_+IG{@h|=oVV`&w&K#+^3Q&(m2KbJ zpO}7FQ{ZO(&S~L4_j;axe+ZmH3T=QX?{Oa|sZ)R>=`|0Q`>!M#XlDFB-v@dGipS{dRpY7Y1vW@9N z@A$9BG{jHwR=4dh@ci~=TU7B;9)o%B5Bzseey@DzpY|69JAbrT mD_wj&Dtqa*sNL)SGrZ7s)VMqQ5f89nVDNPHb6Mw<&;$S<%{W5< literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1args.html b/dox-master/structboost_1_1callable__traits_1_1args.html new file mode 100644 index 000000000..b217109ea --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1args.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::args< T, Container > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::args< T, Container > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::args< T, Container >:
    +
    +
    + + +boost::callable_traits::detail::args_impl< T, std::tuple > + +
    +

    Documentation

    +

    template<typename T, template< class... > class Container = std::tuple>
    +struct boost::callable_traits::args< T, Container >

    + + +

    Definition at line 49 of file args.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/args.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1args.png b/dox-master/structboost_1_1callable__traits_1_1args.png new file mode 100644 index 0000000000000000000000000000000000000000..9e8d4af2f248efe311f0dfa3766b4a5b0c7963b7 GIT binary patch literal 1130 zcmeAS@N?(olHy`uVBq!ia0y~yU^EA^12~w0q<7V!Fd!un;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|!2HwG#WAFU@$KBVMRyc3J9^K8WhQ)?KBt)P>732pDV|)OlbjFwPWr=@H|a@u!DN;FO|w;g zmKJ$WGP&-0eeuq3Q*Ie-$u=lfYxa42OvTf8XKc~$TmL+bOlCyt&=- zs(|O#FZ}!8m6iSdYqx!#T>7!x``cNSmM%PFbviT0IXUlT@Fmxmzo%ZAUbgVql~cLa znfGtrTd*W*Qi%7YTSc{V(kve@H#QM}e`AK7b@}Psq#XMLb{h*LQq4PSJ+r*Ow!Ch* ze$&?S_#X@Ruk)h6Kby^dSEs6G&h>PeuQRTlmE2)^dW-UHUfta{RkyX3yfgiH*)%WK zNmJf`N96C>7FDlzZ$F>%sVzV5UCzWhPSu&4KHPhDKJ%f)wfT5)x8=-o9_bDC;xJvVG;(P?OA^OLiugZa%*8g0TJG z)5}Ez@2*Xb+ZXgFDzH2VK(l9U;cm&|i(fO=*)BEXc`J2Bra@Kq=h|#01F18N z6_NIxw@-l(=UefJcOU;)u69m;SXLvG`}W7)eUbs~x$@7R&Iz+y^_z>q zZQIh@3*N*{v&-GAUKkwvWLt7Zql46`HJj($Ff&otsa1KlRQAe@#2>K*yKmiHm+~&D zNRwglwZA28%eG&#$o%Sec&fzbyCn?5CHF)lG`| z)J;D3JAVIp6A(C^$cgG+kfNOpl%H;7#KWV{an^LB{Ts5RJAco literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1class__of.html b/dox-master/structboost_1_1callable__traits_1_1class__of.html new file mode 100644 index 000000000..698cc3d47 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1class__of.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::class_of< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::class_of< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::class_of< T >:
    +
    +
    + + +boost::callable_traits::detail::class_of_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::class_of< T >

    + + +

    Definition at line 47 of file class_of.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1class__of.png b/dox-master/structboost_1_1callable__traits_1_1class__of.png new file mode 100644 index 0000000000000000000000000000000000000000..3243bb9ecb31e664b9db66882cc32ddebeebd179 GIT binary patch literal 968 zcmeAS@N?(olHy`uVBq!ia0y~yU=#+j12~vLB4-l+04a$8pAgso|NjG-FW!7D?LRaD z$O7X72M(}y-jN4#IZA^3f*F8{K;Y`B5F-W#=5S9J$B+ufw{ve!daNbj!oRZP-+zC( zelxAel%3lP??fAEDsypJID9;{Nyj@Ya@wp26;083DN3H}knv>CiAy%BEpsp2`ex_4 ztl)%Pwy8STukDdYT2XRs*PD#hyX+>V{7O|j-wQ0Aj-Jj0#-2C|5$+zy0Zk#=LT+xT3aM*bnH&vvB`|bUwl@Y$0O$GI_;g|&lH=P zcdgxL6fK^*cK^k_#pleoSiYOPEAQd2Tkrc0R~K)WJ@#_1@qP9AJIhsG?qB`zj%wzT z`AM6Ool#rhd1?FV_Ze5dMjK3AVjg5Paf!ahOpi(0Nci=^l*nnSqVf&jFR(jstvg;CcJrS6;>+(l=cjG*HS`nnn(lTi_mr=r#MivV27ZfUwsU4Xy4YEUF%<7D zDRaBrXM6nW)30oZ&xgd~vFjI}Suma5TN*O+p7s8Eapph%U)Il9Gx6J0Ufv6@qUSK| pD4Gus3}~1Dsn-WVLH6+{b5ESb0;?mZ_W`pVgQu&X%Q~loCICFX(!Kxy literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.html new file mode 100644 index 000000000..5bd67364f --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_const_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_const_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::add_member_const_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::add_member_const< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::add_member_const_impl< T, typename >

    + + +

    Definition at line 49 of file add_member_const.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..863c3de18a5e21c7110c806d4c43a7510a8e33bd GIT binary patch literal 1271 zcmeAS@N?(olHy`uVBq!ia0y~yV4MJC2XHV0Nrr!y{{cyf0G|-o|Ns93nJ?aaE$u%9 zQUS&X4jf?Zydw|fa+C!51v3B@fxy*MAw~=gENz}Hjv*C{Z|A-(dZNX{I{WdeJ^z*8 z-!YV6*_3Wp_)SaG*J2}Y2fwLDz2?#>A(~5%2(T)!3OI7IC`=IIa8OVcXmIdSU}!91 z*!iI7(w7zQbki66h#oukGUeW$%J}u)j;>-n_jK)(C9B@-*Z1Q{_|o6F=hn*1KkRHf?=7$7-MiHz z{ZXxC*V^pQY`O+w%tv^umq#y6@aks|SA2b?^YgxIxh3kcj5F6|v0DY@%O6)XGh98> z*Nl5Y;*5>YO&*F)xR_@%(Vb%ti;??MresOwi>ebIGW1l>`nL7Q%MT~H6|Nb2U!QES zEv{kd-JZ(A>w4Fp#aiblzJ6QQV4?VWeZEKO^G(Y)OYeD5Vcj0X_t&W1LcsTv&3VPs zoDsz*GEYSLy-|(VZ?|xceLjKh$&u+IK9v)lzul_p?{hyp`}o@I-evE8n#cHh*KNw= zdz-#4`fYD*iLv|pSC;E~FLdASwCr>4=8b%|z{ffAf4}(Z>aFLV`X_u#{kw&U(Svc# zuCj@lu@9L4^zP$6VVt_to#6pnZBo;ApFMul)wKI3I55=p-YdH};TWUcViqO=5A>-2 z!Vu)8xiZL$Q?Vg_A%BC20}n7!Sp53op~R3l#ew0`i-XFY3@(98j2ugkFk)&4Dq+%W zWMBybDp-Qee9{%{XFIVi_jdk;<3LhhV7AIq70o804i(lQrin{{sdbWw2dB#6#-``j1xyx~To6h;?j}IL$wryK;^P%yC zo5w6ymBpQ3;E`FVdQ&MBb@01Kiq#{d8T literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html new file mode 100644 index 000000000..2474962e2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std018f61a8862fc2629928c441f161eab1.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >

    + + +

    Definition at line 52 of file add_member_const.hpp.

    +
    + + + +

    +Public Types

    using type = add_member_const_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type >::type = add_member_const_t<T>
    +
    + +

    Definition at line 55 of file add_member_const.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std56bb8e2a8f0593073908b0decb19be64.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std56bb8e2a8f0593073908b0decb19be64.html new file mode 100644 index 000000000..adc35f257 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__const__impl_3_01_t_00_01typename_01std56bb8e2a8f0593073908b0decb19be64.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_const_impl< T, typename std::is_same< add_member_const_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.html new file mode 100644 index 000000000..95d535c25 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_cv_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_cv_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::add_member_cv_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::add_member_cv< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::add_member_cv_impl< T, typename >

    + + +

    Definition at line 49 of file add_member_cv.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..ebc3117ef86424067b81d2ae0f9b56829514a64f GIT binary patch literal 1237 zcmeAS@N?(olHy`uVBq!ia0y~yU~B-g12~w0q^r`F~=D3mzt3G&ih8RXR|$g039u#km8UH@RLe(!S4-f!J59>;v9@jJO* zR!Y0!ZSv~Pf3JUkF0=Ob=fm&Tq+R`2T2Y>VZ5`juYsK>y?z*U(A(1!vrr*6UG6(KE zmbur)?9zWO|G7TaBhfK9;(_?$D2z+Zr-c_RV#QuL*D8!Iar|CI5Y&Y2j%D z2DN3)4<|6Tt!&eOe&1r5<(176w<~Lza;i(j9QH@#CyN`+F1VEYCD$y2FlWL;cj3KgYMI}$@iD&vFE1EJT!g*TH67!R-~y{MWn?HI4!mfeQ_=Ps?x-<)h(oMW?BpJ|5` zV`)bsue*8?$N$si2VP#7UVeaOmh9&zd=ee~NX*V1 z%x~`AmHRsHw*S>@FJ8^7fA*sC(%iFR2euubb@kQ_xANjG>oyB-=)KSt-+8<4uAxlQ z)pT9%1FjqUa+hx^Gt@I7a#A*px^^y z_5V<3Y|v0;Xb4FC!N>$Oji&hPM}}#sk#>>sr#I=y>xg-Jc?PuzHK?#^F?s|ofHU%# z15`5Cfz#*8eCO-y4&C%9dYZxG`KfAQw@Ub_Uz3+ae@$fYQ~wpnkRR=NsWXpdLtg(b z?{CNdS($_}+&&(b{(JrVezV(ee?HunHaF9>EX4f8?$Wu7im%-=u~*so=``b-?9CIW zo(f3o&92$awfV)ZWs53r-n+H<=N6{S$yf62rAq%uJcGjPm4tB}{y3vi@nzA0pKs*qlAz{PmHn zL8F;uaS^-BvIXz>BpPR5{$*Hx;8o~Z`QMB0wN~%CDHVJ7^ZKQ_(-We&vMLi_-+uF2 z<@VzJ8Q(%Si@sla+vBdFwU;Bv(aZ{-nx4Pr)oC|8|NG;eXZ_(H^Pf##Qa)APVG=NY qRWt)QF&O*|z&Kf%8aYkiFJoC*z@)Pr45h#_h{4m<&t;ucLK6UgVhxc1 literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html new file mode 100644 index 000000000..c518e20b6 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_0b856619f2d297a34588232e4fa7973b.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >

    + + +

    Definition at line 52 of file add_member_cv.hpp.

    +
    + + + +

    +Public Types

    using type = add_member_cv_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type >::type = add_member_cv_t<T>
    +
    + +

    Definition at line 55 of file add_member_cv.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_83b60a30644facc5f0bab83ea098611d.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_83b60a30644facc5f0bab83ea098611d.html new file mode 100644 index 000000000..8c43f2d2b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__cv__impl_3_01_t_00_01typename_01std_1_83b60a30644facc5f0bab83ea098611d.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_cv_impl< T, typename std::is_same< add_member_cv_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.html new file mode 100644 index 000000000..ce40b87b1 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::add_member_lvalue_reference< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename >

    + + +

    Definition at line 61 of file add_member_lvalue_reference.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..5b042636500492f5538d13277dfbb02a23bb4f24 GIT binary patch literal 1411 zcmbW1e>~H99LK*)D3=tMuG3mS&yk4GB9p^0X2dE9QA}dfWt-RyxsFtRw2CoWIwsd` z)X1-xaV*Bf5awr`AI&O1X0pb8^?2Mr{du3q zpow&L@B{#e2-F@MRKQ7$jPL`G?>tZ#$JNzUP)^Orh-vldp!%}w>grUJ2VmfJ1HlvR z1%Rft)!l+I0{~TRq=Oyi8bq2aC5;(way-fplPO`Juy3{YU(YRdn;>Dza`szpxbb33 zTqvu|GmKTRRrAsMbce=ocW2%*IAOfaE8f?T2~-je*PI}C63K&PA$FrlPFqmA!s49# zS-IBB*m`9ANvWtgu2Mv7Q4H%tAr)QcvCEeV+4D}Olv5QD@w%Y+2*F`L9jt&pCRsX0 zz@y|z%3LUSrM9>uX%ObS0z0kT7t}i1X4MtUL(F*xM(zuLBHpR;7M(EPGmm?eC6HR* zX!~odrV_i%U;fBXvN~RQNQF&gO5of^wY)Z~H_*iGO_Qv&Cgg3U`Gt9Vzn<_r)%(Pp zD1LTpl$jOmcx0re;^BMBgxf-}5oPSM7DKP=R^>(jSM7;X6n> zDmcD3jhZ5tZ%&T{bdAW9!`LN$-9uiRI|fa)ZG>k~_PnWMfjS{^@Kox-+Um0FI6m#ApC~$g`bvuY-48otOu(V zT!Sr$=!7<5ej%>h$67IiPeBlLD=3LWpV3&9!e>a+_W2vUb*4dseJ^&>dFQ2k%VIO7gt}9$HX38bxY)8Q4^>*EB{o{0Dd#j1Q-rW^vCQuO4 zJ`FFSt-BABgZ_^k3<`2}x~a6R$Awjv;RtZ;Vc>t}AX7yPvnM?uW<|7h`JI}fcB;<# z7c|n{9KQl@?Kx-}_cT>~RR9`Xzb5nl8Dh7Jg3o50&r4gIdvuY8NKfr;UdWb$3x>!_ z4C;VE=B=Xr|8xpymdI>LzGSgV9?nh78~vSgcf7xECv{wQCADxdSk1=5g&Kxa-pkK? z2fMhuDUI8{Ao2FsS|~%kxg*y8uw)gxIag1l42%om7jq*hq+TU2Sn;Cs@{D$HJG~+1 z++MgCmkQ|+jL>A4^)5|ZC2Q=t+a=ZtslpE>1jI9B^= zaVGQm50NHL{Dd=jcA)#vfQg(ncL@2LzYjSC@+?(+v$x;+_9I4*_-`qrk)jrB8S_zK zO{ypK67GLfZ*=`L+W%)+4T@|>w5~X{M~9^xh2z;v@3Fk5?jb&kRc7PtM3G6{PTxs| z*3xmbz0hB+{MD|EPFrAxTf1Nf8P6tV*K$ZxQIQBD+Fcha;WrU{$odac8iNK3-KXLv zbNtU|%`e$TGthGZW|QMdsq?GT8^yv(o<+!zMiA19k$qw{+I7dnf4?f>+q=h8XD zx_#V4$!qTcy8LQWX>sr5u2fplAj#M(F)7{oos_tHn1`XdP#3t8LbI9!GKMX3`DJau z=hEi#o%izPPlaG&o~94-!NQ{6cWuN_L2z6=!3qOo)mw|Z^SP0$u2Ow!E)b7CD+~Y| O6F@qm9oRnwB>W3XBgV-9 literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html new file mode 100644 index 000000000..1ce730da3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01ty9620283d24ed158fca1b918a307fe323.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type >

    + + +

    Definition at line 64 of file add_member_lvalue_reference.hpp.

    +
    + + + +

    +Public Types

    using type = add_member_lvalue_reference_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + +

    Definition at line 67 of file add_member_lvalue_reference.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01tyff44cc4850b3a4633597bdb961256a19.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01tyff44cc4850b3a4633597bdb961256a19.html new file mode 100644 index 000000000..2a8de9de4 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__lvalue__reference__impl_3_01_t_00_01tyff44cc4850b3a4633597bdb961256a19.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_lvalue_reference_impl< T, typename std::is_same< add_member_lvalue_reference_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.html new file mode 100644 index 000000000..b0cda63f5 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::add_member_rvalue_reference< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename >

    + + +

    Definition at line 60 of file add_member_rvalue_reference.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..470a3c11f26ebd9f77a973c6b26097f780b03ff9 GIT binary patch literal 1412 zcmb`HYf#c@6o>y>Xk!=KRVObQ%Aw$M z6&@Lv1c1=;5x+#i003fx2-}M)HPg^EMKib8!8gc!cuUcN#}5{`@`Vw!nQj)c#Kvi5 zNc7o9RAdy3iZrh@uQp%RM7LTWi?G{VSL+eH!wp?_SjueV@0sNCj_!%z;D2lo{9L`@ zn{K$%W8G(AuOCwCbY?ph>VR?63_}7WnQkxxrA+mgY*dHU&I9Qb2c-;#l2Dn~Ij1y1 z6k!yBG(0-;Nv&OQ#15Mt)5;Vqle#F+kmsz@9dNqek)W9L8yYDsBsysy>UrySaPHHH z7RY3OS0LWEzBbvft0Y|xuZK2?juiVY#)?nsoM%ZuClXlP~Vx4Z{Ap8M#c))IJA?ys>lO?FUR`^v&Rnjlyl zlM_+0x-s!yiC>$+QN1FKIBilX#++dfuOk)5b1fPYH2D+1v0@#2&J`19OX?TQ&`?G8 zWTIO=bal$`QL?3ovE`ZtX*c_Q%KMQa zYpocub=W_CTD+y|IZ5AXZhd47($z)F`dElo4pK?ROhxM^;HFYqK_ZaT<7XG|En*;t z)p+gnDMsY{?1utB53ghOV(Ca85p(w@hmZBSJ3)lCNRwwS%;zZbduamOcUy2APJn!6 zh0ol}nMD~o1{Y9h$pYNVtUv4)wi6>m%Ti|DSq99Bx(HyyWECWH`)9_2&&*(dcxw=7 zi|R8cU|kFgV1fpv{L>(AqE|B&<=*`C8$NVkL$KB6YLMPeCc7nioWh15WB~IEp zJ$qU7{e-JqQbk4&nZiNfekBwG{RrUtFcB6^cnfgNk1tx*f331b!sxb*9^MqFj>#^ z98`K5VOKBO#ikAPxah0LRc!u6<~|IGI_Icv%82gD;t;Wh(SoN`m5^=9rL>c{XVes? zv1z<`uGa&)(OIUQIH9_|$upqgYB*tE`L>5uZn<)1ylSjCS=1r)FW4@a?TZDaral}_T^v@1hhp3xgk)^M-vw|myBK7uO~K)~a|+CvVU{u>2gzqtSa literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty2d08890afc0f73addb5b72bea496e815.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty2d08890afc0f73addb5b72bea496e815.html new file mode 100644 index 000000000..7c0365532 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty2d08890afc0f73addb5b72bea496e815.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html new file mode 100644 index 000000000..824c53b7b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__rvalue__reference__impl_3_01_t_00_01ty9bdbecc1be3360679c58a08c7659e104.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::add_member_rvalue_reference_impl< T, typename std::is_same< add_member_rvalue_reference_t< T >, detail::dummy >::type >

    + + +

    Definition at line 63 of file add_member_rvalue_reference.hpp.

    +
    + + + +

    +Public Types

    using type = add_member_rvalue_reference_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + +

    Definition at line 66 of file add_member_rvalue_reference.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.html new file mode 100644 index 000000000..3e1e443c8 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_volatile_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_volatile_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::add_member_volatile_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::add_member_volatile< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::add_member_volatile_impl< T, typename >

    + + +

    Definition at line 50 of file add_member_volatile.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..8090ac812e22773c5e4773d2336982f142ff97ec GIT binary patch literal 1290 zcmeAS@N?(olHy`uVBq!ia0y~yV4MYH2XHV0N%1?*=0Hj!z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op@)kV&quq!YmNf$)>PGh}XeG zHbbq&ZA%;%_m|&#`}5&s;$uIWZIrH1lw@bqH{;%BalQzD+ zcJoa@da}4tk;SQBckj40i)}c%u=48DE6u0HHn)^Xoy#sajWISk`*CfC?*G4!Z`{yZ z{5GxES6tn==j~04IjrYy-P{}bdD{JcJ5BKwOJkk-mw7rWn_O#;K5*x*;9PDKJD1q& zlU1(Ecdgs&`zQT*zSZ`Nfik{pc;mX$N*=H^);+)S<%hpf=KFQ_rk`J@n06E6IW-MrYcQ;RiR@7=7eW!BNhlXqwKPu^j^YuEGn zmh0;HP0Xq@UcXx%mYpnn_veaO_r}}qD~_&Ta^Bwba<1O((mp@m>9TJd%=XO=x9&U^ zYg~LlbhlT7$bps54oc1UY4HCNoiQ)`c7ZX&odx_ddoqn)*_q18`ZVxQUC#C(b?>>a zXa6zuf?`}%s$qhc34`L)372g)B0X~2)952go|>LrOI?&bfi70j zTq4w~(i*a8;*trwczq`>*$7U%snxG{nTeiro1~qd>@n#&ckHaX)sGj(M%GU%S^Y0P zV_9FFh!)ZiZnmBt-kO0$6Ka(8Q=Q%p8FPmUp{vmFxlqbI(s?m&7+-HfEG<+?+Z6{!dv+k&|NWY1?{)P5K(E_j8|n zzi4ITskI4vO|zRa%=Vwo*d3YtIRBxy$+cVa7R}loBUEzOblLg$YX8n&w=JlX?7jcw z*}QpbJL_(&+q+k0o&VX+%Xydi?}(n9X7}%)|JgrQmcCEc-!WyL(`?9Iem1ja_LD1f z8}xT)UyIDW`Jy6c`^Skg-`v8#|5@#MVd?5w7tChc{yA4yyvhC+_gjyc>W`b>Ob$L< zGW&5E@1(4q{m1hcOk6TWYm@V{b3>RWim-5sMBo{F!^`{ r0n?Kw*Gl$TsgcvJY|`;I_{*H#5_*f{;*mSRf{Ve^)z4*}Q$iB}x3X(7 literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html new file mode 100644 index 000000000..41e4c6847 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01719e7e0b0ab813d03818dbe55d63cd7a.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >

    + + +

    Definition at line 53 of file add_member_volatile.hpp.

    +
    + + + +

    +Public Types

    using type = add_member_volatile_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type >::type = add_member_volatile_t<T>
    +
    + +

    Definition at line 56 of file add_member_volatile.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01c2c4d79dfb3abee4db06507780fe31db.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01c2c4d79dfb3abee4db06507780fe31db.html new file mode 100644 index 000000000..49e79aa7e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__member__volatile__impl_3_01_t_00_01typename_01c2c4d79dfb3abee4db06507780fe31db.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_member_volatile_impl< T, typename std::is_same< add_member_volatile_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.html new file mode 100644 index 000000000..f3cb1a192 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::add_varargs_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_varargs_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::add_varargs_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::add_varargs< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::add_varargs_impl< T, typename >

    + + +

    Definition at line 34 of file add_varargs.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..31fa2dbf62be7b38ecd8a33e74f4c0a324023de4 GIT binary patch literal 1193 zcmeAS@N?(olHy`uVBq!ia0y~yV9W-x12~w0VpzhE7q*G5BM=E+ocxvXlelmHt81T5 zd51sDQJWi+Y4+}C4r5=bMf2C}-*bf+ezZ14&R=`Q^xjda1(#3m(NEu-`()qz^Vc_9 zn7mu_+I{WjzuP}qxxL<2cS9j7>}~w^$>(q8#O}UpxOmpatev-hD6HI^|C#O9WAnXM zFAaI)cQ3RS5xy2}&n-{4!bYeTVFnc`+f^}EM*_A-|wNBYL}KD_MzI^jd1 z7VDeGd{3j->}J09?NnaI--@<*-bz>3Y?h3WHs6+R{$R(XT}`!D_Pr4+Iz2qtiR;HT zf1dc7xo_T^{;!o2*0-OP{Zz`Ey5NlI+3R}`U#^Lb+<(C3pso7PTX8F&JzF2XbMKq$ zQo-B*&18ORzIF4;HBlC(tJiL=D66=yZRth%gVp(Fa=%2?m2Kj}P|5j9geP+h; zqx)a04ATcruWJm3$hc~Q-qI-{noIBKHoU*g@4)q-Of|bf;O`%moCXdM%Qiqgr-1>; z(ooH8kO0y&#kHERQzNIXzkGg^>u&u9Jc$m2950RpqEgq<2scoS~N-tCG16oE|q# zZ(A4Jx_RQ0dEs^{FU_@X`%lulI(?&^%nPk+;y)*-Ea#5QpSXej$mg#*e7)AMe+9nI z`M>s0#^$@%_{Cd)d(1A}-gs>B$Kcaf-6mDr&H37P&S?rb#ijn{>VADy5)W9U7_aa zgJqw$$Xse&4o+4d&2MsFi(a-Owrx{)A^(=&yV|~;T~jOZOQL#ixZ8H;-JdHD?eeg? zw4;8$95Crro_l(>#`fm?&hv)x*8`@7Jo|O6W^eq5yV<|5e{#(&DSaJpeM!%G%jW&J zL*|{UlV7sWX7jC7oqj>v(~6Ty8ugNOJ>yqIFYvnLGXGT7Ud8`ab@xr)P1>z;cU8UB zy8nA-PWn>)_qC + + + + + + + + + + ttg: boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >

    + + +

    Definition at line 37 of file add_varargs.hpp.

    +
    + + + +

    +Public Types

    using type = add_varargs_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type >::type = add_varargs_t<T>
    +
    + +

    Definition at line 40 of file add_varargs.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isfe78175a0696b8b2f3b6ea52d7862fab.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isfe78175a0696b8b2f3b6ea52d7862fab.html new file mode 100644 index 000000000..decc9dadc --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1add__varargs__impl_3_01_t_00_01typename_01std_1_1isfe78175a0696b8b2f3b6ea52d7862fab.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::add_varargs_impl< T, typename std::is_same< add_varargs_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.html new file mode 100644 index 000000000..0f555dfcc --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename >:
    +
    +
    + + +boost::callable_traits::apply_member_pointer< T, C > + +
    +

    Documentation

    +

    template<typename T, typename C, typename = std::false_type>
    +struct boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename >

    + + +

    Definition at line 68 of file apply_member_pointer.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..11271643cca395b273ea9720959cf3888851c92f GIT binary patch literal 1375 zcmbW1doh0KS<4y^i1#bf$|Z>613b>1dI1VhQ~|?$PF4paU!}tS;X^YibF% z)1)o>A}ZKEh+Vlh03zi(A0qJLmJBFEaCN+buzJ@xKlQI|1eNiz(}me@EV6o9A2$|{ zN$1H8#KR$yJSsUTc=d{uaZkTM{R3x#JZnGoE{PbE5cU{5Kz9`)5u#VlNjH@I*m6Zx)C z+pB>p{%lu(d0i49xT*Fd7?fW3RmMo%4hzR~v=8!j4+Uiz_?#~a9S zOA?W^&Ml0}D8@3$pjS+HIKF~AWB4}=o|E?a+nAPBQ&F)cg}?n0(q z&~WfR2rkwqV`mDw+CIh1!y0-$t8 zcsA|PDDr7^1#<+aKo7w|CtGvjb!zk7e(xOAlfgnyrax_`5P45D;_`2_RZ0kLKNqp~ z{5YM)Fph6fJ>-iuy(P3QOD>lucL+~x6%=uK5x+XvG8spUZOxR=$yX+WUMxnf5Zc{5 zqr1d0B+3Sfy~vUwh%Sc9I}%j}a|)xwx>CDl_Z^hpTnzQl;e&)gqIY#q z>FBc=AvN8tPI;)NMH3!+Qg~bZmatNbZ*P+R?yi+r_jmB;`zBxZwrp~V*YDb3agp96 zfYmKe)WC#4m-S`ARb>NJ;LGGH&SH1WMzFrd>Or#ZEw*MEPt5stHQjBRJ8kf%JZ|XJ z;JTHLUshCtg}2WWQ47qEC0ZjSs9Ck)f>;Q(uRpMvyZ`BL>^qUcZ^o_W{6g`mfdyBg PZ3uwg{$6~~)2V*}r?;&_ literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html new file mode 100644 index 000000000..d75018de9 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty0a144a4dd30e92adde7aba9499a0bfad.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename C>
    +struct boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >

    + + +

    Definition at line 71 of file apply_member_pointer.hpp.

    +
    + + + +

    +Public Types

    using type = apply_member_pointer_t< T, C >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename C >
    + + + + +
    using boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type >::type = apply_member_pointer_t<T, C>
    +
    + +

    Definition at line 74 of file apply_member_pointer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty45d0e28829ba15daa2f7438931851359.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty45d0e28829ba15daa2f7438931851359.html new file mode 100644 index 000000000..7933836e0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__member__pointer__impl_3_01_t_00_01_c_00_01ty45d0e28829ba15daa2f7438931851359.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::apply_member_pointer_impl< T, C, typename std::is_same< apply_member_pointer_t< T, C >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper-members.html new file mode 100644 index 000000000..36a48a9f5 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::apply_return_helper< T, R > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::apply_return_helper< T, R >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::apply_return_helper< T, R >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html new file mode 100644 index 000000000..9e3a82ac3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::apply_return_helper< T, R > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::apply_return_helper< T, R > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename R>
    +struct boost::callable_traits::detail::apply_return_helper< T, R >

    + + +

    Definition at line 22 of file apply_return.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< T >::template apply_return< R >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename R >
    + + + + +
    using boost::callable_traits::detail::apply_return_helper< T, R >::type = typename detail::traits<T>::template apply_return<R>
    +
    + +

    Definition at line 23 of file apply_return.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4-members.html new file mode 100644 index 000000000..4447caef3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html new file mode 100644 index 000000000..8fe255fbd --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__helper_3_01std_1_1tuple_3_01_args_8_8_8_01_4_00_01_r_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Args, typename R>
    +struct boost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R >

    + + +

    Definition at line 28 of file apply_return.hpp.

    +
    + + + +

    +Public Types

    using type = R(Args...)
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Args, typename R >
    + + + + +
    using boost::callable_traits::detail::apply_return_helper< std::tuple< Args... >, R >::type = R(Args...)
    +
    + +

    Definition at line 29 of file apply_return.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.html new file mode 100644 index 000000000..d5ee82f1c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::apply_return_impl< T, R, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::apply_return_impl< T, R, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::apply_return_impl< T, R, typename >:
    +
    +
    + + +boost::callable_traits::apply_return< T, R > + +
    +

    Documentation

    +

    template<typename T, typename R, typename = std::false_type>
    +struct boost::callable_traits::detail::apply_return_impl< T, R, typename >

    + + +

    Definition at line 51 of file apply_return.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..b74fd3a45b86d1ea041b409c5d3ee64a6c357a75 GIT binary patch literal 1234 zcmeAS@N?(olHy`uVBq!ia0y~yV5|YM12~w0q^^P;Bao5^@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+as(MI9g3IRn-l%myjP0& z?%()+XV>=JHTD*=f0oWKU+oa=*4usFw>9$HEw_gYw!9U&mGs{-BzD_d5577Cmm)-{s7kv+#59&h`6TOG=;g>%~;Bl?jqD zda3;1X6^i$`(}S;mrl!__vFvBk}s8|Ecav8zCZYH^*sLr|Bk?dr+(+Qe=qqPU6bFwuV1fNx-m-reBk87+1z_%xh#5>?x%68%7rF&u-;@8MGh#dGm^#fzl zm(P>GFgi^EvPzQYe_>PtvJOpo!Po?(X^Ou*{jfZ9*1mB2%O<|@+G?I&o|kq{{h+Gp z!5KdZXfc#gBKb$jGg%g#K7U;)&DFXi;VJcc%lTO5)So7zlS(%3dk+rKd(JoHak8h;?~D=TcYo!z5TY?e{0SAw;!G# zj+gniPJE^2;$yAe!HIw3ZikrYmHla)dCzU@p7{>DUrx#@{GjjSFn!rv!T8sm-7b^M z+7jjfQ(fu*g!tJ%-9D^cbCs>Gn$_bHYnASwS>AKJyY)@qR%D&KTw7y&Y_g?Y$UhcK zX+Pcz|IS{GY59NjgDp$(>Uql+HQvwNz1h;H&^t~3!*ACozgO}1{Q11aj_qs0Ir*H3 z^v!2~vVU0JDE6=X`JdF#>~lB%Pn$n0X`5TPd3`nqpPrZTu?f;W>pRb>ckNnn)q#J1 zcTMq4o?jl9?w3f`cydiSneq6=)FtU(neI)>`Wf=$^V1(kINv{ffBlPbn#$ErS>OKW zKiNNLj>_M_|J*g6zpPY&dV&s3U!nkK+%+9 literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html new file mode 100644 index 000000000..11fded9e1 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dc086bcf6ecebbd3cb4f7b2899547359.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename R>
    +struct boost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >

    + + +

    Definition at line 54 of file apply_return.hpp.

    +
    + + + +

    +Public Types

    using type = apply_return_t< T, R >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename R >
    + + + + +
    using boost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type >::type = apply_return_t<T, R>
    +
    + +

    Definition at line 57 of file apply_return.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dd0aa3663d06c437cce146010919b49f.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dd0aa3663d06c437cce146010919b49f.html new file mode 100644 index 000000000..1baf50de8 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1apply__return__impl_3_01_t_00_01_r_00_01typename_01dd0aa3663d06c437cce146010919b49f.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::apply_return_impl< T, R, typename std::is_same< apply_return_t< T, R >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl.html new file mode 100644 index 000000000..ccb9f3439 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::args_impl< T, Container, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::args_impl< T, Container, typename > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, template< class... > class Container, typename = std::false_type>
    +struct boost::callable_traits::detail::args_impl< T, Container, typename >

    + + +

    Definition at line 35 of file args.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/args.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s65aca34815eb983bc28f03c21801711f.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s65aca34815eb983bc28f03c21801711f.html new file mode 100644 index 000000000..50b33d659 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s65aca34815eb983bc28f03c21801711f.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html new file mode 100644 index 000000000..3d38534e0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1args__impl_3_01_t_00_01_container_00_01typename_01s92f831328f1271dca9640f7a9c11c3e4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, template< class... > class Container>
    +struct boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >

    + + +

    Definition at line 38 of file args.hpp.

    +
    + + + +

    +Public Types

    using type = args_t< T, Container >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , template< class... > class Container>
    + + + + +
    using boost::callable_traits::detail::args_impl< T, Container, typename std::is_same< args_t< T, Container >, detail::dummy >::type >::type = args_t<T, Container>
    +
    + +

    Definition at line 41 of file args.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/args.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy-members.html new file mode 100644 index 000000000..0d0e39af3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::callable_dummy Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::callable_dummy, including all inherited members.

    + + +
    operator()()boost::callable_traits::detail::callable_dummyinline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html new file mode 100644 index 000000000..e87f88e29 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1callable__dummy.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::callable_dummy Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::callable_dummy Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 28 of file forward_declarations.hpp.

    +
    + + + +

    +Public Member Functions

    void operator() ()
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + +
    void boost::callable_traits::detail::callable_dummy::operator() ()
    +
    +inline
    +
    + +

    Definition at line 29 of file forward_declarations.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t-members.html new file mode 100644 index 000000000..f703d8109 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t-members.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::can_dereference_t< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::can_dereference_t< T >, including all inherited members.

    + + + + +
    test(check< typename std::remove_reference< decltype(*std::declval< U >())>::type > *)boost::callable_traits::detail::can_dereference_t< T >static
    test(...)boost::callable_traits::detail::can_dereference_t< T >static
    valueboost::callable_traits::detail::can_dereference_t< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html new file mode 100644 index 000000000..e5ff28837 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t.html @@ -0,0 +1,268 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::can_dereference_t< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::can_dereference_t< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::can_dereference_t< T >

    + + +

    Definition at line 22 of file is_invocable_impl.hpp.

    +
    + + + +

    +Classes

    struct  check
     
    + + + + + + + +

    +Static Public Member Functions

    template<typename U >
    static std::int8_t test (check< typename std::remove_reference< decltype(*std::declval< U >())>::type > *)
     
    template<typename >
    static std::int16_t test (...)
     
    + + + +

    +Static Public Attributes

    static constexpr const bool value
     
    +

    Member Function Documentation

    + +

    ◆ test() [1/2]

    + +
    +
    +
    +template<typename T >
    +
    +template<typename >
    + + + + + +
    + + + + + + + + +
    static std::int16_t boost::callable_traits::detail::can_dereference_t< T >::test ( ...)
    +
    +static
    +
    + +
    +
    + +

    ◆ test() [2/2]

    + +
    +
    +
    +template<typename T >
    +
    +template<typename U >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static std::int8_t boost::callable_traits::detail::can_dereference_t< T >::test (check< typename std::remove_reference< decltype(*std::declval< U >())>::type ,
     
    )
    +
    +static
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr const bool boost::callable_traits::detail::can_dereference_t< T >::value
    +
    +staticconstexpr
    +
    +Initial value:
    =
    +
    sizeof(test<T>(nullptr)) == sizeof(std::int8_t)
    +
    +

    Definition at line 35 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t_1_1check.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t_1_1check.html new file mode 100644 index 000000000..01315a5a1 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1can__dereference__t_1_1check.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::can_dereference_t< T >::check< typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::can_dereference_t< T >::check< typename > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +template<typename>
    +struct boost::callable_traits::detail::can_dereference_t< T >::check< typename >

    + + +

    Definition at line 25 of file is_invocable_impl.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1cdecl__tag.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1cdecl__tag.html new file mode 100644 index 000000000..1b63fa5c4 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1cdecl__tag.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::cdecl_tag Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::cdecl_tag Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 18 of file utility.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl.html new file mode 100644 index 000000000..d09f2cca0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::class_of_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::class_of_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::class_of_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::class_of< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::class_of_impl< T, typename >

    + + +

    Definition at line 34 of file class_of.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb0a74b41368c8cef739653190cc6f8e2f1086d GIT binary patch literal 1092 zcmeAS@N?(olHy`uVBq!ia0y~yU<6`@01jp#S+j*V2}nr<_=LFr|NkGzeDUUMY5$=K zKo%GuIB?bI_XX3O5@V9{ZzS~?{tXz3IoRW1iE1-DKSg%D)Seu;aN@a4_Fww&2x zBD(JUf{E4H(f4lsNk25#{CjA1)4y8`4AXxd_K075MRI@hmtAMOU$!d8e$T$W?Q!9r zvSYk2|82Z}^V{p+M#paE{47W;{bE%=i#L1j?RfJkveoi8{rN4r?;onw((Qeh{rZJd zO+!g;dZgpaQzv!^Wow<8V=mq5nfX@amXZ0bMw!J|KX;v6bMCE+_|m&YZSk{%A0PN> z;$G%*w(s_t>vG@ouGTHx*U!D~U_-8P{pv5DXDQ3FI$Qq|c=^Jx@RrkFw_7sPi@o3M zdn@mL#&r363zcpD?T2=3)Qw&;`}4mC_g!wuTot^O{I)La?3rCt zVds7OzI*2uFl>|YVEh*stH0@Vv3=90XpiZut9NuVG`?b&;;pruIPXQY5^II>-MA&5 z9t`&{+Bbf(-EL1 z7VSnB@JaVmmOw9Qbyz=cdxvi`IKHRA0{i6}#klW|?-x=0lYqY=fp7 z_x&zqqGzopr E01G1oSO5S3 literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html new file mode 100644 index 000000000..62785e1e2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s2c0f73beedfc9579616bdd28bf7381e4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >

    + + +

    Definition at line 37 of file class_of.hpp.

    +
    + + + +

    +Public Types

    using type = class_of_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type >::type = class_of_t<T>
    +
    + +

    Definition at line 40 of file class_of.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s567e0db3bba1a7f7c6933d6ab654eaca.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s567e0db3bba1a7f7c6933d6ab654eaca.html new file mode 100644 index 000000000..22ee3ac27 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1class__of__impl_3_01_t_00_01typename_01std_1_1is__s567e0db3bba1a7f7c6933d6ab654eaca.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::class_of_impl< T, typename std::is_same< class_of_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat.html new file mode 100644 index 000000000..5e9d71df9 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::concat< typename, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::concat< typename, typename > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename, typename>
    +struct boost::callable_traits::detail::concat< typename, typename >

    + + +

    Definition at line 25 of file make_index_sequence.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.html new file mode 100644 index 000000000..b6fe3d5da --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.html @@ -0,0 +1,161 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::concat< index_sequence< I1... >, index_sequence< I2... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::concat< index_sequence< I1... >, index_sequence< I2... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::concat< index_sequence< I1... >, index_sequence< I2... > >:
    +
    +
    + + +boost::callable_traits::detail::index_sequence< I1...,(sizeof...(I1)+I2)... > + +
    +

    Documentation

    +

    template<std::size_t... I1, std::size_t... I2>
    +struct boost::callable_traits::detail::concat< index_sequence< I1... >, index_sequence< I2... > >

    + + +

    Definition at line 28 of file make_index_sequence.hpp.

    +
    + + + + +

    +Additional Inherited Members

    - Public Types inherited from boost::callable_traits::detail::index_sequence< I1...,(sizeof...(I1)+I2)... >
    using type = index_sequence
     
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_012936f69efba7e09eaa0299dd503da79c.png new file mode 100644 index 0000000000000000000000000000000000000000..776d5b0946a2346e24c5d0feea5907599bb873cf GIT binary patch literal 1446 zcmcK4`%jZs7zgmTr9cHygg6b0fLKHYHl!j7qo|bCGJ&pO9Y__S6KT21z4nEQHw1yw zavx2bQ9-a!25PYgyo%#81(~*V2uu_ZB9x1TB4A;!F4?j_U?(}}Jl~V&hm)L7&UKOx z!N|bO0000Z;!!*q0FVf{CZToURhmHA1#eqP$NW9l*4E&1Vrn5F_YnuKK2HdObgvIu zz!4o!_VEMYrcXoho4+Ff=sFSchy9ZgD!!`F%67e{b7f!YV%lh|c;itvxk+Affu~3a z)ZMf04DaKQ0fp9g?VgzU+i~-`B90dlv%8)P5HrP?LtHD{bsSNr41Xw3^vg~^>1&q; zaI#Q_Q1=AqEhT=ela%525Z#qSv#f^7o-DyGMUZR4nl@~XkT_>y85|Lbhep~sBI&zl zS7kg_&-l4liXd#0waNn>gbB{-1B=DQT_AQK7ko;KZPV7h59`-nyYIFT;-6NlC!Za3 zqJ#aAv;c>fwvE#v`j}AEf7bN<1am#QSb2mf6ERQ`a;8s~99Q1uWFH0HjH1`I3>@4| z27M?$om39GTg;p@jYJ4chqc+~w^!k=Ere=Er6Ns9z9o_QZBY|M3oTELc<=6VSYY7W zJs6!PYirD5gr{Q-eKh+V=Q!-d?#;-cKx@UgiO!6TurSe79jMRP5|i}o&c#rrhTjt% zT0uRyefZX6Tv81`Pvr%Hy=Dijh2e1v+VORDljEqMkYOEEyv^^5$KQu-6@`!puC0FG z*)0B%tafH4Pf}L}wTQ3wdX)PrfEV$Yu8FVv*lLP<1x-%tpa%C2F(?Eo&5PaqCN(cW z*>8@G${7_KCSOkL)9pbw#;+DJpm(6{>yD0P$rlsg^BY5J^zm~|>XxzPo{EYca%o=| zy?LaXs`7cNpGvA5xHnhg;D&H(^zOZIE4yUm__LzurAWg#t|&`}XJfRj^A+ONsmrV+ zF6MU9l|_k3jJ`I+nzC=8!x2u9l z6(i9#r-9vUp%)TBPAVmMz_OMLupt?Og9a`iHvx=KrmO;a1t?T1Ut*gYf98#Cc%%2!^^)h?0ow>os(CapTsnPK z(6IVzhF6Mx+-d92rnACbs4HEp*1~BCe!f(Dm7QQakdw2qfq=d5I*>XQy3=NHCdne9 zUrR83X!dCTpW=vzb*U>ywFkwg7VZ64a-5}#$gwILAx@%TOFZX2kbN;P%db3lEALuh z53#GfZ1g6Z_`H%=L<6{En}^Ct8$pmVVjlPrlnRc;Rqc)bK}`z%ufCp z<2-@$e&6aY59G^-`cA^z+nV`Rk!@=ObckTZsVw%w>Z=*oLyQreJXyWeiv zFz$yMJUoTg{jgHnuDKW^z%F%X0BV}iho~0BDUu1mL4GLy&&z+J5QX|%N60(pDIVRs Ty8eL>{!{^?rw_jNNO1aJ{B)<> literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_01c73230de040ac25c70bcfc609d5065a2.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_01c73230de040ac25c70bcfc609d5065a2.html new file mode 100644 index 000000000..2e5e133ac --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1concat_3_01index__sequence_3_01_i1_8_8_8_01_4_00_01c73230de040ac25c70bcfc609d5065a2.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::concat< index_sequence< I1... >, index_sequence< I2... > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits-members.html new file mode 100644 index 000000000..c61fc8239 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits-members.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::default_callable_traits< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::default_callable_traits< T >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_lvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_rvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    add_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    add_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    add_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_return typedefboost::callable_traits::detail::default_callable_traits< T >
    arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    class_type typedefboost::callable_traits::detail::default_callable_traits< T >
    clear_args typedefboost::callable_traits::detail::default_callable_traits< T >
    cv_flagsboost::callable_traits::detail::default_callable_traits< T >static
    error_t typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_left typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_right typedefboost::callable_traits::detail::default_callable_traits< T >
    function_object_signature typedefboost::callable_traits::detail::default_callable_traits< T >
    function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    has_member_qualifiers typedefboost::callable_traits::detail::default_callable_traits< T >
    has_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    insert_args typedefboost::callable_traits::detail::default_callable_traits< T >
    invoke_type typedefboost::callable_traits::detail::default_callable_traits< T >
    is_const_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_cv_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_lvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    is_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_rvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    is_volatile_member typedefboost::callable_traits::detail::default_callable_traits< T >
    non_invoke_arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_back typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_front typedefboost::callable_traits::detail::default_callable_traits< T >
    push_back typedefboost::callable_traits::detail::default_callable_traits< T >
    push_front typedefboost::callable_traits::detail::default_callable_traits< T >
    q_flagsboost::callable_traits::detail::default_callable_traits< T >static
    qualified_function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    ref_flagsboost::callable_traits::detail::default_callable_traits< T >static
    remove_args typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    replace_args typedefboost::callable_traits::detail::default_callable_traits< T >
    return_type typedefboost::callable_traits::detail::default_callable_traits< T >
    traits typedefboost::callable_traits::detail::default_callable_traits< T >
    type typedefboost::callable_traits::detail::default_callable_traits< T >
    valueboost::callable_traits::detail::default_callable_traits< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html new file mode 100644 index 000000000..9b00b3740 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.html @@ -0,0 +1,1314 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::default_callable_traits< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::default_callable_traits< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::default_callable_traits< T >:
    +
    +
    + + +boost::callable_traits::detail::function_object< T U::*, Base > +boost::callable_traits::detail::pmd< D T::* > + +
    +

    Documentation

    +

    template<typename T = void>
    +struct boost::callable_traits::detail::default_callable_traits< T >

    + + +

    Definition at line 15 of file default_callable_traits.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using traits = default_callable_traits
     
    using error_t = error_type< T >
     
    using type = error_t
     
    using has_varargs = std::false_type
     
    using return_type = error_t
     
    using arg_types = error_t
     
    using non_invoke_arg_types = error_t
     
    using function_type = error_t
     
    using function_object_signature = error_t
     
    using qualified_function_type = error_t
     
    using remove_varargs = error_t
     
    using add_varargs = error_t
     
    using is_noexcept = std::false_type
     
    using add_noexcept = error_t
     
    using remove_noexcept = error_t
     
    using is_transaction_safe = std::false_type
     
    using add_transaction_safe = error_t
     
    using remove_transaction_safe = error_t
     
    using class_type = error_t
     
    using invoke_type = error_t
     
    using remove_reference = error_t
     
    using add_member_lvalue_reference = error_t
     
    using add_member_rvalue_reference = error_t
     
    using add_member_const = error_t
     
    using add_member_volatile = error_t
     
    using add_member_cv = error_t
     
    using remove_member_const = error_t
     
    using remove_member_volatile = error_t
     
    using remove_member_cv = error_t
     
    using remove_member_pointer = error_t
     
    template<typename C , typename U = T, typename K = typename std::remove_reference<U>::type, typename L = typename std::conditional< std::is_same<void, K>::value, error_t, K>::type, typename Class = typename std::conditional< std::is_class<C>::value, C, error_t>::type>
    using apply_member_pointer = typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type
     
    template<typename >
    using apply_return = error_t
     
    template<template< class... > class Container>
    using expand_args = error_t
     
    template<template< class... > class Container, typename... RightArgs>
    using expand_args_left = error_t
     
    template<template< class... > class Container, typename... LeftArgs>
    using expand_args_right = error_t
     
    using clear_args = error_t
     
    template<typename... NewArgs>
    using push_front = error_t
     
    template<typename... NewArgs>
    using push_back = error_t
     
    template<std::size_t ElementCount>
    using pop_front = error_t
     
    template<std::size_t ElementCount>
    using pop_back = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using insert_args = error_t
     
    template<std::size_t Index, std::size_t Count>
    using remove_args = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using replace_args = error_t
     
    using has_member_qualifiers = std::integral_constant< bool, q_flags !=default_ >
     
    using is_const_member = std::integral_constant< bool, 0<(cv_flags &const_)>
     
    using is_volatile_member = std::integral_constant< bool, 0<(cv_flags &volatile_)>
     
    using is_cv_member = std::integral_constant< bool, cv_flags==(const_|volatile_)>
     
    using is_reference_member = std::integral_constant< bool, 0< ref_flags >
     
    using is_lvalue_reference_member = std::integral_constant< bool, ref_flags==lref_ >
     
    using is_rvalue_reference_member = std::integral_constant< bool, ref_flags==rref_ >
     
    + + + + + + + + + +

    +Static Public Attributes

    static constexpr bool value = false
     
    static constexpr qualifier_flags cv_flags = cv_of<T>::value
     
    static constexpr qualifier_flags ref_flags = ref_of<T>::value
     
    static constexpr qualifier_flags q_flags = cv_flags | ref_flags
     
    +

    Member Typedef Documentation

    + +

    ◆ add_member_const

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_member_const = error_t
    +
    + +

    Definition at line 107 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ add_member_cv

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_member_cv = error_t
    +
    + +

    Definition at line 113 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_member_lvalue_reference = error_t
    +
    + +

    Definition at line 100 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_member_rvalue_reference = error_t
    +
    + +

    Definition at line 104 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ add_member_volatile

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_member_volatile = error_t
    +
    + +

    Definition at line 110 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ add_noexcept

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_noexcept = error_t
    +
    + +

    Definition at line 73 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_transaction_safe = error_t
    +
    + +

    Definition at line 83 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ add_varargs

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::add_varargs = error_t
    +
    + +

    Definition at line 66 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    +
    +template<typename T = void>
    +
    +template<typename C , typename U = T, typename K = typename std::remove_reference<U>::type, typename L = typename std::conditional< std::is_same<void, K>::value, error_t, K>::type, typename Class = typename std::conditional< std::is_class<C>::value, C, error_t>::type>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::apply_member_pointer = typename std::conditional< std::is_same<L, error_t>::value || std::is_same<Class, error_t>::value, error_t, L Class::*>::type
    +
    + +

    Definition at line 140 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename T = void>
    +
    +template<typename >
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::apply_return = error_t
    +
    + +

    Definition at line 148 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::arg_types = error_t
    +
    + +

    Definition at line 41 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ class_type

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::class_type = error_t
    +
    + +

    Definition at line 89 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ clear_args

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::clear_args = error_t
    +
    + +

    Definition at line 160 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ error_t

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::error_t = error_type<T>
    +
    + +

    Definition at line 25 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename T = void>
    +
    +template<template< class... > class Container>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::expand_args = error_t
    +
    + +

    Definition at line 152 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ expand_args_left

    + +
    +
    +
    +template<typename T = void>
    +
    +template<template< class... > class Container, typename... RightArgs>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::expand_args_left = error_t
    +
    + +

    Definition at line 155 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ expand_args_right

    + +
    +
    +
    +template<typename T = void>
    +
    +template<template< class... > class Container, typename... LeftArgs>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::expand_args_right = error_t
    +
    + +

    Definition at line 158 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ function_object_signature

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::function_object_signature = error_t
    +
    + +

    Definition at line 53 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::function_type = error_t
    +
    + +

    Definition at line 50 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ has_member_qualifiers

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::has_member_qualifiers = std::integral_constant<bool, q_flags != default_>
    +
    + +

    Definition at line 187 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ has_varargs

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::has_varargs = std::false_type
    +
    + +

    Definition at line 31 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ insert_args

    + +
    +
    +
    +template<typename T = void>
    +
    +template<std::size_t Index, typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::insert_args = error_t
    +
    + +

    Definition at line 175 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ invoke_type

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::invoke_type = error_t
    +
    + +

    Definition at line 93 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_const_member

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_const_member = std::integral_constant<bool, 0 < (cv_flags & const_)>
    +
    + +

    Definition at line 188 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_cv_member

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_cv_member = std::integral_constant<bool, cv_flags == (const_ | volatile_)>
    +
    + +

    Definition at line 190 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_lvalue_reference_member

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_lvalue_reference_member = std::integral_constant<bool, ref_flags == lref_>
    +
    + +

    Definition at line 198 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_noexcept = std::false_type
    +
    + +

    Definition at line 70 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_reference_member

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_reference_member = std::integral_constant<bool, 0 < ref_flags>
    +
    + +

    Definition at line 197 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_rvalue_reference_member

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_rvalue_reference_member = std::integral_constant<bool, ref_flags == rref_>
    +
    + +

    Definition at line 199 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_transaction_safe = std::false_type
    +
    + +

    Definition at line 80 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ is_volatile_member

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::is_volatile_member = std::integral_constant<bool, 0 < (cv_flags & volatile_)>
    +
    + +

    Definition at line 189 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::non_invoke_arg_types = error_t
    +
    + +

    Definition at line 44 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ pop_back

    + +
    +
    +
    +template<typename T = void>
    +
    +template<std::size_t ElementCount>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::pop_back = error_t
    +
    + +

    Definition at line 172 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ pop_front

    + +
    +
    +
    +template<typename T = void>
    +
    +template<std::size_t ElementCount>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::pop_front = error_t
    +
    + +

    Definition at line 169 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ push_back

    + +
    +
    +
    +template<typename T = void>
    +
    +template<typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::push_back = error_t
    +
    + +

    Definition at line 166 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ push_front

    + +
    +
    +
    +template<typename T = void>
    +
    +template<typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::push_front = error_t
    +
    + +

    Definition at line 163 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::qualified_function_type = error_t
    +
    + +

    Definition at line 58 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_args

    + +
    +
    +
    +template<typename T = void>
    +
    +template<std::size_t Index, std::size_t Count>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_args = error_t
    +
    + +

    Definition at line 178 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_member_const

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_member_const = error_t
    +
    + +

    Definition at line 116 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_member_cv

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_member_cv = error_t
    +
    + +

    Definition at line 123 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_member_pointer

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_member_pointer = error_t
    +
    + +

    Definition at line 127 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_member_volatile = error_t
    +
    + +

    Definition at line 119 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_noexcept = error_t
    +
    + +

    Definition at line 76 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_reference

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_reference = error_t
    +
    + +

    Definition at line 96 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_transaction_safe = error_t
    +
    + +

    Definition at line 86 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::remove_varargs = error_t
    +
    + +

    Definition at line 62 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ replace_args

    + +
    +
    +
    +template<typename T = void>
    +
    +template<std::size_t Index, typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::replace_args = error_t
    +
    + +

    Definition at line 181 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::return_type = error_t
    +
    + +

    Definition at line 33 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::traits = default_callable_traits
    +
    + +

    Definition at line 23 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<typename T = void>
    + + + + +
    using boost::callable_traits::detail::default_callable_traits< T >::type = error_t
    +
    + +

    Definition at line 28 of file default_callable_traits.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ cv_flags

    + +
    +
    +
    +template<typename T = void>
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::default_callable_traits< T >::cv_flags = cv_of<T>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 183 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ q_flags

    + +
    +
    +
    +template<typename T = void>
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::default_callable_traits< T >::q_flags = cv_flags | ref_flags
    +
    +staticconstexpr
    +
    + +

    Definition at line 185 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ ref_flags

    + +
    +
    +
    +template<typename T = void>
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::default_callable_traits< T >::ref_flags = ref_of<T>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 184 of file default_callable_traits.hpp.

    + +
    +
    + +

    ◆ value

    + +
    +
    +
    +template<typename T = void>
    + + + + + +
    + + + + +
    constexpr bool boost::callable_traits::detail::default_callable_traits< T >::value = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 19 of file default_callable_traits.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1default__callable__traits.png new file mode 100644 index 0000000000000000000000000000000000000000..9c7db7be78220233de68adf7946e3f55ac7b1cac GIT binary patch literal 1662 zcmb`IcTm%37{`AYmV{wJB2a}`0nc2b49idmqYPst3_%luM*!IbW$#gj)`CD80cAvG zsGuPP2+9x=MwD$3P^JMz5u$;J3<)%NZU5hz?Lw; z^qb&=+hUJYdT4Mj9LW<2h(i?@q_dLB#h$WGfXWEIBFi=Xz!9u-V(bH5Qz;Szs`iKN zUB*}7+E#wdMEAuH|43AIj1#|JSyk!z2sd`Hs}v);4HdUn}jw}vnQU_D(0^26j(TIBzcw_1~1B`m!wicha!lx=|f2q{u`yQxkfSs zAf9Oe&b**f$eK{Tu1g~r2TUIBH@QhA>ILw7nF`4dnw>AmP5OaBZ}_y-9tM7;iCoLr zomqIu_1x9ZrTC${h5FJ8_>#JLZ!Sb%<7wC3zDZN-owtl4Ch+(DPMjVWRE!?phSr*( z@@Dl0yo&di)oQh|wCi~5USzfRoQgPJ?}5I8IHZ7LlV>XdDN(tYLm?}_gov-nbm1b$ z^8|^;TXb@;stK&h+jY8KG$>~FS?g+4(ZJj0qb>AqoeipuG9?8Pr>A=gn)^v+r&5n% z5eI4=u)dkpzZ(1H9f*f+*7h(LcE%Jrq6`&7gR?Tj#7{BUyZ*|=dMECMBmQRB!h76F zp13&>0q9+NETRN}E*l593DqW0KSrqyaFNIFXiifycjwmfn}-V^2-*G{|2GX;SK)`o`2N>-jPp7JT{sV+yBY!K?KJ2v0D)(yra8pmN5}9l@ z?DQx~LlpHP5<&6&no?fE@@sf8<3FGff~Fvnth1ZOJR&KzVbvqSCZlzhRy9!{Jz-SR z`DJ|N{Jrv5qc*Yj=;~#K2zRxM2@vx&{!pqNYmB8h7um^tIA~3@^Ep0s9GtL7&t<5| zts;vnXCvIQlao^$4DLv>*?IPFH7)tj4i`hav_|%bzde2~hk~c04^< zi!tZ=9)LJjX&xaR!L8*qXoO0}!7hz-cL@8YYXFC%wvU?RFBX5NiN$6k^KKw>%k-bo zc%uuerF^sODT2{bCMe23aiEs>g1F8S4ko$XRel_Y&8DqyQ>p3#v8^C5nk_;2H?!Kn kYot`+M#G9R)IX^|VFHo8a+GyJQ}|f`C`*h5#hj4zJI);qH~;_u literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction.html new file mode 100644 index 000000000..99aed5e32 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::disjunction<... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::disjunction<... > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::disjunction<... >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename...>
    +struct boost::callable_traits::detail::disjunction<... >

    + + +

    Definition at line 20 of file disjunction.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/polyfills/disjunction.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction.png new file mode 100644 index 0000000000000000000000000000000000000000..07a1af28c88c65be3446dd0968ae88c4bae54dc3 GIT binary patch literal 763 zcmeAS@N?(olHy`uVBq!ia0y~yU}Ofe12{mWR?-6zASDst6XN>+|9>F!#hb6C{f8z1 zSzvtNzya3IJMus-M@f)hFauB#2wXiCV#L6})aB{o7*fIbcJAG2uN632&CQ?wyA6qVlx^F0TkE^A!SA&P z9%O#h{rhg}p0oGP-M_5eS0*`eOZ3vf)vMyPjU_v>G`9t=i}-r8vhJGC^BHFj+&xiU zwewzsqd|P=*QlBQ#FE%%7eD{^#pF$L#-F1rLqqkao-{Q4kosRN=V*V%v6ZX*CR#ss zJhDKT->7+gKl{z|#c>9L4?6x9##zk2@PC4MNa%l^&c;=*a(=3?Rlo2S+a4c!b>^pq zbrblunlOi6z1_ldqJihc0RsWS$Y_QK_fIi1h>05=cTKX)nBfHSHwb-5x4$n|~sqkV-6u)CI z%Zje|Z3{$puTsz3*p{!jYuVn3Tjy;JDPcdoU|#Zhk=zLW&)wzcC8Jio=Utw3W`V_y zk=6kD34^(M>P2f_rKA69#u66ZNoAyXBXZF^k7Aa!$o`O;h3 z%YPpHaq{?_dp+!o=DVLM$X!Wh(Rk|GqLo%-FZbnBQ}?Omm%hH;uc1HXM98xzdjj^{ zX8CNq=eM?L<-xL>H_h~~Fs^x*CBblD`-!9O^NuF;7rs}^VEEBn!^zArLp6N<5AFL* l3^5vzAZ=^xIC1L}vwqmzrN + + + + + + + + + + ttg: boost::callable_traits::detail::disjunction< T, Ts... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::disjunction< T, Ts... > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::disjunction< T, Ts... >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename... Ts>
    +struct boost::callable_traits::detail::disjunction< T, Ts... >

    + + +

    Definition at line 26 of file disjunction.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/polyfills/disjunction.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_00_01_ts_8_8_8_01_4.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_00_01_ts_8_8_8_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f992c4c6a9cc1b61178fa2800d49d98fb41d8641 GIT binary patch literal 923 zcmeAS@N?(olHy`uVBq!ia0y~yU{nRN12~w0WQOA8W*{XI;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z^vuz;uuoF_;zk|(P{$$*6O;NZ~Gs6 z^GtKoSKGwB+M?nqnCUr5>Cz+>*Cnc+T@}qs zA2WU|-X^B%dC5Vu{`>U5sngEg{u}81ZKJ_A`|oMzCtXinZBg`F>z79DwDPUh>-Y+u z+-93p!a6<5Xyvjr`<o#ee&L3wqyf zlhU1fYVW^o(|&#b8Snk>(XT4+NhPxRw$qtx)qZ}l^!{!?y-zkg>CWrYUpq>-Xl<(L zSsi;v!1U4IMhSJ#>xB`MmaN{neyNay>dU0O?2|_sJaM|Z#qTJB2g+*ZEGzO(hLJlrb zOdTHH41z$lO1g|LK$R3o-p@FBM#s?DnvvOqVH%oI8%vb31GkD^pLJCu*70)sr4>7~ zqkjF#TKD)E6&c7{NI|r{@3-|=Gu;Ar>Fa7e?5NRK>5JZol6UBL%n}5{_UAyk{Pzs`vun> zlRm2+*H^C%+fptp-6pYE%|1&xF)MRp;OxA-^=DjuEd0y$q51s1OVO`>|FAqOcf&lJ zJ^ozrFWuX%n>Mi+1nrs^z3TRg%42oUuF77I%JM&9GT+$r7X78!l zK0&(owBI?Q1F=8eP1%3vzn1s;%N4a+On>a}%Y1u%_x+A(_v{}>zq4rAJ_$8OXR8`- eK5{1Kto`M{4eyE~ZT)~biNVv=&t;ucLK6T&U8ySo literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.html new file mode 100644 index 000000000..462392a5d --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::disjunction< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::disjunction< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::disjunction< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::disjunction< T >

    + + +

    Definition at line 23 of file disjunction.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/polyfills/disjunction.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1disjunction_3_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..7ecc08c582f3691f8cd858ae4a0825ccb6829aff GIT binary patch literal 627 zcmeAS@N?(olHy`uVBq!ia0y~yU}Ofe12{mWR?-6zASDst6XN>+|9>F!#hb6C{f8z1 zSzvtNzya3IJMus-M@f)hFauB#2wXiCV#L6}#N_GX7*fIb_U`SX)doCm7yZpI{@(xb z9Ur^*Hiem)L6bh(Z;U#?e#Yp;_8BvMueMOO3@`MB1{G<(OY31KfKVrVu{90WB zEM_#Jk>}3dsr&{7<@-%i;9|SmKP4xmnUyodNSimDbY{Dg=QQD9ebY<9lm&A%z#1Ji zKw7~%7&u(nU>t^pK#Rbf4~cAPX_ML63`)Tw2NMdM3Io0t@4PD0dnwkVw#)6M#@3$a z?!{}}-6Cb2SP>S^UN@k74Xt$La-T~FpYxW zA!XV(-IV4j<=_6r&OfNYBOJ|FY#q7!)Pmn~yEgZJxw7EQ@u#!R*TorWOe@;){-MX; z=%3rZKln3w{oHwH*juAzKC8%o$>oWvoUrhgk==a$zHhBlrhY$F^7h~AZ>`g2M$ONS z&&V(Lcvf9?zTe~x_s5_&vfo>mZ+n%&@Im+EBhCG%AIy8)#VhsT`bSkZhWB0J=YMGL nXKfH~0|zz>v+?GgkLACgSa@+$kik4)3Ssbc^>bP0l+XkK+lLrx literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1dummy.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1dummy.html new file mode 100644 index 000000000..c2d125815 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1dummy.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::dummy Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::dummy Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 35 of file utility.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail-members.html new file mode 100644 index 000000000..be819bd8e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::fail< FailMsg, ForceTwoPhaseLookup > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail.html new file mode 100644 index 000000000..f8845459a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::fail< FailMsg, ForceTwoPhaseLookup > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::fail< FailMsg, ForceTwoPhaseLookup > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename FailMsg, typename ForceTwoPhaseLookup>
    +struct boost::callable_traits::detail::fail< FailMsg, ForceTwoPhaseLookup >

    + + +

    Definition at line 37 of file sfinae_errors.hpp.

    +
    + + + +

    +Public Types

    using type = typename std::conditional< std::is_same< ForceTwoPhaseLookup, std::false_type >::value, FailMsg, FailMsg >::type::_::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename FailMsg , typename ForceTwoPhaseLookup >
    + + + + +
    using boost::callable_traits::detail::fail< FailMsg, ForceTwoPhaseLookup >::type = typename std::conditional<std::is_same<ForceTwoPhaseLookup, std::false_type>::value, FailMsg, FailMsg>::type::_::type
    +
    + +

    Definition at line 38 of file sfinae_errors.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if-members.html new file mode 100644 index 000000000..bcd17ceee --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::fail_if< B, T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::fail_if< B, T >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::fail_if< B, T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if.html new file mode 100644 index 000000000..c882a02ed --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if.html @@ -0,0 +1,185 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::fail_if< B, T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::fail_if< B, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::fail_if< B, T >:
    +
    +
    + +
    +

    Documentation

    +

    template<bool B, typename T>
    +struct boost::callable_traits::detail::fail_if< B, T >

    + + +

    Definition at line 25 of file sfinae_errors.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr bool value = B
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<bool B, typename T >
    + + + + + +
    + + + + +
    constexpr bool boost::callable_traits::detail::fail_if< B, T >::value = B
    +
    +staticconstexpr
    +
    + +

    Definition at line 29 of file sfinae_errors.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1fail__if.png new file mode 100644 index 0000000000000000000000000000000000000000..902caaa6fbc4658c09cc753208c5ad18a74ccd8b GIT binary patch literal 621 zcmeAS@N?(olHy`uVBq!ia0vp^-+?%QgBeJE@)kA+QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;`0rLn;{G&b^uU+JJ|(UElKm|Ko4J zF1za2@a>iZ|3ts!+z_`#Pr{XycobDm_I;VAB7Z4*QccCV>fPb0FB#?TzE@xFm+!f2 z`j=@-qCJ6(nNY?j#l5O0+hOVrzV&r{V1A$($Iv#TYJc3kN6YTrzcuaAx_g!LnJp&X zW3XFd-oXEo_knX2^N$JmxOaS9S`=9tWT9#cD&k+vH>nMuK5er`tgCU_rInSdxQ;(I z$jsErU;Z(d^+Lhs?>4v2?A9yE3con*lk5M^@4K{aKaz<*{`kU<%J;2%*S*_sr(ZlJ z&wJs$iAJmbtPU?-{bF^0hW+O_RhG!Y)_}nO$W-7Ut+vFR(z#XEW$i5S%RhhqJM%mJ`R_M&_w(+&TJ`Vy)hoL5Z`RgXgeHHxqGK5!d;NCpKKJ!L zvpv=GFTJaozek!qzhVCo>9zl#?p;$|znSR|n> + + + + + + + + + + ttg: boost::callable_traits::detail::fastcall_tag Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::fastcall_tag Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 20 of file utility.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map-members.html new file mode 100644 index 000000000..555d60885 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map.html new file mode 100644 index 000000000..a8d881e58 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T >

    + + +

    Definition at line 108 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = default_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T >::value = default_
    +
    +staticconstexpr
    +
    + +

    Definition at line 108 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4-members.html new file mode 100644 index 000000000..ffdae192a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T & > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T & >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T & >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html new file mode 100644 index 000000000..ac7b49b67 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T & > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T & > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T & >

    + + +

    Definition at line 109 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = lref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T & >::value = lref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 109 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4-members.html new file mode 100644 index 000000000..c8a7d56c0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T && > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T && >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T && >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html new file mode 100644 index 000000000..a5839c08c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01_6_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T && > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T && > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T && >

    + + +

    Definition at line 110 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = rref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T && >::value = rref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 110 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4-members.html new file mode 100644 index 000000000..700f38d1b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T const > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T const >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T const >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html new file mode 100644 index 000000000..366108d6a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T const > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T const > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T const >

    + + +

    Definition at line 111 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = const_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T const >::value = const_
    +
    +staticconstexpr
    +
    + +

    Definition at line 111 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4-members.html new file mode 100644 index 000000000..dd25b7964 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T const & > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T const & >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T const & >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html new file mode 100644 index 000000000..3f7de04c7 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T const & > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T const & > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T const & >

    + + +

    Definition at line 112 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = const_ | lref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T const & >::value = const_ | lref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 112 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4-members.html new file mode 100644 index 000000000..cec670ad2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T const && > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T const && >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T const && >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html new file mode 100644 index 000000000..7ef510e80 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01_6_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T const && > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T const && > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T const && >

    + + +

    Definition at line 113 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = const_ | rref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T const && >::value = const_ | rref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 113 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4-members.html new file mode 100644 index 000000000..f537eb786 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T const volatile > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T const volatile >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T const volatile >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html new file mode 100644 index 000000000..0bba6c979 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T const volatile > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T const volatile > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T const volatile >

    + + +

    Definition at line 117 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = const_ | volatile_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T const volatile >::value = const_ | volatile_
    +
    +staticconstexpr
    +
    + +

    Definition at line 117 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4-members.html new file mode 100644 index 000000000..6b8b955ed --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T const volatile & > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T const volatile & >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T const volatile & >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html new file mode 100644 index 000000000..c455666ea --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T const volatile & > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T const volatile & > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T const volatile & >

    + + +

    Definition at line 118 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = const_ | volatile_ | lref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T const volatile & >::value = const_ | volatile_ | lref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 118 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4-members.html new file mode 100644 index 000000000..9bf72247c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T const volatile && > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T const volatile && >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T const volatile && >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html new file mode 100644 index 000000000..60d69170e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01const_01volatile_01_6_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T const volatile && > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T const volatile && > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T const volatile && >

    + + +

    Definition at line 119 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = const_ | volatile_ | rref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T const volatile && >::value = const_ | volatile_ | rref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 119 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4-members.html new file mode 100644 index 000000000..14b480272 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T volatile > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T volatile >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T volatile >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html new file mode 100644 index 000000000..5f6f271f3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T volatile > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T volatile > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T volatile >

    + + +

    Definition at line 114 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = volatile_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T volatile >::value = volatile_
    +
    +staticconstexpr
    +
    + +

    Definition at line 114 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4-members.html new file mode 100644 index 000000000..d772e061b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T volatile & > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T volatile & >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T volatile & >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html new file mode 100644 index 000000000..9e43f5c69 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T volatile & > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T volatile & > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T volatile & >

    + + +

    Definition at line 115 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = volatile_ | lref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T volatile & >::value = volatile_ | lref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 115 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4-members.html new file mode 100644 index 000000000..6ae92975b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::flag_map< T volatile && > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::flag_map< T volatile && >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::flag_map< T volatile && >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html new file mode 100644 index 000000000..6af3d11dd --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1flag__map_3_01_t_01volatile_01_6_6_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::flag_map< T volatile && > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::flag_map< T volatile && > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::flag_map< T volatile && >

    + + +

    Definition at line 116 of file qualifier_flags.hpp.

    +
    + + + +

    +Static Public Attributes

    static constexpr qualifier_flags value = volatile_ | rref_
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr qualifier_flags boost::callable_traits::detail::flag_map< T volatile && >::value = volatile_ | rref_
    +
    +staticconstexpr
    +
    + +

    Definition at line 116 of file qualifier_flags.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae-members.html new file mode 100644 index 000000000..056d57391 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::force_sfinae< T, Alias, U > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::force_sfinae< T, Alias, U >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::force_sfinae< T, Alias, U >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html new file mode 100644 index 000000000..58061b86b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1force__sfinae.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::force_sfinae< T, Alias, U > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::force_sfinae< T, Alias, U > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, template< class > class Alias, typename U = Alias<T>>
    +struct boost::callable_traits::detail::force_sfinae< T, Alias, U >

    + + +

    Definition at line 73 of file utility.hpp.

    +
    + + + +

    +Public Types

    using type = U
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , template< class > class Alias, typename U = Alias<T>>
    + + + + +
    using boost::callable_traits::detail::force_sfinae< T, Alias, U >::type = U
    +
    + +

    Definition at line 74 of file utility.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function-members.html new file mode 100644 index 000000000..65afff356 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function-members.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::function< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::function< T >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_lvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_rvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    add_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    add_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    add_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_return typedefboost::callable_traits::detail::default_callable_traits< T >
    arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    class_type typedefboost::callable_traits::detail::default_callable_traits< T >
    clear_args typedefboost::callable_traits::detail::default_callable_traits< T >
    cv_flagsboost::callable_traits::detail::default_callable_traits< T >static
    error_t typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_left typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_right typedefboost::callable_traits::detail::default_callable_traits< T >
    function_object_signature typedefboost::callable_traits::detail::default_callable_traits< T >
    function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    has_member_qualifiers typedefboost::callable_traits::detail::default_callable_traits< T >
    has_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    insert_args typedefboost::callable_traits::detail::default_callable_traits< T >
    invoke_type typedefboost::callable_traits::detail::default_callable_traits< T >
    is_const_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_cv_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_lvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    is_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_rvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    is_volatile_member typedefboost::callable_traits::detail::default_callable_traits< T >
    non_invoke_arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_back typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_front typedefboost::callable_traits::detail::default_callable_traits< T >
    push_back typedefboost::callable_traits::detail::default_callable_traits< T >
    push_front typedefboost::callable_traits::detail::default_callable_traits< T >
    q_flagsboost::callable_traits::detail::default_callable_traits< T >static
    qualified_function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    ref_flagsboost::callable_traits::detail::default_callable_traits< T >static
    remove_args typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    replace_args typedefboost::callable_traits::detail::default_callable_traits< T >
    return_type typedefboost::callable_traits::detail::default_callable_traits< T >
    traits typedefboost::callable_traits::detail::default_callable_traits< T >
    type typedefboost::callable_traits::detail::default_callable_traits< T >
    valueboost::callable_traits::detail::default_callable_traits< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function.html new file mode 100644 index 000000000..8bc88d781 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function.html @@ -0,0 +1,268 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::function< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::function< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::function< T >:
    +
    +
    + + +boost::callable_traits::detail::default_callable_traits< T > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::function< T >

    + + +

    Definition at line 21 of file function.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from boost::callable_traits::detail::default_callable_traits< T >
    using traits = default_callable_traits
     
    using error_t = error_type< T >
     
    using type = error_t
     
    using has_varargs = std::false_type
     
    using return_type = error_t
     
    using arg_types = error_t
     
    using non_invoke_arg_types = error_t
     
    using function_type = error_t
     
    using function_object_signature = error_t
     
    using qualified_function_type = error_t
     
    using remove_varargs = error_t
     
    using add_varargs = error_t
     
    using is_noexcept = std::false_type
     
    using add_noexcept = error_t
     
    using remove_noexcept = error_t
     
    using is_transaction_safe = std::false_type
     
    using add_transaction_safe = error_t
     
    using remove_transaction_safe = error_t
     
    using class_type = error_t
     
    using invoke_type = error_t
     
    using remove_reference = error_t
     
    using add_member_lvalue_reference = error_t
     
    using add_member_rvalue_reference = error_t
     
    using add_member_const = error_t
     
    using add_member_volatile = error_t
     
    using add_member_cv = error_t
     
    using remove_member_const = error_t
     
    using remove_member_volatile = error_t
     
    using remove_member_cv = error_t
     
    using remove_member_pointer = error_t
     
    using apply_member_pointer = typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type
     
    using apply_return = error_t
     
    using expand_args = error_t
     
    using expand_args_left = error_t
     
    using expand_args_right = error_t
     
    using clear_args = error_t
     
    using push_front = error_t
     
    using push_back = error_t
     
    using pop_front = error_t
     
    using pop_back = error_t
     
    using insert_args = error_t
     
    using remove_args = error_t
     
    using replace_args = error_t
     
    using has_member_qualifiers = std::integral_constant< bool, q_flags !=default_ >
     
    using is_const_member = std::integral_constant< bool, 0<(cv_flags &const_)>
     
    using is_volatile_member = std::integral_constant< bool, 0<(cv_flags &volatile_)>
     
    using is_cv_member = std::integral_constant< bool, cv_flags==(const_|volatile_)>
     
    using is_reference_member = std::integral_constant< bool, 0< ref_flags >
     
    using is_lvalue_reference_member = std::integral_constant< bool, ref_flags==lref_ >
     
    using is_rvalue_reference_member = std::integral_constant< bool, ref_flags==rref_ >
     
    - Static Public Attributes inherited from boost::callable_traits::detail::default_callable_traits< T >
    static constexpr bool value
     
    static constexpr qualifier_flags cv_flags
     
    static constexpr qualifier_flags ref_flags
     
    static constexpr qualifier_flags q_flags
     
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function.png new file mode 100644 index 0000000000000000000000000000000000000000..78a8c78e749808a4d1607b48d20e4740bc642a50 GIT binary patch literal 1038 zcmeAS@N?(olHy`uVBq!ia0y~yU~~eq12~w0WVBRI7m$(&@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+!W5P1Obb%)%wrp5mA3|boRX7SC;$s(U8 z)~@qI$>~WUrxjut^XK&2yKj}gv*@;T_57{zuh$!9Z!=kCTzW>!{_MTz*-2ZZ%ChZb zo_rTr*L^c}>6NJ$AMC2QoG5np*c21Zw>u{7x}oKW^ETV!i( z_Cc_z%K59zZ$o$PZE4Q4ja&HHBIh1mwa@&V;I!uW%82-@MeeU&tTO*T_{{{=a{Nzv}*XKl$#)u9=(f_ZP+coV#=B(YxA= z;5$<<9Fx2$zeFYYobe`=R+X2l>bM?$isRq6Smkd|-kKji6AHP2f$5;(smJQ%S)?i8 zHOad%U{VYyyf1MlLgHW(V!3Z>f0caw_bfC0%BgN9^-Dd=OEu0dxOIrwN&pb3kUuqo^etq)7 z>fJp#ThDEIx#Ag5&#GCOHR>!4QPoMTI~JaI0VRSA>B~3n)_*hh&+l_*(sOd9onm63{O10W~XYcL2Jx7hL z&;P%wX;c61*o^%@#rQTv&sWb+EDk#FtTF#@{NC2hJ$s(|OwPIPlkscX|HVBq_kI|q zpFi<5X!e?_CpTHPg#<JdGxn$8PVCH4;boFyt=akR{0A+B^q5uE@ literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4-members.html new file mode 100644 index 000000000..991bcbe0d --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4-members.html @@ -0,0 +1,161 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::function< T & > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::function< T & >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::function< T & >
    add_member_cv typedefboost::callable_traits::detail::function< T & >
    add_member_lvalue_reference typedefboost::callable_traits::detail::function< T & >
    add_member_rvalue_reference typedefboost::callable_traits::detail::function< T & >
    add_member_volatile typedefboost::callable_traits::detail::function< T & >
    add_varargs typedefboost::callable_traits::detail::function< T & >
    apply_return typedefboost::callable_traits::detail::function< T & >
    base typedefboost::callable_traits::detail::function< T & >
    clear_args typedefboost::callable_traits::detail::function< T & >
    insert_args typedefboost::callable_traits::detail::function< T & >
    pop_back typedefboost::callable_traits::detail::function< T & >
    pop_front typedefboost::callable_traits::detail::function< T & >
    push_back typedefboost::callable_traits::detail::function< T & >
    push_front typedefboost::callable_traits::detail::function< T & >
    remove_args typedefboost::callable_traits::detail::function< T & >
    remove_member_const typedefboost::callable_traits::detail::function< T & >
    remove_member_cv typedefboost::callable_traits::detail::function< T & >
    remove_member_reference typedefboost::callable_traits::detail::function< T & >
    remove_member_volatile typedefboost::callable_traits::detail::function< T & >
    remove_varargs typedefboost::callable_traits::detail::function< T & >
    replace_args typedefboost::callable_traits::detail::function< T & >
    traits typedefboost::callable_traits::detail::function< T & >
    type typedefboost::callable_traits::detail::function< T & >
    valueboost::callable_traits::detail::function< T & >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html new file mode 100644 index 000000000..b93548ee8 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.html @@ -0,0 +1,674 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::function< T & > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::function< T & > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::function< T & >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::function< T & >

    + + +

    Definition at line 142 of file function.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using traits = function
     
    using base = function< T >
     
    using type = T &
     
    using remove_varargs = typename base::remove_varargs &
     
    using add_varargs = typename base::add_varargs &
     
    using remove_member_reference = reference_error
     
    using add_member_lvalue_reference = reference_error
     
    using add_member_rvalue_reference = reference_error
     
    using add_member_const = reference_error
     
    using add_member_volatile = reference_error
     
    using add_member_cv = reference_error
     
    using remove_member_const = reference_error
     
    using remove_member_volatile = reference_error
     
    using remove_member_cv = reference_error
     
    template<typename NewReturn >
    using apply_return = typename base::template apply_return< NewReturn > &
     
    using clear_args = typename base::clear_args &
     
    template<typename... NewArgs>
    using push_front = typename base::template push_front< NewArgs... > &
     
    template<typename... NewArgs>
    using push_back = typename base::template push_back< NewArgs... > &
     
    template<std::size_t Count>
    using pop_back = typename base::template pop_back< Count > &
     
    template<std::size_t Count>
    using pop_front = typename base::template pop_front< Count > &
     
    template<std::size_t Index, typename... NewArgs>
    using insert_args = typename base::template insert_args< Index, NewArgs... > &
     
    template<std::size_t Index, std::size_t Count>
    using remove_args = typename base::template remove_args< Index, Count > &
     
    template<std::size_t Index, typename... NewArgs>
    using replace_args = typename base::template replace_args< Index, NewArgs... > &
     
    + + + +

    +Static Public Attributes

    static constexpr const bool value = !std::is_pointer<T>::value
     
    +

    Member Typedef Documentation

    + +

    ◆ add_member_const

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::add_member_const = reference_error
    +
    + +

    Definition at line 156 of file function.hpp.

    + +
    +
    + +

    ◆ add_member_cv

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::add_member_cv = reference_error
    +
    + +

    Definition at line 158 of file function.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::add_member_lvalue_reference = reference_error
    +
    + +

    Definition at line 154 of file function.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::add_member_rvalue_reference = reference_error
    +
    + +

    Definition at line 155 of file function.hpp.

    + +
    +
    + +

    ◆ add_member_volatile

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::add_member_volatile = reference_error
    +
    + +

    Definition at line 157 of file function.hpp.

    + +
    +
    + +

    ◆ add_varargs

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::add_varargs = typename base::add_varargs&
    +
    + +

    Definition at line 151 of file function.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename T >
    +
    +template<typename NewReturn >
    + + + + +
    using boost::callable_traits::detail::function< T & >::apply_return = typename base::template apply_return<NewReturn>&
    +
    + +

    Definition at line 164 of file function.hpp.

    + +
    +
    + +

    ◆ base

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::base = function<T>
    +
    + +

    Definition at line 148 of file function.hpp.

    + +
    +
    + +

    ◆ clear_args

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::clear_args = typename base::clear_args&
    +
    + +

    Definition at line 166 of file function.hpp.

    + +
    +
    + +

    ◆ insert_args

    + +
    +
    +
    +template<typename T >
    +
    +template<std::size_t Index, typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::function< T & >::insert_args = typename base::template insert_args<Index, NewArgs...>&
    +
    + +

    Definition at line 181 of file function.hpp.

    + +
    +
    + +

    ◆ pop_back

    + +
    +
    +
    +template<typename T >
    +
    +template<std::size_t Count>
    + + + + +
    using boost::callable_traits::detail::function< T & >::pop_back = typename base::template pop_back<Count>&
    +
    + +

    Definition at line 175 of file function.hpp.

    + +
    +
    + +

    ◆ pop_front

    + +
    +
    +
    +template<typename T >
    +
    +template<std::size_t Count>
    + + + + +
    using boost::callable_traits::detail::function< T & >::pop_front = typename base::template pop_front<Count>&
    +
    + +

    Definition at line 178 of file function.hpp.

    + +
    +
    + +

    ◆ push_back

    + +
    +
    +
    +template<typename T >
    +
    +template<typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::function< T & >::push_back = typename base::template push_back<NewArgs...>&
    +
    + +

    Definition at line 172 of file function.hpp.

    + +
    +
    + +

    ◆ push_front

    + +
    +
    +
    +template<typename T >
    +
    +template<typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::function< T & >::push_front = typename base::template push_front<NewArgs...>&
    +
    + +

    Definition at line 169 of file function.hpp.

    + +
    +
    + +

    ◆ remove_args

    + +
    +
    +
    +template<typename T >
    +
    +template<std::size_t Index, std::size_t Count>
    + + + + +
    using boost::callable_traits::detail::function< T & >::remove_args = typename base::template remove_args<Index, Count>&
    +
    + +

    Definition at line 184 of file function.hpp.

    + +
    +
    + +

    ◆ remove_member_const

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::remove_member_const = reference_error
    +
    + +

    Definition at line 159 of file function.hpp.

    + +
    +
    + +

    ◆ remove_member_cv

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::remove_member_cv = reference_error
    +
    + +

    Definition at line 161 of file function.hpp.

    + +
    +
    + +

    ◆ remove_member_reference

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::remove_member_reference = reference_error
    +
    + +

    Definition at line 153 of file function.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::remove_member_volatile = reference_error
    +
    + +

    Definition at line 160 of file function.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::remove_varargs = typename base::remove_varargs&
    +
    + +

    Definition at line 150 of file function.hpp.

    + +
    +
    + +

    ◆ replace_args

    + +
    +
    +
    +template<typename T >
    +
    +template<std::size_t Index, typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::function< T & >::replace_args = typename base::template replace_args<Index, NewArgs...>&
    +
    + +

    Definition at line 187 of file function.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::traits = function
    +
    + +

    Definition at line 147 of file function.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function< T & >::type = T&
    +
    + +

    Definition at line 149 of file function.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr const bool boost::callable_traits::detail::function< T & >::value = !std::is_pointer<T>::value
    +
    +staticconstexpr
    +
    + +

    Definition at line 145 of file function.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/function.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function_3_01_t_01_6_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9e3572857d12c37f2491d7e9181dfa2a5bd2f72a GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0y~yU}OTa12~w0V5=5`!7p>@`=GSJsZh+!2_%^k+ZnKy57F*i&N1sl4+vB2q3!i$@+?tOb& z`qIuFSW#Kr>+i(S5ca*N{@qi1Wr=EO#SguQZ`_-okY0G?w4%oZqphDb*56Gi+iCvI zE`R>L?fD^_*FN07>fEY&y9aMnzV8(HHtSvs!-13i0xI15%??;e@-7o?;}dt<%p_se z`Pjha<$h*o(f7*~--yc|;MYHtF_oQtQ(aAis!~VstQ~CfJ!x_W8|Si%-t9N8H?(#S z@GpO?|8z!`U=)iTb0|xqU;BZbAE(*73FtZhx$q!lkK={*OEctR`sya{{kKFyzw=6f1v9M z%T?!YYCG)}(OW&;Cck028dv^1?L(D;dgigTe~DWM4fMNLQq literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object-members.html new file mode 100644 index 000000000..68ed8a0d4 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object-members.html @@ -0,0 +1,178 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::function_object< T, Base > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::function_object< T, Base >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::function_object< T, Base >
    add_member_cv typedefboost::callable_traits::detail::function_object< T, Base >
    add_member_lvalue_reference typedefboost::callable_traits::detail::function_object< T, Base >
    add_member_rvalue_reference typedefboost::callable_traits::detail::function_object< T, Base >
    add_member_volatile typedefboost::callable_traits::detail::function_object< T, Base >
    add_noexcept typedefboost::callable_traits::detail::function_object< T, Base >
    add_transaction_safe typedefboost::callable_traits::detail::function_object< T, Base >
    add_varargs typedefboost::callable_traits::detail::function_object< T, Base >
    apply_member_pointer typedefboost::callable_traits::detail::function_object< T, Base >
    apply_return typedefboost::callable_traits::detail::function_object< T, Base >
    arg_types typedefboost::callable_traits::detail::function_object< T, Base >
    class_type typedefboost::callable_traits::detail::function_object< T, Base >
    clear_args typedefboost::callable_traits::detail::function_object< T, Base >
    error_t typedefboost::callable_traits::detail::function_object< T, Base >
    expand_args typedefboost::callable_traits::detail::function_object< T, Base >
    expand_args_left typedefboost::callable_traits::detail::function_object< T, Base >
    expand_args_right typedefboost::callable_traits::detail::function_object< T, Base >
    function_type typedefboost::callable_traits::detail::function_object< T, Base >
    insert_args typedefboost::callable_traits::detail::function_object< T, Base >
    invoke_type typedefboost::callable_traits::detail::function_object< T, Base >
    is_noexcept typedefboost::callable_traits::detail::function_object< T, Base >
    is_transaction_safe typedefboost::callable_traits::detail::function_object< T, Base >
    non_invoke_arg_types typedefboost::callable_traits::detail::function_object< T, Base >
    pop_args_back typedefboost::callable_traits::detail::function_object< T, Base >
    pop_args_front typedefboost::callable_traits::detail::function_object< T, Base >
    pop_back typedefboost::callable_traits::detail::function_object< T, Base >
    pop_front typedefboost::callable_traits::detail::function_object< T, Base >
    push_back typedefboost::callable_traits::detail::function_object< T, Base >
    push_front typedefboost::callable_traits::detail::function_object< T, Base >
    remove_args typedefboost::callable_traits::detail::function_object< T, Base >
    remove_member_const typedefboost::callable_traits::detail::function_object< T, Base >
    remove_member_cv typedefboost::callable_traits::detail::function_object< T, Base >
    remove_member_reference typedefboost::callable_traits::detail::function_object< T, Base >
    remove_member_volatile typedefboost::callable_traits::detail::function_object< T, Base >
    remove_noexcept typedefboost::callable_traits::detail::function_object< T, Base >
    remove_transaction_safe typedefboost::callable_traits::detail::function_object< T, Base >
    remove_varargs typedefboost::callable_traits::detail::function_object< T, Base >
    replace_args typedefboost::callable_traits::detail::function_object< T, Base >
    traits typedefboost::callable_traits::detail::function_object< T, Base >
    type typedefboost::callable_traits::detail::function_object< T, Base >
    valueboost::callable_traits::detail::function_object< T, Base >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object.html new file mode 100644 index 000000000..020f5e5dc --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object.html @@ -0,0 +1,1036 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::function_object< T, Base > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::function_object< T, Base > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::function_object< T, Base >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename Base>
    +struct boost::callable_traits::detail::function_object< T, Base >

    + + +

    Definition at line 20 of file function_object.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using type = T
     
    using error_t = error_type< T >
     
    using function_type = typename Base::function_object_signature
     
    using arg_types = typename Base::non_invoke_arg_types
     
    using non_invoke_arg_types = arg_types
     
    using traits = function_object
     
    using class_type = error_t
     
    using invoke_type = error_t
     
    using remove_varargs = error_t
     
    using add_varargs = error_t
     
    using is_noexcept = typename Base::is_noexcept
     
    using add_noexcept = error_t
     
    using remove_noexcept = error_t
     
    using is_transaction_safe = typename Base::is_transaction_safe
     
    using add_transaction_safe = error_t
     
    using remove_transaction_safe = error_t
     
    using clear_args = error_t
     
    template<template< class... > class Container>
    using expand_args = typename function< function_type >::template expand_args< Container >
     
    template<template< class... > class Container, typename... RightArgs>
    using expand_args_left = typename function< function_type >::template expand_args_left< Container, RightArgs... >
     
    template<template< class... > class Container, typename... LeftArgs>
    using expand_args_right = typename function< function_type >::template expand_args_right< Container, LeftArgs... >
     
    template<typename C , typename U = T>
    using apply_member_pointer = typename std::remove_reference< U >::type C::*
     
    template<typename >
    using apply_return = error_t
     
    template<typename... >
    using push_front = error_t
     
    template<typename... >
    using push_back = error_t
     
    template<std::size_t ElementCount>
    using pop_args_front = error_t
     
    template<std::size_t ElementCount>
    using pop_args_back = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using insert_args = error_t
     
    template<std::size_t Index, std::size_t Count>
    using remove_args = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using replace_args = error_t
     
    template<std::size_t Count>
    using pop_front = error_t
     
    template<std::size_t Count>
    using pop_back = error_t
     
    using remove_member_reference = error_t
     
    using add_member_lvalue_reference = error_t
     
    using add_member_rvalue_reference = error_t
     
    using add_member_const = error_t
     
    using add_member_volatile = error_t
     
    using add_member_cv = error_t
     
    using remove_member_const = error_t
     
    using remove_member_volatile = error_t
     
    using remove_member_cv = error_t
     
    + + + +

    +Static Public Attributes

    static constexpr const bool value
     
    +

    Member Typedef Documentation

    + +

    ◆ add_member_const

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_member_const = error_t
    +
    + +

    Definition at line 93 of file function_object.hpp.

    + +
    +
    + +

    ◆ add_member_cv

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_member_cv = error_t
    +
    + +

    Definition at line 95 of file function_object.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_member_lvalue_reference = error_t
    +
    + +

    Definition at line 91 of file function_object.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_member_rvalue_reference = error_t
    +
    + +

    Definition at line 92 of file function_object.hpp.

    + +
    +
    + +

    ◆ add_member_volatile

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_member_volatile = error_t
    +
    + +

    Definition at line 94 of file function_object.hpp.

    + +
    +
    + +

    ◆ add_noexcept

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_noexcept = error_t
    +
    + +

    Definition at line 37 of file function_object.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_transaction_safe = error_t
    +
    + +

    Definition at line 40 of file function_object.hpp.

    + +
    +
    + +

    ◆ add_varargs

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::add_varargs = error_t
    +
    + +

    Definition at line 35 of file function_object.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<typename C , typename U = T>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::apply_member_pointer = typename std::remove_reference<U>::type C::*
    +
    + +

    Definition at line 57 of file function_object.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<typename >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::apply_return = error_t
    +
    + +

    Definition at line 61 of file function_object.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::arg_types = typename Base::non_invoke_arg_types
    +
    + +

    Definition at line 25 of file function_object.hpp.

    + +
    +
    + +

    ◆ class_type

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::class_type = error_t
    +
    + +

    Definition at line 32 of file function_object.hpp.

    + +
    +
    + +

    ◆ clear_args

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::clear_args = error_t
    +
    + +

    Definition at line 42 of file function_object.hpp.

    + +
    +
    + +

    ◆ error_t

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::error_t = error_type<T>
    +
    + +

    Definition at line 23 of file function_object.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<template< class... > class Container>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::expand_args = typename function<function_type>::template expand_args<Container>
    +
    + +

    Definition at line 45 of file function_object.hpp.

    + +
    +
    + +

    ◆ expand_args_left

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<template< class... > class Container, typename... RightArgs>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::expand_args_left = typename function<function_type>::template expand_args_left<Container, RightArgs...>
    +
    + +

    Definition at line 49 of file function_object.hpp.

    + +
    +
    + +

    ◆ expand_args_right

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<template< class... > class Container, typename... LeftArgs>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::expand_args_right = typename function<function_type>::template expand_args_right<Container, LeftArgs...>
    +
    + +

    Definition at line 53 of file function_object.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::function_type = typename Base::function_object_signature
    +
    + +

    Definition at line 24 of file function_object.hpp.

    + +
    +
    + +

    ◆ insert_args

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<std::size_t Index, typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::insert_args = error_t
    +
    + +

    Definition at line 76 of file function_object.hpp.

    + +
    +
    + +

    ◆ invoke_type

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::invoke_type = error_t
    +
    + +

    Definition at line 33 of file function_object.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::is_noexcept = typename Base::is_noexcept
    +
    + +

    Definition at line 36 of file function_object.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::is_transaction_safe = typename Base::is_transaction_safe
    +
    + +

    Definition at line 39 of file function_object.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::non_invoke_arg_types = arg_types
    +
    + +

    Definition at line 26 of file function_object.hpp.

    + +
    +
    + +

    ◆ pop_args_back

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<std::size_t ElementCount>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::pop_args_back = error_t
    +
    + +

    Definition at line 73 of file function_object.hpp.

    + +
    +
    + +

    ◆ pop_args_front

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<std::size_t ElementCount>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::pop_args_front = error_t
    +
    + +

    Definition at line 70 of file function_object.hpp.

    + +
    +
    + +

    ◆ pop_back

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<std::size_t Count>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::pop_back = error_t
    +
    + +

    Definition at line 88 of file function_object.hpp.

    + +
    +
    + +

    ◆ pop_front

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<std::size_t Count>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::pop_front = error_t
    +
    + +

    Definition at line 85 of file function_object.hpp.

    + +
    +
    + +

    ◆ push_back

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<typename... >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::push_back = error_t
    +
    + +

    Definition at line 67 of file function_object.hpp.

    + +
    +
    + +

    ◆ push_front

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<typename... >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::push_front = error_t
    +
    + +

    Definition at line 64 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_args

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<std::size_t Index, std::size_t Count>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_args = error_t
    +
    + +

    Definition at line 79 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_member_const

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_member_const = error_t
    +
    + +

    Definition at line 96 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_member_cv

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_member_cv = error_t
    +
    + +

    Definition at line 98 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_member_reference

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_member_reference = error_t
    +
    + +

    Definition at line 90 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_member_volatile = error_t
    +
    + +

    Definition at line 97 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_noexcept = error_t
    +
    + +

    Definition at line 38 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_transaction_safe = error_t
    +
    + +

    Definition at line 41 of file function_object.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::remove_varargs = error_t
    +
    + +

    Definition at line 34 of file function_object.hpp.

    + +
    +
    + +

    ◆ replace_args

    + +
    +
    +
    +template<typename T , typename Base >
    +
    +template<std::size_t Index, typename... NewArgs>
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::replace_args = error_t
    +
    + +

    Definition at line 82 of file function_object.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::traits = function_object
    +
    + +

    Definition at line 31 of file function_object.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + +
    using boost::callable_traits::detail::function_object< T, Base >::type = T
    +
    + +

    Definition at line 22 of file function_object.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T , typename Base >
    + + + + + +
    + + + + +
    constexpr const bool boost::callable_traits::detail::function_object< T, Base >::value
    +
    +staticconstexpr
    +
    +Initial value:
    = std::is_class<
    +
    typename std::remove_reference<T>::type>::value
    + +
    +

    Definition at line 28 of file function_object.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following files: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object.png new file mode 100644 index 0000000000000000000000000000000000000000..9c2a3f21498fe4f711114543a83745f975a671f1 GIT binary patch literal 854 zcmeAS@N?(olHy`uVBq!ia0y~yU~~eq12~w0WVBRI7m$(&@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+!c}%xKuS;MZJQ!w5Kc)`5v-E z#me&+@12l`Ws{c7E-r3;ol-M5KlAH7F7fWGg{Nm${@+_LHNACG$-F8>`~P`!lIxB- zt$V&mQ&hu~f-4e=o?m@jSh@MS*Y^c0jWw^tgqo*2F-Ta5 zU)SEcji15q!(p!HYtM>YGvB?j_V3hc)qO=(>%PW44E~)}|NFLH`}Ea^uAhA!8T+qt z@0Y+XUGuLE)1#h-@L#xf;@29kho4PaE*!Hu7W%c&De-Ay*y_+9Je$jy4P`b@_jkVA ztTpWz!@+_t?>T=ZziD3}Q)(P~eDaQ24_C5FYaI7}xMu#ww5=@Pt!9-3OU?aaTIU(P ze5TH1zTZh(56vyAmObCLOzzg=vm5Vk*u{71w{mN$sL5TM+xpx)dAHu|-2N+eZsE2m zX|E>TU$Nnf!Mb0ITVrfWEYtS>bb9zh)A!=sqqcsV9@ef;&$p|8uk&W#!vwKy2hU9U zpCTrgU%oqW?oDp>Td&Rdza6@{Z=3X?kca*6TB{{1&(4eu%ATjYKhjOFx@P6)Qzudb z!y`*iZ)W^@(IrrPy>Zd*X!+D9b&}t^lcP6hU$UP%k?~*rxw?y-F235NG*5iG~0tmNZz#PuKJ&BMnp>rH<4444TRJYD@<);T3K F0RVCEfA|0Z literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4-members.html new file mode 100644 index 000000000..deaa1bcf0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4-members.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::function_object< T U::*, Base > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::function_object< T U::*, Base >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_lvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_rvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    add_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    add_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    add_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_return typedefboost::callable_traits::detail::default_callable_traits< T >
    arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    class_type typedefboost::callable_traits::detail::default_callable_traits< T >
    clear_args typedefboost::callable_traits::detail::default_callable_traits< T >
    cv_flagsboost::callable_traits::detail::default_callable_traits< T >static
    error_t typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_left typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_right typedefboost::callable_traits::detail::default_callable_traits< T >
    function_object_signature typedefboost::callable_traits::detail::default_callable_traits< T >
    function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    has_member_qualifiers typedefboost::callable_traits::detail::default_callable_traits< T >
    has_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    insert_args typedefboost::callable_traits::detail::default_callable_traits< T >
    invoke_type typedefboost::callable_traits::detail::default_callable_traits< T >
    is_const_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_cv_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_lvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    is_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_rvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    is_volatile_member typedefboost::callable_traits::detail::default_callable_traits< T >
    non_invoke_arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_back typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_front typedefboost::callable_traits::detail::default_callable_traits< T >
    push_back typedefboost::callable_traits::detail::default_callable_traits< T >
    push_front typedefboost::callable_traits::detail::default_callable_traits< T >
    q_flagsboost::callable_traits::detail::default_callable_traits< T >static
    qualified_function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    ref_flagsboost::callable_traits::detail::default_callable_traits< T >static
    remove_args typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    replace_args typedefboost::callable_traits::detail::default_callable_traits< T >
    return_type typedefboost::callable_traits::detail::default_callable_traits< T >
    traits typedefboost::callable_traits::detail::default_callable_traits< T >
    type typedefboost::callable_traits::detail::default_callable_traits< T >
    valueboost::callable_traits::detail::default_callable_traits< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.html new file mode 100644 index 000000000..0236ee4ff --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.html @@ -0,0 +1,280 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::function_object< T U::*, Base > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::function_object< T U::*, Base > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::function_object< T U::*, Base >:
    +
    +
    + + +boost::callable_traits::detail::default_callable_traits< T > + +
    +

    Documentation

    +

    template<typename T, typename U, typename Base>
    +struct boost::callable_traits::detail::function_object< T U::*, Base >

    + + +

    Definition at line 102 of file function_object.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from boost::callable_traits::detail::default_callable_traits< T >
    using traits = default_callable_traits
     
    using error_t = error_type< T >
     
    using type = error_t
     
    using has_varargs = std::false_type
     
    using return_type = error_t
     
    using arg_types = error_t
     
    using non_invoke_arg_types = error_t
     
    using function_type = error_t
     
    using function_object_signature = error_t
     
    using qualified_function_type = error_t
     
    using remove_varargs = error_t
     
    using add_varargs = error_t
     
    using is_noexcept = std::false_type
     
    using add_noexcept = error_t
     
    using remove_noexcept = error_t
     
    using is_transaction_safe = std::false_type
     
    using add_transaction_safe = error_t
     
    using remove_transaction_safe = error_t
     
    using class_type = error_t
     
    using invoke_type = error_t
     
    using remove_reference = error_t
     
    using add_member_lvalue_reference = error_t
     
    using add_member_rvalue_reference = error_t
     
    using add_member_const = error_t
     
    using add_member_volatile = error_t
     
    using add_member_cv = error_t
     
    using remove_member_const = error_t
     
    using remove_member_volatile = error_t
     
    using remove_member_cv = error_t
     
    using remove_member_pointer = error_t
     
    template<typename C , typename U = T, typename K = typename std::remove_reference<U>::type, typename L = typename std::conditional< std::is_same<void, K>::value, error_t, K>::type, typename Class = typename std::conditional< std::is_class<C>::value, C, error_t>::type>
    using apply_member_pointer = typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type
     
    template<typename >
    using apply_return = error_t
     
    template<template< class... > class Container>
    using expand_args = error_t
     
    template<template< class... > class Container, typename... RightArgs>
    using expand_args_left = error_t
     
    template<template< class... > class Container, typename... LeftArgs>
    using expand_args_right = error_t
     
    using clear_args = error_t
     
    template<typename... NewArgs>
    using push_front = error_t
     
    template<typename... NewArgs>
    using push_back = error_t
     
    template<std::size_t ElementCount>
    using pop_front = error_t
     
    template<std::size_t ElementCount>
    using pop_back = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using insert_args = error_t
     
    template<std::size_t Index, std::size_t Count>
    using remove_args = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using replace_args = error_t
     
    using has_member_qualifiers = std::integral_constant< bool, q_flags !=default_ >
     
    using is_const_member = std::integral_constant< bool, 0<(cv_flags &const_)>
     
    using is_volatile_member = std::integral_constant< bool, 0<(cv_flags &volatile_)>
     
    using is_cv_member = std::integral_constant< bool, cv_flags==(const_|volatile_)>
     
    using is_reference_member = std::integral_constant< bool, 0< ref_flags >
     
    using is_lvalue_reference_member = std::integral_constant< bool, ref_flags==lref_ >
     
    using is_rvalue_reference_member = std::integral_constant< bool, ref_flags==rref_ >
     
    - Static Public Attributes inherited from boost::callable_traits::detail::default_callable_traits< T >
    static constexpr bool value = false
     
    static constexpr qualifier_flags cv_flags = cv_of<T>::value
     
    static constexpr qualifier_flags ref_flags = ref_of<T>::value
     
    static constexpr qualifier_flags q_flags = cv_flags | ref_flags
     
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__object_3_01_t_01_u_1_1_5_00_01_base_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e1d457db4af22b0fbd0ed1738b345fb5f7329a03 GIT binary patch literal 1160 zcmeAS@N?(olHy`uVBq!ia0y~yV2lB>12~w0WKyl|MIa>+;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z#{JH;uuoF_;&8wB4te;SN`p*pZ%4u zl=;ri-wC?O+R6N3XBz{}&?V#J+a$g@+^VIZ=THB)S>FBj%lE@M`qk4zy zq#EB{a%Z2b@aLv^PhFcK6CzedminI;ru?YO{KSr zwcK7{>F=F(?dO!=Z7$jt`TOthi|J?QO?@U4xA@imKCk@X-m=4q=RmsG#vQnOcmtzn zsz%&%xv=XAeFrWsU*!4ncc{sf#9s%mo!g;v;&p@PrQW#Zto`$Q56v^*t-|m3dYf#r z@>jJtXJckt@8E8>*|_h(Z^k=Sy|Z@6Z$EaVB5a-UwV0j75$0(#uJ715O?Yi*GNypL=TM@`KMpqaq}p%$i(1KWzWhb91&v%{R9!Pr5wk zpsQuM)RRebvgL37D&BkbS?}LpnYZTE-*c{UG)z7h@%pXt`=1|E=HH8*{c2s?HT!?7 zo2D!&FX0cL6g26}#5$38pO5}lSVE{%CZSk+e52giqt(p>at($2A zQ^eX9ZhmLYeHWFE1oPOPOMue1^NZY0F z!7ol*@V7>-kv85a9KN~mn*`5~bC2f7=r>(lzVpInfjPTF=2{i^X6GFLa`2n*w=}VL zNAk=zZqF>c96$fg>^ZjuisCw|cYO6Tz5M21c2tJ=#gsqUHRfqHiC25K#&B#uXYg!- z^^OKjGu;rUyV~U;aR+3@Z_e-wI$B}S{!i}C8@@HRJMT)}v)u(<$20`WKfCkn?&kc5|J2I)^Dck;^E&Qn+W9v#oYh=s zi2tuR>HofMQ|F;sv%RKk^&hj-E1vy#OF?Xf`R6#v1pduS*=}62Yi0QFU0XkKenm&q z?>h + + + + + + + + + + ttg: boost::callable_traits::detail::function_type_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::function_type_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::function_type_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::function_type< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::function_type_impl< T, typename >

    + + +

    Definition at line 33 of file function_type.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..31e29ae774f4eb7d097ac685b97c7b53300aacf4 GIT binary patch literal 1183 zcmeAS@N?(olHy`uVBq!ia0y~yV9W=y12~w0q=8&B0%WLUQ6hTHPMocS^T^{iQTEJ(PwKJArN|0$Dg_xYs~7Kv}Xf37J0MK5u4SR~^4UuzjuQ?un~HYj0e=GxtrdT1$MtUQ3p-QQ_>T1=UCR zt~?U2f3{)u+qQSb%=d0va0_{byUmq8x9s4NHwA$&yl(q1)csqoaV6>Qj?33)&UiO< ziu{9ZPTTh%H{7!I?#jXkHM4vSoUAObn;qeEIK6x8Mq$a?4YFyK{>OM5`|8*>?l@dE z&3{?Xt%6_YL)p^z%x+HO+fn$c|99ENFMFhC_iZmscCVYf-CEK&#`e7$b5F&0K3^%_ zfbRXd^Y_Jnc=!Bmn_rR7{@UIDragVLq^AA5-OgubKaTyAvzn9sVBWWleViI)vWXmngeI#J&sk$T;q9t@y>5=^6y?)cJSsK z-|#!$Mo(3)y(;}Xc}euw#69iW3Z8rG>=it>-QoWockg!I4fCTPi}#exwSJ%e^k&-e z{P+EK);ViUn9K5y{ax?=eBZ4eAC;S*4p-)X-lnkh($v7`ZJRRKMt+ws{vlrZTS5Et_u)le`O6`=gdy_;~%s*AV_h6pQ@wu0uNljS7@ptv_ z+c9@1i7cx(pYIX02OgMkh8!s9gMa}q_>14*ov&O}7>gRPG-2>`^>bP0l+XkK%`IF) literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html new file mode 100644 index 000000000..89086ee3e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_12cc3f04b56020e2ead0e126b0e3b7ce5.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >

    + + +

    Definition at line 36 of file function_type.hpp.

    +
    + + + +

    +Public Types

    using type = function_type_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type >::type = function_type_t<T>
    +
    + +

    Definition at line 39 of file function_type.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_16153bbd73cc24a93057a75e362696c2b.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_16153bbd73cc24a93057a75e362696c2b.html new file mode 100644 index 000000000..473cd6cf9 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1function__type__impl_3_01_t_00_01typename_01std_1_16153bbd73cc24a93057a75e362696c2b.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::function_type_impl< T, typename std::is_same< function_type_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t-members.html new file mode 100644 index 000000000..e5d1ad47e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::generalize_t< T, typename > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::generalize_t< T, typename >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::generalize_t< T, typename >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t.html new file mode 100644 index 000000000..77e4206d9 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::generalize_t< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::generalize_t< T, typename > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename = std::true_type>
    +struct boost::callable_traits::detail::generalize_t< T, typename >

    + + +

    Definition at line 46 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Types

    using type = T
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename = std::true_type>
    + + + + +
    using boost::callable_traits::detail::generalize_t< T, typename >::type = T
    +
    + +

    Definition at line 47 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html new file mode 100644 index 000000000..16b77bed0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html new file mode 100644 index 000000000..15ff81836 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > >

    + + +

    Definition at line 58 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Types

    using type = decltype(std::declval< T >().get())
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::generalize_t< T, is_reference_wrapper< T > >::type = decltype(std::declval<T>().get())
    +
    + +

    Definition at line 59 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html new file mode 100644 index 000000000..3e6685689 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantc69da1decd87c87d6dc41d70ad9e6a59.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >

    + + +

    Definition at line 51 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Types

    using type = decltype(*std::declval< T >())
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > >::type = decltype(*std::declval<T>())
    +
    + +

    Definition at line 54 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantde9ed24eb11409e30caec873af951e37.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantde9ed24eb11409e30caec873af951e37.html new file mode 100644 index 000000000..88c5d917b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1generalize__t_3_01_t_00_01std_1_1integral__constantde9ed24eb11409e30caec873af951e37.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::generalize_t< T, std::integral_constant< bool, can_dereference< T >::value &&!is_reference_wrapper< T >::value > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator-members.html new file mode 100644 index 000000000..327562539 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator-members.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::has_normal_call_operator< T > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html new file mode 100644 index 000000000..fe41de7bc --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator.html @@ -0,0 +1,258 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::has_normal_call_operator< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::has_normal_call_operator< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::has_normal_call_operator< T >

    + + +

    Definition at line 12 of file forward_declarations.hpp.

    +
    + + + +

    +Classes

    struct  check
     
    + + + + + + + +

    +Static Public Member Functions

    template<typename U >
    static std::int8_t test (check< decltype(&U::operator()), &U::operator()>)
     
    template<typename >
    static std::int16_t test (...)
     
    + + + +

    +Static Public Attributes

    static constexpr bool value
     
    +

    Member Function Documentation

    + +

    ◆ test() [1/2]

    + +
    +
    +
    +template<typename T >
    +
    +template<typename >
    + + + + + +
    + + + + + + + + +
    static std::int16_t boost::callable_traits::detail::has_normal_call_operator< T >::test ( ...)
    +
    +static
    +
    + +
    +
    + +

    ◆ test() [2/2]

    + +
    +
    +
    +template<typename T >
    +
    +template<typename U >
    + + + + + +
    + + + + + + + + +
    static std::int8_t boost::callable_traits::detail::has_normal_call_operator< T >::test (check< decltype(&U::operator()), &U::operator()> )
    +
    +static
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool boost::callable_traits::detail::has_normal_call_operator< T >::value
    +
    +staticconstexpr
    +
    +Initial value:
    =
    +
    sizeof(test<T>(nullptr)) == sizeof(std::int8_t)
    +
    +

    Definition at line 24 of file forward_declarations.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check-members.html new file mode 100644 index 000000000..aeb44e9a0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html new file mode 100644 index 000000000..f40274c77 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1has__normal__call__operator_1_1check.html @@ -0,0 +1,186 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +template<typename N, N Value>
    +struct boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value >

    + + +

    Definition at line 15 of file forward_declarations.hpp.

    +
    + + + +

    +Public Member Functions

     check (std::nullptr_t)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ check()

    + +
    +
    +
    +template<typename T >
    +
    +template<typename N , N Value>
    + + + + + +
    + + + + + + + + +
    boost::callable_traits::detail::has_normal_call_operator< T >::check< N, Value >::check (std::nullptr_t )
    +
    +inline
    +
    + +

    Definition at line 15 of file forward_declarations.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence-members.html new file mode 100644 index 000000000..01aebb2e3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::index_sequence<... > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::index_sequence<... >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::index_sequence<... >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence.html new file mode 100644 index 000000000..d0f2a1d88 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1index__sequence.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::index_sequence<... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::index_sequence<... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<std::size_t...>
    +struct boost::callable_traits::detail::index_sequence<... >

    + + +

    Definition at line 22 of file make_index_sequence.hpp.

    +
    + + + +

    +Public Types

    using type = index_sequence
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<std::size_t... >
    + + + + +
    using boost::callable_traits::detail::index_sequence<... >::type = index_sequence
    +
    + +

    Definition at line 22 of file make_index_sequence.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type-members.html new file mode 100644 index 000000000..268a06136 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::invalid_type Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::invalid_type, including all inherited members.

    + + +
    invalid_type()=deleteboost::callable_traits::detail::invalid_type
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type.html new file mode 100644 index 000000000..d93b9fdb2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1invalid__type.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::invalid_type Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::invalid_type Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 23 of file utility.hpp.

    +
    + + + +

    +Public Member Functions

     invalid_type ()=delete
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ invalid_type()

    + +
    +
    + + + + + +
    + + + + + + + +
    boost::callable_traits::detail::invalid_type::invalid_type ()
    +
    +delete
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl-members.html new file mode 100644 index 000000000..e84deb80d --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::is_invocable_impl< T, Args > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html new file mode 100644 index 000000000..5b1f2bd7b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl.html @@ -0,0 +1,231 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::is_invocable_impl< T, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::is_invocable_impl< T, Args > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename... Args>
    +struct boost::callable_traits::detail::is_invocable_impl< T, Args >

    + + +

    Definition at line 121 of file is_invocable_impl.hpp.

    +
    + + + + + + + + + +

    +Public Types

    using traits = detail::traits< T >
     
    using test = detail::test_invoke< traits >
     
    using result = decltype(test{}(0, ::std::declval< Args >()...))
     
    using type = std::integral_constant< bool, result::value >
     
    +

    Member Typedef Documentation

    + +

    ◆ result

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_impl< T, Args >::result = decltype(test{}(0, ::std::declval<Args>()...))
    +
    + +

    Definition at line 124 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ test

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_impl< T, Args >::test = detail::test_invoke<traits>
    +
    + +

    Definition at line 123 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_impl< T, Args >::traits = detail::traits<T>
    +
    + +

    Definition at line 122 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_impl< T, Args >::type = std::integral_constant<bool, result::value>
    +
    + +

    Definition at line 125 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4-members.html new file mode 100644 index 000000000..3e932cd8a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::is_invocable_impl< void, Args... > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::is_invocable_impl< void, Args... >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::is_invocable_impl< void, Args... >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html new file mode 100644 index 000000000..c4e8b9379 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__impl_3_01void_00_01_args_8_8_8_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::is_invocable_impl< void, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::is_invocable_impl< void, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Args>
    +struct boost::callable_traits::detail::is_invocable_impl< void, Args... >

    + + +

    Definition at line 129 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Types

    using type = std::false_type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_impl< void, Args... >::type = std::false_type
    +
    + +

    Definition at line 130 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl-members.html new file mode 100644 index 000000000..191c0f60d --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html new file mode 100644 index 000000000..87bc1964e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl.html @@ -0,0 +1,231 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename IsInvocable, typename Ret, typename T, typename... Args>
    +struct boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args >

    + + +

    Definition at line 134 of file is_invocable_impl.hpp.

    +
    + + + + + + + + + +

    +Public Types

    using traits = detail::traits< T >
     
    using test = detail::test_invoke< traits >
     
    using result = decltype(test{}(0, ::std::declval< Args >()...))
     
    using type = std::integral_constant< bool, std::is_convertible< typename result::_::type, Ret >::value||std::is_same< Ret, void >::value >
     
    +

    Member Typedef Documentation

    + +

    ◆ result

    + +
    +
    +
    +template<typename IsInvocable , typename Ret , typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args >::result = decltype(test{}(0, ::std::declval<Args>()...))
    +
    + +

    Definition at line 137 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ test

    + +
    +
    +
    +template<typename IsInvocable , typename Ret , typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args >::test = detail::test_invoke<traits>
    +
    + +

    Definition at line 136 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename IsInvocable , typename Ret , typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args >::traits = detail::traits<T>
    +
    + +

    Definition at line 135 of file is_invocable_impl.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<typename IsInvocable , typename Ret , typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_r_impl< IsInvocable, Ret, T, Args >::type = std::integral_constant<bool, std::is_convertible<typename result::_::type, Ret>::value || std::is_same<Ret, void>::value>
    +
    + +

    Definition at line 138 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_015389578951f830f232eef552205e806c.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_015389578951f830f232eef552205e806c.html new file mode 100644 index 000000000..8dcd05fdc --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_015389578951f830f232eef552205e806c.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html new file mode 100644 index 000000000..45f8118ee --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__invocable__r__impl_3_01std_1_1false__type_00_01dbd2d0c720052db3138bd454c53645b8.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Ret, typename T, typename... Args>
    +struct boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... >

    + + +

    Definition at line 144 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Types

    using type = std::false_type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Ret , typename T , typename... Args>
    + + + + +
    using boost::callable_traits::detail::is_invocable_r_impl< std::false_type, Ret, T, Args... >::type = std::false_type
    +
    + +

    Definition at line 145 of file is_invocable_impl.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t-members.html new file mode 100644 index 000000000..f2ca92304 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::is_reference_wrapper_t< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::is_reference_wrapper_t< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::is_reference_wrapper_t< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html new file mode 100644 index 000000000..495808f6f --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::is_reference_wrapper_t< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::is_reference_wrapper_t< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::is_reference_wrapper_t< T >

    + + +

    Definition at line 82 of file utility.hpp.

    +
    + + + +

    +Public Types

    using type = std::false_type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::is_reference_wrapper_t< T >::type = std::false_type
    +
    + +

    Definition at line 83 of file utility.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4-members.html new file mode 100644 index 000000000..f4c46a115 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html new file mode 100644 index 000000000..a19815294 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1is__reference__wrapper__t_3_01std_1_1reference__wrapper_3_01_t_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > >

    + + +

    Definition at line 87 of file utility.hpp.

    +
    + + + +

    +Public Types

    using type = std::true_type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > >::type = std::true_type
    +
    + +

    Definition at line 88 of file utility.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.html new file mode 100644 index 000000000..91d800df6 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::make_index_sequence_t< N > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::make_index_sequence_t< N > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::make_index_sequence_t< N >:
    +
    +
    + +
    +

    Documentation

    +

    template<std::size_t N>
    +struct boost::callable_traits::detail::make_index_sequence_t< N >

    + + +

    Definition at line 35 of file make_index_sequence.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t.png new file mode 100644 index 0000000000000000000000000000000000000000..90537a2f8da9774ebcbd4fcd6239fba82ba98267 GIT binary patch literal 948 zcmeAS@N?(olHy`uVBq!ia0y~yU<6`@01jp#S+j*V2}nr<_=LFr|NkGzeDUUMY5$=K zKo%GuIB# zgR1zxUQE^lN}Ot*GHb2#&Ae@Q9-sbOS$#w6Xw{@Iw{6^CzRcL2+y8KB%DY#uJuj{Q zth03Q&1HA=|Llv?oO&f@yVvy6yV|xkdDVxK!~Ugf^jhwIzpYuw^H-|e?&;_90yEz( zon)do=ZE$6(_ahj^UmXXePsF)owB8qzG&EmzchOnq~&S3quG0s+!1#D8qX@Fr6H4o zG?AUTNyF4w`^=e13_p0{7+4*|mWn7$zP@@6lS+^mqfunfwBQCCFHHv{RS|`$L0l8O zG+8~CPGMRClmr^XuyRUJLkLh>3#f}i>GOeEX<;*FrZzH)Fj%4)durvEV{evZRMt*C z6UC`NE1zxZtmQ8!xUs(7{r<#cyD5e4_G?PaIuajFpThL+7w6K~@2i(q&n>W)-+d_d z<;TYr&tK=C&z2A0`qkZd%jeav#t(;l-wMt;_@nEo#M`ZIuTJ|3_FkGT_V-YcYPxr<#N&V%vn^hGtM{k4 zU#nSdsCj4mT%q+Qb&r>qT}fPXt+eb}-1hI^?3}cY>*YV1mvTHKVDIahm$FUGy{4N! z_%fIK&5WOEJ7wm#=36aYCmC<7HvP8wuD+y0Z?kvKJg|78UnWoT73bSiwm)C`&plH- zD!O!&Ke~tG~>D0H~rBjy1TYq%^pUV@gp_uvJzoudT@p6{`v0m5b+MdyNu*xqrS^MQ2 s!+t5RRA9W<$7nj3p+!C{Mg3qel{o)2R$TfoFpDvGy85}Sb4q9e0HUwBhyVZp literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4-members.html new file mode 100644 index 000000000..6a8a22019 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::make_index_sequence_t< 0 > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::make_index_sequence_t< 0 >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::index_sequence<>
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.html new file mode 100644 index 000000000..e85d0c1c6 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.html @@ -0,0 +1,158 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::make_index_sequence_t< 0 > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::make_index_sequence_t< 0 > Struct Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::make_index_sequence_t< 0 >:
    +
    +
    + + +boost::callable_traits::detail::index_sequence<> + +
    +

    Documentation

    +
    +

    Definition at line 40 of file make_index_sequence.hpp.

    +
    + + + + +

    +Additional Inherited Members

    - Public Types inherited from boost::callable_traits::detail::index_sequence<>
    using type = index_sequence
     
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_010_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e5be58b460bd658c75721bc554d1b080f13b93be GIT binary patch literal 1162 zcmeAS@N?(olHy`uVBq!ia0y~yU@m2958Zt-brDM6_y2dR6;Tj?VSA$z6$UlfF!v$M);Qg-Mf+ zeMvdSzWzeOsm$4bCVW!AWolw8zV~gL;WXJ7Qx^FfuiKy!`(mo@e8bHZIk7iira0`0 zwm+6OpS9=ir9Io0emc36PrP_mj7{&C?G19jZ!qqCE5@9Ezb-m;hwXk|?&M`Vj`hB+ zWGd->sIf*@ZSIlpj9>0aoRjnX<+GpNWN+?e-T66A;T#9w)x=%-RoQwh+i>OnEoz6q z{@lm4*G{eYh5x*TCzUKBo~LKD-4soDBXa&iz^wSHwt06yMQ7c6aqHdwH`DH`ryR@q zDS!L^og=Sx_gBuJ_Ht>o-H&fS_x_$XeM!Cd{$t*g^uGE!yifn9f2~2qcKv0K|6&22 zztT*B#AkR&!x^Q_yL3)pikg}$A%BCIL$8#E!(2PNSsD&AL99HR*%}U0fvlBM z>JAHmG)?h8sRhYB7p0PWqzoCN7(}xcFtj4$Ta9rAwuX0S@t>YK{lbG|Ds%7L&h(mj zaQoiHUW?ApH@9lIF3x;*Z>q!kpkFfA#TowooOv$Q{UgJ^qWk}MPAxbl`r_Nhtvjdg z-hV$?=I%TBvW5MD$K|)j@UyE=eEaF0r@Y+Zrq+{dZ6BL3wQfLWkkTG-nTM3y9-2G+2lBeHg&T_L84d%XqbQ-dD9o_aWX?xA=$($K;+{6y<=8CQ}tz#;gHRF9%5symZ;=4chtoXWf z%iU@7*PWQ0bbj5Xl}?*;9)-lMxbQmJsQup)$yqv0&82m1^B8@ZcW%D;!OQ#ZoP`Tb zPM^E5Ir?54NBhOCck6HJ?pMz~mQ(%h#=mFNV)K8V{mt-OW?Sj(G|^wTbmbrYw)6=u z6qS~?326B5|8;V`_=Vq<^Yj!Q7S7`;x%F};OZ;rFa9~RKSG<5>D{}mR*t-~IlY6d7 dBu{z4?kD3Wb^HAGcff*!!PC{xWt~$(69BWdBF_K- literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4-members.html new file mode 100644 index 000000000..8a29ecfc8 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::make_index_sequence_t< 1 > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::make_index_sequence_t< 1 >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::index_sequence< 0 >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.html new file mode 100644 index 000000000..1360b1ccf --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.html @@ -0,0 +1,158 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::make_index_sequence_t< 1 > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::make_index_sequence_t< 1 > Struct Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::make_index_sequence_t< 1 >:
    +
    +
    + + +boost::callable_traits::detail::index_sequence< 0 > + +
    +

    Documentation

    +
    +

    Definition at line 43 of file make_index_sequence.hpp.

    +
    + + + + +

    +Additional Inherited Members

    - Public Types inherited from boost::callable_traits::detail::index_sequence< 0 >
    using type = index_sequence
     
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__index__sequence__t_3_011_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b66da60ce57e92ac3f41115cbe57a73acb997eea GIT binary patch literal 1170 zcmeAS@N?(olHy`uVBq!ia0y~yUW8q`%WsBd1;3q~qNep|VoNQ&MZeq$w+yv^+cEj9tvP zR5Y)7USGWPdrto4fa?ZlIN5mfj~};qsubk;i$Civ@9qEm3pQ@$c(F9z^VIeIZSm%H z{9kt3-qw@--&QMaWxn9|@q1=(KL7gnV)Nl^{IkVs!~Q=u-qN1#w)<>BW4>~2M_y|@ z`xnWDs;XOGc3REf6VuH5=~TjeYs<`_dOf$>O@_AY7c`F;o?%|o`)A*ec+H<3Gmj>J zKBcG5B*bbN+#&lbF)`+MSnokzX1!}7GYcl(SNJP(A?`Ty1^2BI74ARZ&NRI8$L{Re znSZ2=%bsvvID34*HFXqPnWVD`*j%A?E;$Bd^n&bTpZM2>xQwV0^No zf$7Q1$BR3dmaGJ^4sPyXN&&K#tSVqqS=B&W{OUME?%J(E*=wJ6umv!k2w-IO2tmSE z7{4^V1}By|k%hd6=OkSCP$m_0#c*4#>$E#--}W=~u61=-@3iaqS6+wc-ORsaHuPHm z<27zS$NS>n#_hcGu6@7iF2Akr#(`gJ{-xhox4cpKd|7q>g59p$6Y~mhd+g_Nf5`HH z_rmgWY5gtG)Ka)he~sgxA9YfXH?O<=O;&`N`YOie9w)p6lB)``n$GZQjZ6KPBB&-zk{(;$k81mg^rA9!~trb}umM z_d5R8P5#BjY736_$i5UlJx5})^8B1=QUBN5_9^|BUGe!r*S*@eyGuDsqHb7xc_J}G zxZo8y^~|~De9}MsiRUKw@Rw5-2Ab4q=BK>)YAESk|B;8+EU}@qu5BJ8uPkr+;)kNk zc3C>dW-Xh$Fn#-;y#iIwFKqj_DEc4AwKF%fw@u%_Gj)4(-S&G2?DpnsU)FHGzx(Oj z|AoAlgBt$D-2cR|-~VU#f2{?tEA8HDI&6w7DzSPomEnH0SE`1?qB_ffh8WR+1{Y*( k+pz6g)XJ^bg1+$gw7C9VVO?ejEI=4MUHx3vIVCg!04xnIVE_OC literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer.html new file mode 100644 index 000000000..9235c3b43 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::make_member_pointer< T, C, bool > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::make_member_pointer< T, C, bool > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename C, bool = std::is_class<C>::value>
    +struct boost::callable_traits::detail::make_member_pointer< T, C, bool >

    + + +

    Definition at line 23 of file apply_member_pointer.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4-members.html new file mode 100644 index 000000000..cf6fb8fe5 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::make_member_pointer< T, C, false > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::make_member_pointer< T, C, false >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::make_member_pointer< T, C, false >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html new file mode 100644 index 000000000..5c0c26c2b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01false_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::make_member_pointer< T, C, false > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::make_member_pointer< T, C, false > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename C>
    +struct boost::callable_traits::detail::make_member_pointer< T, C, false >

    + + +

    Definition at line 36 of file apply_member_pointer.hpp.

    +
    + + + +

    +Public Types

    using type = error_type< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename C >
    + + + + +
    using boost::callable_traits::detail::make_member_pointer< T, C, false >::type = error_type<T>
    +
    + +

    Definition at line 37 of file apply_member_pointer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4-members.html new file mode 100644 index 000000000..bf51438c6 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::make_member_pointer< T, C, true > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::make_member_pointer< T, C, true >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::make_member_pointer< T, C, true >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html new file mode 100644 index 000000000..b6c5e7f67 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01_t_00_01_c_00_01true_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::make_member_pointer< T, C, true > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::make_member_pointer< T, C, true > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename C>
    +struct boost::callable_traits::detail::make_member_pointer< T, C, true >

    + + +

    Definition at line 26 of file apply_member_pointer.hpp.

    +
    + + + +

    +Public Types

    using type = typename std::remove_reference< T >::type C::*
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename C >
    + + + + +
    using boost::callable_traits::detail::make_member_pointer< T, C, true >::type = typename std::remove_reference<T>::type C::*
    +
    + +

    Definition at line 27 of file apply_member_pointer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4-members.html new file mode 100644 index 000000000..fa9422a9e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::make_member_pointer< void, C, true > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html new file mode 100644 index 000000000..e848ec908 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1make__member__pointer_3_01void_00_01_c_00_01true_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::make_member_pointer< void, C, true > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::make_member_pointer< void, C, true > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename C>
    +struct boost::callable_traits::detail::make_member_pointer< void, C, true >

    + + +

    Definition at line 31 of file apply_member_pointer.hpp.

    +
    + + + +

    +Public Types

    using type = invalid_type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename C >
    + + + + +
    using boost::callable_traits::detail::make_member_pointer< void, C, true >::type = invalid_type
    +
    + +

    Definition at line 32 of file apply_member_pointer.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pascal__tag.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pascal__tag.html new file mode 100644 index 000000000..a912710a2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pascal__tag.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::pascal_tag Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::pascal_tag Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 21 of file utility.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd-members.html new file mode 100644 index 000000000..4503f1395 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd-members.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::pmd< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::pmd< T >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_lvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_rvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    add_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    add_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    add_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_return typedefboost::callable_traits::detail::default_callable_traits< T >
    arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    class_type typedefboost::callable_traits::detail::default_callable_traits< T >
    clear_args typedefboost::callable_traits::detail::default_callable_traits< T >
    cv_flagsboost::callable_traits::detail::default_callable_traits< T >static
    error_t typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_left typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_right typedefboost::callable_traits::detail::default_callable_traits< T >
    function_object_signature typedefboost::callable_traits::detail::default_callable_traits< T >
    function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    has_member_qualifiers typedefboost::callable_traits::detail::default_callable_traits< T >
    has_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    insert_args typedefboost::callable_traits::detail::default_callable_traits< T >
    invoke_type typedefboost::callable_traits::detail::default_callable_traits< T >
    is_const_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_cv_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_lvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    is_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_rvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    is_volatile_member typedefboost::callable_traits::detail::default_callable_traits< T >
    non_invoke_arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_back typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_front typedefboost::callable_traits::detail::default_callable_traits< T >
    push_back typedefboost::callable_traits::detail::default_callable_traits< T >
    push_front typedefboost::callable_traits::detail::default_callable_traits< T >
    q_flagsboost::callable_traits::detail::default_callable_traits< T >static
    qualified_function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    ref_flagsboost::callable_traits::detail::default_callable_traits< T >static
    remove_args typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    replace_args typedefboost::callable_traits::detail::default_callable_traits< T >
    return_type typedefboost::callable_traits::detail::default_callable_traits< T >
    traits typedefboost::callable_traits::detail::default_callable_traits< T >
    type typedefboost::callable_traits::detail::default_callable_traits< T >
    valueboost::callable_traits::detail::default_callable_traits< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd.html new file mode 100644 index 000000000..40292c10c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd.html @@ -0,0 +1,268 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::pmd< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::pmd< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::pmd< T >:
    +
    +
    + + +boost::callable_traits::detail::default_callable_traits< T > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::pmd< T >

    + + +

    Definition at line 21 of file pmd.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from boost::callable_traits::detail::default_callable_traits< T >
    using traits = default_callable_traits
     
    using error_t = error_type< T >
     
    using type = error_t
     
    using has_varargs = std::false_type
     
    using return_type = error_t
     
    using arg_types = error_t
     
    using non_invoke_arg_types = error_t
     
    using function_type = error_t
     
    using function_object_signature = error_t
     
    using qualified_function_type = error_t
     
    using remove_varargs = error_t
     
    using add_varargs = error_t
     
    using is_noexcept = std::false_type
     
    using add_noexcept = error_t
     
    using remove_noexcept = error_t
     
    using is_transaction_safe = std::false_type
     
    using add_transaction_safe = error_t
     
    using remove_transaction_safe = error_t
     
    using class_type = error_t
     
    using invoke_type = error_t
     
    using remove_reference = error_t
     
    using add_member_lvalue_reference = error_t
     
    using add_member_rvalue_reference = error_t
     
    using add_member_const = error_t
     
    using add_member_volatile = error_t
     
    using add_member_cv = error_t
     
    using remove_member_const = error_t
     
    using remove_member_volatile = error_t
     
    using remove_member_cv = error_t
     
    using remove_member_pointer = error_t
     
    using apply_member_pointer = typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type
     
    using apply_return = error_t
     
    using expand_args = error_t
     
    using expand_args_left = error_t
     
    using expand_args_right = error_t
     
    using clear_args = error_t
     
    using push_front = error_t
     
    using push_back = error_t
     
    using pop_front = error_t
     
    using pop_back = error_t
     
    using insert_args = error_t
     
    using remove_args = error_t
     
    using replace_args = error_t
     
    using has_member_qualifiers = std::integral_constant< bool, q_flags !=default_ >
     
    using is_const_member = std::integral_constant< bool, 0<(cv_flags &const_)>
     
    using is_volatile_member = std::integral_constant< bool, 0<(cv_flags &volatile_)>
     
    using is_cv_member = std::integral_constant< bool, cv_flags==(const_|volatile_)>
     
    using is_reference_member = std::integral_constant< bool, 0< ref_flags >
     
    using is_lvalue_reference_member = std::integral_constant< bool, ref_flags==lref_ >
     
    using is_rvalue_reference_member = std::integral_constant< bool, ref_flags==rref_ >
     
    - Static Public Attributes inherited from boost::callable_traits::detail::default_callable_traits< T >
    static constexpr bool value
     
    static constexpr qualifier_flags cv_flags
     
    static constexpr qualifier_flags ref_flags
     
    static constexpr qualifier_flags q_flags
     
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd.png new file mode 100644 index 0000000000000000000000000000000000000000..3f2161db5ab9bae601acdac8076f67b8ec6082b3 GIT binary patch literal 1024 zcmeAS@N?(olHy`uVBq!ia0y~yU~~eq12~w0WVBRI7m$(&@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+i)am zi;Cx%a5r|^^6hG2#wpWzA9)r3S$ZvMa#Z$S?$Aj>p1a(&rYsRy88FFdiIXSSL@rg$ zBMUcpOgis*QG55)9RJ`K6E0pYY}&P4@6w(r8#(u1ZD;@as_dt_r|kYU7xK>rSNwZq z_H)Uh)0*Bv{ee5U?%BxOAAcOOqc^Yq=I5M0zy4@#PCV_seOX`B+w%tB4VSU5Z492z z&;Kc%>-xEz?Ljjqh3_b{OPS%f-AHuql8rI0!LxSFPs;7@=iOv)zN`OLUds7NYcsC* z$?jObV17XS@j9RNhYip4?hN|zKwcWXCXp0;epd$Ui?%{A$waq{I0 zlaI}unEUyWj!oywYnPqVAHGz$Z^3;&@5x&`lkYe7+sEGfbbt4ozLm4Be*eq(ee}-E z+go>Re|K!lvs)MbNL$)@c&f$TKQU>F$EDqWG+R$szO8Zh{AGOS#mAYB&(K5H1tzdZ zw3Mpx~gz((%D)1|Q?Q$y|(0OB@;mRthM%Xt8ii z>hL*Ke2-G%3hyCpW7C;|_N;OB^1$9-X`>yiEJ%yk!>@7q5QIQtCgw_$BxE z+ae0bj%$C3{wxy5|I*!-agVRZ!(W2i^DF1aUYs9pt-*o`Ry_A&EnIqebxYRRsmS0%@IKA|`UDMyFyCDpDf_F~LQ?<6( zUG~Q6qsW)D-%8&o?BzRdaQxNB+&iHX6Mk$tw9R^V;5zm4+b8xOdKY8=iobMOov*Rk zC#Q!GGWWzYfAY;Ofe@FVdQ&MBb@0KxX< A + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::pmd< D T::* > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::pmd< D T::* >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_lvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_rvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    add_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    add_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    add_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_member_pointer typedefboost::callable_traits::detail::pmd< D T::* >
    apply_return typedefboost::callable_traits::detail::pmd< D T::* >
    arg_types typedefboost::callable_traits::detail::pmd< D T::* >
    class_type typedefboost::callable_traits::detail::pmd< D T::* >
    clear_args typedefboost::callable_traits::detail::default_callable_traits< T >
    cv_flagsboost::callable_traits::detail::default_callable_traits< T >static
    error_t typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args typedefboost::callable_traits::detail::pmd< D T::* >
    expand_args_left typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_right typedefboost::callable_traits::detail::default_callable_traits< T >
    function_object_signature typedefboost::callable_traits::detail::default_callable_traits< T >
    function_type typedefboost::callable_traits::detail::pmd< D T::* >
    has_member_qualifiers typedefboost::callable_traits::detail::default_callable_traits< T >
    has_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    insert_args typedefboost::callable_traits::detail::default_callable_traits< T >
    invoke_type typedefboost::callable_traits::detail::pmd< D T::* >
    is_const_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_cv_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_lvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_member_pointer typedefboost::callable_traits::detail::pmd< D T::* >
    is_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    is_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_rvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    is_volatile_member typedefboost::callable_traits::detail::default_callable_traits< T >
    non_invoke_arg_types typedefboost::callable_traits::detail::pmd< D T::* >
    pop_back typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_front typedefboost::callable_traits::detail::default_callable_traits< T >
    push_back typedefboost::callable_traits::detail::default_callable_traits< T >
    push_front typedefboost::callable_traits::detail::default_callable_traits< T >
    q_flagsboost::callable_traits::detail::default_callable_traits< T >static
    qualified_function_type typedefboost::callable_traits::detail::pmd< D T::* >
    ref_flagsboost::callable_traits::detail::default_callable_traits< T >static
    remove_args typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    replace_args typedefboost::callable_traits::detail::default_callable_traits< T >
    return_type typedefboost::callable_traits::detail::pmd< D T::* >
    traits typedefboost::callable_traits::detail::pmd< D T::* >
    type typedefboost::callable_traits::detail::pmd< D T::* >
    valueboost::callable_traits::detail::pmd< D T::* >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html new file mode 100644 index 000000000..c58bbd5d4 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.html @@ -0,0 +1,584 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::pmd< D T::* > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::pmd< D T::* > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::pmd< D T::* >:
    +
    +
    + + +boost::callable_traits::detail::default_callable_traits< T > + +
    +

    Documentation

    +

    template<typename D, typename T>
    +struct boost::callable_traits::detail::pmd< D T::* >

    + + +

    Definition at line 24 of file pmd.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using traits = pmd
     
    using class_type = T
     
    using invoke_type = T const &
     
    using type = D T::*
     
    using function_type = typename std::add_lvalue_reference< D >::type(invoke_type)
     
    using qualified_function_type = D(invoke_type)
     
    using arg_types = std::tuple< invoke_type >
     
    using non_invoke_arg_types = std::tuple<>
     
    using return_type = typename std::add_lvalue_reference< D >::type
     
    template<typename C >
    using apply_member_pointer = D C::*
     
    template<typename R >
    using apply_return = R T::*
     
    template<template< class... > class Container>
    using expand_args = Container< invoke_type >
     
    using is_member_pointer = std::true_type
     
    - Public Types inherited from boost::callable_traits::detail::default_callable_traits< T >
    using traits = default_callable_traits
     
    using error_t = error_type< T >
     
    using type = error_t
     
    using has_varargs = std::false_type
     
    using return_type = error_t
     
    using arg_types = error_t
     
    using non_invoke_arg_types = error_t
     
    using function_type = error_t
     
    using function_object_signature = error_t
     
    using qualified_function_type = error_t
     
    using remove_varargs = error_t
     
    using add_varargs = error_t
     
    using is_noexcept = std::false_type
     
    using add_noexcept = error_t
     
    using remove_noexcept = error_t
     
    using is_transaction_safe = std::false_type
     
    using add_transaction_safe = error_t
     
    using remove_transaction_safe = error_t
     
    using class_type = error_t
     
    using invoke_type = error_t
     
    using remove_reference = error_t
     
    using add_member_lvalue_reference = error_t
     
    using add_member_rvalue_reference = error_t
     
    using add_member_const = error_t
     
    using add_member_volatile = error_t
     
    using add_member_cv = error_t
     
    using remove_member_const = error_t
     
    using remove_member_volatile = error_t
     
    using remove_member_cv = error_t
     
    using remove_member_pointer = error_t
     
    template<typename C , typename U = T, typename K = typename std::remove_reference<U>::type, typename L = typename std::conditional< std::is_same<void, K>::value, error_t, K>::type, typename Class = typename std::conditional< std::is_class<C>::value, C, error_t>::type>
    using apply_member_pointer = typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type
     
    template<typename >
    using apply_return = error_t
     
    template<template< class... > class Container>
    using expand_args = error_t
     
    template<template< class... > class Container, typename... RightArgs>
    using expand_args_left = error_t
     
    template<template< class... > class Container, typename... LeftArgs>
    using expand_args_right = error_t
     
    using clear_args = error_t
     
    template<typename... NewArgs>
    using push_front = error_t
     
    template<typename... NewArgs>
    using push_back = error_t
     
    template<std::size_t ElementCount>
    using pop_front = error_t
     
    template<std::size_t ElementCount>
    using pop_back = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using insert_args = error_t
     
    template<std::size_t Index, std::size_t Count>
    using remove_args = error_t
     
    template<std::size_t Index, typename... NewArgs>
    using replace_args = error_t
     
    using has_member_qualifiers = std::integral_constant< bool, q_flags !=default_ >
     
    using is_const_member = std::integral_constant< bool, 0<(cv_flags &const_)>
     
    using is_volatile_member = std::integral_constant< bool, 0<(cv_flags &volatile_)>
     
    using is_cv_member = std::integral_constant< bool, cv_flags==(const_|volatile_)>
     
    using is_reference_member = std::integral_constant< bool, 0< ref_flags >
     
    using is_lvalue_reference_member = std::integral_constant< bool, ref_flags==lref_ >
     
    using is_rvalue_reference_member = std::integral_constant< bool, ref_flags==rref_ >
     
    + + + + + + + + + + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    - Static Public Attributes inherited from boost::callable_traits::detail::default_callable_traits< T >
    static constexpr bool value = false
     
    static constexpr qualifier_flags cv_flags = cv_of<T>::value
     
    static constexpr qualifier_flags ref_flags = ref_of<T>::value
     
    static constexpr qualifier_flags q_flags = cv_flags | ref_flags
     
    +

    Member Typedef Documentation

    + +

    ◆ apply_member_pointer

    + +
    +
    +
    +template<typename D , typename T >
    +
    +template<typename C >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::apply_member_pointer = D C::*
    +
    + +

    Definition at line 40 of file pmd.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename D , typename T >
    +
    +template<typename R >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::apply_return = R T::*
    +
    + +

    Definition at line 43 of file pmd.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::arg_types = std::tuple<invoke_type>
    +
    + +

    Definition at line 34 of file pmd.hpp.

    + +
    +
    + +

    ◆ class_type

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::class_type = T
    +
    + +

    Definition at line 29 of file pmd.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename D , typename T >
    +
    +template<template< class... > class Container>
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::expand_args = Container<invoke_type>
    +
    + +

    Definition at line 46 of file pmd.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::function_type = typename std::add_lvalue_reference<D>::type(invoke_type)
    +
    + +

    Definition at line 32 of file pmd.hpp.

    + +
    +
    + +

    ◆ invoke_type

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::invoke_type = T const &
    +
    + +

    Definition at line 30 of file pmd.hpp.

    + +
    +
    + +

    ◆ is_member_pointer

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::is_member_pointer = std::true_type
    +
    + +

    Definition at line 48 of file pmd.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::non_invoke_arg_types = std::tuple<>
    +
    + +

    Definition at line 35 of file pmd.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::qualified_function_type = D(invoke_type)
    +
    + +

    Definition at line 33 of file pmd.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::return_type = typename std::add_lvalue_reference<D>::type
    +
    + +

    Definition at line 37 of file pmd.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::traits = pmd
    +
    + +

    Definition at line 28 of file pmd.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<typename D , typename T >
    + + + + +
    using boost::callable_traits::detail::pmd< D T::* >::type = D T::*
    +
    + +

    Definition at line 31 of file pmd.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename D , typename T >
    + + + + + +
    + + + + +
    constexpr bool boost::callable_traits::detail::pmd< D T::* >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 26 of file pmd.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/pmd.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmd_3_01_d_01_t_1_1_5_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b32ac668d5de673f152b914b61a0a2041ef08186 GIT binary patch literal 1039 zcmeAS@N?(olHy`uVBq!ia0y~yU^E1>12~w0q+7}+K_Dd&;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z&y{>#WAFU@$KBVlkRBou+DbAy6?Yo zy3sbr8q199<}+8Vj+!qk-6GH{P=C_$dB8c#{4O0&MbBG70+Utxn`Wp~iX2fnxmZEX zQ%*F=bJDY@lD)IC&;K-=QO0|AMrYvXYZ0^huk4;tU2Aco-X-T^+- zZfq=F`CD_n^K;2FUkkTJ{(k)TYWmrG^1jEW1b&U*e&yaWDcQEebNJaURm*;C+w759 zkv8{uOl_+zHJrSa5-;ZR8nIGIU>6%YX?UbAhqkmG@dL=s~&940}cH}v* zaQ%7*whikQ*dAQqj!FfLgWa84ObF_9IGKif0IOmJ5cFjprSyav_=P| z(qDES3G&jM667^oiLr%Y8@gT5NAi5cV%I;rRlJXPS*){hTGEw0cirw<*WEApwz%$> z@U!NQvwL-~JyW{2)pY$k=WU*EZcHi8KjmL3YvrGG{rJ_ixBcJ0|GE0+Z{p^~eXIV@ z`m1qn{juUR3L62 z$eOU7D`DZ=V9VyD#~GXVr5(&Uy7qRN&uoUrEqiaWB;D-lmC1g7JMmj>($^KH#`39K z=bf5%BcNpc=)O6 zWh3j=vsT+8N)orMORmlF&6Iw1UG4S&qR!8RvYuzm7qE$$q(i`xU<3`+U}zpOwlz`(SNLW`|0 jO4EY87ETGeby>glxZSK3H+aH;xtGDy)z4*}Q$iB}vKHeg literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf-members.html new file mode 100644 index 000000000..1c1649ffe --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf-members.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::pmf< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::pmf< T >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_lvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_rvalue_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    add_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    add_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    add_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    add_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    apply_return typedefboost::callable_traits::detail::default_callable_traits< T >
    arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    class_type typedefboost::callable_traits::detail::default_callable_traits< T >
    clear_args typedefboost::callable_traits::detail::default_callable_traits< T >
    cv_flagsboost::callable_traits::detail::default_callable_traits< T >static
    error_t typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_left typedefboost::callable_traits::detail::default_callable_traits< T >
    expand_args_right typedefboost::callable_traits::detail::default_callable_traits< T >
    function_object_signature typedefboost::callable_traits::detail::default_callable_traits< T >
    function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    has_member_qualifiers typedefboost::callable_traits::detail::default_callable_traits< T >
    has_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    insert_args typedefboost::callable_traits::detail::default_callable_traits< T >
    invoke_type typedefboost::callable_traits::detail::default_callable_traits< T >
    is_const_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_cv_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_lvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    is_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_rvalue_reference_member typedefboost::callable_traits::detail::default_callable_traits< T >
    is_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    is_volatile_member typedefboost::callable_traits::detail::default_callable_traits< T >
    non_invoke_arg_types typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_back typedefboost::callable_traits::detail::default_callable_traits< T >
    pop_front typedefboost::callable_traits::detail::default_callable_traits< T >
    push_back typedefboost::callable_traits::detail::default_callable_traits< T >
    push_front typedefboost::callable_traits::detail::default_callable_traits< T >
    q_flagsboost::callable_traits::detail::default_callable_traits< T >static
    qualified_function_type typedefboost::callable_traits::detail::default_callable_traits< T >
    ref_flagsboost::callable_traits::detail::default_callable_traits< T >static
    remove_args typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_const typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_cv typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_pointer typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_member_volatile typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_noexcept typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_reference typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_transaction_safe typedefboost::callable_traits::detail::default_callable_traits< T >
    remove_varargs typedefboost::callable_traits::detail::default_callable_traits< T >
    replace_args typedefboost::callable_traits::detail::default_callable_traits< T >
    return_type typedefboost::callable_traits::detail::default_callable_traits< T >
    traits typedefboost::callable_traits::detail::default_callable_traits< T >
    type typedefboost::callable_traits::detail::default_callable_traits< T >
    valueboost::callable_traits::detail::default_callable_traits< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf.html new file mode 100644 index 000000000..1477d1abf --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf.html @@ -0,0 +1,268 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::pmf< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::pmf< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::pmf< T >:
    +
    +
    + + +boost::callable_traits::detail::default_callable_traits< T > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::pmf< T >

    + + +

    Definition at line 43 of file pmf.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from boost::callable_traits::detail::default_callable_traits< T >
    using traits = default_callable_traits
     
    using error_t = error_type< T >
     
    using type = error_t
     
    using has_varargs = std::false_type
     
    using return_type = error_t
     
    using arg_types = error_t
     
    using non_invoke_arg_types = error_t
     
    using function_type = error_t
     
    using function_object_signature = error_t
     
    using qualified_function_type = error_t
     
    using remove_varargs = error_t
     
    using add_varargs = error_t
     
    using is_noexcept = std::false_type
     
    using add_noexcept = error_t
     
    using remove_noexcept = error_t
     
    using is_transaction_safe = std::false_type
     
    using add_transaction_safe = error_t
     
    using remove_transaction_safe = error_t
     
    using class_type = error_t
     
    using invoke_type = error_t
     
    using remove_reference = error_t
     
    using add_member_lvalue_reference = error_t
     
    using add_member_rvalue_reference = error_t
     
    using add_member_const = error_t
     
    using add_member_volatile = error_t
     
    using add_member_cv = error_t
     
    using remove_member_const = error_t
     
    using remove_member_volatile = error_t
     
    using remove_member_cv = error_t
     
    using remove_member_pointer = error_t
     
    using apply_member_pointer = typename std::conditional< std::is_same< L, error_t >::value||std::is_same< Class, error_t >::value, error_t, L Class::* >::type
     
    using apply_return = error_t
     
    using expand_args = error_t
     
    using expand_args_left = error_t
     
    using expand_args_right = error_t
     
    using clear_args = error_t
     
    using push_front = error_t
     
    using push_back = error_t
     
    using pop_front = error_t
     
    using pop_back = error_t
     
    using insert_args = error_t
     
    using remove_args = error_t
     
    using replace_args = error_t
     
    using has_member_qualifiers = std::integral_constant< bool, q_flags !=default_ >
     
    using is_const_member = std::integral_constant< bool, 0<(cv_flags &const_)>
     
    using is_volatile_member = std::integral_constant< bool, 0<(cv_flags &volatile_)>
     
    using is_cv_member = std::integral_constant< bool, cv_flags==(const_|volatile_)>
     
    using is_reference_member = std::integral_constant< bool, 0< ref_flags >
     
    using is_lvalue_reference_member = std::integral_constant< bool, ref_flags==lref_ >
     
    using is_rvalue_reference_member = std::integral_constant< bool, ref_flags==rref_ >
     
    - Static Public Attributes inherited from boost::callable_traits::detail::default_callable_traits< T >
    static constexpr bool value
     
    static constexpr qualifier_flags cv_flags
     
    static constexpr qualifier_flags ref_flags
     
    static constexpr qualifier_flags q_flags
     
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1pmf.png new file mode 100644 index 0000000000000000000000000000000000000000..c713d1f4ad52ff06a107bd3be952b6fef657f05d GIT binary patch literal 1022 zcmeAS@N?(olHy`uVBq!ia0y~yU~~eq12~w0WVBRI7m$(&@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+@zsT|V)owFik`hS{?vNA>~HIK%(&$)Yk&Bj`|QIRhI6jf z+&KAOF-C0jX|LR>MdwmKE)XngPb7a|HL<ZABksLF8Czt z`sX|gU7lh=u(v^Gp&)RrwEEFE=}UD<^3n7;Yc!w%8p5HfxztI+ zQ&ZH*(`%)GSCE%}%iiyCul9bQ&GaLumT?NhyHx^ADPO*Z@-PZ%wJ=ETclZ2NRh>3r2x~C5DrFQoG}0mq*U5YJ~4ak)Tr#Y>oOQr8>-O_ z|LDv#Ak{ks{@{a*LUVU`JtXW9be{`LG`S!s1aCi}JW$$NXmWX>|JV%82n z=TIZ_u+VDmV((9Oe4E@~1pT(FlQ3SJy=>#ObPjeuXWgmi8S*sUEb>)vT$E|Oyd}84 zLA~esel4!`mt%W=&ffW<=MdXl8}YtJh literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.html new file mode 100644 index 000000000..3871f197c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::qualified_class_of_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::qualified_class_of_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::qualified_class_of_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::qualified_class_of< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::qualified_class_of_impl< T, typename >

    + + +

    Definition at line 35 of file qualified_class_of.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..cfc0745985b28dda81f5970d55d741149a74743a GIT binary patch literal 1264 zcmeAS@N?(olHy`uVBq!ia0y~yVC(?012~w0q)EHbBOoOa;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z*6t&;uuoF_;&8wvd3CHuI9(Hzy6i4 zENZq_Ina0eb*^)GZixD}`X;;Kr+de2ST>6LGXDOtxsJ`H*u;Fo zv~OYZX#b?|Imlp|}2e`4Of^3*z`b8}CzoBfG!$YX90Sow@7Y{><-Nq<*g_^3v9~ zTXRF+-q~X-jb<7!4iLtElild?Rrze%{B94`TjmxH;vh(Xd<)ARoO(j z^EdDQ`mcSgys;wA)AsiGb+U6| z`lp|ZIaFR&?-FpitM)lBa{smYvCntqzdn5_?d|LL&yU?ZGfzM7@U^-5bJw=%iI}gN zd9H5P$=`S7Wn5yno!ttA(R>|;B&!S9|RbH%mvy~=LpC-+yn>$Kml2c{<;U2u9j<$e5mUu4j( zshY)!(&u~k-%MKFx2$^Ulk$D~Ypj=gPSU%Os-W^xZ?CHHq%Y#4qDMY=*;ao#-)!;t zTXeAZCDl{Hz(D?@?ci}~xi(6`Pf<|OY>-n}mN_fvvWf5ZSNyY22N`v{+g|||PYj-} KelF{r5}E+EvpygI literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html new file mode 100644 index 000000000..91de0ff98 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01s9049e4f0d8e2024b48f9e7d76437037c.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >

    + + +

    Definition at line 38 of file qualified_class_of.hpp.

    +
    + + + +

    +Public Types

    using type = qualified_class_of_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type >::type = qualified_class_of_t<T>
    +
    + +

    Definition at line 41 of file qualified_class_of.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01sf1eae7dcbad90b54b733dcae1d0cb837.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01sf1eae7dcbad90b54b733dcae1d0cb837.html new file mode 100644 index 000000000..e6effb27a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1qualified__class__of__impl_3_01_t_00_01typename_01sf1eae7dcbad90b54b733dcae1d0cb837.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::qualified_class_of_impl< T, typename std::is_same< qualified_class_of_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error-members.html new file mode 100644 index 000000000..de3372168 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::reference_error Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::reference_error, including all inherited members.

    + + +
    reference_error()=deleteboost::callable_traits::detail::reference_error
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error.html new file mode 100644 index 000000000..cde3d2dfd --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1reference__error.html @@ -0,0 +1,175 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::reference_error Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::reference_error Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 24 of file utility.hpp.

    +
    + + + +

    +Public Member Functions

     reference_error ()=delete
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ reference_error()

    + +
    +
    + + + + + +
    + + + + + + + +
    boost::callable_traits::detail::reference_error::reference_error ()
    +
    +delete
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.html new file mode 100644 index 000000000..c380d3f79 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_const_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_const_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::remove_member_const_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::remove_member_const< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::remove_member_const_impl< T, typename >

    + + +

    Definition at line 34 of file remove_member_const.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..6dbf40f7c4682aebf7c2b82afb7ed6734aed481b GIT binary patch literal 1280 zcmeAS@N?(olHy`uVBq!ia0y~yU|b4h2XHV0$v%}?O+ZQ_z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opl9RMJHTFNVy}DGZxdYcQsS2Qr;lw}@pz ztn^ah2=-;}pYtqdEzK@SZt{C~o&D4EwVI3H%9?Eb`Cea~rQp}`DeG)XkJU_Ju!^my zv0iG)I?d#ZwSe2GDe19|LS)JLR3vKE~=M>*aotY;t-P^o;`{jcE*B`&= z-|FeExSm=4y?V>fC(E-F!^&{4ve)txcWWF^+I^YdR-Gdh8*FtepZWKXl1Of!-o>wr9&KCyRPWxo=UFAW z=j)3*YOP9=#b&zPaX)*kw#@x-&!*RF3c2#n<^{Z8>K(JcYh{Jr(p@WUM5c2#mJ~x$k#(H4+mt(8+c{{D<@<}Q#UBdF=Zk1); z?Ws&3=5+}Y~ywUPvxCu)O*PDZ~*G`Sf)?LrA&&QrYwc!X*_T<;k!7~_&fN4eL zI&)AWlgCX%1I3c`zBs8@x5IBGJV#vm%ERsc&d7OtzM+!33RcF z=I*XZDyiXtla{>M)f+T<2_*4G*73&fW;1u2ly@as__t&3zsXCYzn<3EEA8XC>k{u2 zyRCbrHP2dZS#s&y*1s}6+)KZv=5GG`{67Eex8G_CxustVEz509JO)g#6VEZvcCNd> zFn@pZr8ld2_g?{}(ZqLBJ(s(EeGfifbDqJCduK=a+->Fi_nj5BkDdI+_}g7&B~SAg z*Sf@y9nZOwx@BdBZR@-s`(r!v`OX$v{gC|acX2`9=8fIV{`ZLn! z;!oG^4PAEi#jSb&t5r8LMk#OXk9?9jL(KZP)R7NvZ`i)d?GX90dPdjv#XI=Vs%v-# zc}}uhux84<@*lmXkJn1Rzu%&=ccGQ{q$#nko|AyZhG!5k?RcJA2agK5Da$fvd0jT~ ct^6uK|5b!o#{XAmfyEVrr>mdKI;Vst0D<&zF#rGn literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_011c0a3f05fa6d6f61b45e00a925a532b1.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_011c0a3f05fa6d6f61b45e00a925a532b1.html new file mode 100644 index 000000000..978ac24b6 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_011c0a3f05fa6d6f61b45e00a925a532b1.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html new file mode 100644 index 000000000..218d6fae8 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__const__impl_3_01_t_00_01typename_019e8cd1e448ccaa2db9ded8e44d619208.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >

    + + +

    Definition at line 37 of file remove_member_const.hpp.

    +
    + + + +

    +Public Types

    using type = remove_member_const_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::remove_member_const_impl< T, typename std::is_same< remove_member_const_t< T >, detail::dummy >::type >::type = remove_member_const_t<T>
    +
    + +

    Definition at line 40 of file remove_member_const.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.html new file mode 100644 index 000000000..a6ec31cd7 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_cv_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_cv_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::remove_member_cv_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::remove_member_cv< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::remove_member_cv_impl< T, typename >

    + + +

    Definition at line 35 of file remove_member_cv.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..2ff8e236a75b6b56272f48ad66d7d093b4a7f276 GIT binary patch literal 1263 zcmeAS@N?(olHy`uVBq!ia0y~yV4MnM2XHV0$!FIkb^$4g0G|-o|Ns93nJ?aaE$u%v z0muU50|ySUcHWT(ayd$Z{DK*Pia_A%sSqOu29`Qc7srqa#T+_Ff7ts$>4I? z^C{E0BVRJsO`AD=*}-1PlA?V16Vu~&?TLB)YwO=Vwu}cH{u@qBw=O;Qe?FJPVs-01 zb5FI^sMr6qj<ElY-OxVX0Q5P^!jz}tXsx+R?obC{rs%6i&y+Q`^&IQc`@hi zJhkrUnwMg|jE|hVzksFx?~YFep$C^u%rQ6jS{A;-qHjoi>)(g<6Hjg4oD}vX%)olL?Bwb1r+Q!ae?Qgpui?__vh_CW z6P}&d7F~1t>AwK~7yD|~&sqL`)4Z<-rS5A-zph(!uKxGk%6a<_zqoZRzSzU|U)mYH z$rYtn($?II{c={r`n=%shik9%WR<@Z+G=?;mf`lI^p!g@l?*l0~Z*%BrJ zUr$zrS(CUNOh9R%DnN7Tln~9OM+6T{f5EQ6D&PT>ol#dO#Og2uvl9 zG-oon1YnjJP|;NNOq>#;qB(0)mx^m}(8MLcWIIX3 zcYC1bB$I341p9aG>sux}3@4Q=zE=>lP2O`?XnoJA>VuP)Jg++c(S2I6@>JdQZ&xh; z&s{&aaCuRUOzyV--~Mg5nfJPV_Kk?|26K%|Ct%1gGpQ3u;T8gQ3OW@|-A zf1T!KeJuBW%14>~-*1#j@n(s=PTTZ(_xIg9YNmPVdgrm<=8e>z!9Q`g{rQh)XQU-% zmjaVs->HfV7k4i&67lx@nz`@Y!%vA?c3W%Don3wFhl<7T4<=_yxt;J7khRWRqw^w)sc}>a-2+?{yw>sIk z;`HOc-4m9GPf2&31S}Xlf`F;SvuoKBB~M^c0gZ*r&8If$cxOdUQ| + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html new file mode 100644 index 000000000..64f58cffc --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__cv__impl_3_01_t_00_01typename_01std9f11a0bb55c06b01bc141d013b293bf9.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >

    + + +

    Definition at line 38 of file remove_member_cv.hpp.

    +
    + + + +

    +Public Types

    using type = remove_member_cv_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::remove_member_cv_impl< T, typename std::is_same< remove_member_cv_t< T >, detail::dummy >::type >::type = remove_member_cv_t<T>
    +
    + +

    Definition at line 41 of file remove_member_cv.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.html new file mode 100644 index 000000000..de2d01030 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_reference_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_reference_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::remove_member_reference_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::remove_member_reference< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::remove_member_reference_impl< T, typename >

    + + +

    Definition at line 34 of file remove_member_reference.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..7fa4809e6ca072ad6f0aa85c44830f28beb90244 GIT binary patch literal 1343 zcmbu9e^AnQ7{|Y8zkjiEg=I;1p$#{Gm#*+vCMqSArsu4bm^+7(!{1;SI;|{Gu`++4 zNDI@ZDVKz#IWQGdOa+?ik*DjKF39gHpu*aMk!LmzhLhFug z$@02s+krnxs{8FE35hoS0)hxun|9YutS$(ZKzH+U;9e222AqRsk~`~t1vkt)%fi_q zK|EFv2CF`cPdVRQo7yuaD=s#PyCr_2;7A}y_0M`M?CnN`fs1}mHlf-F_|KCgR{JWxZMVzzD01xVP&!`dM(`;KQdQq{ zEXU*Sc&~CrT%VNO$Uk#4x$jQm7=h?OiqI2xy4~YkqLoV$)47swcu$G6_oNM}pYK(K z!)ZHF@pjD`*9uor6Z>5vtH(7rM{S|$%~ej2brQ#vJ$tg*rE90-osx^E0-dN{k??(& zXNIYNJl$H&*Qc6m%r6CIMvTMOJ(9|-f7LgztwX&=2!w#HzJN$uCDKJ{*IgxKyr%ZY zyi{vy9Rvr;rDn`dyWp11o@JI&#`?psVcQFwc}@Im05oRi>)LQ}nPw6}X`**PpK+)I zezkdm?t9^bfL@Yyz4inl^?;n72d4pIn+>NJ;|$Ltt@=oUpyix9Tw zLa4> zI1CP0WfX!h(OPvN0BNZC0I3`@#Y0y3*MLlgq5o#;pY5P!GUVUT{XYZUT^!A-!rx_n z%wJh!Y%oFITRky7wG(?W;Fl3dUJeKGYADvgLgXd)Yl&mDB0M{q7#E3n;~QT7;FtRu zE=J5i-H}e!xe}{4q-GbjVougDZ=vgbE6egwYj`N28QeGNuP1tJ+f4 zd)QUpN(}dZ_T%IFp)RM+k_Xys<?=JxMpM2;86~16;pBEH-55P zYM$3fQOO)tAh}TY(bI;gwMCUU;cy>e@=4oEq=VM^?G?j>x$wMMzuZUd?8_z0)|sge zV{;NLEMI4E=It_7uY@qPFiU4GQ&dB%9!?3>gn+oSwD1Bfxr^*Z6wG}ny|}~dMT>^! zvdVv4X_-lWJ;h}7N#(4A(zFpzx1anB2<0(13HL@)*X>h=L;O_5?xlGRg)Yh4j&Ct; zvYD*b4yK*{nR9iCp> + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >

    + + +

    Definition at line 37 of file remove_member_reference.hpp.

    +
    + + + +

    +Public Types

    using type = remove_member_reference_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type >::type = remove_member_reference_t<T>
    +
    + +

    Definition at line 40 of file remove_member_reference.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typename97178921170e35157f80d4750b275e4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typename97178921170e35157f80d4750b275e4.html new file mode 100644 index 000000000..9919f50d6 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__reference__impl_3_01_t_00_01typename97178921170e35157f80d4750b275e4.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_reference_impl< T, typename std::is_same< remove_member_reference_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.html new file mode 100644 index 000000000..5a10ddf61 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_volatile_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_volatile_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::remove_member_volatile_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::remove_member_volatile< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::remove_member_volatile_impl< T, typename >

    + + +

    Definition at line 34 of file remove_member_volatile.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..2c1e193b79ce643540217a8de3c7546858efac36 GIT binary patch literal 1318 zcmeAS@N?(olHy`uVBq!ia0y~yU|bJm2XHV0$(d|i-atwsz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opI9{U&` zE%;RGbo=0?++AyBGGD6AIg>KE`nQ9c?dnb6A79*gY~`kZd-J3oNc^9%-d(-4yS{b3 z`ct_%e~b2AOSw_B$nMqa4Ld$=t$$No_WxJi_KVx@+UF>lt^9U5z4_{fwO4AJuby0X z_vX7PXWOnnwkcxYdh*rOd7rmx-eTFCZ|uK!CujWH4|f+g$ZkGrI^%8&@8Ow;)T|{8 z@1L8%nfTwp@`2ga{P&B`t~q&AW5>mp_?xm5V+jNaVhh3_2H>*hoioPD-NUhdeBjXT8-8}HlYlwWgu$qoCg ztvlLwbe9@A&*_oceK~C9%yL8X)y^i*oqp%Z$Icf$*MD=T+rC|VW{*$bDwt?(9`5|D zL0^7*;%mo#nbYYJ@89<>_L5!or9*!~@4iXt_r3|f{W)vuvpa__e>Ht}#8Fx9Z1307 zI@h@?>niGHON@&JWsbfqv^TLo|K+ga>D?dp71jGrnRh>atN5I<;}`Gz`4^SGU29GM z+i&YkckA!k`Fp=+&U}fvXV@lB^396Pxh1RbcIwv6$0mDYtrz~AlKeZXx9Ia?`#)>; zwLQxcy|o}eY_0IzoewJ-B&X^(upBsT(f?pi8{@r$%YW>OpMIH#@rTI04Zjwh$oakU z!om zL5M*SDB5!HyuT2e04q?T#GMyjhZvebX{aRyDGgyHDyj~;^P6-|i#NGW z5}G8!aB{lJQO8fJoD_W%9%&+#lB@J^wP% zIrZ=4CEkKP>%|XgdFnsZ-RJkj?$L|Znzc8#sD{>Fxt>_~IQ##N=WqUf{ktt~`(67v ziJNz|u8fi}@iTkdSE8Q5_`T}Y?f>@g1SXyN@wjH|vj=jno07NfVB0f$!$Pa@7gJ^k zeCvO<;(o~fy|uGVh4+U(ITn}WeEP%WNnfO6Zt*XlXwDsC1Y$Q)5KXRV< zM#A&wV^C6*y~lk1PCUEp`$R}GocG%9TYOpl+PK`c%k8#F@7p%9_Tt&Q|D*Z0-pzZy z>}1Y|Ju@U%C-Xo0^6X8^FX5iOYfVp`o&7Ii(ybkROZ-2mdUAUH()gzp|6TgeA-hl0 zj=i2cVM)B=Ywt;q6n;)x0xVKgG=XJ{XIJwRm=Lgp&^bLRVp?iv!+!>gcTsXZ*QYN9 P7HSNhu6{1-oD!M<3Iv;o literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html new file mode 100644 index 000000000..3d430372c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename840d08baa5b91ddd7f3c8f52c1fe666f.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >

    + + +

    Definition at line 37 of file remove_member_volatile.hpp.

    +
    + + + +

    +Public Types

    using type = remove_member_volatile_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type >::type = remove_member_volatile_t<T>
    +
    + +

    Definition at line 40 of file remove_member_volatile.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename901daecd373581942227fe927da06ec8.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename901daecd373581942227fe927da06ec8.html new file mode 100644 index 000000000..103fd4c0e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__member__volatile__impl_3_01_t_00_01typename901daecd373581942227fe927da06ec8.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_member_volatile_impl< T, typename std::is_same< remove_member_volatile_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.html new file mode 100644 index 000000000..952a440a7 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_noexcept_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_noexcept_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::remove_noexcept_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::remove_noexcept< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::remove_noexcept_impl< T, typename >

    + + +

    Definition at line 38 of file remove_noexcept.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..18ebf553e94d4f510c5b414f871cb4dcc484fbf6 GIT binary patch literal 1221 zcmeAS@N?(olHy`uVBq!ia0y~yU~C7n12~w0|ze;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z!Ku=;uuoF_;&8?qSp#MuHv_i|Ni&4 zle|BH;dbV08Pl~<+me;_oVbr@FP$<;Yw47LK!zZOMlU{wkI49z<(vl=2DYnKKh2o3 z?9f+9lcN0p`RzS27Av$)-%l-Juv_^5%)_ju=Ohj?F1UDfR^Ias4snt1?SE&d$5`gb zN6*dOzvq1Mm9)?8cN4aT*KV2emSc5l{`Ip~F=swqTe~oJ;mm_;I9D9apLX_t*|m44 zck=ECvebE-)3C54H6_3N$s*WPYBY}agh>n!UP zBbl5pPw%`tZX%hw!^(L5`L3(~17&pExAn)K$T+la=FK0+XD`aXf8)(NIlpQn=hvSm z9G>XTnv-dEMp$N6bEIX|jo&Npmu>gdNhUQLkql&MKCP+J4@` zWM;~dgYQJlw?zAi&$AT~m)SEt_Hy&)`}yC`y*p-O8F_c5)gy*0MYSh>h1Nf|k&yqx z!=AZq@rN&e3#`68{aY|0)W^wgm;AcVlPc#tU%K_C@OS6p{Mh^azh~N<4XUj;_Pu%U zz1QbIt#Mi^d$;2bllk_$+g2Q1 zo_hWuYjN`%+0u`hciDVyS~C2xovZiH#^_uWzuE!uFIs$`OHEYxKWNofU8~|_vz_05 z9ODCb4NHb2+DQ2I!G%+Tf|gDZ(rhTd&hEga5OR`H zAx2)FlSv^8#Ny`xvLa40K2X=tMAeCG3boj;!wY6C%d9G{^|@@acjpWhO;t}|>YOC9 z{)vJoFo{ALyLz1`F4@TE)Bh?f^8T)6zOAp7J=ag4zh0+)QpxIjJ%@j~Oe)zuufTKC zzLnCJI=fTu>ij9_UY^UuyTtKZStTgrRc&e{CYg^N$ueqR6apRI+? z>5Yujyu#g%sWSPtMt%`nsr2<|AhYFu#o~eGeIPaak`F^3jPTX3}g#VFprtG A(f|Me literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_108531a4ded9318ca1f5f9203ab6f69d3.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_108531a4ded9318ca1f5f9203ab6f69d3.html new file mode 100644 index 000000000..b9164054e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_108531a4ded9318ca1f5f9203ab6f69d3.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html new file mode 100644 index 000000000..e7d7f0149 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__noexcept__impl_3_01_t_00_01typename_01std_16b5ca708e995625b68fa189b1a23b15d.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >

    + + +

    Definition at line 41 of file remove_noexcept.hpp.

    +
    + + + +

    +Public Types

    using type = remove_noexcept_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::remove_noexcept_impl< T, typename std::is_same< remove_noexcept_t< T >, detail::dummy >::type >::type = remove_noexcept_t<T>
    +
    + +

    Definition at line 44 of file remove_noexcept.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.html new file mode 100644 index 000000000..22a375692 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_transaction_safe_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_transaction_safe_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::remove_transaction_safe_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::remove_transaction_safe< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::remove_transaction_safe_impl< T, typename >

    + + +

    Definition at line 38 of file remove_transaction_safe.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..36b0a2c2a49213b6d38d0ac700d93bf860730693 GIT binary patch literal 1308 zcmeAS@N?(olHy`uVBq!ia0y~yVB82~2XHV0$pwkK1%Q-9fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1Iubp7srqa#X_Rwdq&*Vt47jGR~FQ=_1?LC{`;lB^S0levhC(et7~%a_s>7Wm9T8T&zr2J=YCA@ zV2pVcw!8bPyiVvq+aY+{{+re9y4w2RE6(1N&-*O5_toON{ADd?i?-~3 zx^LK->`eV*^Rr?qZJ-_sczf0Sz|#-YD$dr<&YVc z`DR>`FWu7I@hED~b@N$gIT0n7c90>9GFx19d)=&$ksC z)ZLa%`&A~mePj0T9lbUMH%yH`&T{{ECEGmid8UPj^%0JY%ll*ROt_Krjx}fFyH{1` zI!xR53T?lg^xwj-$2*{U`!av`Gd#)Bw~Uit#q#u)zPh?&ZRztPyPnPMpBFLtxZ9C8 z@3NOa7k_a_)^WGOGv({1b5&;k<0vgNe|9qS?YT2O5&_=tudaV4w=r0lHT>ONL*r=k z_M4>_KJKdRpUYQU+3#C4YbRgY_Zy{QCjG|iMY49T*j?XmYX0%7ZCOgoWtp4oMK%4h zo(KM}>7ONDws>{*|JjG%Zg;z!KKbU9t=F^GEVedUHvQ}7<1eqQKHn96>E#~(O^@VM z-!psZ{`>XeNX(7xe^VFdFsF;XyZiMBLlA@gg-V{=F4b4%64v<(R>#jiY|HdP)ArHV zqzMy$UP0 z0+C4*mrPM<4G@~V#KS9Tl8C3L&m^E9JcCqh-PU+qiV(iMdRNr8?dvjwAO7;V^u2Wd z|J?M{D{I!&Px`W=N$_{r5!IE~w|976TDt7*yyIVWHkR7w-hTDNGS2$3Th9L*uXBEX z{hPWOn2gVD+?bbWWphVr<2+&OgTMsb^e;m8?Vf&xBi9llMS@k%`#KjC9;oha341QCb9Xv(CU@v)+X$om>u@z$er5SFZsVr`qo}OdLd%D z@+`&dyOtZ*{d~3f;H4Vd!*32B`SWk>#DGBEzmn4P6w>AA&6G6s-1%z0Hd%=k%^v6s7m7?y7B>3fK3|c3JOk^samNH~w?*d(Z#x;)wr^2QFR& + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html new file mode 100644 index 000000000..c4073a33f --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__transaction__safe__impl_3_01_t_00_01typenameca1ecca0a34d523c59c5175ddcc68df.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >

    + + +

    Definition at line 41 of file remove_transaction_safe.hpp.

    +
    + + + +

    +Public Types

    using type = remove_transaction_safe_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::remove_transaction_safe_impl< T, typename std::is_same< remove_transaction_safe_t< T >, detail::dummy >::type >::type = remove_transaction_safe_t<T>
    +
    + +

    Definition at line 44 of file remove_transaction_safe.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.html new file mode 100644 index 000000000..03b401822 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_varargs_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_varargs_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::remove_varargs_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::remove_varargs< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::remove_varargs_impl< T, typename >

    + + +

    Definition at line 35 of file remove_varargs.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..1998440dda00e5cd6dd51445d1604116f15b3ff6 GIT binary patch literal 1224 zcmeAS@N?(olHy`uVBq!ia0y~yU~B-g12~w0qX31S$`}BlY z_`_p9Ry!|kZ#(vK)4cfC_m@U9>|2n}R|tyl}T zOkw)AQ9CEwiur=*T9#cFTmcmnO3@9P4?Td4A%`?cQ6~#>V7Mt-bm79go9w zlQagMfahG>`w!~>ej?7WN4aesduArjhlO`<+E{vT?wH5KaOScWcfk@n*4m#eKPvld zEWe(vU^;jC&&-#ntsf{f&bU)u!XC3+;j>gtXalqF`-XQxyY?}Edt5$ig4_Nx?-{Dg zx6l82b(3>$N$L6e;x9HY^UkOVC+A+dbz_aS`|QB7d9Rk+Eqy=v7VDKyu3Vp1Za2=_ zyQ6WN-{v}l-!H;%Ff;t{wYvRnr?=aM|BnuZGgib|20vj~e@Q+4>&*n2qO63n3k?5) z_J3xHarm{x`^;AE59YtNYH~bK*I;B|(L%zn7#B@q zkDvu`Mjms3O6I!eW$vZfH@%#%uRGK`aY=q~OJW)Kl_GvcdNp*4jX6R z+4fd@&F*u&R?4e?w{=!^Pdgl77G0>26XS77cb6%v@Af>gcaJwLU2yN<;@y8Fw$}>3 zI=%F<9maC;?PQ5d! z&@Yewu25mfAiu%xL*L~~Hv3|K2fFw(dKmey)|u32GU?w-^#?X*&nwn`;x9^=Ww*Wq6V4@HP{R3N_9J)Sig_8yS$PG0W~SHNN*@(uhcsWS(Cy!7 z@9j9Lq&bgS!SjE2+@nm-Sud6|Rm9CPpZCQ-dQObgq%THKIVU`sSH02u(n@&HqA*@D jCPYqC-Kuk1XpwzocEF@vuM{2viya0}S3j3^P6! literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_849da51b465f742977b3ccb6675ce887.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_849da51b465f742977b3ccb6675ce887.html new file mode 100644 index 000000000..785d4ab81 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_849da51b465f742977b3ccb6675ce887.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html new file mode 100644 index 000000000..cff1af3fe --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1remove__varargs__impl_3_01_t_00_01typename_01std_1_d14524997250b853250880107614de71.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >

    + + +

    Definition at line 38 of file remove_varargs.hpp.

    +
    + + + +

    +Public Types

    using type = remove_varargs_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::remove_varargs_impl< T, typename std::is_same< remove_varargs_t< T >, detail::dummy >::type >::type = remove_varargs_t<T>
    +
    + +

    Definition at line 41 of file remove_varargs.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl.html new file mode 100644 index 000000000..cdddda572 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::return_type_impl< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::return_type_impl< T, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::return_type_impl< T, typename >:
    +
    +
    + + +boost::callable_traits::return_type< T > + +
    +

    Documentation

    +

    template<typename T, typename = std::false_type>
    +struct boost::callable_traits::detail::return_type_impl< T, typename >

    + + +

    Definition at line 38 of file return_type.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..b42c09045162cb5f35c747d60f2157a24bba814b GIT binary patch literal 1178 zcmeAS@N?(olHy`uVBq!ia0y~yU`zqB12~w0q-5lOSs*15;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z@q8t;uuoF_;&8?O^>yBSZ6<7_4oh$ znxK7(jQh?^nL7DR;32OZ7A7ghIL)O~LNu2i>13L~)Dh&w#u0{uukrnC`P%q0G*;I= zZWh<|^b03!d5_!nc6K*d%2w4y+ijO+x^rQ+V*J`GlJf057hWVC>UWMSE4X{&Z+`uo z9_=S@Q&(?(JNarhPt`_w_4px9`b(^6lI=!=6>& z-_DCWcjw(*zdPF&G)#`Xap{JBy2wd8(W(=DR}L(UT|INP{JM6Y57t|Z7%eVVGNQ03|qFH9+x86mxY&ZUE?2ndD)?_ z6IGTAUv4eT-BhFUGO$+i$$qI9W>0RfRe8z(Md67m%QcT1|GynSx5MdP+%~J*b(M8D zb2k4x%DZQ4_1`ys)7F3A(*Nq2#>#2@?RyM1e_3*A>cql@S3+jEt~V3q^~ztn^=;(K zV^L?z^zSsOykxYUrROH|_DJlXnI(otp4|Cmm-o}OO!mpL_XnSB`zzu0DS1Y+;&qt^ zVH@t~nZ{O}c=zt+Z}Zw&jeEbcY`QyXXR!08%4)V^gB1CSXJyvDijOTyza_4TcZ~bA z-9GKU=*j1q<$DCpK`EzAciZ9u)}P(Qn|5#dzW?d+Wo=cLXYcwM9o*x~CVk=7@q#TU zm)t93pOBqwAL_Z)#@&o*lS=KruoIKMxYcSs`59LArpSa?Ok9&!r + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html new file mode 100644 index 000000000..d555e11b5 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1return__type__impl_3_01_t_00_01typename_01std_1_1isf29076499afcf36253341959f762e26a.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >

    + + +

    Definition at line 41 of file return_type.hpp.

    +
    + + + +

    +Public Types

    using type = return_type_t< T >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::return_type_impl< T, typename std::is_same< return_type_t< T >, detail::dummy >::type >::type = return_type_t<T>
    +
    + +

    Definition at line 44 of file return_type.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t-members.html new file mode 100644 index 000000000..d7660307f --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::set_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html new file mode 100644 index 000000000..0f35a83a2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__function__qualifiers__t.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::set_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::set_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept, typename Return, typename... Args>
    +struct boost::callable_traits::detail::set_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >

    + + +

    Definition at line 76 of file set_function_qualifiers.hpp.

    +
    + + + +

    +Public Types

    using type = Return(Args...)
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept, typename Return , typename... Args>
    + + + + +
    using boost::callable_traits::detail::set_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >::type = Return(Args...)
    +
    + +

    Definition at line 77 of file set_function_qualifiers.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__member__function__qualifiers__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__member__function__qualifiers__t.html new file mode 100644 index 000000000..cdf7b53fc --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__member__function__qualifiers__t.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::set_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoExcept, CallingConvention, T, Return, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::set_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoExcept, CallingConvention, T, Return, Args > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoExcept, typename CallingConvention, typename T, typename Return, typename... Args>
    +struct boost::callable_traits::detail::set_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoExcept, CallingConvention, T, Return, Args >

    + + +

    Definition at line 23 of file pmf.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/pmf.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t-members.html new file mode 100644 index 000000000..ac2205566 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::set_varargs_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html new file mode 100644 index 000000000..cf287107b --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__function__qualifiers__t.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::set_varargs_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::set_varargs_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept, typename Return, typename... Args>
    +struct boost::callable_traits::detail::set_varargs_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >

    + + +

    Definition at line 82 of file set_function_qualifiers.hpp.

    +
    + + + +

    +Public Types

    using type = Return(Args...,...)
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept, typename Return , typename... Args>
    + + + + +
    using boost::callable_traits::detail::set_varargs_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, Return, Args >::type = Return(Args..., ...)
    +
    + +

    Definition at line 83 of file set_function_qualifiers.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__member__function__qualifiers__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__member__function__qualifiers__t.html new file mode 100644 index 000000000..bc2dab280 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1set__varargs__member__function__qualifiers__t.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::set_varargs_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, CallingConvention, T, Return, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::set_varargs_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, CallingConvention, T, Return, Args > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<qualifier_flags Applied, bool IsTransactionSafe, bool IsNoexcept, typename CallingConvention, typename T, typename Return, typename... Args>
    +struct boost::callable_traits::detail::set_varargs_member_function_qualifiers_t< Applied, IsTransactionSafe, IsNoexcept, CallingConvention, T, Return, Args >

    + + +

    Definition at line 28 of file pmf.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/pmf.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1sfinae__error.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1sfinae__error.html new file mode 100644 index 000000000..41b98cfb6 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1sfinae__error.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::sfinae_error Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::sfinae_error Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 16 of file sfinae_errors.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1stdcall__tag.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1stdcall__tag.html new file mode 100644 index 000000000..99c757088 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1stdcall__tag.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::stdcall_tag Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::stdcall_tag Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 19 of file utility.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1substitution__failure.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1substitution__failure.html new file mode 100644 index 000000000..5c2aa8d44 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1substitution__failure.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::substitution_failure Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::substitution_failure Struct Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::detail::substitution_failure:
    +
    +
    + +
    +

    Documentation

    +
    +

    Definition at line 38 of file utility.hpp.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1substitution__failure.png b/dox-master/structboost_1_1callable__traits_1_1detail_1_1substitution__failure.png new file mode 100644 index 0000000000000000000000000000000000000000..cec838f5c68caa3c332c57ed668fa85db3469bb1 GIT binary patch literal 862 zcmeAS@N?(olHy`uVBq!ia0y~yU=#$h12~w0B&X%ZgFs3mz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opuOfne<><^W6?zw&290DN+(5>Ciy_A>4K5lU+&)e_uG+X z^V(J01vPK~t9SY5cKGd_{r7Wr-<`kxzHQR9=XObN_uiG+rTS8}jB%n`>DBgshn%D5 zKHsdzF(Ek`jsti0?Q3Gu z;1XQ$icQ6%VVwYD0XP2v5v2xA7lz;thGhbbK8j2;oLCH6ITE-8$&mPB=@ON#8>T1a zu*Th^gCP`d+O19-hT==5+3#%ASM%_ir5l}i_w0AnYok}4k>8!a&I}9}p1IykxoFq> zloKaw7M$2UPid3EpK68c`~QBsuv6%!+_r62bvyUJzu10P{>|mLn}3}@P#wS9Y8OxJ zv^U-IHLKQL-}-yjw@Gt5csEyuZa$ZKv~cl1-D`GI>QcWm&y?QCd~_=@DVnjajWcT@}HI!n&q@l9Ci^BT#; z|5sWSIlVn;W%Ti=-=WV|Mr^+pTNM>NtX4AprWRRTc5TgaM@zSBLicY^>$11Zt}1<9 z+@)Uo^{>u{tGcJn?EBW~Zu|dDIdzih)ne~ghHeZ=`YJ{Gp{5ZG_mb?tsu*I#&*ff^ f?6pUKeP#c7X4(9uv*lI+GXsOCtDnm{r-UW|^%97C literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1success-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success-members.html new file mode 100644 index 000000000..b4de556e2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::success< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::success< T >, including all inherited members.

    + + +
    valueboost::callable_traits::detail::success< T >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1success.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success.html new file mode 100644 index 000000000..c432fbe7f --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success.html @@ -0,0 +1,185 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::success< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::success< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::success< T >

    + + +

    Definition at line 19 of file sfinae_errors.hpp.

    +
    + + + +

    +Classes

    struct  _
     
    + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr bool boost::callable_traits::detail::success< T >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 20 of file sfinae_errors.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__-members.html new file mode 100644 index 000000000..4a5174564 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::success< T >::_ Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::success< T >::_, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::success< T >::_
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html new file mode 100644 index 000000000..942659e85 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1success_1_1__.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::success< T >::_ Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::success< T >::_ Struct Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::success< T >::_

    + + +

    Definition at line 21 of file sfinae_errors.hpp.

    +
    + + + +

    +Public Types

    using type = T
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::success< T >::_::type = T
    +
    + +

    Definition at line 21 of file sfinae_errors.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke-members.html new file mode 100644 index 000000000..29c4f55a0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::test_invoke< Traits, bool > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::test_invoke< Traits, bool >, including all inherited members.

    + + + +
    operator()(int, Rgs &&... rgs) const -> success< decltype(std::declval< U >()(static_cast< Rgs && >(rgs)...))>boost::callable_traits::detail::test_invoke< Traits, bool >
    operator()(long,...) const -> substitution_failureboost::callable_traits::detail::test_invoke< Traits, bool >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke.html new file mode 100644 index 000000000..cab7fa37a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke.html @@ -0,0 +1,218 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::test_invoke< Traits, bool > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::test_invoke< Traits, bool > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Traits, bool = Traits::is_const_member::value || Traits::is_volatile_member::value || Traits::is_lvalue_reference_member::value || Traits::is_rvalue_reference_member::value>
    +struct boost::callable_traits::detail::test_invoke< Traits, bool >

    + + +

    Definition at line 79 of file is_invocable_impl.hpp.

    +
    + + + + + + +

    +Public Member Functions

    template<typename... Rgs, typename U = typename Traits::type>
    auto operator() (int, Rgs &&... rgs) const -> success< decltype(std::declval< U >()(static_cast< Rgs && >(rgs)...))>
     
    auto operator() (long,...) const -> substitution_failure
     
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename Traits , bool = Traits::is_const_member::value || Traits::is_volatile_member::value || Traits::is_lvalue_reference_member::value || Traits::is_rvalue_reference_member::value>
    +
    +template<typename... Rgs, typename U = typename Traits::type>
    + + + + + + + + + + + + + + + + + + +
    auto boost::callable_traits::detail::test_invoke< Traits, bool >::operator() (int ,
    Rgs &&... rgs 
    ) const -> success< decltype(std::declval< U >()(static_cast< Rgs && >(rgs)...))>
    +
    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename Traits , bool = Traits::is_const_member::value || Traits::is_volatile_member::value || Traits::is_lvalue_reference_member::value || Traits::is_rvalue_reference_member::value>
    + + + + + + + + + + + + + + + + + + +
    auto boost::callable_traits::detail::test_invoke< Traits, bool >::operator() (long ,
     ... 
    ) const -> substitution_failure
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4-members.html new file mode 100644 index 000000000..387286a08 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::test_invoke< function< F >, true > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::test_invoke< function< F >, true >, including all inherited members.

    + + +
    operator()(...) const -> substitution_failureboost::callable_traits::detail::test_invoke< function< F >, true >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html new file mode 100644 index 000000000..aade6ec43 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01function_3_01_f_01_4_00_01true_01_4.html @@ -0,0 +1,173 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::test_invoke< function< F >, true > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::test_invoke< function< F >, true > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename F>
    +struct boost::callable_traits::detail::test_invoke< function< F >, true >

    + + +

    Definition at line 90 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Member Functions

    auto operator() (...) const -> substitution_failure
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename F >
    + + + + + + + + +
    auto boost::callable_traits::detail::test_invoke< function< F >, true >::operator() ( ...) const -> substitution_failure
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4-members.html new file mode 100644 index 000000000..a72c27493 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4-members.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >, including all inherited members.

    + + + + +
    class_t typedefboost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >
    operator()(int, U &&u) const -> success< decltype(std::declval< Obj >().*std::declval< Pmd >())>boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >
    operator()(long,...) const -> substitution_failureboost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html new file mode 100644 index 000000000..2368b6f4e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmd_3_01_pmd_01_4_00_01_ignored_01_4.html @@ -0,0 +1,243 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Pmd, bool Ignored>
    +struct boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >

    + + +

    Definition at line 108 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Types

    using class_t = typename pmd< Pmd >::class_type
     
    + + + + + + +

    +Public Member Functions

    template<typename U , typename Obj = generalize_if_dissimilar<class_t, U&&>>
    auto operator() (int, U &&u) const -> success< decltype(std::declval< Obj >().*std::declval< Pmd >())>
     
    auto operator() (long,...) const -> substitution_failure
     
    +

    Member Typedef Documentation

    + +

    ◆ class_t

    + +
    +
    +
    +template<typename Pmd , bool Ignored>
    + + + + +
    using boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::class_t = typename pmd<Pmd>::class_type
    +
    + +

    Definition at line 110 of file is_invocable_impl.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename Pmd , bool Ignored>
    +
    +template<typename U , typename Obj = generalize_if_dissimilar<class_t, U&&>>
    + + + + + + + + + + + + + + + + + + +
    auto boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::operator() (int ,
    U && u 
    ) const -> success< decltype(std::declval< Obj >().*std::declval< Pmd >())>
    +
    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename Pmd , bool Ignored>
    + + + + + + + + + + + + + + + + + + +
    auto boost::callable_traits::detail::test_invoke< pmd< Pmd >, Ignored >::operator() (long ,
     ... 
    ) const -> substitution_failure
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4-members.html new file mode 100644 index 000000000..f7444cb75 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4-members.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >, including all inherited members.

    + + + + +
    class_t typedefboost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >
    operator()(int, U &&u, Rgs &&... rgs) const -> success< decltype((std::declval< Obj >().*std::declval< Pmf >())(static_cast< Rgs && >(rgs)...))>boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >
    operator()(long,...) const -> substitution_failureboost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html new file mode 100644 index 000000000..6ab898763 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1test__invoke_3_01pmf_3_01_pmf_01_4_00_01_ignored_01_4.html @@ -0,0 +1,249 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Pmf, bool Ignored>
    +struct boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >

    + + +

    Definition at line 95 of file is_invocable_impl.hpp.

    +
    + + + +

    +Public Types

    using class_t = typename pmf< Pmf >::class_type
     
    + + + + + + +

    +Public Member Functions

    template<typename U , typename... Rgs, typename Obj = generalize_if_dissimilar<class_t, U&&>>
    auto operator() (int, U &&u, Rgs &&... rgs) const -> success< decltype((std::declval< Obj >().*std::declval< Pmf >())(static_cast< Rgs && >(rgs)...))>
     
    auto operator() (long,...) const -> substitution_failure
     
    +

    Member Typedef Documentation

    + +

    ◆ class_t

    + +
    +
    +
    +template<typename Pmf , bool Ignored>
    + + + + +
    using boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::class_t = typename pmf<Pmf>::class_type
    +
    + +

    Definition at line 97 of file is_invocable_impl.hpp.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename Pmf , bool Ignored>
    +
    +template<typename U , typename... Rgs, typename Obj = generalize_if_dissimilar<class_t, U&&>>
    + + + + + + + + + + + + + + + + + + + + + + + + +
    auto boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::operator() (int ,
    U && u,
    Rgs &&... rgs 
    ) const -> success< decltype((std::declval< Obj >().*std::declval< Pmf >())(static_cast< Rgs && >(rgs)...))>
    +
    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename Pmf , bool Ignored>
    + + + + + + + + + + + + + + + + + + +
    auto boost::callable_traits::detail::test_invoke< pmf< Pmf >, Ignored >::operator() (long ,
     ... 
    ) const -> substitution_failure
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t-members.html new file mode 100644 index 000000000..632a6f628 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::unwrap_reference_t< T, typename > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::detail::unwrap_reference_t< T, typename >, including all inherited members.

    + + +
    type typedefboost::callable_traits::detail::unwrap_reference_t< T, typename >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html new file mode 100644 index 000000000..4cdbedb18 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::unwrap_reference_t< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::unwrap_reference_t< T, typename > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename = std::true_type>
    +struct boost::callable_traits::detail::unwrap_reference_t< T, typename >

    + + +

    Definition at line 96 of file utility.hpp.

    +
    + + + +

    +Public Types

    using type = T
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename = std::true_type>
    + + + + +
    using boost::callable_traits::detail::unwrap_reference_t< T, typename >::type = T
    +
    + +

    Definition at line 97 of file utility.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html new file mode 100644 index 000000000..2ce077c67 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html new file mode 100644 index 000000000..9edb5a796 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1detail_1_1unwrap__reference__t_3_01_t_00_01is__reference__wrapper_3_01_t_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > >

    + + +

    Definition at line 101 of file utility.hpp.

    +
    + + + +

    +Public Types

    using type = decltype(std::declval< T >().get())
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > >::type = decltype(std::declval<T>().get())
    +
    + +

    Definition at line 102 of file utility.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/utility.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1function__type.html b/dox-master/structboost_1_1callable__traits_1_1function__type.html new file mode 100644 index 000000000..aedb244c0 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1function__type.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::function_type< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::function_type< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::function_type< T >:
    +
    +
    + + +boost::callable_traits::detail::function_type_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::function_type< T >

    + + +

    Definition at line 46 of file function_type.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1function__type.png b/dox-master/structboost_1_1callable__traits_1_1function__type.png new file mode 100644 index 0000000000000000000000000000000000000000..f680af419c7b78a504ccae07ffb0be0909407bc9 GIT binary patch literal 1081 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-12~w0+_7srqa#gYUf7K#_b;4yab7`ed#sxF zo17hD*Vcq?c0aTDPv6bWsrqXqFLN4SzAr@Y#$?EMb@IrAo^|2(0o=~>_BJVPb+ z!6Of|dWk`Uz)Eff2QFrg z35OV%fLsPm9%^zAtQQUQ()83^y2g>wgCWc#k%2Kt!l6NgO+cZQktIT`>|*YvlGW>U zkB460y0RcyZn=fS`30|?)|6iRdxDwcpQm20 z;HbW1^D5{6-(PahZ_D;)TFGpl`SO1Ku9vTYiQ~Yu^}GPwP+CM5EtN&1Cfz zuD^Tsr(wh6qkks6k4?OunWa-|*v_j`UTo(%(Kyk5=HayEPk#4X3-%|Ux&n#+wV?RV zJTp`MO7q3}ljb(mJ~%&j62pJdc7ulSPr--YWm;?!Wtf+!o*Sfi!28E)?K5-i8P-33 tpXb@24+=e`z + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::has_member_qualifiers< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::has_member_qualifiers< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::has_member_qualifiers< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers.html b/dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers.html new file mode 100644 index 000000000..835084502 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::has_member_qualifiers< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::has_member_qualifiers< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::has_member_qualifiers< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::has_member_qualifiers< T >

    + + +

    Definition at line 29 of file has_member_qualifiers.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::has_member_qualifiers
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::has_member_qualifiers< T >::type = typename detail::traits< detail::shallow_decay<T> >::has_member_qualifiers
    +
    + +

    Definition at line 32 of file has_member_qualifiers.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers.png b/dox-master/structboost_1_1callable__traits_1_1has__member__qualifiers.png new file mode 100644 index 0000000000000000000000000000000000000000..eb35b2e9173144292accefc7f5ddec99cf6a58f3 GIT binary patch literal 1039 zcmeAS@N?(olHy`uVBq!ia0y~yU{nFJ12~w0Wc%YEdx4ZhfKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1M@sj7srqa#~*mih6#|99o* z>)pQod-~pN`RCI%m~N}Pzxnpux$f4tf2{qL^TzQXzbf4(uq~(0QVNu5@kM?2X@4Uk2$rdc8Y7)vk#v_TEJ43C;6#3ids)xozeM5$VfWpUPzuZ*IFaZ@~4c?lRoQO zdS0sepsTR<)Y+SRmfq1jw}jhcGUH|A%*ec#KBpAVGR>ZT`@1vO_S<6D9v7W_{V}#b zTXp`v!>x}`8|zx!&9hVypTVtuFE3xq-1ArKuXCw?u*2b+&oLQ zmcwjne8b9ln{U?EJ?yKxlj=}$k0-N>_kpG@@5|R_mlOFewH2sW{;`g0KbPFT?bzel z^85GRubp%F9k0AYnM4vdpS<4W-ur9LyY-}WCvdCW@|n!0@Umr#@1t;jGn>ul+V_7r zXleV1S$e)rY0L)Z$G0v9JN(mF9XiKwneFMet`qXH3(r_o9Nus`&+)L5@RFRz+fVbJ zV852q_?h+j%{I&DW_q^EW|ox1I9p|FoY^opFa6)K(w5EdH~5D zJN**No2PS9cP=&7RGV+V&EQ;mP@eyM&(*ij&Yzc_{-f;w+`D=18_qqO`1t1+S-m*{ zmkJNQEaU!n=i%E&J{NhzUrx_6Z}{K#?_bkC?n{3g=DZPcSSp^g_vC(dp#%KD*xeJ$ x%ef%HnMvcy1O{N1YH%|5NK4Z--n{f5 + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::has_varargs< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::has_varargs< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::has_varargs< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1has__varargs.html b/dox-master/structboost_1_1callable__traits_1_1has__varargs.html new file mode 100644 index 000000000..91a64f134 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1has__varargs.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::has_varargs< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::has_varargs< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::has_varargs< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::has_varargs< T >

    + + +

    Definition at line 30 of file has_varargs.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::has_varargs
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::has_varargs< T >::type = typename detail::traits< detail::shallow_decay<T> >::has_varargs
    +
    + +

    Definition at line 33 of file has_varargs.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1has__varargs.png b/dox-master/structboost_1_1callable__traits_1_1has__varargs.png new file mode 100644 index 0000000000000000000000000000000000000000..a36b6ca492f3cd1c10b07a5fc9063933d803bf8f GIT binary patch literal 811 zcmeAS@N?(olHy`uVBq!ia0vp^uYfp!gBeIFNK57eDTx4|5ZC|z{{xvX-h3_XKQsZz z0^S%{w@6WbLNUP?YHc4}B@ru`nv%XKey4^U{{Im@)jP`_?*eZyJz~2Wt`ln7A!uw`{S-crgw|${=ZpU z)*|Jzu<`G;8@<`h@0KOK(bn<2{xv*Q_jUBbY0HWn^`b4-sJ)zd@5%x7^sg*iH!dg* z+wSDGY1_TBu*1B2_La>v)U4m;u_<$RqjS}yy)TZ1Y)M&lJU=_Z^VjiR;-CIE@48cb zKKp5Ys^_kC=U2aKE%69i+nVzb<}2LW=$C>uiZ@ zg#q$Q7H{BdvC2Uz<9(sOug>OZ}{LsrQonwV3e%ko|cKcMrg?aq9=fv;tn_m7T z^>j1;f|`Z=H!Mr?wiOyNv)DSuDu3rmxVk*mXML}*-5ulhtJU3m=k1W%eb)6~(Yo8b zcNTq=PCix~5xOFDM`6GJuIK={CmEme_Qb556?&KV`HG#|&Fx>WJZI}$@zC$ack$|| z*r?KEt~_JW#{my-Y&v>5Y-8}18LzTlItH6-1>b5u|EX2*YJ+j;&FZMDpC8}wJAQQY zEsygn&r57#WZzXC)}QyF + + + + + + + + + + ttg: boost::callable_traits::has_void_return< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::has_void_return< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::has_void_return< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::has_void_return< T >

    + + +

    Definition at line 29 of file has_void_return.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1has__void__return.png b/dox-master/structboost_1_1callable__traits_1_1has__void__return.png new file mode 100644 index 0000000000000000000000000000000000000000..e603e60216fbf8e3627b21f6f9b43bef3519d2a0 GIT binary patch literal 1275 zcmb_cdrXrD5dSJDTI_I}i&LVK4bZ}%x&}H#DC5<{J{34hF0EkW)M{Tu%Z95~T5_TU(h0{W;Rx1ouE2fO%o)Q@St=-+-o3ASO z!{OF*lt?N7lm3#IeY8&jz_t(!{+yPD&`mW`XEXdx+^$3of$OsI7^Gh*v9#GH*K1e@TK%_{9de~ulS?i5; zQ;B`^WV+^gyTeVhkPY5RiS{m9Bkfg~)W3a$lge(=q+<LzYrWu$n(KxLJ6Mg$ImoC1jPBq_0KXS%i`u8Qr-8>J1tl8sGvWgQm`v&~A!A!37K%c`%R z8M!E0n!b0|Qh2Bq7b)&^W%!%DNg7s;wzp5#j=2-gWr=v=L@&+L7laGyW%p4pDr4cO z#VkW5lcr)MtP=ZPLT|4kg6itym9XJMT#~0rU%8F&XwvqxVU%STH_&3AoXVLuf7H2f zT-y@JJ*8Fz<|GSR4Hk2}oX_UYXT&UWCjU7Lki@NZQ-c(miyv4hwDZHZl<~hjig2*Na z^g86sv-f9y@~<~vI*_Yh_J=fsN^jNb`PfW>W9K^aVzgWyhan!6c;M3I{>s+;J7Xq& zW)=QtUyXU84e@*0ROp#Jay&va(U^`pWvF&dWi}fouchRV8r#$IrM=%z9xw&uR*eaG z>9&n=Z9_%xsZZ|YY&<+{DirRT2ucf<@Ouj?`zJu%)DwM`!hK;_Y$Z1e3$!>w=0k~A(*`ht;DTPq@2h3x2#nax5w%gFa z;}$=pZd9#~a6iyJr169RbgsOq+PDwB`WAR3-W4y8-!l`Lp!<(4Lc>@rk + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_const_member< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_const_member< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_const_member< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__const__member.html b/dox-master/structboost_1_1callable__traits_1_1is__const__member.html new file mode 100644 index 000000000..c7a88a121 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__const__member.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_const_member< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_const_member< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_const_member< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::is_const_member< T >

    + + +

    Definition at line 29 of file is_const_member.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::is_const_member
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::is_const_member< T >::type = typename detail::traits< detail::shallow_decay<T> >::is_const_member
    +
    + +

    Definition at line 31 of file is_const_member.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__const__member.png b/dox-master/structboost_1_1callable__traits_1_1is__const__member.png new file mode 100644 index 0000000000000000000000000000000000000000..8b1a7ca8571152ff0f7103fc6898dcd3cbbbe9c5 GIT binary patch literal 849 zcmeAS@N?(olHy`uVBq!ia0y~yU}OQZ12~w0>%GwDQ*<`g^}{ z+v61tFKTjboxNz&E7^FmF2{q`$eq_e8pWb56a z%lh`=D`VO>RA2sE7N3@3_4EqQlz+;rwn_dvR(QFb{bNaJX#W#2miJZtRpNYaBYW=k zL@t^wnR9&2yvthF+iPYDTq&lS(4C;&uFt8Te* zur_s^ILyjmrxVZcp+vDoyjed;q2*A62uEY*L;()QhD=D1wJ;nob5dXdA%+BLuy!Uz zh7G*}9E~8vaKnwGg(KMX*W_MV$zrWpRgV)6!IVc9^>VW-55w@+xZS zH7162f0H?`?_o>0eOn-ni_OV#%j7Kkx5YE=C|>cC-Tdom_3g#0b7jl5$}JQ7|H!;$ zn{_Ksv%=7#mSN$HjrSOhw&ZO3A;H$vAKY9!F>=D}tvTD%u72BRf4EQA;5}dZ!wEk# z#ie@QMO-|2QGNfh*qR-4Ulul9tG@N_XI`uLEU^ce P{uw-7{an^LB{Ts55qWZs literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1is__invocable-members.html b/dox-master/structboost_1_1callable__traits_1_1is__invocable-members.html new file mode 100644 index 000000000..78d50c60e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__invocable-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_invocable< T, Args > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_invocable< T, Args >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_invocable< T, Args >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__invocable.html b/dox-master/structboost_1_1callable__traits_1_1is__invocable.html new file mode 100644 index 000000000..771ae46c3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__invocable.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_invocable< T, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_invocable< T, Args > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_invocable< T, Args >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename... Args>
    +struct boost::callable_traits::is_invocable< T, Args >

    + + +

    Definition at line 34 of file is_invocable.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::is_invocable_impl< T, Args... >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename... Args>
    + + + + +
    using boost::callable_traits::is_invocable< T, Args >::type = typename detail::is_invocable_impl<T, Args...>::type
    +
    + +

    Definition at line 35 of file is_invocable.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__invocable.png b/dox-master/structboost_1_1callable__traits_1_1is__invocable.png new file mode 100644 index 0000000000000000000000000000000000000000..a3dc78f7bbb037e8493a9799a6ae4c7b06c23d8a GIT binary patch literal 941 zcmeAS@N?(olHy`uVBq!ia0y~yVB`a`12~w0OMsL_fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1G9~%i(^Oyc8WAel1t41-vQnsX8UFGA)_hD~0?3wxK$GlsDe$z?? zPR~}WJZpA(p5@__oBo{jpXU5d;`WC(f9p=4RPwx^{&IqBnrGG7e@uN#*X`XAwX^(M zc>GG0m;3%sdsFZ=Vp81JdZBie+FnsU&t-=cPli~i%mjwhWoGy6wNrD&5BP83Z`gE* z@xtxn?jJQ|7&>h;MEVagPKY|l;M2-%Aj)?j#DXFCAr(0GtRNfTit{eWIo*3G(1IaI zTc%-U0mCxp3PW(U(Tj;6kFMZ5 z&QQ3MBhmYHm|8Ly?`R(=Rs%@sxbuANrFO9h^U#qHY#rd7*xY;DdjHcwdbLXpX zalCn4*RAH_*|J*;EhYOrx2Qj~IwmU{eODl%prmp-Tlw7Y-7jhmmsHE_?U&Du_dREk z;;ZB7r+uwW+3$+#M^%|=lN3)yt<2ec + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_invocable_r< Ret, T, Args > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_invocable_r< Ret, T, Args >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_invocable_r< Ret, T, Args >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__invocable__r.html b/dox-master/structboost_1_1callable__traits_1_1is__invocable__r.html new file mode 100644 index 000000000..4659b74f3 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__invocable__r.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_invocable_r< Ret, T, Args > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_invocable_r< Ret, T, Args > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_invocable_r< Ret, T, Args >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Ret, typename T, typename... Args>
    +struct boost::callable_traits::is_invocable_r< Ret, T, Args >

    + + +

    Definition at line 39 of file is_invocable.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::is_invocable_r_impl< typename detail::is_invocable_impl< T, Args... >::type, Ret, T, Args... >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Ret , typename T , typename... Args>
    + + + + +
    using boost::callable_traits::is_invocable_r< Ret, T, Args >::type = typename detail::is_invocable_r_impl< typename detail::is_invocable_impl<T, Args...>::type, Ret, T, Args...>::type
    +
    + +

    Definition at line 43 of file is_invocable.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__invocable__r.png b/dox-master/structboost_1_1callable__traits_1_1is__invocable__r.png new file mode 100644 index 0000000000000000000000000000000000000000..fee3eabb89ac8ac4bccab98d0ec9348cb60e0cda GIT binary patch literal 1043 zcmeAS@N?(olHy`uVBq!ia0y~yU^E4?12~w0q<_CqHjt7C@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+Q?{si240$_;_8__N#vE-Pxs=b{^{RPG-1kE*tRE1EqiXlnQ>#}7|H#c>m!`S5@5`6R zr+$C9YcS~xmwDuBt2cj4t7AUyu6`}La_!Zlvjk^sQ}TRYuzah1{qv%%wOh5n#DvBD z-8X5^*5}RB*Gzp_E8$tyI{SH4ewWDIoO9PFZcS?oiCh=`n!ihB@4@r$v+uIL4mF__xf8qtG+aT z@olMur01^Y``fnV9@pQ5@+ub*z}`HL48PO7kgle>22 zjF9o>QU<#z`VA}!4pGb;pT17L#gMebv_XMCb0x2WOB8d*y*KR(3hLcGIAI0Ts%2F zo&oW*2KO(u=UfKCs7OcN$2(J9y@<^=K2fGe!o6H>(jinWxx3BXltjRe-}P}E1i9> zJh)^-R&`|f`_(h*TK(44UXHQ8UL&7&ZJm!-Oy1j=+4-@Dr-Xmo+V|2ZZS(q_oAr0B zH~kxZ@48gB_wQRTc<%a7eq~X7e%t?d3(NGnSD)M1v5R}#)@zo|$Iq7bxrU!vA7np$ z&(^KRA`k8_&=y;e_~Y5~HM!Q=<#QOUTC^Fii>}zKu{P?bL*d`%V%~(tn+jNBnLitp e<8E60XPm^f{oZk}ic`QG%;4$j=d#Wzp$Pzs!uuBh literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member-members.html b/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member-members.html new file mode 100644 index 000000000..8b33f320a --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_lvalue_reference_member< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_lvalue_reference_member< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_lvalue_reference_member< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member.html b/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member.html new file mode 100644 index 000000000..d0ff227da --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_lvalue_reference_member< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_lvalue_reference_member< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_lvalue_reference_member< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::is_lvalue_reference_member< T >

    + + +

    Definition at line 30 of file is_lvalue_reference_member.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::is_lvalue_reference_member
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + +

    Definition at line 32 of file is_lvalue_reference_member.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member.png b/dox-master/structboost_1_1callable__traits_1_1is__lvalue__reference__member.png new file mode 100644 index 0000000000000000000000000000000000000000..f192380bf4ce7b9fa68b84e0f23dac5cd269338b GIT binary patch literal 1117 zcmeAS@N?(olHy`uVBq!ia0y~yU~~tv12~w0qb$^ES#_H3s@h8%RRnG^e(9PSdHT#66`x5_lR^TDr!3huYq84Jt1_x9*FDql zEZuv&@J37ibMH?tmrvtf_Px?!(xx}XmH}VCSoZx({r2;)UVh=96xF}1ef>H=wrzZ$ zBO!11a@)n{C+xPa=T7{cbF0^X|K|e{Gq>GMyPTIUazV>|-J1&xDu`^zHc~Y3K?7^FNism?- zn58tkZv9vNIk8@s)_=7-{(k@F59=)2R{q{)m!&ytj;8WG zyYqO&w;ImCpZC9iu*#imQ@#E7A=@20Zr7;gzx6N96X~s6H{(QMv9Pka$N8)xZW~?| zpXq$3ldqPczT<-T2g7hCM!IB}Ylm)5d~`fhq& zTrA#>lvc!cUx>NxzVBXf&rc)Wy;_G-FSY!9V%$967m{ioK9!x(om{%$@~f#ed-5Bz zukC-+&;9M*^O}$I<@K_&O80WTS+p*=K4#0I-~TE~ + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_noexcept< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_noexcept< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_noexcept< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__noexcept.html b/dox-master/structboost_1_1callable__traits_1_1is__noexcept.html new file mode 100644 index 000000000..4c0ceeeac --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__noexcept.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_noexcept< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_noexcept< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_noexcept< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::is_noexcept< T >

    + + +

    Definition at line 30 of file is_noexcept.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::is_noexcept
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::is_noexcept< T >::type = typename detail::traits< detail::shallow_decay<T> >::is_noexcept
    +
    + +

    Definition at line 31 of file is_noexcept.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__noexcept.png b/dox-master/structboost_1_1callable__traits_1_1is__noexcept.png new file mode 100644 index 0000000000000000000000000000000000000000..75b460869f1ede8850eb26cde47c12d1c904290c GIT binary patch literal 786 zcmeAS@N?(olHy`uVBq!ia0vp^&wx09gBeI#ssDTkq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ07J9lkhEy=VoqKy)vjUH+xxVfH|Hm(X zZ1Qwi9Xq$o_f*evtqBu&754>sY5sJbxa5u0j7d{mnS&>7dSQ9y>@nM`(;r+eD`oe% zq#C=mUUpe+X6-(U^m`4Fr%X=&O-`wQGwtl!;M143_7o@1x}NE>bq$}``fb^AJ4`$; zS;iiZd35*0oynQE-WDBxb*VC3>y}=1_q0i0BK#BEZpvm9FjC|K(13@Fcs%>Wlvx zJPV0fmvi?2kts{Oe+l_`Ryl$EnUUZXBzD)(TT^u}!@afA4t2Hc&)$9$opZmja`_*& zbNUBmriv-_v#B|V@%l9ANX=k~G%;WV>S9W{c!1@^qDIaMuFS#;-DnE_xh$PBDPE)j z7@iOfE0W|cyeqjod;2_F{e=f_+RPGvuyD`csBp&ey^^0+FTrH?QXTU6!vgd;RFr%9C>~J{-!Eo8MW- zp?*FsJ#)?ZWhuukrU`wSwRvZFW_^83=-j+@xxe0r-ioU0IUAL^+cKx`^hz)3;BSFT zS$~A@68RpV=vTTZGP6N8)||m&^~Tvqq4(Z>+mxV9uh}i$cT`R^f2sgXzzm+QelF{r G5}E)*qII(X literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1is__reference__member-members.html b/dox-master/structboost_1_1callable__traits_1_1is__reference__member-members.html new file mode 100644 index 000000000..f3db826c1 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__reference__member-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_reference_member< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_reference_member< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_reference_member< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__reference__member.html b/dox-master/structboost_1_1callable__traits_1_1is__reference__member.html new file mode 100644 index 000000000..aa58574ef --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__reference__member.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_reference_member< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_reference_member< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_reference_member< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::is_reference_member< T >

    + + +

    Definition at line 31 of file is_reference_member.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::is_reference_member
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::is_reference_member< T >::type = typename detail::traits< detail::shallow_decay<T> >::is_reference_member
    +
    + +

    Definition at line 34 of file is_reference_member.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__reference__member.png b/dox-master/structboost_1_1callable__traits_1_1is__reference__member.png new file mode 100644 index 0000000000000000000000000000000000000000..9e9da21a0964397b5d8f4b1d8d8ec981781b99f8 GIT binary patch literal 1024 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y&012~w0sH~j0Wac$xPt~>Vlf0t(Ri{R`t9vpwq0^R z8Mk#i_h~*yqp0_>+isbhF#PfH{CByd$E)9!T)kdu`}@0$+adMvkg(RYcMg^(+1FW| zf0q1Xq2iXi_nnu&KK@PDHgl%qlzidUNgI~bmiYNxYRWvM`F`zpWqwW1`_F1^zt4X@ zZ-;MJH-G5!_H3!5oSzzURo~bm`{!S9zbxT5Y2VrYMe6ylm#Bv?y(7EnxRJrLr0>(3 z3kALNIC)`7vF9b$dl!^F|8wnM^L(PQe*E_Nuk<{hmwfRE@_apU$t3hp z+xgPaIQz^QF@`_BHH;<<+EM%tN3VzfX4J^AWe_#De#@TV`@te@n%s82WErIsD`)C6ZUq!y0+p<$l@hU z7oK0;^F3Phf%2UGFMF0ZeE5@StACxd=lSHuzeQ_OnU|+e-fnI4PgZ{Uso3+MpGH2r zoj+f`xF@ZD`i4~-aujX%=>u1`He4Yw6?b{Z~F4~ zG^4wE`GQ9-mlalD?YZ~;`1ZT^AHOPFnmK=&vMk^AQw{GW%1+j<{_}P7ygTY_-nY!3 zA8BAsEc{#(c`xW$q1m*H#UXQEORB5&Y)IW$xZ_clQ(v(+XYDz@>xON=EkyZkEB9^a zu{`CTHe-9L&=)8FJ9k%R7CyMPQQ+0(8HRe{jfUd-`OPv5SC`7|UFUMXvMN&hPujak zjjzee?i4>QSo=(y510hHO^WALubO@O`L008Q*!%P&whPk#k%vx>!zpc##;Yd#d$Q- zw0q8r_1EA2n$yO7thlb2(Zr$RpT2Fs$c#zy4kw@THB{H#kWFxP#~OjN<%~BUJCk#; Z-Z*H*n#YmX)PUKQ!PC{xWt~$(69CMc=4$`| literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member-members.html b/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member-members.html new file mode 100644 index 000000000..ad1358386 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_rvalue_reference_member< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_rvalue_reference_member< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_rvalue_reference_member< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member.html b/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member.html new file mode 100644 index 000000000..1f55fe62e --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_rvalue_reference_member< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_rvalue_reference_member< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_rvalue_reference_member< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::is_rvalue_reference_member< T >

    + + +

    Definition at line 31 of file is_rvalue_reference_member.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::is_rvalue_reference_member
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + +

    Definition at line 34 of file is_rvalue_reference_member.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member.png b/dox-master/structboost_1_1callable__traits_1_1is__rvalue__reference__member.png new file mode 100644 index 0000000000000000000000000000000000000000..43d330cd88408bf67b9542cddbbbfad80188c6ba GIT binary patch literal 1130 zcmeAS@N?(olHy`uVBq!ia0y~yVDtpC12~w0EcKfauzDsahcLHL<7QE6%Bt)4;Nlk!%2dIh!4TA~uV0>*ezu2Me# zLw2=i_OF#I8&y(kx9YDx-Mm}->clVlk7r$9T=O_E(!aj(i8B8@yKiUO|MvUu`Tin1 zWoFcyL))C~Y}ZZ?eN^?k!JN18{$|a4+xnmUGrQfs{rj5|(YK|OxF`MH@Nl}c)f}$0 zbw0}b6Cd0t=_r5n?+mm1`MvDRU)MekSGjC<_~c&SIbD@g?RKVr>U^@Hb4_Btv-SM? zr+b#D)ULfhx#r*PuJ;`&GpyFX+q-DdWihQ^Z7#y5^4)pe`;utr_mjetPAYu$Ja3$GZtp9(-%k=tm)mK2 zhL?PPS9iR=cg7a`e|2|$S1z&-`TncCv}<9~uXn0DVz(vUxc_RU`I}tDLq6r(Rbnsb zdw2nZu<4)C$?$r9Np;WQSc9oc*35o4sbt+bPtR2Wlcy}pVEX&V#H-!LR65|>*n|5Y);`OaY9df$cXV&UCxca|J3ddnHd~70yu8{^UGaqaeIHk> zS<|2G%PVuz{5k9QZ~NaqH`qBLCjOdX{{Me}yEe|=8+T~kA@RDX<4dnOWajSwkhCL5 z|CqG@)4hKyw>ezQRQTTbqf*tC1H_T|V0g>O4w3cNq^*YJDI zp0}Um_%~hfkFS5Bxo}r{`iH)U%~lMXovSC^RDTxw>&U#5>XQ!d+kD9K*xIK@mml2r zXwI`IW`%x5`ZqTm+Wq+5RoQakUmI_GeXv~pt~UCj=K8&@<<^C{3aM+1PpH(+FpPNP zmR!2tvf9t+*_ni@kdDthpFd}wZ8^UElxLo=kloXNPePO%GgEsH>OFr_sXgcNzfJyr zFMgW_&;MfM{Or!^cQ>!`t+M`l($m}K{bcv@?e9{~2P=b>6kC7=1B0ilpUXO@geCxS+$3=T literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe-members.html b/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe-members.html new file mode 100644 index 000000000..1c816db20 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_transaction_safe< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_transaction_safe< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_transaction_safe< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe.html b/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe.html new file mode 100644 index 000000000..d0845c996 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_transaction_safe< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_transaction_safe< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_transaction_safe< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::is_transaction_safe< T >

    + + +

    Definition at line 31 of file is_transaction_safe.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::is_transaction_safe
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::is_transaction_safe< T >::type = typename detail::traits< detail::shallow_decay<T> >::is_transaction_safe
    +
    + +

    Definition at line 34 of file is_transaction_safe.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe.png b/dox-master/structboost_1_1callable__traits_1_1is__transaction__safe.png new file mode 100644 index 0000000000000000000000000000000000000000..e25d47079d574c11f3d7e18713ed7178eeda98df GIT binary patch literal 936 zcmeAS@N?(olHy`uVBq!ia0y~yU=#qd12~w0~>V@L(#+qt)=z1HAyG1rg%|Nppp zr~VX&ZI6AHJzo=9H2sp9M~oRqT;|%XoBmx;S(#JK)u9s3IPr;=!lW2hmr1XU6>Qb^ zyp?yJ9XHj==l-NAx9?0-QN3mt{qjBI$NrsXyW{d0Cob{+UGlh|;Ys5^$_uJm@*0+u7v?=jYm-7FPOIEZI>3_i>SS7N!MwkE6P|C@&5gg9Shw(%Md~Dm z;+Lt<9n`*;_DuS+?eAjQNpGH7?BAGWQOfRc`J46qZsQ4;wLGg1@2hQ_!yqa1%vk00 z@or-k&nfZt&WCh2Z>XGVvNC&i?)qDKGfkQ&HOw$7V>}wI=09_5=lz|jDlhAE{u@rX zzOlSsQg!COOCE0pJiXR5coc~Wc&=koIvMJqvJ)6e*O@)C*G_%Qe;_{5o*|W$MPc*& z`ASSBq5=oLJP35*;yAESlO14B3?V+<=x0Z^P`&e!VUbU(3U)sMcFiU;AtugHZJy8HS77tXVmJr7B!E-p9)F;1b{8OI*yG9z?Bt z`~TbZl|`(ZYI9QG?ccNi*NeRM{RXSL8}^;L_y2SHEBm~zyZU^ud=*arsabYGEp_VY z5A98f``UTGEwEY8_WO>Yfm>vB$ zSfQ{|?Rs^=LFXXlI8JKn5LKXFm_ z^B+$0Q&k6|Z@$*wo%$>Bdh)htwX+LU6qfbGI((dVGB|DagTK*i3*Ovk{$zD@QYfRx z+cJg&8SxoQ$~YcqDKxBZU|7e*w1W%GdCj$Owgp7S$2Sg?YN?Hni{GI+ZBxvX + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::is_volatile_member< T > Member List
    +
    +
    + +

    This is the complete list of members for boost::callable_traits::is_volatile_member< T >, including all inherited members.

    + + +
    type typedefboost::callable_traits::is_volatile_member< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__volatile__member.html b/dox-master/structboost_1_1callable__traits_1_1is__volatile__member.html new file mode 100644 index 000000000..7adac6c4c --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1is__volatile__member.html @@ -0,0 +1,177 @@ + + + + + + + + + + + ttg: boost::callable_traits::is_volatile_member< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::callable_traits::is_volatile_member< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::is_volatile_member< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::is_volatile_member< T >

    + + +

    Definition at line 31 of file is_volatile_member.hpp.

    +
    + + + +

    +Public Types

    using type = typename detail::traits< detail::shallow_decay< T > >::is_volatile_member
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using boost::callable_traits::is_volatile_member< T >::type = typename detail::traits< detail::shallow_decay<T> >::is_volatile_member
    +
    + +

    Definition at line 34 of file is_volatile_member.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1is__volatile__member.png b/dox-master/structboost_1_1callable__traits_1_1is__volatile__member.png new file mode 100644 index 0000000000000000000000000000000000000000..e62b518bf2af8cb5cba092fa686c71038c303e6d GIT binary patch literal 947 zcmeAS@N?(olHy`uVBq!ia0y~yVB`a`12~w0OMsL_fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1GAH-i(^Oy174n-g@LO)-J_(bQ{E+PCFrsZ3q#|8PQzD4%B-gu0e)aYt>Bth{Dg zylKgVE86U}^&R!Qx7}}F{NLhu%@uFH|EmkPZ2R(S*OK4!>qM_#TAH%@)}KQgcAx)R zoiBMfzwr93!?o|mY+siVC3=Uc@AQJbzm49Wd;6pB zo~@JTuC4tAM?UhMtFZrZ@X2}3hgL5nkMnM2ZdbA0c)svYWnZn$VZl{;e5bdq{e81U z_wHRz_cHG0-<~pwGu17MLQieAl)fV~ZO_hQzco}0J*$%L&$ZSoP-*}Cv2ud-vOLXl zk4wV8PtQ($Td$cp>8g6&^BpF)530)MPn%$H*;S-#_rA+#l|1?1Fw0E(Qor@T#PLa= z@9pQ4-{pPDc=cVylUg#9)*M2i#QQ*@Cf9I3A)X<%m098T_3)1xG7QYs7d7NsnG-Tt znKy8;Cy4SL(2{8gwP09Xz!3J3Va*}Nh*okW>bSwy$xAuh+-A<@{*XZ;3St_2AGg-z zRpA@6(*lDWGm5Y0uZWG_x4+E1aCp*dt$leo@3gx_=zbr=Qy;%QS1-BIZ_ktU-RrZZ?|-)T^5h@a7hGRaG&fhv zWAj|LGwlgi*n1b;tDRXUar~R?Uh|erS(~pH6D7~?$d?emxLJbNUbigcvc8WW$703{ z98ycCaBgLGpH(i^(q7SeSY5#-V)KOWc{08y0`CSm&3>79(@n%bnOXZd|Iz2MuP4j) zyZ^cs{!hp~X7A+JPZ;Kk{|=d-^em^KID&0=$%g)__s4fXwzBm(|J8bDa>IuHN;^CL zqT^R|pY}P<+Hp>H^X#SPL)Y=7p1%Jg&GJ&l^|brj4{v__SLjh|%S^pRC5L6b%((?h zYBw`X`5SF9O=Q|6@dH=n%qnE$AKc3-$B3D#hZ$?PZhHHZ{cPL(*niuDy?{B4!PC{x JWt~$(69CTWw}k)z literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1qualified__class__of.html b/dox-master/structboost_1_1callable__traits_1_1qualified__class__of.html new file mode 100644 index 000000000..fbd1757d2 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1qualified__class__of.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::qualified_class_of< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::qualified_class_of< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::qualified_class_of< T >:
    +
    +
    + + +boost::callable_traits::detail::qualified_class_of_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::qualified_class_of< T >

    + + +

    Definition at line 48 of file qualified_class_of.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1qualified__class__of.png b/dox-master/structboost_1_1callable__traits_1_1qualified__class__of.png new file mode 100644 index 0000000000000000000000000000000000000000..2a1337a4615a1c240be05bd8928cb2d5daedc916 GIT binary patch literal 1138 zcmeAS@N?(olHy`uVBq!ia0y~yVDtpC12~w0!#)j}s?sy>!;^>RDe|0Vf&mm-@H2Yi@@XFS;)aQ2Du zr0jR$9(LOziz6qVnNxn}>HbeQe5b8BVc)m$mYx0m%g;=9|2KFU5H>gdZ1u0~yG}4w+mI~&R19Y{7P!#lwIdDjGD99R{5STTx#-X%V)1wcCAke zz89~#S@mqw=9QlJIA=NE6iz}7qmap#~*L<@?a`*qb+Ql?|ZA~O}_u~?xZg#rQGyA^RIYU@9TcDm))c_YSO;7rQzDq-^~_>$~y*4iuro~ z*%Fn%@m!N8Jz1!r=_v`@21#?Z|eS082P4xP?3p`zu<0sp&J# zOP^R~#{2k}EAyI{OK;n9?Z3D49H;Qp2N~Da#wH6bXUUwy>pW9*vfZU=OU_=+6l9(8 zQtIUAQ?mq$PTJ|mPqutkC4YLBsqmz&p(nppHP3spFSdSn`^h`^--S*S_q-*t>T!L^ z z%c|EQ^L{_Gd3%?&`2KG8=k>+!*?wsLZ4#*Od$QMmjd*c`=-M5%nb{4du6|4vFTy9V p{HQ>W%)1`TrUYp$owDvF|G{qO8I6-4`~(&d44$rjF6*2UngGM#40r$l literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__member__const.html b/dox-master/structboost_1_1callable__traits_1_1remove__member__const.html new file mode 100644 index 000000000..15ce507ca --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1remove__member__const.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::remove_member_const< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::remove_member_const< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::remove_member_const< T >:
    +
    +
    + + +boost::callable_traits::detail::remove_member_const_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::remove_member_const< T >

    + + +

    Definition at line 47 of file remove_member_const.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__member__const.png b/dox-master/structboost_1_1callable__traits_1_1remove__member__const.png new file mode 100644 index 0000000000000000000000000000000000000000..67563092eaab8dceaf9e71c36c62cfc6a512e39b GIT binary patch literal 1187 zcmeAS@N?(olHy`uVBq!ia0y~yU`zwD12~w0r0g1f1t296;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z+&X-;uuoF_;&8wNsqO7SZ6<8Rr%k2 z-^w4%oKJ3?>?upn*LlxtDIw@ejVd@X$||-aD7OC#bv>uDy~fa?dj~+J4fLFYSi$t*?6a^KVw+-DQ~E zUm4qytJ}B#aiLM(jPKL;p4%2bU*7EYo1aPM4&PtdKUTUWXLkBxo|I|E7Iy11m--$) z7dv17?p5rW)!Uz{Z(ZqfZ0f;)M7Fy*Syq~hV|~}{5Ig_U^`J$H^Ww*Mk7t;-ykFmubnB0Hw_YKy5ww`6;kL?ftDLNZd?|996?*3UZ8+R+* zIotlw^x4B0nLXQLHp~yRmoI0R`PY2DTdzee%V1D# zun|pb0J;}}?;iWJ=w|23z`MG)FJCEHQDDblzoOsjn_uov-M{+re9y4t#97iQbWw{h^lHanl(vhw(Xi*hFnn0Is5+_fJmDj(y%9yhu5K7B@G z+%aQ8S0nko48=QMyxje>^jGinM`?L>p4`(t5C6I2DfL(=R_)0CNwfdj-px<0eq6G6 zb#>kE#4W~mmS3thtDLj!*td + + + + + + + + + + ttg: boost::callable_traits::remove_member_cv< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::remove_member_cv< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::remove_member_cv< T >:
    +
    +
    + + +boost::callable_traits::detail::remove_member_cv_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::remove_member_cv< T >

    + + +

    Definition at line 48 of file remove_member_cv.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__member__cv.png b/dox-master/structboost_1_1callable__traits_1_1remove__member__cv.png new file mode 100644 index 0000000000000000000000000000000000000000..e84bac2c71be8c24c8016050d560824329259b04 GIT binary patch literal 1166 zcmeAS@N?(olHy`uVBq!ia0y~yUXlZH-zQI9vVdFr zON96f?caYl?k_tg`uf|(t2e)${(U%Y_F4I|!~E+XtLM#no4EDO+g*X|z1vQZbctXN6O>89;m#xJshFMD>DneKcPb>_6R?=eNL-f#K#?$Qj0>yE9P z`?#@S3QOB$(>^^pADi9{KW@Mgad(@oM6y2?8D^TN*ZJ#+7V{i*V9w}jPUt(O`fV|vnV%kS@wxZi#4`OD&-e@S_^mWR}8 z=RUo5-Sfbo7*D1`Z?@yFQmWrQ3#)g}>;JpX?E2g9hp(Rf|JeFw+)4LW-=pg*bdN1A zZ$Dpgvv6B0pK*Ob*XojqV&?+4_ZsH+OmaA)<*Djvbx~lxO79oVHJ_IXOxmqd8)oh% zyQ@d*KgXI$U-DOO@VfMV)dsJiU0kbGmac{|UN@G`TDH=}_wp2thW)Pb45|%2qG1g= zwY8$*4Jja&?FzB*h8Q4=f5if(C95~k7QfCvbSo-*>9wfSBD@P&CM-Y1HDMhxJ{>XN z#M;ny760j9*Gzdu&#@~6np@plSK6@sOMBwp?NtrecU}J&yZ&^<^w?RTk=T`QgYnS#%-e|F_4t&-VUhx$VgCpzEF&(_z+`6JyWJP!ZVZy5{0>-;+l! z{`~h-E_w09;2CSAPxigPr{DayKB9l}+hrS;{8Z-rVYgTe~DWM4f+K52^ literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__member__reference.html b/dox-master/structboost_1_1callable__traits_1_1remove__member__reference.html new file mode 100644 index 000000000..4b76db978 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1remove__member__reference.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::remove_member_reference< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::remove_member_reference< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::remove_member_reference< T >:
    +
    +
    + + +boost::callable_traits::detail::remove_member_reference_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::remove_member_reference< T >

    + + +

    Definition at line 47 of file remove_member_reference.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__member__reference.png b/dox-master/structboost_1_1callable__traits_1_1remove__member__reference.png new file mode 100644 index 0000000000000000000000000000000000000000..b666cbdfe05c25ff353d29918b14c6edd0bf5d5a GIT binary patch literal 1240 zcmeAS@N?(olHy`uVBq!ia0y~yU~B-g12~w0q*JTr5%cMz5CaI*ZVDJc9#MPjpx(dd~V!xo0 zxkmW%>Yp3d8{D5z!gd-pcUYtk1N^Y)zl_I)u|jh_5b_VoKNaUeao^q2|5ec>N& zdNvKL=e;ujZ{J^bO!UCFjawuCKmD7!Iq!4(?cD11kNuBiyGQ8mju$U|u*KJGO_4$MJCL%)W^`G;Ly;bQ^9Q&ua}laPDl%lN$39@e`81^B)%S zm};(?{n*nbT+Yw$K;8~EfpeGUo!q)9C;k5VD|bz+|6f?noY1y$-Zz<nm*?%7`kvuK=Z81vPhYBtx7;oL`H@cP?zcP*OCEQo=bGHk z^DpDJ$ux_9+`;dEpme6Z^R7zvIU)kVHs{|pocEsavv@g+YX!geh184HRqQ?MemoVC z`+hUAB=_@r%ME|8ru|xDH2cYmtrGngV;A}AOQ%P__|V2R_mS4)eU#Sf5o^w91y(|5r@<+PueTEGmVh!K_|91V{4yGG++st0?-*dj$;?A>v zgTr@stt;-o&}&g}OHC;3!M5XK-~{*Q@TbPdKQkFl8|9=eEIof>hmNwzjL7w7Qq9LB zpPTeB-4tAW`QO{e)){{jYF{L}?4BtXx^cVLg@TuAn{Kx+V>!y=&akn6_N0?1EHmws zN~F}zvwbwo5O^wP)AE9SPw#_lhQ3{omTib}cjx?cvtatwd-h*A8`oYN0w4&m)zcP z_lf_kv*FX9&bMQ{o?6HA@|kQwP>P+dNsYWA251Tb?bZm>#f`8UqAce z*0cEH6~AAf{}TCBI5+BzM6_7jcK;V5;R5FCSNdE#8nQU==YfxVCVo|C049U`t92MY zn|?bN$hzZ7v*7-EA%^!W{TLh;abdx63{lx@uS8{Q{^Fm#$nS{F>rYRC#Snw1tDnm{ Hr-UW|rer`7 literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__member__volatile.html b/dox-master/structboost_1_1callable__traits_1_1remove__member__volatile.html new file mode 100644 index 000000000..fd02bdb88 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1remove__member__volatile.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::remove_member_volatile< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::remove_member_volatile< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::remove_member_volatile< T >:
    +
    +
    + + +boost::callable_traits::detail::remove_member_volatile_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::remove_member_volatile< T >

    + + +

    Definition at line 47 of file remove_member_volatile.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__member__volatile.png b/dox-master/structboost_1_1callable__traits_1_1remove__member__volatile.png new file mode 100644 index 0000000000000000000000000000000000000000..09411965dcefcd7495a0b0149ca487b1b2af4753 GIT binary patch literal 1221 zcmeAS@N?(olHy`uVBq!ia0y~yU@QQ#12~w0q`Az!ejp_g;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z!Ku=;uuoF_;&8wq9+!2X(@Fz8L+R`mLrza_kd1`qEwQ=oGQC-#G9kd9};CtXZ z>6uk#Rp|F=Z*yNrY0WviWODWH0?$cy7w;-AmXAMb8n*ST|D-vS8tb2~%KoEyAph3g zND=m$*uLD*zT+RQO!5wV@85gwTm1d_+-~%I$P`oAxDTmy!SjYBe+hLVww|!G2jsow_B}*hW9iF>%N~XjygLNA`RhkzkKDLnF{be&}dtRFM{Pq8IKE_G6Ht7A? zG3TJ{_sOz#CNa$X=}#55r*{2a^7F)<*uop^vlRo3d){WA?_61a!RK{Da^9Bj-zxrW zva(Mr>^*Q;RxnTZf@0Lv25i#-nWEnfjFM)jDzkmOCW1T{I;QH|G zE35ziuD<6ZnqxN8_u|@X$Lw}7XRmo5Wz zm8mK(H!e$1&0O}L>EFJjL#j%i_gC|$)n*vI{-@mFed)g|Ys{p&Rq(ijGvW?RPmT0C zy-7!t>4)}L?gcCp7BlfpSRTK>%few6mxaT;xINt#4%2|FRb1u{i-0su@xQ1CYqy4F zt=%efk->{WQtJUjCo%}hvDCXcYJT=*cGo>ThDO*%i#w5 z2TUJ4Z}G{Tr=O?JRlS$J_`w?i5#I1e zN|pNWmH*p5u=TePzxH~`d^h>MyL0${CkU%;Tgx{qQ?}uJ@3(vN=EjFTKbt7LqHX=} zm68v#=jLkdRy=#QVrJU2-`BVLpFbd3uwZ(HU)nq#>5@mz%+YSE?(aRk{_>Yhy*-l; z`%gMHUGwOlJD!?_8fV1_-kU8O55F~=Z4(ikeEf!{ zPkw)bh_b|G=kuns%?%9}OlO~B&&U_R^uzXV_<{S^FHBy{QLvKV?ayaFhM3i5IHEl6 iKy>!nD^b~+zu0wedAC%Q{Img + + + + + + + + + + ttg: boost::callable_traits::remove_noexcept< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::remove_noexcept< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::remove_noexcept< T >:
    +
    +
    + + +boost::callable_traits::detail::remove_noexcept_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::remove_noexcept< T >

    + + +

    Definition at line 51 of file remove_noexcept.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__noexcept.png b/dox-master/structboost_1_1callable__traits_1_1remove__noexcept.png new file mode 100644 index 0000000000000000000000000000000000000000..18892d32b73b6b8f572cf38ea133ba362e2c4a66 GIT binary patch literal 1111 zcmeAS@N?(olHy`uVBq!ia0y~yVDtd812~w0q>qJ+Gmw%9@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+xeDDX zy`>3NrSGTxy24v3dv?yj1)tULcj{C@M}>Ce>7ho8xpb$^fiJ^jAg@3yR)$4cYcyCdiAGW{Vc#h>Oo z>023N(ac;<&!ySQkA>#FHt@TiDw26;PpqqNw%eK0(yYmQRY^Gq&e=TG4;*Z8! zZxbuhk~TkAYY^n%zI1+Lv{lg!UgMSJdshFgNZVR{J@HDkP_0?*8X>}|fp1+vC{FK!6{69r#i3+QRqgPM^ zoDrw6JabmiWfR|imJc6)F?lfB1UIo%tXscch4VuMr_h6)aWa!t4g{-uGzh4=H2|ZN zw)n50g14q>sF&t>7e=640-IPk0+8^9+zIN3`Fz&DyBjor*TQv+XEJ~IoAq~XxWR$w zUj`GN_c0tQRaR-x-pg2YbNQ~=+xy>cG!C2ax_|5WzW901CB7wo<`;jMw)XWMo05DP zwp})*A9uc}=XfI2ugU^SFPm7dCoYPc90keiHWt3OLgp)SgmIM>DReG^wwcj ziSxd3GcJAO{-p4Cj+)Bks^iwz_FufYjYqD3gWT-rw>9QB<~%ZXxmLBR^m@7MO*&7WiD9Tu5g>>RoR~fM~?lxcB9?0nnmcw?Gv + + + + + + + + + + ttg: boost::callable_traits::remove_transaction_safe< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::remove_transaction_safe< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::remove_transaction_safe< T >:
    +
    +
    + + +boost::callable_traits::detail::remove_transaction_safe_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::remove_transaction_safe< T >

    + + +

    Definition at line 51 of file remove_transaction_safe.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__transaction__safe.png b/dox-master/structboost_1_1callable__traits_1_1remove__transaction__safe.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6eea959a941cc2635254aa4ad7dde4dc1dce5b GIT binary patch literal 1208 zcmeAS@N?(olHy`uVBq!ia0y~yU@QW%12~w0r149>O+ZQ_z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opyd^d@lq~iOf=GkL|rLtyclV@+NQ#q+A@$+ubTtkkXDtBL9 z+`)dc`pIqXoA*!ud|&gX$NJOb;}_G9=bzV~ExYYs!R_aBLigVi&$4|pt@zI36{X8> zsr;)c_59JBd;Q6^+-pgjria|-{gk^cRdedP-k#_@-*(Pjw?j%UM(ys3DOSGr#jSg$ zi|(XcbI%>YcYb_-R;*jP=C*&Ccn|k!13}}Bwa1suDLIkz>8;H6scek96V)DOmt0;k zcfa1H3!bl&zPQc$nOh|L#q!g$J#!-8sDHPZEVpyF@wuO8=kV<;Om@E&oBd0cC3$a8 z)}d?rEI;K{h%a`(cW2t$+FvX?{qNqHc)9pi{-bm6YW&W5Z_i#o!F$!({#TnT+iJ3c zCT7pS`Si1wd7UnQ_D|PH1J#eKrrj48`)u01YSFE{U-PbidS+I&d)oK!KLaCPm4^1N z%m2Ij_;$-VXXnJGMPG@Wy|Jo1p&vp9UqE5xBw`y4B#HWev zR9UL>Qdnxy)Fl(^xPDe$HJRS2@^{TX)mOcfC;kjqn7*Xmy)$M~-Fl&&Dy>=*y@OW3 z8F443r$z>y-lXHm^uziq;{>LTASL#WE63f9*f~N#tnLaU_KsjBc8)M6c8*XWO-p?B ze)pa!K|xEW2&r;8a4EQT$|!^&!X+PB#s z*#0$olCQ}8;;UFuLv(E4?>j;F9ro?L`1k0%|L2aM+o5bNxn{hlujJYT{RCDpQ(cJIyP@}8Z_y<+a;X(>Yc+|0k;m};?ojko&R z?$4=w2WZjC-vw)V=QM-z8@Kc92|OeRzG>gI$s)8%?k-!gZ<$9q4?BxZK} zd2f>gd)JvwyX*L@Z_d1@ALYuvJzTffiSNp_>Mz>0ZGTRQ>^lAYYQdicVy3zyGs%!xindQnB}ch4)t!H_W!&Z4-4lxmHGGnOtq+&FtFqM+85{kUdFv)<-Vhjzw2`!&@Q)hSRsT3$DQ!jR1Njg cbo|AidD#2Siq5VOU@^ns>FVdQ&MBb@04irIcK`qY literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__varargs.html b/dox-master/structboost_1_1callable__traits_1_1remove__varargs.html new file mode 100644 index 000000000..5782a67f8 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1remove__varargs.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::remove_varargs< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::remove_varargs< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::remove_varargs< T >:
    +
    +
    + + +boost::callable_traits::detail::remove_varargs_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::remove_varargs< T >

    + + +

    Definition at line 48 of file remove_varargs.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1remove__varargs.png b/dox-master/structboost_1_1callable__traits_1_1remove__varargs.png new file mode 100644 index 0000000000000000000000000000000000000000..de489f04b40744fd9e389e82cd0034d383b510cf GIT binary patch literal 1111 zcmeAS@N?(olHy`uVBq!ia0y~yU~~ks12~w0&`BiaQ$NF^!4n zF}L^~Ym)yz_vE?)!yW%3KIiN5GV{O@7E!*|%|6OQYA@}OoH2q@-o2@e*oez|$ zsp~!)zWs*M%Z5am9H!5w3qQQj-8QjWzohc={U4!Q^qQuwy|&Wi`n|cDmrwO= z*4x6HeS1L}Q}(Zuy8Awhd0&c8%6RNFQ^oRLYC+cKMLwx*7fd_V(0tyG56SP=%_)4*K zO#H_HjMoMZpr8|wJAsXnn%tUw2ZOvky)>Vyi8Qc05JR(MI`6y?YmKUu_p08jR^Lk5 zVa8y8?AHdSJxAIlZR9x~^xl#F$=dvxP51YfzuQ%JA3FNrSMu4-U!Q+5Y2SP6%i@_2 z!*;DHmR|UJ<5`ol*S`euJgC@yu<}zF@054OS~1Vw8o#MJZ(TC?%UXHWc7d9!_o>6P`@w-*K*wZE-ceazNuu6bc-r%xdxA`lAOIqjMJjj(hQG z+5V5GGvlv+U3=%%t?U=fFE1U>TG%}&yM5bd)4$&Nh6ny1+OGF=JCEPR|5Hyh6`VRM z$KELXz^?v1Pu=@{e=kP!e8@$MI~$&9L0&;#n%{r0M_N1n;BApM1(pH~p00i_>zopr E05m-o$^ZZW literal 0 HcmV?d00001 diff --git a/dox-master/structboost_1_1callable__traits_1_1return__type.html b/dox-master/structboost_1_1callable__traits_1_1return__type.html new file mode 100644 index 000000000..adea46684 --- /dev/null +++ b/dox-master/structboost_1_1callable__traits_1_1return__type.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: boost::callable_traits::return_type< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::callable_traits::return_type< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for boost::callable_traits::return_type< T >:
    +
    +
    + + +boost::callable_traits::detail::return_type_impl< T, typename > + +
    +

    Documentation

    +

    template<typename T>
    +struct boost::callable_traits::return_type< T >

    + + +

    Definition at line 51 of file return_type.hpp.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1callable__traits_1_1return__type.png b/dox-master/structboost_1_1callable__traits_1_1return__type.png new file mode 100644 index 0000000000000000000000000000000000000000..1299ec2bc7be16387e124bd34c5dcc1b814c6b2e GIT binary patch literal 1066 zcmeAS@N?(olHy`uVBq!ia0y~yU{nRN12~w0WQOA8W*{XI;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z`WDb#WAFU@$KB#MQ=2C*k+#(t^DtP z@8(C=&e?O`sLVX|O6L0!w}b_}kMwVE%RRX*_coK6r9a~g91v5P-DP5YR z;uU&VLJ4j#VrvtZiIU%&q(Y?fAf9y+E@O+d2>Fz%J~1jdiSkel{4N~ z@$Ke|2-?f!U7c-RyRziE#t#35ng(;_3`Kp{nXOYQ@6DE(U$DXVZpEw*m;2T~*f*=x z?p~p?;I_oyk!S2)KYtMS`u2_Yrmr@v4h!$!d}U9)QKQ+N`j2HcbC+*jnid*&+1BjR z&d@!o)Bmsg<~#e`q{`m4nc+*S4$ zQnxE9dsjcpjQhQ7>lQ!T!?Y*~!0R@$_*%9WmN^Ury2Hh$+*ZujEU zy3NaMA7_=V%{`;?`u6$BZ>^41z24T=^~6B~IYPGeBIB;?={#nj>9%^;Y`si36G z=mM1N0IDQk@?+mLFHKd=rBhf%8dws%P))zHZOaNXPTQ{RCp%uRGGkrG+mLK|Mf$S^ zzfOby$Fyntu3XIZ-k#0)?pMpwzsfTAAEBm=VxFzHJ};Df7`Utd+lmU_msOXqu9j8~ zSpR<87XMp*@?Pb=O}|ZMGa0{9c1tYydNJzOx@+s!E9a!{;$*z@FxWaz<v=Sqx7qVx9{zf5BwG$-db}1a{cCz?GvRB%~N{a_jy_j)81R=xwHCeOA=37 z)tY66nD~Fc%$JX`J6iu8&d!`$bxbY)+0w?FiM_>! zZqw?F_0OK$QD1+jvTTm|vNu-!w~W`NJ-BtOW5e%_%ieS@jr#fhoJGU;=Nni)c-5W0 zWW2R5?IJVJ#{8^esRP + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    boost::serialization::unsigned_int Member List
    +
    +
    + +

    This is the complete list of members for boost::serialization::unsigned_int, including all inherited members.

    + + + + +
    operator unsigned int() constboost::serialization::unsigned_intinline
    unsigned_int(unsigned int v)boost::serialization::unsigned_intinline
    vboost::serialization::unsigned_int
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structboost_1_1serialization_1_1unsigned__int.html b/dox-master/structboost_1_1serialization_1_1unsigned__int.html new file mode 100644 index 000000000..3b9b29b5b --- /dev/null +++ b/dox-master/structboost_1_1serialization_1_1unsigned__int.html @@ -0,0 +1,231 @@ + + + + + + + + + + + ttg: boost::serialization::unsigned_int Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    boost::serialization::unsigned_int Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 13 of file traits.h.

    +
    + + + + + +

    +Public Member Functions

     unsigned_int (unsigned int v)
     
     operator unsigned int () const
     
    + + + +

    +Public Attributes

    unsigned int v
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ unsigned_int()

    + +
    +
    + + + + + +
    + + + + + + + + +
    boost::serialization::unsigned_int::unsigned_int (unsigned int v)
    +
    +inline
    +
    + +

    Definition at line 15 of file traits.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator unsigned int()

    + +
    +
    + + + + + +
    + + + + + + + +
    boost::serialization::unsigned_int::operator unsigned int () const
    +
    +inline
    +
    + +

    Definition at line 16 of file traits.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ v

    + +
    +
    + + + + +
    unsigned int boost::serialization::unsigned_int::v
    +
    + +

    Definition at line 14 of file traits.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t0c524e1ccdbd085584c50c29db361da9.html b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t0c524e1ccdbd085584c50c29db361da9.html new file mode 100644 index 000000000..7d659c9f8 --- /dev/null +++ b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t0c524e1ccdbd085584c50c29db361da9.html @@ -0,0 +1,153 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Member List
    +
    +
    + +

    This is the complete list of members for function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + +
    add_noexcept typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_transaction_safe typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_varargs typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_member_pointer typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_return typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    arg_types typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    expand_args typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_member_pointer typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_noexcept typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_transaction_safe typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    non_invoke_arg_types typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualified_function_type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_noexcept typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_transaction_safe typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_varargs typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    return_type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    traits typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    valuefunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t5ad59d6265ecfbefdc95861379aa9867.html b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t5ad59d6265ecfbefdc95861379aa9867.html new file mode 100644 index 000000000..aa32f297d --- /dev/null +++ b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t5ad59d6265ecfbefdc95861379aa9867.html @@ -0,0 +1,154 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Member List
    +
    +
    + +

    This is the complete list of members for function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + +
    add_noexcept typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_transaction_safe typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_varargs typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_member_pointer typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_return typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    arg_types typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    expand_args typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    has_varargs typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_member_pointer typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_noexcept typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_transaction_safe typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    non_invoke_arg_types typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualified_function_type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_noexcept typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_transaction_safe typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_varargs typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    return_type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    traits typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    type typedeffunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    valuefunction< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html new file mode 100644 index 000000000..b595ca275 --- /dev/null +++ b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.html @@ -0,0 +1,595 @@ + + + + + + + + + + + ttg: function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Return, typename... Args>
    +struct function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >

    + + +

    Definition at line 32 of file function_ptr_varargs_3.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using has_varargs = std::true_type
     
    using traits = function
     
    using return_type = Return
     
    using arg_types = std::tuple< Args... >
     
    using non_invoke_arg_types = arg_types
     
    using type = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using function_type = Return(Args...,...)
     
    using qualified_function_type = function_type
     
    using remove_varargs = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using add_varargs = type
     
    using is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
     
    using remove_noexcept = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using add_noexcept = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    using is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
     
    using remove_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<typename U >
    using apply_member_pointer = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<typename NewReturn >
    using apply_return = BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<template< class... > class Container>
    using expand_args = Container< Args... >
     
    using is_member_pointer = std::false_type
     
    + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    +

    Member Typedef Documentation

    + +

    ◆ add_noexcept

    + +
    +
    + +

    Definition at line 68 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + +
    +
    + +

    Definition at line 77 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ add_varargs

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs = type
    +
    + +

    Definition at line 61 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<typename U >
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 82 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<typename NewReturn >
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return = BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 88 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types = std::tuple<Args...>
    +
    + +

    Definition at line 45 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<template< class... > class Container>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args = Container<Args...>
    +
    + +

    Definition at line 94 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type = Return(Args..., ...)
    +
    + +

    Definition at line 53 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ has_varargs

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs = std::true_type
    +
    + +

    Definition at line 39 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ is_member_pointer

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer = std::false_type
    +
    + +

    Definition at line 96 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    + +

    Definition at line 63 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    + +

    Definition at line 72 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types = arg_types
    +
    + +

    Definition at line 46 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type = function_type
    +
    + +

    Definition at line 55 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    + +

    Definition at line 65 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args..., ...) BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 74 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    + +

    Definition at line 57 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type = Return
    +
    + +

    Definition at line 43 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits = function
    +
    + +

    Definition at line 41 of file function_ptr_varargs_3.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    + +

    Definition at line 48 of file function_ptr_varargs_3.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + + +
    + + + + +
    constexpr bool function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 37 of file function_ptr_varargs_3.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.png b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t69354928696edfd1a845c0b5fed36de2.png new file mode 100644 index 0000000000000000000000000000000000000000..354c3396273fd7b07eebd4861e05ebb9325bb520 GIT binary patch literal 2008 zcmdT_YfzI{8cwm4hz)eX7NlHuYODy6fKItXY5_3<5fLP;auJBB8ZHZn1~3%2wIVF6 z!6pi1qiZ)%1Az~u5dul%t|_1}0cjG2V2BV1fkonH%-YEs0)fELhr;6^kaw{lkA-dlTc?LU3m`bgM#o2(OeT=NT3SC}-TM!a zy{&vc-?Cin26mwZahPKeaFMwPAII;5K&_k8NLgBm|Q};W`-N^ zJ?Ok!{|)7CW8y>R<;FQ9!IMDhN?z7uU`Kj)fd)%&g8RAKfG55gT@5Lj~YcANYTPOMX0D)9Ae(Bl+-6o5A z7Ss(hOSK~X^EJ&?Y3*+(KwRG#5v!sR6)D*}-`dBR?O%42>zAMKXe;anqk3(Vk0cQb zQq~_ty)0Bia}}?lysDzaSau@01O=+ygN`GE%5Y|?T~-;XaJp<;n0bh27W>P+cSiqj z^e0>3w{QB`G26GYJu~;7~>UTVNVghes?dt+zioIADf1 zuy{}NwBVQN{|lH2`&~Sn&uR^ZGI%2Q+*^ML5s0~dZ&WS43vVzKpWK_ptYCX7-mp0d zE5hY_tC8yEp~$OQx9@J9@0|H6^3_x(sSdZ<^H}`o_6$sY;~+}HoM$Q?{w zEh%llPPS09G@LNa4xqlucpq#0e0_AFt!5z~5bs1e2+r!m0O!p1%`^71@)ryn#WjLm zpr^#QH@-_$&FpaYn)knhMoc)R*6N<`(i-#omWv#u;RyB7Ao677@oD&GuLo?BZrk71 zA6T2l+pWyM6o=sS(t=s%ol0ZYHJ{ZoxTZGS&Z=N!9#xoLkGv|IS)fsrd=hWzB`vU3 zA8j9Pt1ri<)aiO&*Fd$fiBTOEAzF8)HBFCt`#8+*O8Coev6M>}5FY;0{pmXUG3|w`xT&nI7wu*;e!ZRH1%G=%;rIx*kSSn5IWSK1X26wHgAqqixWb>^&i&Qr*}r^6M*hT9hdFQ zgKBWSYXJ@dM!m?Iw)d}(<~-AhvkT8!q~2vM<+vajBe>4sMk;>Lc9Ilnx}W}@I;=we zFrL%sUB8<8jftaqCW|eNL#VW>>XwZkyL*yC*-=~t>njTf9XH*aA`HGBAGycg=Hvbl tNLRtn5lo~vds+Ax1pI~}=m<x;C@{{fkc{eJ)e literal 0 HcmV?d00001 diff --git a/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html new file mode 100644 index 000000000..a1058fcd2 --- /dev/null +++ b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.html @@ -0,0 +1,575 @@ + + + + + + + + + + + ttg: function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Return, typename... Args>
    +struct function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >

    + + +

    Definition at line 32 of file function_ptr_3.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using traits = function
     
    using return_type = Return
     
    using arg_types = std::tuple< Args... >
     
    using non_invoke_arg_types = arg_types
     
    using type = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using function_type = Return(Args...)
     
    using qualified_function_type = function_type
     
    using remove_varargs = type
     
    using add_varargs = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_VARARGS_CC *)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
     
    using remove_noexcept = Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using add_noexcept = Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    using is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
     
    using remove_transaction_safe = Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_transaction_safe = Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<typename U >
    using apply_member_pointer = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC U::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<typename NewReturn >
    using apply_return = BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<template< class... > class Container>
    using expand_args = Container< Args... >
     
    using is_member_pointer = std::false_type
     
    + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    +

    Member Typedef Documentation

    + +

    ◆ add_noexcept

    + +
    +
    + +

    Definition at line 64 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + +
    +
    + +

    Definition at line 73 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ add_varargs

    + +
    +
    + +

    Definition at line 54 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<typename U >
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC U::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 78 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<typename NewReturn >
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return = BOOST_CLBL_TRTS_ST NewReturn(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 84 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types = std::tuple<Args...>
    +
    + +

    Definition at line 44 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<template< class... > class Container>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args = Container<Args...>
    +
    + +

    Definition at line 90 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type = Return(Args...)
    +
    + +

    Definition at line 50 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ is_member_pointer

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer = std::false_type
    +
    + +

    Definition at line 92 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    + +

    Definition at line 59 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    + +

    Definition at line 68 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types = arg_types
    +
    + +

    Definition at line 45 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualified_function_type = function_type
    +
    + +

    Definition at line 51 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept = Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    + +

    Definition at line 61 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe = Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 70 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs = type
    +
    + +

    Definition at line 52 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type = Return
    +
    + +

    Definition at line 42 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits = function
    +
    + +

    Definition at line 40 of file function_ptr_3.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::type = BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    + +

    Definition at line 47 of file function_ptr_3.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + + +
    + + + + +
    constexpr bool function< BOOST_CLBL_TRTS_ST Return(BOOST_CLBL_TRTS_CC *)(Args...) BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 38 of file function_ptr_3.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.png b/dox-master/structfunction_3_01_b_o_o_s_t___c_l_b_l___t_r_t_s___s_t_01_return_07_b_o_o_s_t___c_l_b_l___t_r_tfa0f2bde06c215e8b279a5d59902e039.png new file mode 100644 index 0000000000000000000000000000000000000000..a9cf480e96fa37519527380c95bcdc02a7b588f0 GIT binary patch literal 1837 zcmc&#XH-*36n;qz#YEUFZWKg=ieRCMG(~~MSOS7Bp!6mXP(si(Akt$wR0~x>AT(Dc z77$l4fJ8-*CP7F{D4|3V0wIDJh(X@I=-IRT%d`J>&Y78S?wxz*-f!mINjc=WZ`o3f zr2qgdBkadJ0l*R@gbyhppz+9-ofv3ZdFX)49uNc}I5zn?;_~w=5c<}cOeQj=9|tX! zC{B*f0JKTo*sU(c0H9Du!2jwJ1rrtWBKwTcNJYbX5NwVpy+98%KenD;W3|Q;rF^#U zV@|S?8peO!x&wH;u@b>JGf=x_ztd(C>>J#){!yZ~Is~&Zo;I235Nu7>*COnNU{E9W zO8IqX2mje_X^nOM@F+XlG+VT$;Cz<$dcxxua^<$k_X)w&aW%-E;tY9YY`feI1}qg! zH!P4E`mB7(kDt@t#-uQ!ZnItINhQl=bs3N?2!qZXxE5j0sbxITR9RSLM|NA^q8||I zZ6GZnFm`>@`Ui-~7L_*6N8^l^;~Kj-yov}A3Voc&g=bO%BxMWJ?vI0??0mrVIl6tk zcBJhbAMRZkDegmLQat66Yz>;@#7O$#9rUab@5a%uqi{=`O!6ftH*?~y?7sRsnotcj zYZ+fVjw^64uJOCO2}+ur0_jhWRw-XSb!M<0ceQOw&zOsH-SB921Ah|6v3*}47Dj!r ze*>QXH%DM$^Y+E*jB;10?JsgB%>Ns=5EFYdjgO-CXUa)YKjWsg?l~TRO@3P$C;)LK z*B4M=0xJ^(xo|nqe)rZe6p#yI{}!x;eHT!^3*I%V07ig<*7`?4BFqR-uR;RoMA)lj zeZUVu+w3L50E8a^9SE$1ykk7S`AYw88rX>ae@$)3@&|f8CD{mrY0;9$Z3Nt|{80iK zN2wO9XM*Y58%G4yzB$3{m%$l37NcEr?vd$9mzyWrcHviraBK##%=5cu_vFnvu%+bT z&YAF=W2BHCT@X&Z(V9-UH`%r~} zh(}8*Y_xvB{Hb!VS+Sn%aLP^AlDpW|6&lm4I#PT=7i;mmf=y?9kIS;Vwi^kD&4bpd z<{z);=6*r#ek)ESAR=mXq#I=%5|u}u*7U8@5|)IP-icGkb_^GV2oGBJrHWA45Y8}SElA9D#D69hbkp)*!c|P$v|r4478_n z9g=5n(>mcsE1$<(r!@~TciES-PzF1uaFjutvPPYIkiCGPHjve zQsaIz3wNw_o0(5V8hEt^82+Ig+W`;D>iB3P6&rh~EPUqPCpSrB>f8jP74Iv&fcLdl zK6En1u3S(;*Vul%7(J2;@{?Y}uM(|}3Gz`4+d0D#IktpET3 literal 0 HcmV?d00001 diff --git a/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html b/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html new file mode 100644 index 000000000..5312920c1 --- /dev/null +++ b/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.html @@ -0,0 +1,798 @@ + + + + + + + + + + + ttg: function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Return, typename... Args>
    +struct function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >

    + + +

    Definition at line 149 of file function_3.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using has_varargs = std::true_type
     
    using traits = function
     
    using return_type = Return
     
    using arg_types = std::tuple< Args... >
     
    using type = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using function_type = Return(Args...,...)
     
    using qualified_function_type = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using remove_varargs = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_varargs = type
     
    using is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
     
    using remove_noexcept = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using add_noexcept = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    using is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
     
    using remove_transaction_safe = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_transaction_safe = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using qualifiers = default_callable_traits< dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >
     
    template<qualifier_flags Flags>
    using set_qualifiers = set_varargs_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, Return, Args... >
     
    using add_member_lvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, lref_ >::value >
     
    using add_member_rvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, rref_ >::value >
     
    using add_member_const = set_qualifiers< qualifiers::q_flags|const_ >
     
    using add_member_volatile = set_qualifiers< qualifiers::q_flags|volatile_ >
     
    using add_member_cv = set_qualifiers< qualifiers::q_flags|cv_ >
     
    using remove_member_reference = set_qualifiers< qualifiers::cv_flags >
     
    using remove_member_const = set_qualifiers< qualifiers::ref_flags|remove_const_flag< qualifiers::cv_flags >::value >
     
    using remove_member_volatile = set_qualifiers< qualifiers::ref_flags|remove_volatile_flag< qualifiers::cv_flags >::value >
     
    using remove_member_cv = set_qualifiers< qualifiers::ref_flags >
     
    template<typename U >
    using apply_member_pointer = Return(BOOST_CLBL_TRTS_DEFAULT_VARARGS_CC U::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<typename NewReturn >
    using apply_return = NewReturn(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<template< class... > class Container>
    using expand_args = Container< Args... >
     
    using is_member_pointer = std::false_type
     
    + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    +

    Member Typedef Documentation

    + +

    ◆ add_member_const

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const = set_qualifiers<qualifiers::q_flags | const_>
    +
    + +

    Definition at line 225 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_cv

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv = set_qualifiers<qualifiers::q_flags | cv_>
    +
    + +

    Definition at line 229 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, lref_>::value>
    +
    + +

    Definition at line 219 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, rref_>::value>
    +
    + +

    Definition at line 222 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_volatile

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile = set_qualifiers<qualifiers::q_flags | volatile_>
    +
    + +

    Definition at line 227 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_noexcept

    + +
    +
    + +

    Definition at line 187 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + +
    +
    + +

    Definition at line 198 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_varargs

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs = type
    +
    + +

    Definition at line 179 of file function_3.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    + +

    Definition at line 244 of file function_3.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<typename NewReturn >
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return = NewReturn(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 251 of file function_3.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types = std::tuple<Args...>
    +
    + +

    Definition at line 160 of file function_3.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<template< class... > class Container>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args = Container<Args...>
    +
    + +

    Definition at line 257 of file function_3.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type = Return(Args..., ...)
    +
    + +

    Definition at line 167 of file function_3.hpp.

    + +
    +
    + +

    ◆ has_varargs

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs = std::true_type
    +
    + +

    Definition at line 157 of file function_3.hpp.

    + +
    +
    + +

    ◆ is_member_pointer

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer = std::false_type
    +
    + +

    Definition at line 259 of file function_3.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    + +

    Definition at line 181 of file function_3.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    + +

    Definition at line 192 of file function_3.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + +
    +
    + +

    Definition at line 169 of file function_3.hpp.

    + +
    +
    + +

    ◆ qualifiers

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>
    +
    + +

    Definition at line 203 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_const

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const = set_qualifiers< qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 235 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_cv

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv = set_qualifiers<qualifiers::ref_flags>
    +
    + +

    Definition at line 241 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_reference

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference = set_qualifiers<qualifiers::cv_flags>
    +
    + +

    Definition at line 233 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile = set_qualifiers< qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 238 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_noexcept = Return(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    + +

    Definition at line 183 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_transaction_safe = Return(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 194 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    + +

    Definition at line 174 of file function_3.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type = Return
    +
    + +

    Definition at line 159 of file function_3.hpp.

    + +
    +
    + +

    ◆ set_qualifiers

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<qualifier_flags Flags>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers = set_varargs_function_qualifiers<Flags, is_transaction_safe::value, is_noexcept::value, Return, Args...>
    +
    + +

    Definition at line 206 of file function_3.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits = function
    +
    + +

    Definition at line 158 of file function_3.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    + +

    Definition at line 162 of file function_3.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + + +
    + + + + +
    constexpr bool function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 155 of file function_3.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/unguarded/function_3.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.png b/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_1c6229b724c94722af6b6c9dcabc07a1.png new file mode 100644 index 0000000000000000000000000000000000000000..4e711087890f1e85ce0da4bcf9970e2994ec9a43 GIT binary patch literal 2135 zcmc&#X;hO}8vc+1iXuf8QCS=c4vQv;B8>(R8-ai zy1P24C?8b@06+!pi1Gjcc`k(A_sT>26{Ynl=%?*|1#?*@lROtPGyl;dS+_PN3r*TZBoef<{L#Xam$-gnVq zUFR8{7x(OwYe1py=j>Hi3p6nJIkUj<3$#7?w&AI4>!Mxw<~it0E`(rI5YwpNkz80| z`HV{rG3<97E*_0XAHBL@6nAF|43CJi5#asC)@KbSq?r{T53i88egyAHqQ;ZHCR=P} zZQt?&hqpa<#6aPEWSXz%D20C2NIZKR3mX*GQCmF3f5*8(*XA{H$!8xmi)2En6PE+( z7gfA^hkZ)U`UxXbl#6dv6~skR8YgWmcwv(l+0`4Zd1eq>MTp08vh6=wDM39tZ-Zml z;f@Gz2IGRBQ@!sDCCh`4sa&y-SZ{~J`v%g9MZ_;x%0$Q*9D9iyxV8DDgh_xwO-?{f z82n-O)Va3O3li2^!SxZWVq((aW$ff<9GYz`E@cWO)nc;1^+B-Onm;bAGTZhtLB9l@ zJshfWv|sH(E2HrRgb4W-QDZ$}mtEpOmE}!*OQo(;^9qpDwr^ApzDyes9^!R#D`Oo* zrZ-)RDxCQphM~(w*i-9KOy(iZU+&(-M|I_;fU9HAmB2Qy!PmkBZCe7!t$)t5RoB6+S&nz{b1B zy(e7w(g%hP-nncevqi*5K2QQxqoW7TRWnD0O}#v9>9MqViQ~&>+|2r!TVSkpk20q! za99XW#tj%nWLOtf+-VavmDY!D$24q2rSfrNpWJ`aw`UGC9yT2~&5rnL5odgMvxPf4 z)JyPu&&aFzz`4GH&EIP@JRz(pJQ;qlM8B=1>U-<9@cyR$7~Lpqcr5c(ii-2F=7ulX zU&{?NJc90oWH#&>tu#bu4p1X-p8}tM z3e=3o0ZW`djk+tI&d=kPbq6KgAJq{-a!5FDOvF>psT-9HtOkgZ`eKJH0`7D@OoHkjgxmi zd!X&@R^J(vRUNI|?mu=mD(?pGwRtV;jSSKfv^?Y~sChU6=>jX3RwiIns&G;PzjB1# z3^tF$ZcNm6V(#*O`EZ_Dt!xu_W*>6;)Uu1hyAz?64|(M=Nvo#b{myESNtqd$f%im- znyo(a&A2xzn6$`PPJ2UXmJPq#yem+THy@ePBA9EZC`jlg~54cOPRxQoW6A>rvy zdpFiRt;&Sbg=TXRb^m>r(%YSr&Q&cW&yDfIMZ=_7+f`z#84yw|lrFvWdX`X=Vyupc ztTE}*gf-MyN0F|j$=^3W;@S10byAXza60yzRVr8|+L;&dlB}UM!b8QFl`czCpD;qe z0c96A7D0R}r-kb9ON*y~nulUh2{+C3S5GSb^?=$D&q{Vy@!pTK^>v)+S z#V(0vdW^0P;+wrK2@8^do2;Le3OW)&RXojYF!?$>3(w6A}sxsI7tK#o&ejwO9xN+6-_@Vs#^$TXy`6cK0 zvsB_OE_Tqazk@4y=a1NL66DFZK!}lLZ@L8%w~*LnLhbXfnDOv1(2XgaTaEog1X`)t zzgS83*OdWhI_r}PeqGa1sS@2XqaKLXI;V@814)_OhN7(fOlIg?Vuw!9?|o-LSv{mA z5$LAU%_V$embg$Q<0duhj&BY5S+5JdKN2-;Ykdj+vv*u2e~id-dhk-J34TG*xMy4B zFUoN@800>VtneY3M5j;SiWR5ydF1d{wBUN~g5bfJMIroQ)_#45{{FcL|HL`IhtFU6 zZFS{14G~6sEoS3xlK6>(kE%sttx)G3DP)w<{`-*4p52+U`59?Ym}0eu0q-F`B5~et zJf5xh5MPp8CsxAfhb2}`tE4QM(U|=5G^;$FA^d(x+{v5UohH?rr*{X3Ibi$e?xYg* jcAn}hs2_53zRr^Y9E=-&>td5 literal 0 HcmV?d00001 diff --git a/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_22b08dfc0c075ef0054028c243933480.html b/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_22b08dfc0c075ef0054028c243933480.html new file mode 100644 index 000000000..33da237d3 --- /dev/null +++ b/dox-master/structfunction_3_01_return_07_args_8_8_8_00_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_22b08dfc0c075ef0054028c243933480.html @@ -0,0 +1,164 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Member List
    +
    +
    + +

    This is the complete list of members for function< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_cv typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_lvalue_reference typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_rvalue_reference typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_volatile typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_noexcept typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_transaction_safe typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_varargs typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_member_pointer typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_return typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    arg_types typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    expand_args typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_type typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    has_varargs typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_member_pointer typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_noexcept typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_transaction_safe typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualified_function_type typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualifiers typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_const typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_cv typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_reference typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_volatile typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_noexcept typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_transaction_safe typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_varargs typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    return_type typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    set_qualifiers typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    traits typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    type typedeffunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    valuefunction< Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html b/dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html new file mode 100644 index 000000000..a85674559 --- /dev/null +++ b/dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.html @@ -0,0 +1,798 @@ + + + + + + + + + + + ttg: function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Return, typename... Args>
    +struct function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >

    + + +

    Definition at line 36 of file function_3.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using traits = function
     
    using return_type = Return
     
    using arg_types = std::tuple< Args... >
     
    using non_invoke_arg_types = arg_types
     
    using type = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using function_type = Return(Args...)
     
    using qualified_function_type = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using remove_varargs = type
     
    using add_varargs = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
     
    using remove_noexcept = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using add_noexcept = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    using is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
     
    using remove_transaction_safe = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_transaction_safe = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using qualifiers = default_callable_traits< dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >
     
    template<qualifier_flags Flags>
    using set_qualifiers = set_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, Return, Args... >
     
    using add_member_lvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, lref_ >::value >
     
    using add_member_rvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, rref_ >::value >
     
    using add_member_const = set_qualifiers< qualifiers::q_flags|const_ >
     
    using add_member_volatile = set_qualifiers< qualifiers::q_flags|volatile_ >
     
    using add_member_cv = set_qualifiers< qualifiers::q_flags|cv_ >
     
    using remove_member_reference = set_qualifiers< qualifiers::cv_flags >
     
    using remove_member_const = set_qualifiers< qualifiers::ref_flags|remove_const_flag< qualifiers::cv_flags >::value >
     
    using remove_member_volatile = set_qualifiers< qualifiers::ref_flags|remove_volatile_flag< qualifiers::cv_flags >::value >
     
    using remove_member_cv = set_qualifiers< qualifiers::ref_flags >
     
    template<typename U >
    using apply_member_pointer = add_member_pointer< type, U >
     
    template<typename NewReturn >
    using apply_return = NewReturn(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<template< class... > class Container>
    using expand_args = Container< Args... >
     
    using is_member_pointer = std::false_type
     
    + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    +

    Member Typedef Documentation

    + +

    ◆ add_member_const

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const = set_qualifiers<qualifiers::q_flags | const_>
    +
    + +

    Definition at line 114 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_cv

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv = set_qualifiers<qualifiers::q_flags | cv_>
    +
    + +

    Definition at line 118 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, lref_>::value>
    +
    + +

    Definition at line 108 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, rref_>::value>
    +
    + +

    Definition at line 111 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_member_volatile

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile = set_qualifiers<qualifiers::q_flags | volatile_>
    +
    + +

    Definition at line 116 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_noexcept

    + +
    +
    + +

    Definition at line 76 of file function_3.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + + + +

    ◆ add_varargs

    + +
    +
    + +

    Definition at line 65 of file function_3.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<typename U >
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_member_pointer = add_member_pointer<type, U>
    +
    + +

    Definition at line 133 of file function_3.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<typename NewReturn >
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return = NewReturn(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 136 of file function_3.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types = std::tuple<Args...>
    +
    + +

    Definition at line 48 of file function_3.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<template< class... > class Container>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args = Container<Args...>
    +
    + +

    Definition at line 142 of file function_3.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type = Return(Args...)
    +
    + +

    Definition at line 56 of file function_3.hpp.

    + +
    +
    + +

    ◆ is_member_pointer

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer = std::false_type
    +
    + +

    Definition at line 144 of file function_3.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    + +

    Definition at line 70 of file function_3.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    + +

    Definition at line 81 of file function_3.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types = arg_types
    +
    + +

    Definition at line 49 of file function_3.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + + + +

    ◆ qualifiers

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>
    +
    + +

    Definition at line 92 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_const

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const = set_qualifiers< qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 124 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_cv

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv = set_qualifiers<qualifiers::ref_flags>
    +
    + +

    Definition at line 130 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_reference

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference = set_qualifiers<qualifiers::cv_flags>
    +
    + +

    Definition at line 122 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile = set_qualifiers< qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 127 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    + +

    Definition at line 72 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    + +

    Definition at line 83 of file function_3.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs = type
    +
    + +

    Definition at line 63 of file function_3.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type = Return
    +
    + +

    Definition at line 46 of file function_3.hpp.

    + +
    +
    + +

    ◆ set_qualifiers

    + +
    +
    +
    +template<typename Return , typename... Args>
    +
    +template<qualifier_flags Flags>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers = set_function_qualifiers<Flags, is_transaction_safe::value, is_noexcept::value, Return, Args...>
    +
    + +

    Definition at line 95 of file function_3.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + +
    using function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits = function
    +
    + +

    Definition at line 44 of file function_3.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    + +

    Definition at line 51 of file function_3.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename Return , typename... Args>
    + + + + + +
    + + + + +
    constexpr bool function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 42 of file function_3.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/unguarded/function_3.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.png b/dox-master/structfunction_3_01_return_07_args_8_8_8_08_01_b_o_o_s_t___c_l_b_l___t_r_t_s___i_n_c_l_u_d_e___q11352dae41c00b7ccc8c78763a6b4958.png new file mode 100644 index 0000000000000000000000000000000000000000..e451c27b8a7ba9e37f46ebe3d89963836122d8e0 GIT binary patch literal 2113 zcmc&!X;f257Jk48HW6%F(MSsn4YVC1vM7c%I4li8HUokPc_66BW@HHxG9ivYqbNpb z5F~78WD#w6-~x0YY&IgpNnBW7AOS{p5)cU_?8yXm^FDFdN4bsca$4MrW$=#VbF^S&sK<@3#wzjri zclbK;?e2KIhc_S(+8+J?@-YJdmG?NuzxgC8%op)|_0iw%O353P$-11Y5tkJEFAFVB zg*6!tF;6RgqX6aLGf?FRyj@WhIe1VzL;o<&Ec=rFY-b%TH{C8DHMx;HNVwYEtDVD_ z%90D&_vG#cC5jO$&>ic_Ve^)b5kB=M!@2Ip$2-_|E)kGOdSj&j2Al1im2hms+nY&_ z0$W%kcE!5*(#Hc`L{-WGi>DJ{VV%Hp)fP>xerbD^@vFWbDo}C(-)LnmD~A2nMKOHfRBBQ&5s$m5R7-Gbyy>O%-9{M8gW-Q-oy^513#Q`0Guc^X zsVt80rH0{XLd}F{mqYRg-@|=_aB@?IL+$X=(o_YkJJyg`Bq=3Itmge;Fui6u;IaM| zy$&WlEIDh;y1y?Q-sq}tZ*L@$38BL) zOv(I{5y!g0?2~_h^yU%2_jR=p3wtIi-NkUEdJ-wNX@5c9+kF2Zn|Lmf}!F5SLg&m@I7yAy=9Wzb+vzGOH|q zvRtuJ=lGt%{{dFMI!NbT7pXUEa}V|W(tCN1MEEdo$jQWtlJrNp!gk*;PEbQ}P+Deq z{_-XQKL~2xt6DrJG!I?zR7uDsex{ zW2@U4aCuIME2?ux;yHdQZNP8ubO5DbU{705D5S9Gro#DKcC=%sZYr1n=-{sarrKx+ zKzs#u1*mNk&6UD;KrE02c_Gkvh;& zSrNa)ZT>rjMYC~;f6e_~Gu2l0$hlZ!&UtnzZ}f#|z?GL$|9c+CJ|Z~h_ND>-=)?~b z#^sO0O-SQGVaDY(MdHH##@(^d5MCD!pCo~vxs-{J?-E+9Uov*Lr83PpYjpN@)strx z^ly28xeA>q?>a78T;QwLmr&EW8Sf6o{M6Eg4eeax9ds*#(2(^Z`-e>*oT*sM z(b+Pqr5KHRdI@u_5H>DJtAYt_QB#-tVixiTr0#=v_1L&MN7}!|QHOxHsY~lKZ+z<# zo|2#Jw~R2%8CHe;*xIjJqgrgW9r*U4OQR-7!&BC-K)okHiWXD!+#jh$@4BW#8LeKl z20bH3CF?5BF)K`7PYnzELl9;7q}_7Td&VltF;RxdMLci;EBBs`E23Ugyb<@EvlZi4 zq%ON#S{H3nJ#)ndMl;_q7fAEGv#dM#$E>J>u}WK-mP5>0QbQnqJ~TfXlk6^8KT=+? z;q<`s?uWlNf#*Jzd|@(J72Rk^#k;V+kvA>A?zgcFGWH`sb6!tAT4FwWZ=yrz2xp~R zvHmlsmTG0`rYnMb&V*-#z7`rNJ1wynd@h0Yp!Df@+Oc9rN8USO_knx%iUy|L+!V_y z%e9Y%duT14!iuTV3BJ&x(T`)Ffy^NMI9&|)4mGf(cjnw#_f>6{tyV&&#LLZC^_4Hs zij^Z$qjj7V*BnH)b>$~|DEF>*Y7kV+5DfK#n0Kx1Lb#_R4W2eb1RYO5zp;1^mKjn| zBo^!)xUJ%SA(x{6&;>A8}!Z?7bjR^Mba-p!l|z z9(%ehyexo-ic02RvsYT6M|Yo?8mXHhQ7KoRd+-rqpE_F4#)=XMDS9#9-8-M z{pDB(d>KoJbkvM!=mf)wQqAQ(8l8V2t5kXEur5+G*{VlMNLYUwnZ zq|owKriY-RH;ucs--Dj%>nKPigx(|^-{}{XtEM|`#sr|L{b_SZTw> + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Member List
    +
    +
    + +

    This is the complete list of members for function< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_cv typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_lvalue_reference typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_rvalue_reference typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_volatile typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_noexcept typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_transaction_safe typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_varargs typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_member_pointer typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_return typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    arg_types typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    expand_args typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_type typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_member_pointer typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_noexcept typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_transaction_safe typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    non_invoke_arg_types typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualified_function_type typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualifiers typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_const typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_cv typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_reference typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_volatile typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_noexcept typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_transaction_safe typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_varargs typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    return_type typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    set_qualifiers typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    traits typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    type typedeffunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    valuefunction< Return(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b3467b605d2109a501ede96ad17595c2c.html b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b3467b605d2109a501ede96ad17595c2c.html new file mode 100644 index 000000000..8f80a8bb9 --- /dev/null +++ b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b3467b605d2109a501ede96ad17595c2c.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Member List
    +
    +
    + +

    This is the complete list of members for pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_cv typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_lvalue_reference typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_rvalue_reference typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_volatile typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_noexcept typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_transaction_safe typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_varargs typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_member_pointer typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_return typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    arg_types typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    class_type typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    expand_args typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_object_signature typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_type typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    invoke_type typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_member_pointer typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_noexcept typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_transaction_safe typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    non_invoke_arg_types typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualified_function_type typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualifiers typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_const typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_cv typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_reference typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_volatile typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_noexcept typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_transaction_safe typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_varargs typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    return_type typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    set_qualifiers typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    traits typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    type typedefpmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    valuepmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html new file mode 100644 index 000000000..144d56ec3 --- /dev/null +++ b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.html @@ -0,0 +1,858 @@ + + + + + + + + + + + ttg: pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Return, typename T, typename... Args>
    +struct pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >

    + + +

    Definition at line 33 of file pmf_4.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using traits = pmf
     
    using return_type = Return
     
    using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using invoke_type = typename std::conditional< std::is_rvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS, typename std::add_lvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::type >::type
     
    using arg_types = std::tuple< invoke_type, Args... >
     
    using non_invoke_arg_types = std::tuple< Args... >
     
    using function_object_signature = Return(Args...)
     
    using function_type = Return(invoke_type, Args...)
     
    using qualified_function_type = Return(Args...) BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using remove_varargs = type
     
    using add_varargs = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
     
    using remove_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using add_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    using is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
     
    using remove_transaction_safe = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_transaction_safe = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using class_type = T
     
    using qualifiers = default_callable_traits< dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >
     
    template<qualifier_flags Flags>
    using set_qualifiers = set_member_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     
    using remove_member_reference = set_qualifiers< qualifiers::cv_flags >
     
    using add_member_lvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, lref_ >::value >
     
    using add_member_rvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, rref_ >::value >
     
    using add_member_const = set_qualifiers< qualifiers::q_flags|const_ >
     
    using add_member_volatile = set_qualifiers< qualifiers::q_flags|volatile_ >
     
    using add_member_cv = set_qualifiers< qualifiers::q_flags|cv_ >
     
    using remove_member_const = set_qualifiers< qualifiers::ref_flags|remove_const_flag< qualifiers::cv_flags >::value >
     
    using remove_member_volatile = set_qualifiers< qualifiers::ref_flags|remove_volatile_flag< qualifiers::cv_flags >::value >
     
    using remove_member_cv = set_qualifiers< qualifiers::ref_flags >
     
    template<typename U >
    using apply_member_pointer = Return(BOOST_CLBL_TRTS_CC U::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<typename NewReturn >
    using apply_return = NewReturn(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<template< class... > class Container>
    using expand_args = Container< invoke_type, Args... >
     
    using is_member_pointer = std::true_type
     
    + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    +

    Member Typedef Documentation

    + +

    ◆ add_member_const

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const = set_qualifiers<qualifiers::q_flags | const_>
    +
    + +

    Definition at line 115 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ add_member_cv

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv = set_qualifiers<qualifiers::q_flags | cv_>
    +
    + +

    Definition at line 119 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, lref_>::value>
    +
    + +

    Definition at line 109 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, rref_>::value>
    +
    + +

    Definition at line 112 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ add_member_volatile

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile = set_qualifiers<qualifiers::q_flags | volatile_>
    +
    + +

    Definition at line 117 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ add_noexcept

    + +
    +
    + +

    Definition at line 82 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + + + +

    ◆ add_varargs

    + +
    +
    + +

    Definition at line 70 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    + +

    Definition at line 130 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    +
    +template<typename NewReturn >
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return = NewReturn(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 137 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types = std::tuple<invoke_type, Args...>
    +
    + +

    Definition at line 56 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ class_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::class_type = T
    +
    + +

    Definition at line 98 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    +
    +template<template< class... > class Container>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args = Container<invoke_type, Args...>
    +
    + +

    Definition at line 144 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ function_object_signature

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_object_signature = Return(Args...)
    +
    + +

    Definition at line 59 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type = Return(invoke_type, Args...)
    +
    + +

    Definition at line 61 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ invoke_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::invoke_type = typename std::conditional< std::is_rvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value, T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS, typename std::add_lvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::type >::type
    +
    + +

    Definition at line 50 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ is_member_pointer

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer = std::true_type
    +
    + +

    Definition at line 146 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    + +

    Definition at line 76 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    + +

    Definition at line 87 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types = std::tuple<Args...>
    +
    + +

    Definition at line 57 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + + + +

    ◆ qualifiers

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>
    +
    + +

    Definition at line 100 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ remove_member_const

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const = set_qualifiers< qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 121 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ remove_member_cv

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv = set_qualifiers<qualifiers::ref_flags>
    +
    + +

    Definition at line 127 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ remove_member_reference

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference = set_qualifiers<qualifiers::cv_flags>
    +
    + +

    Definition at line 107 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile = set_qualifiers< qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 124 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    + +

    Definition at line 78 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    + +

    Definition at line 89 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_varargs = type
    +
    + +

    Definition at line 68 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ return_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type = Return
    +
    + +

    Definition at line 43 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ set_qualifiers

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    +
    +template<qualifier_flags Flags>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers = set_member_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...>
    +
    + +

    Definition at line 103 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits = pmf
    +
    + +

    Definition at line 41 of file pmf_4.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    + +

    Definition at line 45 of file pmf_4.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + + +
    + + + + +
    constexpr bool pmf< Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 39 of file pmf_4.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_4.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.png b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___c_c_01_t_1_1_5_08_07_args_8_8_8_08_01_b71b6d99e77689be47e355e95a9447b0d.png new file mode 100644 index 0000000000000000000000000000000000000000..4fc4de9bb4ea7fd2b6ab5b78407f066aa593a060 GIT binary patch literal 2321 zcmds(dsNbC8pmCaI?Qwo^M+nAb~ zSwWhcxT1KMOw{l;85-({fTHM>mKvAF2r;ynAK9M$YtEU!_dVzRy`SH6-s|%`@Atgf zey2S3ba(4QAP_yIm%Bd%@)rPPKOJrGOSI~}4K{{;Cs8NVYBh)p5(O^5=O##>Ygbp- zhU_UA_^X5UKNSE0J824U0CfN~JwUpDxBoflrE0@f}4Akj+L;+2eWQ zU>kV-PWyUCOz)%ce1ipjp1ys!UDJ{(xXuJl(`N!;MP5V0xQs{wp_}5 zzBuR&*>g2W;2?UegCH8wTwcmkN{jJ4Hl`@edKJxMGU)(eY8qB*?Em1QKtR;R+aG4m z1yLFY!sNu{X%AYIpT0S`{>})I*QmvjXgZfuj4tJKmP#yAey~hohu%cNu8|zaF^c(L zJR+R#b1H-M{Wvt|xLNPQf{H_dh{BfZ!yhkC9#*nu)hm7CJq$?`6_S@TYMHXKyWHN% z@==+`uJ?y+5&b-bi_iJgQZ)*}Zsfh0k62xazURu#h3`V1$;6o=Eypji_?}6^;vWdu zvvW{fiCbAGT>LWTs#N9puhKE!?MpjF@I%vda>eLHk$u2ot~I!8LXKwS!e)P>*i>Y1 zEws4%#!TtRblx#B60!6FT72PQrjMv)Yay_lsUTg$xl+m7#HpfNZF@vD`*-HSYeA=1 zd@~l7jE)yD9fM*ca=|S@DouLNjLag(#%{=8f(GKpKH=>snj15ry zy@evK456GiMGiIq@aPR?VF~8B51)H7cX^e^O-g<~C%SdKCdX1=<%KXczkxewH)e}# z=B!!7k~7%PiRI8ik3xPp7^ZD5E|c|NRlSL7XQ&adWqwS2LRL8Iu(l-E8(rZN_w1-% z`bN+88ki}?{1u(zWzkQ-zfE)BU+|hq+sMv)79oF?Ji57IemOSiY`ZU==i7#l*(0Qiqu_#sf-*3z|a`MmG$;S|}I zx>YXmC^^u(S1->db!QYk<`;!}A{9z4b#tByjxyG>^L8f`3b=FsW`}uu9tywrw5GYl zAHz~mc*~{>7PJ`N+>w%3rlPq?n$3LYP{!im-l>5`xqUQ*w?yu`I9R+3wXdr*jwE~^{t>R_rbUQLxSEICNYn*12zprh9JKLJ}fk_{M< z%tYpE*$wN2RUAlfH!fyx0(HY|!mQ(@>SQ+E9 zVGl|_wg8{>C&=Q;00{%gdnRDgGHjW&Ly3e!bnkE&P%_bk-knT~H9zcg9%@WYBnH-6 z6ZHc`Ee4%{Fdd>eoq?CCga~ZVg?)TE^B+l0Ow4KTmR8R3y${rt`Hi4JD%&ci`wxht z*X~Lbj^6)N!rZ3&JaQzF=%e-mUu9wSGXrMZ0p&=+j6+JO@>hvJf+pJ-7ApLk2baiG z4b`r+ucld457rvTqq!oPv}r{8EyqDfZ>wKes`hEknf^#n4(z4{2;3(G2M9B>-ri*c zkAKimr@9(&_N&^P)(XGuv*D>{PF-%(8mNP>*u8r(|^Gy>6j!luA z0#tUE@i}U$M}NUm(%OL~tJ+E&ZU!Ol4V}U3h&-AuSr*7y5P}A1kkxP{$O^yFbl2iYnr%vdcs2 zJKZN3R~X~MIGp1sXFeYG+OUen%b1CO85^?*iy}$GgUnaElF9;W$ce2T6Gz6{BVQcf^l)xYVc*KcCDUrRFJqpR1K%iWWX-}c zPL)t~;&qb*r~O;7Ec>el3PHQ=Y#+3CvqrF7`z&$IZNHr^`Og_=1Ks`ofe1#;kBMtW zuJs`^)>pI$Y*s-!`i0tSnWS1ts3PN%Foq6(6KeXR;GY&3^}1$p9>d)@KytG@%%n_7tg literal 0 HcmV?d00001 diff --git a/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html new file mode 100644 index 000000000..2ee6a5b10 --- /dev/null +++ b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.html @@ -0,0 +1,878 @@ + + + + + + + + + + + ttg: pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Return, typename T, typename... Args>
    +struct pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >

    + + +

    Definition at line 33 of file pmf_varargs_4.hpp.

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Types

    using has_varargs = std::true_type
     
    using traits = pmf
     
    using return_type = Return
     
    using type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using invoke_type = typename std::conditional< std::is_rvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS, typename std::add_lvalue_reference< T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::type >::type
     
    using arg_types = std::tuple< invoke_type, Args... >
     
    using non_invoke_arg_types = std::tuple< Args... >
     
    using function_object_signature = Return(Args...,...)
     
    using function_type = Return(invoke_type, Args...,...)
     
    using qualified_function_type = Return(Args...,...) BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using remove_varargs = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_varargs = type
     
    using is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
     
    using remove_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    using add_noexcept = Return(BOOST_CLBL_TRTS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    using is_transaction_safe = BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
     
    using remove_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using add_transaction_safe = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    using class_type = T
     
    using qualifiers = default_callable_traits< dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >
     
    template<qualifier_flags Flags>
    using set_qualifiers = set_varargs_member_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >
     
    using remove_member_reference = set_qualifiers< qualifiers::cv_flags >
     
    using add_member_lvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, lref_ >::value >
     
    using add_member_rvalue_reference = set_qualifiers< collapse_flags< qualifiers::q_flags, rref_ >::value >
     
    using add_member_const = set_qualifiers< qualifiers::q_flags|const_ >
     
    using add_member_volatile = set_qualifiers< qualifiers::q_flags|volatile_ >
     
    using add_member_cv = set_qualifiers< qualifiers::q_flags|cv_ >
     
    using remove_member_const = set_qualifiers< qualifiers::ref_flags|remove_const_flag< qualifiers::cv_flags >::value >
     
    using remove_member_volatile = set_qualifiers< qualifiers::ref_flags|remove_volatile_flag< qualifiers::cv_flags >::value >
     
    using remove_member_cv = set_qualifiers< qualifiers::ref_flags >
     
    template<typename U >
    using apply_member_pointer = Return(BOOST_CLBL_TRTS_VARARGS_CC U::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<typename NewReturn >
    using apply_return = NewReturn(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
     
    template<template< class... > class Container>
    using expand_args = Container< invoke_type, Args... >
     
    using is_member_pointer = std::true_type
     
    + + + +

    +Static Public Attributes

    static constexpr bool value = true
     
    +

    Member Typedef Documentation

    + +

    ◆ add_member_const

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_const = set_qualifiers<qualifiers::q_flags | const_>
    +
    + +

    Definition at line 117 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ add_member_cv

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_cv = set_qualifiers<qualifiers::q_flags | cv_>
    +
    + +

    Definition at line 121 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ add_member_lvalue_reference

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_lvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, lref_>::value>
    +
    + +

    Definition at line 111 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ add_member_rvalue_reference

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_rvalue_reference = set_qualifiers< collapse_flags<qualifiers::q_flags, rref_>::value>
    +
    + +

    Definition at line 114 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ add_member_volatile

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_member_volatile = set_qualifiers<qualifiers::q_flags | volatile_>
    +
    + +

    Definition at line 119 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ add_noexcept

    + +
    +
    + +

    Definition at line 84 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ add_transaction_safe

    + + + +

    ◆ add_varargs

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::add_varargs = type
    +
    + +

    Definition at line 76 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ apply_member_pointer

    + +
    +
    + +

    Definition at line 132 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ apply_return

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    +
    +template<typename NewReturn >
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::apply_return = NewReturn(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC
    +
    + +

    Definition at line 139 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ arg_types

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::arg_types = std::tuple<invoke_type, Args...>
    +
    + +

    Definition at line 58 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ class_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::class_type = T
    +
    + +

    Definition at line 100 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ expand_args

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    +
    +template<template< class... > class Container>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::expand_args = Container<invoke_type, Args...>
    +
    + +

    Definition at line 146 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ function_object_signature

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_object_signature = Return(Args..., ...)
    +
    + +

    Definition at line 61 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ function_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::function_type = Return(invoke_type, Args..., ...)
    +
    + +

    Definition at line 63 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ has_varargs

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::has_varargs = std::true_type
    +
    + +

    Definition at line 41 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ invoke_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::invoke_type = typename std::conditional< std::is_rvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::value, T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS, typename std::add_lvalue_reference<T BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>::type >::type
    +
    + +

    Definition at line 52 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ is_member_pointer

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_member_pointer = std::true_type
    +
    + +

    Definition at line 148 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ is_noexcept

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::is_noexcept = BOOST_CLBL_TRTS_IS_NOEXCEPT
    +
    + +

    Definition at line 78 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ is_transaction_safe

    + +
    +
    + +

    Definition at line 89 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ non_invoke_arg_types

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::non_invoke_arg_types = std::tuple<Args...>
    +
    + +

    Definition at line 59 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ qualified_function_type

    + + + +

    ◆ qualifiers

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>
    +
    + +

    Definition at line 102 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ remove_member_const

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_const = set_qualifiers< qualifiers::ref_flags | remove_const_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 123 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ remove_member_cv

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_cv = set_qualifiers<qualifiers::ref_flags>
    +
    + +

    Definition at line 129 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ remove_member_reference

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_reference = set_qualifiers<qualifiers::cv_flags>
    +
    + +

    Definition at line 109 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ remove_member_volatile

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::remove_member_volatile = set_qualifiers< qualifiers::ref_flags | remove_volatile_flag<qualifiers::cv_flags>::value>
    +
    + +

    Definition at line 126 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ remove_noexcept

    + +
    +
    + +

    Definition at line 80 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ remove_transaction_safe

    + +
    +
    + +

    Definition at line 91 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ remove_varargs

    + + + +

    ◆ return_type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::return_type = Return
    +
    + +

    Definition at line 45 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ set_qualifiers

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    +
    +template<qualifier_flags Flags>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::set_qualifiers = set_varargs_member_function_qualifiers< Flags, is_transaction_safe::value, is_noexcept::value, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args...>
    +
    + +

    Definition at line 105 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ traits

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::traits = pmf
    +
    + +

    Definition at line 43 of file pmf_varargs_4.hpp.

    + +
    +
    + +

    ◆ type

    + +
    +
    + +

    Definition at line 47 of file pmf_varargs_4.hpp.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + + +
    + + + + +
    constexpr bool pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >::value = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 39 of file pmf_varargs_4.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.png b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ar464c9119384a36ebad34ca263de89271.png new file mode 100644 index 0000000000000000000000000000000000000000..71025b2c08152857fd13edaa4e15010b16bfbc4c GIT binary patch literal 2422 zcmd5+X;_lm7RCl_02@3fO*2bT(=3Nlav-fp!=X9~Mw*HPkVf5`Qz;sFDTl6QlGAa3 zOr@MT;*ek}HaVR1h>BB4X611}(^5|$aX+=5=l-}q&dqhbK4R1FV&=si|pw z;u~#XxFO8#v^xlJT5i2WM)Ew-X2)%DS8S_7v(_T(FDG~VkE)JXi$A%CJD9^ z<*BUcvSOIit5hsAff;jpAS_6WWQyYEOz0tR?5!1ZuJzasPIDWIMqqE2Vhg0VD;h`3 zt1xh}_rz0DWASirXYs7C9$|aDz+U!vMqxNL?59mXclEiEB1`e=t;~3S)5JJ{L-3&= zM-Q{gjsM2rcOd7h_zM&in8vb&l{mP?K-YZ4iI2B(?lecl6gVMcHmej&BA%yZVix)aj_o&p)ky?xSbftW;uFYcc*{IF5e7fOZ*TcIPsaCrO%^=arn!!Pe!-3^ij;^bZ5A!Ib)i~z&26Q*V;t9;>-EN zuL{;gH{;4otYd0e(KvR*1#|4x5qr@q9j19^!Gx2c=svvaDp&Hc@)>MAWcfi-owP7z zIhw{~f)H_%#F*Jl7T~VoZ7s1WeH9SPrNtdIjIJ_b415Vrq@V=KxMkGQKRb-&iFWDI zptju$qJSLr(w-~c6_El*ux1c}#E$)PBZw_)>ujzG$}C+{19KW-xl`tPh@U=`PwZNZ@hjsyO{SbzOM=BfRyY=Q^UQ64YSLZ6Nz&+s2D#nRQllx7 z&Z_@uyzZoJ?<8CndF|j2&Hyj4i>V3_^9u@KP~Zxs3&Pp_AKabO4n^D%bh6*jN3>u1+B$_AWh~=UjuF_sV@&a_~5m`S`*0lnJdmi zebsT>4@akd-{m!RDu81(3V>pDBYbFR>;KNh)lBl3Z$Xat>S^R zy!iYn)uiny%=hxcbrN@b!7F?ZG?|5`ims#%A zG55QqdAH5XY)n3pHot z-1C{aRX4I_R#rp)lHa~=WE8&3nu11j#Y~1S%@&7rNOhDZCiguxc|F}YLs(Z_;`C|Z zy6@oA9A00q)`-59=;4sNf`euqmF=~HV;SK!S*`SVJg@K{Wa+73QF|Q>FV3$K<-|)y zAK@Da><=7M3#^){&Be+|A-%hcnff&1kyT=@V7EHyqYc%?tp7@R8K~sr!FR%HDPbyK zyTJSw`GgV2fIDNqn4dfxcLd(w(7BMC_QY{Vyn)u^iq;`%ts$Ai7sMjqSWYUQb1$He zxezh$ZDAL{9{=+ZbYV*+9F8SQLTQqePN;{gFT^8z{0Ke#SMj%y#@`WMg#j6D5wRR} z%{Diq+W6k#kkW;H5_#ye2=T2WaI7pJj?LaoRc%u_=yKjZ2Ju+5eKL}kRxNo}vQKZY z@_dWx7kp*sd;y<3ddP}DZ+=vt9CKIDBj4L1e$l1R!~9(R8fu9?u~FUrVflNMk@BE? z_SK#l9<-*h^5v756H(fBhp|Q?{)j8nkm}OWqGxF1Gvr>q8GWv}yL$`v+k?}Mt?l?c zS(1f8*+8gC;%s?4`+k?)V7__EqUh2?5_xCi%vF40zIl1W2@0U)Cy%s$NrrgT%$1;3 z6nEw@u3w*wgwxW_*$8!;5{SWz6_2KB!6gnVQ5{fW;f(>~f&|yv?)SFD)l8XG!Y!~~ z+qXc|&zT+S&tv(ssbPh8U0+=3OXNGqv>t`rllMV|Eu(1cVyCCJKYNg=Q3_MVIW0!k z>)>DaO&F6xA;kR@8eiDnoXF2o6*BG*>}a?4G3&<+I2TPqEyKG*!Oq0O-O;5KU;Yzm zn_yZ#9d2#j-zTi-a{V5s3G7 zXRy0t{=_7F024(trHbbm`#}5upa?rY-}6-Xwypt+{jK+fAU4lO8yZ>M7n%oR)o=AD zv89{Wr0$0|u-|M!4QL9WpNtgA#!F?Nn3#x0m3ac~>3&Glt3&N??wh<*q#7+N-EfQF us^U?V{<`>g#BYSaPFU5P72(FlDnO%MBRw%1d0Rn1L!CU0EI*F>*M9&Y#AZ4G literal 0 HcmV?d00001 diff --git a/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ara4a438379983c82f0d282aa21eba601b.html b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ara4a438379983c82f0d282aa21eba601b.html new file mode 100644 index 000000000..ca18b1ebd --- /dev/null +++ b/dox-master/structpmf_3_01_return_07_b_o_o_s_t___c_l_b_l___t_r_t_s___v_a_r_a_r_g_s___c_c_01_t_1_1_5_08_07_ara4a438379983c82f0d282aa21eba601b.html @@ -0,0 +1,168 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC > Member List
    +
    +
    + +

    This is the complete list of members for pmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_member_const typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_cv typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_lvalue_reference typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_rvalue_reference typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_member_volatile typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_noexcept typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_transaction_safe typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    add_varargs typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_member_pointer typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    apply_return typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    arg_types typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    class_type typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    expand_args typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_object_signature typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    function_type typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    has_varargs typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    invoke_type typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_member_pointer typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_noexcept typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    is_transaction_safe typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    non_invoke_arg_types typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualified_function_type typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    qualifiers typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_const typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_cv typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_reference typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_member_volatile typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_noexcept typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_transaction_safe typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    remove_varargs typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    return_type typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    set_qualifiers typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    traits typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    type typedefpmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >
    valuepmf< Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE BOOST_CLBL_TRTS_NOEXCEPT_SPEC >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_029142579edd1a1cf548d1bca0fd5761.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_029142579edd1a1cf548d1bca0fd5761.html new file mode 100644 index 000000000..c4df3aff5 --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_029142579edd1a1cf548d1bca0fd5761.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html new file mode 100644 index 000000000..14bec5df5 --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_1c18edc59a2019afca42a631893d51c8.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Return, typename T, typename... Args>
    +struct set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 13 of file pmf_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    + +

    Definition at line 19 of file pmf_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_2.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html new file mode 100644 index 000000000..c604bf2fb --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_50a10f2130208fa901015041276054db.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Return, typename T, typename... Args>
    +struct set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 24 of file pmf_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    +
    + +

    Definition at line 30 of file pmf_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_2.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html new file mode 100644 index 000000000..66e147011 --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_6db63c10757c5f95ea1190d9340a71b1.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Return, typename T, typename... Args>
    +struct set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 48 of file pmf_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    +
    + +

    Definition at line 54 of file pmf_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_2.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_8f27920b07be788af4b14fa74ab6c8e7.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_8f27920b07be788af4b14fa74ab6c8e7.html new file mode 100644 index 000000000..126ae8a4b --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_8f27920b07be788af4b14fa74ab6c8e7.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html new file mode 100644 index 000000000..116f30276 --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_98cd823caee39c1d888317bd7ddf63d7.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Return, typename T, typename... Args>
    +struct set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 36 of file pmf_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename Return , typename T , typename... Args>
    + + + + +
    using set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_CC T::*)(Args...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    +
    + +

    Definition at line 42 of file pmf_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf_2.hpp
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e17909365ebfe7dc985ec2393be739c4.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e17909365ebfe7dc985ec2393be739c4.html new file mode 100644 index 000000000..2c1e58495 --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e17909365ebfe7dc985ec2393be739c4.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e59d34b4b04397eb771f8153718965e4.html b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e59d34b4b04397eb771f8153718965e4.html new file mode 100644 index 000000000..f8d3bc459 --- /dev/null +++ b/dox-master/structset__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l___t_r_t_e59d34b4b04397eb771f8153718965e4.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html new file mode 100644 index 000000000..7189d0a88 --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l13e3adf5660090152d6378acb0ee1ddd.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Return, typename... Args>
    +struct set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 13 of file pmf_varargs_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename Return , typename... Args>
    + + + + +
    using set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    + +

    Definition at line 19 of file pmf_varargs_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l1403bce593315b52596d003c74c12842.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l1403bce593315b52596d003c74c12842.html new file mode 100644 index 000000000..f50f3cbfb --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l1403bce593315b52596d003c74c12842.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html new file mode 100644 index 000000000..d5f8cfd1a --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l53a4abb20d35ff97bf725bf4c3a33ce6.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Return, typename... Args>
    +struct set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 37 of file pmf_varargs_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename Return , typename... Args>
    + + + + +
    using set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER
    +
    + +

    Definition at line 43 of file pmf_varargs_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l8219ff0173a71bed585046e56f789a21.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l8219ff0173a71bed585046e56f789a21.html new file mode 100644 index 000000000..f1ebbd1e0 --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l8219ff0173a71bed585046e56f789a21.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l866f84d37c225bcc784181297cde7239.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l866f84d37c225bcc784181297cde7239.html new file mode 100644 index 000000000..d6bcaa55c --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_l866f84d37c225bcc784181297cde7239.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html new file mode 100644 index 000000000..1b91dd19c --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lb01eeda135a2f04805aeb33b22aba4f3.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Return, typename... Args>
    +struct set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 25 of file pmf_varargs_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename Return , typename... Args>
    + + + + +
    using set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    +
    + +

    Definition at line 31 of file pmf_varargs_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lc294e6bb55fae33ba3b3e252417e9710.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lc294e6bb55fae33ba3b3e252417e9710.html new file mode 100644 index 000000000..3fd9fa4de --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_lc294e6bb55fae33ba3b3e252417e9710.html @@ -0,0 +1,134 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, false, false, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html new file mode 100644 index 000000000..a315ce8c1 --- /dev/null +++ b/dox-master/structset__varargs__member__function__qualifiers__t_3_01flag__map_3_01int_01_b_o_o_s_t___c_l_b_le54d88fc783385cccf76974f1ad48e14.html @@ -0,0 +1,167 @@ + + + + + + + + + + + ttg: set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Return, typename... Args>
    +struct set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >

    + + +

    Definition at line 50 of file pmf_varargs_2.hpp.

    +
    + + + +

    +Public Types

    using type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args...,...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename Return , typename... Args>
    + + + + +
    using set_varargs_member_function_qualifiers_t< flag_map< int BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS >::value, true, true, BOOST_CLBL_TRTS_CC_TAG, T, Return, Args... >::type = Return(BOOST_CLBL_TRTS_VARARGS_CC T::*)(Args..., ...) BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS BOOST_CLBL_TRTS_TRANSACTION_SAFE_SPECIFIER BOOST_CLBL_TRTS_NOEXCEPT_SPECIFIER
    +
    + +

    Definition at line 56 of file pmf_varargs_2.hpp.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4-members.html b/dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4-members.html new file mode 100644 index 000000000..4c90418c3 --- /dev/null +++ b/dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::hash< ttg::Void > Member List
    +
    +
    + +

    This is the complete list of members for std::hash< ttg::Void >, including all inherited members.

    + + +
    operator()(Args &&... args) conststd::hash< ttg::Void >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4.html b/dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4.html new file mode 100644 index 000000000..611912aef --- /dev/null +++ b/dox-master/structstd_1_1hash_3_01ttg_1_1_void_01_4.html @@ -0,0 +1,181 @@ + + + + + + + + + + + ttg: std::hash< ttg::Void > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::hash< ttg::Void > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 46 of file void.h.

    +
    + + + + +

    +Public Member Functions

    template<typename ... Args>
    int64_t operator() (Args &&... args) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename ... Args>
    + + + + + +
    + + + + + + + + +
    int64_t std::hash< ttg::Void >::operator() (Args &&... args) const
    +
    +inline
    +
    + +

    Definition at line 47 of file void.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html b/dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..2630ce982 --- /dev/null +++ b/dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::tuple_element< I, ttg::meta::typelist< Ts... > > Member List
    +
    +
    + +

    This is the complete list of members for std::tuple_element< I, ttg::meta::typelist< Ts... > >, including all inherited members.

    + + +
    type typedefstd::tuple_element< I, ttg::meta::typelist< Ts... > >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..200427f86 --- /dev/null +++ b/dox-master/structstd_1_1tuple__element_3_01_i_00_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: std::tuple_element< I, ttg::meta::typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::tuple_element< I, ttg::meta::typelist< Ts... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<std::size_t I, typename... Ts>
    +struct std::tuple_element< I, ttg::meta::typelist< Ts... > >

    + + +

    Definition at line 93 of file typelist.h.

    +
    + + + +

    +Public Types

    using type = typename decltype(ttg::meta::typelist< Ts... >{}.template get< I >())::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<std::size_t I, typename... Ts>
    + + + + +
    using std::tuple_element< I, ttg::meta::typelist< Ts... > >::type = typename decltype(ttg::meta::typelist<Ts...>{}.template get<I>())::type
    +
    + +

    Definition at line 94 of file typelist.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html b/dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..5219a96f2 --- /dev/null +++ b/dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    std::tuple_size< ttg::meta::typelist< Ts... > > Member List
    +
    +
    + +

    This is the complete list of members for std::tuple_size< ttg::meta::typelist< Ts... > >, including all inherited members.

    + + +
    valuestd::tuple_size< ttg::meta::typelist< Ts... > >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..b550470bd --- /dev/null +++ b/dox-master/structstd_1_1tuple__size_3_01ttg_1_1meta_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: std::tuple_size< ttg::meta::typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    std::tuple_size< ttg::meta::typelist< Ts... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts>
    +struct std::tuple_size< ttg::meta::typelist< Ts... > >

    + + +

    Definition at line 88 of file typelist.h.

    +
    + + + +

    +Static Public Attributes

    static constexpr auto value = sizeof...(Ts)
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr auto std::tuple_size< ttg::meta::typelist< Ts... > >::value = sizeof...(Ts)
    +
    +staticconstexpr
    +
    + +

    Definition at line 89 of file typelist.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1_multi_index-members.html b/dox-master/structttg_1_1_multi_index-members.html new file mode 100644 index 000000000..2c7ed833c --- /dev/null +++ b/dox-master/structttg_1_1_multi_index-members.html @@ -0,0 +1,148 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::MultiIndex< Rank, Int > Member List
    +
    +
    + +

    This is the complete list of members for ttg::MultiIndex< Rank, Int >, including all inherited members.

    + + + + + + + + + + + + +
    hash() constttg::MultiIndex< Rank, Int >inline
    max_indexttg::MultiIndex< Rank, Int >static
    max_index_squarettg::MultiIndex< Rank, Int >static
    MultiIndex()=defaultttg::MultiIndex< Rank, Int >
    MultiIndex(std::initializer_list< Integer > ilist)ttg::MultiIndex< Rank, Int >inline
    MultiIndex(Ints... ilist)ttg::MultiIndex< Rank, Int >inline
    MultiIndex(std::size_t hash)ttg::MultiIndex< Rank, Int >inlineexplicit
    operator!=(const MultiIndex< Rank > &lhs, const MultiIndex< Rank > &rhs)ttg::MultiIndex< Rank, Int >friend
    operator==(const MultiIndex< Rank > &lhs, const MultiIndex< Rank > &rhs)ttg::MultiIndex< Rank, Int >friend
    operator[](std::size_t idx) constttg::MultiIndex< Rank, Int >inline
    serialize(Archive &ar, const unsigned int version=0)ttg::MultiIndex< Rank, Int >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1_multi_index.html b/dox-master/structttg_1_1_multi_index.html new file mode 100644 index 000000000..2814fbece --- /dev/null +++ b/dox-master/structttg_1_1_multi_index.html @@ -0,0 +1,541 @@ + + + + + + + + + + + ttg: ttg::MultiIndex< Rank, Int > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::MultiIndex< Rank, Int > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<std::size_t Rank, typename Int = int>
    +struct ttg::MultiIndex< Rank, Int >

    + + +

    Definition at line 13 of file multiindex.h.

    +
    + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     MultiIndex ()=default
     
    template<typename Integer , typename = std::enable_if_t<std::is_integral_v<Int>>>
     MultiIndex (std::initializer_list< Integer > ilist)
     
    template<typename... Ints, typename = std::enable_if_t<(std::is_integral_v<Ints> && ...)>>
     MultiIndex (Ints... ilist)
     
     MultiIndex (std::size_t hash)
     
    std::size_t hash () const
     
    const auto & operator[] (std::size_t idx) const
     
    template<typename Archive >
    void serialize (Archive &ar, const unsigned int version=0)
     
    + + + + + +

    +Static Public Attributes

    static constexpr const std::size_t max_index = 1 << 21
     
    static constexpr const std::size_t max_index_square = max_index * max_index
     
    + + + + + +

    +Friends

    bool operator== (const MultiIndex< Rank > &lhs, const MultiIndex< Rank > &rhs)
     
    bool operator!= (const MultiIndex< Rank > &lhs, const MultiIndex< Rank > &rhs)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ MultiIndex() [1/4]

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + + + + +
    ttg::MultiIndex< Rank, Int >::MultiIndex ()
    +
    +default
    +
    + +
    +
    + +

    ◆ MultiIndex() [2/4]

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    +
    +template<typename Integer , typename = std::enable_if_t<std::is_integral_v<Int>>>
    + + + + + +
    + + + + + + + + +
    ttg::MultiIndex< Rank, Int >::MultiIndex (std::initializer_list< Integer > ilist)
    +
    +inline
    +
    + +

    Definition at line 18 of file multiindex.h.

    + +
    +
    + +

    ◆ MultiIndex() [3/4]

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    +
    +template<typename... Ints, typename = std::enable_if_t<(std::is_integral_v<Ints> && ...)>>
    + + + + + +
    + + + + + + + + +
    ttg::MultiIndex< Rank, Int >::MultiIndex (Ints... ilist)
    +
    +inline
    +
    + +

    Definition at line 23 of file multiindex.h.

    + +
    +
    + +

    ◆ MultiIndex() [4/4]

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + + + + + +
    ttg::MultiIndex< Rank, Int >::MultiIndex (std::size_t hash)
    +
    +inlineexplicit
    +
    + +

    Definition at line 26 of file multiindex.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ hash()

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + + + + +
    std::size_t ttg::MultiIndex< Rank, Int >::hash () const
    +
    +inline
    +
    + +

    Definition at line 42 of file multiindex.h.

    + +
    +
    + +

    ◆ operator[]()

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + + + + + +
    const auto& ttg::MultiIndex< Rank, Int >::operator[] (std::size_t idx) const
    +
    +inline
    +
    + +

    Definition at line 53 of file multiindex.h.

    + +
    +
    + +

    ◆ serialize()

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    +
    +template<typename Archive >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg::MultiIndex< Rank, Int >::serialize (Archive & ar,
    const unsigned int version = 0 
    )
    +
    +inline
    +
    + +

    Definition at line 59 of file multiindex.h.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ operator!=

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool operator!= (const MultiIndex< Rank > & lhs,
    const MultiIndex< Rank > & rhs 
    )
    +
    +friend
    +
    + +

    Definition at line 77 of file multiindex.h.

    + +
    +
    + +

    ◆ operator==

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    bool operator== (const MultiIndex< Rank > & lhs,
    const MultiIndex< Rank > & rhs 
    )
    +
    +friend
    +
    + +

    Definition at line 74 of file multiindex.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ max_index

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + +
    constexpr const std::size_t ttg::MultiIndex< Rank, Int >::max_index = 1 << 21
    +
    +staticconstexpr
    +
    + +

    Definition at line 14 of file multiindex.h.

    + +
    +
    + +

    ◆ max_index_square

    + +
    +
    +
    +template<std::size_t Rank, typename Int = int>
    + + + + + +
    + + + + +
    constexpr const std::size_t ttg::MultiIndex< Rank, Int >::max_index_square = max_index * max_index
    +
    +staticconstexpr
    +
    + +

    Definition at line 15 of file multiindex.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1_split_metadata_descriptor.html b/dox-master/structttg_1_1_split_metadata_descriptor.html new file mode 100644 index 000000000..ff44fb779 --- /dev/null +++ b/dox-master/structttg_1_1_split_metadata_descriptor.html @@ -0,0 +1,148 @@ + + + + + + + + + + + ttg: ttg::SplitMetadataDescriptor< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::SplitMetadataDescriptor< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::SplitMetadataDescriptor< T >

    + +

    SplitMetadataDescriptor is a serialization descriptor provided by the user for a user-specified type. It should contain the following public member functions:

    <metadata_type> get_metadata(const T& t);
    +

    which returns the metadata that describes the object, e.g., shape information. This data will be passed to

    auto create_from_metadata(const <metadata_type>& meta);
    +

    which returns a new instance of T, initialized with the previously provided metadata. This instance will be deserialization target.

    +

    Both the serialization source and the deserialization target objects will be passed to

    auto get_data(T& t);
    +

    which returns a collection of

    See also
    ttg::iovec instances describing the payload data to be transferred from the source to the target object.
    + +

    Definition at line 35 of file splitmd_data_descriptor.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1default__data__descriptor.html b/dox-master/structttg_1_1default__data__descriptor.html new file mode 100644 index 000000000..c8bbd77f4 --- /dev/null +++ b/dox-master/structttg_1_1default__data__descriptor.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: ttg::default_data_descriptor< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::default_data_descriptor< T, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::default_data_descriptor< T, Enabler >

    + +

    Provides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor.

    +

    The default implementation is only provided for POD data types but is efficient in the sense that it does enable zero-copy remote data transfers. For other data types, optimized implementations must be provided as needed or, if available, the MADNESS serialization can be used but this will always make a copy and requires that the entire object fit in the message buffer.

    + +

    Definition at line 60 of file data_descriptor.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpydf674d562b76332f750f1fcf6ffeee42.html b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpydf674d562b76332f750f1fcf6ffeee42.html new file mode 100644 index 000000000..9d09a8f08 --- /dev/null +++ b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpydf674d562b76332f750f1fcf6ffeee42.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html new file mode 100644 index 000000000..ea99885df --- /dev/null +++ b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01detail_1_1is__memcpyf8148233cc6c31164130a9122ddd6b31.html @@ -0,0 +1,367 @@ + + + + + + + + + + + ttg: ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >

    + +

    default_data_descriptor for trivially-copyable types

    +
    Template Parameters
    + + +
    Ta trivially-copyable type
    +
    +
    + +

    Definition at line 65 of file data_descriptor.h.

    +
    + + + + + + + + + + +

    +Static Public Member Functions

    static uint64_t payload_size (const void *object)
     measures the size of the binary representation of object More...
     
    static uint64_t pack_payload (const void *object, uint64_t max_nbytes_to_write, uint64_t begin, void *buf)
     serializes object to a buffer More...
     
    static uint64_t unpack_payload (void *object, uint64_t max_nbytes_to_read, uint64_t begin, const void *buf)
     deserializes object from a buffer More...
     
    + + + +

    +Static Public Attributes

    static constexpr const bool serialize_size_is_const = true
     
    +

    Member Function Documentation

    + +

    ◆ pack_payload()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static uint64_t ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::pack_payload (const void * object,
    uint64_t max_nbytes_to_write,
    uint64_t begin,
    void * buf 
    )
    +
    +inlinestatic
    +
    + +

    serializes object to a buffer

    +
    Parameters
    + + + + + +
    [in]objectpointer to the object to be serialized
    [in]max_nbytes_to_writethe maximum number of bytes to write
    [in]offsetthe position in buf where the first byte of serialized data will be written
    [in,out]bufthe data buffer that will contain the serialized representation of the object
    +
    +
    +
    Returns
    position in buf after the last byte written
    + +

    Definition at line 81 of file data_descriptor.h.

    + +
    +
    + +

    ◆ payload_size()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    static uint64_t ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::payload_size (const void * object)
    +
    +inlinestatic
    +
    + +

    measures the size of the binary representation of object

    +
    Parameters
    + + +
    [in]objectpointer to the object to be serialized
    +
    +
    +
    Returns
    the number of bytes needed for binary representation of object
    + +

    Definition at line 73 of file data_descriptor.h.

    + +
    +
    + +

    ◆ unpack_payload()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static uint64_t ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::unpack_payload (void * object,
    uint64_t max_nbytes_to_read,
    uint64_t begin,
    const void * buf 
    )
    +
    +inlinestatic
    +
    + +

    deserializes object from a buffer

    +
    Parameters
    + + + + + +
    [in]objectpointer to the object to be deserialized
    [in]max_nbytes_to_readthe maximum number of bytes to read
    [in]offsetthe position in buf where the first byte of serialized data will be read
    [in]bufthe data buffer that contains the serialized representation of the object
    +
    +
    +
    Returns
    position in buf after the last byte read
    + +

    Definition at line 94 of file data_descriptor.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ serialize_size_is_const

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr const bool ttg::default_data_descriptor< T, std::enable_if_t< detail::is_memcpyable_v< T > &&!detail::is_user_buffer_serializable_v< T > &&!ttg::has_split_metadata< T >::value > >::serialize_size_is_const = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 68 of file data_descriptor.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html new file mode 100644 index 000000000..9083b596b --- /dev/null +++ b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__m7b97af3698ab80a6204d3eb38af1e244.html @@ -0,0 +1,367 @@ + + + + + + + + + + + ttg: ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >

    + +

    default_data_descriptor for types that support 2-stage serialization (metadata first, then the rest) for implementing zero-copy transfers

    +
    Template Parameters
    + + +
    Ta type for which ttg::has_split_metadata<T>::value is true
    +
    +
    + +

    Definition at line 105 of file data_descriptor.h.

    +
    + + + + + + + + + + +

    +Static Public Member Functions

    static uint64_t payload_size (const void *object)
     measures the size of the binary representation of object More...
     
    static uint64_t pack_payload (const void *object, uint64_t max_nbytes_to_write, uint64_t begin, void *buf)
     serializes object to a buffer More...
     
    static uint64_t unpack_payload (void *object, uint64_t max_nbytes_to_read, uint64_t begin, const void *buf)
     deserializes object from a buffer More...
     
    + + + +

    +Static Public Attributes

    static constexpr const bool serialize_size_is_const = false
     
    +

    Member Function Documentation

    + +

    ◆ pack_payload()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static uint64_t ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::pack_payload (const void * object,
    uint64_t max_nbytes_to_write,
    uint64_t begin,
    void * buf 
    )
    +
    +inlinestatic
    +
    + +

    serializes object to a buffer

    +
    Parameters
    + + + + + +
    [in]objectpointer to the object to be serialized
    [in]max_nbytes_to_writethe maximum number of bytes to write
    [in]offsetthe position in buf where the first byte of serialized data will be written
    [in,out]bufthe data buffer that will contain the serialized representation of the object
    +
    +
    +
    Returns
    position in buf after the last byte written
    + +

    Definition at line 129 of file data_descriptor.h.

    + +
    +
    + +

    ◆ payload_size()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    static uint64_t ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::payload_size (const void * object)
    +
    +inlinestatic
    +
    + +

    measures the size of the binary representation of object

    +
    Parameters
    + + +
    [in]objectpointer to the object to be serialized
    +
    +
    +
    Returns
    the number of bytes needed for binary representation of object
    + +

    Definition at line 111 of file data_descriptor.h.

    + +
    +
    + +

    ◆ unpack_payload()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    static uint64_t ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::unpack_payload (void * object,
    uint64_t max_nbytes_to_read,
    uint64_t begin,
    const void * buf 
    )
    +
    +inlinestatic
    +
    + +

    deserializes object from a buffer

    +
    Parameters
    + + + + + +
    [in]objectpointer to the object to be deserialized
    [in]max_nbytes_to_readthe maximum number of bytes to read
    [in]offsetthe position in buf where the first byte of serialized data will be read
    [in]bufthe data buffer that contains the serialized representation of the object
    +
    +
    +
    Returns
    position in buf after the last byte read
    + +

    Definition at line 152 of file data_descriptor.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ serialize_size_is_const

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + +
    constexpr const bool ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > >::serialize_size_is_const = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 106 of file data_descriptor.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__mf4fe25a443b4ca7dfa7b6c7cbcd60208.html b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__mf4fe25a443b4ca7dfa7b6c7cbcd60208.html new file mode 100644 index 000000000..c51d493b8 --- /dev/null +++ b/dox-master/structttg_1_1default__data__descriptor_3_01_t_00_01std_1_1enable__if__t_3_01ttg_1_1has__split__mf4fe25a443b4ca7dfa7b6c7cbcd60208.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::default_data_descriptor< T, std::enable_if_t< ttg::has_split_metadata< T >::value > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper-members.html b/dox-master/structttg_1_1detail_1_1_container_wrapper-members.html new file mode 100644 index 000000000..fac92d9bc --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper-members.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::ContainerWrapper< keyT, valueT > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper.html b/dox-master/structttg_1_1detail_1_1_container_wrapper.html new file mode 100644 index 000000000..609127d9c --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper.html @@ -0,0 +1,367 @@ + + + + + + + + + + + ttg: ttg::detail::ContainerWrapper< keyT, valueT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::ContainerWrapper< keyT, valueT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename keyT, typename valueT>
    +struct ttg::detail::ContainerWrapper< keyT, valueT >

    + + +

    Definition at line 25 of file terminal.h.

    +
    + + + + + + + + + + + + +

    +Public Member Functions

     ContainerWrapper ()=default
     
     ContainerWrapper (const ContainerWrapper &)=default
     
     ContainerWrapper (ContainerWrapper &&)=default
     
    ContainerWrapperoperator= (const ContainerWrapper &)=default
     
    template<typename T , typename mapperT , typename keymapT , std::enable_if_t<!std::is_same< std::decay_t< T >, ContainerWrapper >{}, bool > = true>
     ContainerWrapper (T &t, mapperT &&mapper, keymapT &&keymap)
     
    + + + + + +

    +Public Attributes

    std::function< valueT(keyT const &key)> get = nullptr
     
    std::function< size_t(keyT const &key)> owner = nullptr
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ ContainerWrapper() [1/4]

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + + + + +
    ttg::detail::ContainerWrapper< keyT, valueT >::ContainerWrapper ()
    +
    +default
    +
    + +
    +
    + +

    ◆ ContainerWrapper() [2/4]

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + + + + + +
    ttg::detail::ContainerWrapper< keyT, valueT >::ContainerWrapper (const ContainerWrapper< keyT, valueT > & )
    +
    +default
    +
    + +
    +
    + +

    ◆ ContainerWrapper() [3/4]

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + + + + + +
    ttg::detail::ContainerWrapper< keyT, valueT >::ContainerWrapper (ContainerWrapper< keyT, valueT > && )
    +
    +default
    +
    + +
    +
    + +

    ◆ ContainerWrapper() [4/4]

    + +
    +
    +
    +template<typename keyT , typename valueT >
    +
    +template<typename T , typename mapperT , typename keymapT , std::enable_if_t<!std::is_same< std::decay_t< T >, ContainerWrapper >{}, bool > = true>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg::detail::ContainerWrapper< keyT, valueT >::ContainerWrapper (T & t,
    mapperT && mapper,
    keymapT && keymap 
    )
    +
    +inline
    +
    + +

    Definition at line 37 of file terminal.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator=()

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + + +
    + + + + + + + + +
    ContainerWrapper& ttg::detail::ContainerWrapper< keyT, valueT >::operator= (const ContainerWrapper< keyT, valueT > & )
    +
    +default
    +
    + +
    +
    +

    Member Data Documentation

    + +

    ◆ get

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + +
    std::function<valueT (keyT const& key)> ttg::detail::ContainerWrapper< keyT, valueT >::get = nullptr
    +
    + +

    Definition at line 26 of file terminal.h.

    + +
    +
    + +

    ◆ owner

    + +
    +
    +
    +template<typename keyT , typename valueT >
    + + + + +
    std::function<size_t (keyT const& key)> ttg::detail::ContainerWrapper< keyT, valueT >::owner = nullptr
    +
    + +

    Definition at line 27 of file terminal.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4-members.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4-members.html new file mode 100644 index 000000000..79c49c0e4 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::ContainerWrapper< keyT, void > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html new file mode 100644 index 000000000..9dcb5fd35 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01key_t_00_01void_01_4.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: ttg::detail::ContainerWrapper< keyT, void > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::ContainerWrapper< keyT, void > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename keyT>
    +struct ttg::detail::ContainerWrapper< keyT, void >

    + + +

    Definition at line 63 of file terminal.h.

    +
    + + + + + +

    +Public Attributes

    std::function< std::nullptr_t(keyT const &key)> get = nullptr
     
    std::function< size_t(keyT const &key)> owner = nullptr
     
    +

    Member Data Documentation

    + +

    ◆ get

    + +
    +
    +
    +template<typename keyT >
    + + + + +
    std::function<std::nullptr_t (keyT const& key)> ttg::detail::ContainerWrapper< keyT, void >::get = nullptr
    +
    + +

    Definition at line 64 of file terminal.h.

    + +
    +
    + +

    ◆ owner

    + +
    +
    +
    +template<typename keyT >
    + + + + +
    std::function<size_t (keyT const& key)> ttg::detail::ContainerWrapper< keyT, void >::owner = nullptr
    +
    + +

    Definition at line 65 of file terminal.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4-members.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4-members.html new file mode 100644 index 000000000..01e8532fa --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::ContainerWrapper< ttg::Void, valueT > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html new file mode 100644 index 000000000..5af8cac18 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01ttg_1_1_void_00_01value_t_01_4.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: ttg::detail::ContainerWrapper< ttg::Void, valueT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::ContainerWrapper< ttg::Void, valueT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename valueT>
    +struct ttg::detail::ContainerWrapper< ttg::Void, valueT >

    + + +

    Definition at line 68 of file terminal.h.

    +
    + + + + + +

    +Public Attributes

    std::function< valueT()> get = nullptr
     
    std::function< size_t()> owner = nullptr
     
    +

    Member Data Documentation

    + +

    ◆ get

    + +
    +
    +
    +template<typename valueT >
    + + + + +
    std::function<valueT ()> ttg::detail::ContainerWrapper< ttg::Void, valueT >::get = nullptr
    +
    + +

    Definition at line 69 of file terminal.h.

    + +
    +
    + +

    ◆ owner

    + +
    +
    +
    +template<typename valueT >
    + + + + +
    std::function<size_t ()> ttg::detail::ContainerWrapper< ttg::Void, valueT >::owner = nullptr
    +
    + +

    Definition at line 70 of file terminal.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4-members.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4-members.html new file mode 100644 index 000000000..1936db46f --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::ContainerWrapper< void, valueT > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html new file mode 100644 index 000000000..44f3ba7bd --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01value_t_01_4.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: ttg::detail::ContainerWrapper< void, valueT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::ContainerWrapper< void, valueT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename valueT>
    +struct ttg::detail::ContainerWrapper< void, valueT >

    + + +

    Definition at line 58 of file terminal.h.

    +
    + + + + + +

    +Public Attributes

    std::function< valueT()> get = nullptr
     
    std::function< size_t()> owner = nullptr
     
    +

    Member Data Documentation

    + +

    ◆ get

    + +
    +
    +
    +template<typename valueT >
    + + + + +
    std::function<valueT ()> ttg::detail::ContainerWrapper< void, valueT >::get = nullptr
    +
    + +

    Definition at line 59 of file terminal.h.

    + +
    +
    + +

    ◆ owner

    + +
    +
    +
    +template<typename valueT >
    + + + + +
    std::function<size_t ()> ttg::detail::ContainerWrapper< void, valueT >::owner = nullptr
    +
    + +

    Definition at line 60 of file terminal.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4-members.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4-members.html new file mode 100644 index 000000000..4d6daaaf1 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::ContainerWrapper< void, void > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html new file mode 100644 index 000000000..9e1b25a4e --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_container_wrapper_3_01void_00_01void_01_4.html @@ -0,0 +1,184 @@ + + + + + + + + + + + ttg: ttg::detail::ContainerWrapper< void, void > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::ContainerWrapper< void, void > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 73 of file terminal.h.

    +
    + + + + + +

    +Public Attributes

    std::function< std::nullptr_t()> get = nullptr
     
    std::function< size_t()> owner = nullptr
     
    +

    Member Data Documentation

    + +

    ◆ get

    + +
    +
    + + + + +
    std::function<std::nullptr_t ()> ttg::detail::ContainerWrapper< void, void >::get = nullptr
    +
    + +

    Definition at line 74 of file terminal.h.

    + +
    +
    + +

    ◆ owner

    + +
    +
    + + + + +
    std::function<size_t ()> ttg::detail::ContainerWrapper< void, void >::owner = nullptr
    +
    + +

    Definition at line 75 of file terminal.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor-members.html b/dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor-members.html new file mode 100644 index 000000000..8c58b9537 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::Traverse::null_visitor< Visitable > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::Traverse::null_visitor< Visitable >, including all inherited members.

    + + + +
    operator()(Visitable *)ttg::detail::Traverse::null_visitor< Visitable >inline
    operator()(const Visitable *)ttg::detail::Traverse::null_visitor< Visitable >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor.html b/dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor.html new file mode 100644 index 000000000..6dbeb7254 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1_traverse_1_1null__visitor.html @@ -0,0 +1,227 @@ + + + + + + + + + + + ttg: ttg::detail::Traverse::null_visitor< Visitable > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::Traverse::null_visitor< Visitable > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Visitable>
    +struct ttg::detail::Traverse::null_visitor< Visitable >

    + +

    visitor that does nothing

    Template Parameters
    + + +
    Visitableany type
    +
    +
    + +

    Definition at line 127 of file traverse.h.

    +
    + + + + + + + +

    +Public Member Functions

    void operator() (Visitable *)
     visits a non-const Visitable object More...
     
    void operator() (const Visitable *)
     visits a const Visitable object More...
     
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename Visitable >
    + + + + + +
    + + + + + + + + +
    void ttg::detail::Traverse::null_visitor< Visitable >::operator() (const Visitable * )
    +
    +inline
    +
    + +

    visits a const Visitable object

    + +

    Definition at line 131 of file traverse.h.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename Visitable >
    + + + + + +
    + + + + + + + + +
    void ttg::detail::Traverse::null_visitor< Visitable >::operator() (Visitable * )
    +
    +inline
    +
    + +

    visits a non-const Visitable object

    + +

    Definition at line 129 of file traverse.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__keymap-members.html b/dox-master/structttg_1_1detail_1_1default__keymap-members.html new file mode 100644 index 000000000..355252a22 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__keymap-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::default_keymap< keyT > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::default_keymap< keyT >, including all inherited members.

    + + + +
    default_keymap()=defaultttg::detail::default_keymap< keyT >
    default_keymap(const ttg::World &world)ttg::detail::default_keymap< keyT >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__keymap.html b/dox-master/structttg_1_1detail_1_1default__keymap.html new file mode 100644 index 000000000..f98bc11f3 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__keymap.html @@ -0,0 +1,221 @@ + + + + + + + + + + + ttg: ttg::detail::default_keymap< keyT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::default_keymap< keyT > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::default_keymap< keyT >:
    +
    +
    + + +ttg::detail::default_keymap_impl< keyT, Enabler > + +
    +

    Documentation

    +

    template<typename keyT>
    +struct ttg::detail::default_keymap< keyT >

    + + +

    Definition at line 34 of file world.h.

    +
    + + + + + +

    +Public Member Functions

     default_keymap ()=default
     
     default_keymap (const ttg::World &world)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ default_keymap() [1/2]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + +
    ttg::detail::default_keymap< keyT >::default_keymap ()
    +
    +default
    +
    + +
    +
    + +

    ◆ default_keymap() [2/2]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + + +
    ttg::detail::default_keymap< keyT >::default_keymap (const ttg::Worldworld)
    +
    +inline
    +
    + +

    Definition at line 37 of file world.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__keymap.png b/dox-master/structttg_1_1detail_1_1default__keymap.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1f22cf01a224ea16c49cd114332ad1cbd2d90b GIT binary patch literal 888 zcmeAS@N?(olHy`uVBq!ia0vp^uYov#gBeJkzgZLrq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0**#qxLn;{G&b>HkjTVoq`0Z6c|NHN& zjS^w%y!H4?t;4b^f6jLFav7 zN-Z&K|5(L8VM&Cai}6#-YxbT-zj(84UKrm2DtCLn=Hi=UyK;|uU%hqBao@(j+1Kt@ zb!D1{Sv#4x&HiQ21wXgH`9h&7|ZuinI`=dzkk*rN2 z;iY#3S7%zso%_b~yrH|4H~VVky19wQuTFpSjGa4Y`s=J{&p-Rv=H0roIcoChSMD-< z*4Li9{Jqpxx_bVJ+u>h#+{w^(et+}V%9BrIer!@GZo7YSx80uqO?G#l+PprT9*ZjK7SodXZS8rN)?ppcv@!e-%=Wmw1X!q#UEzKn$*HR;=rE@&^f1Uq;^B09{^XET5VAt`r^_RpA^^NE3cnlV)X&}%-*D}*tlz~6*(Y9Zd-)<~#s=#( zmJhvd^PXbqe3$;tWV&yx>|yD1J;g`Py=gVQ&HLa*&(=Hd!g6ajs;Ar)f0;9pJ7V>@;Ay~_D} z_O4rDLi^V@E;swS=Gv1@RqwOq%ih<<@}Ik>{^?#AuYvikQx~eY)nyr3vhQ1SZO+5; zqV@dciQ9jDNSD`ZxZQP5{6M2!#C^rpmGO-KTwWi)tu5Yg_2p&z$a{srIAE-CPPAt1 t_ + + + + + + + + + + ttg: ttg::detail::default_keymap_impl< keyT, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::default_keymap_impl< keyT, Enabler > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::default_keymap_impl< keyT, Enabler >:
    +
    +
    + + +ttg::detail::default_keymap< keyT > + +
    +

    Documentation

    +

    template<typename keyT, typename Enabler = void>
    +struct ttg::detail::default_keymap_impl< keyT, Enabler >

    + +

    the default keymap implementation requires ttg::hash{}(key) ... use SFINAE TODO improve error messaging via more elaborate techniques e.g. https://gracicot.github.io/tricks/2017/07/01/deleted-function-diagnostic.html

    + +

    Definition at line 15 of file keymap.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__keymap__impl.png b/dox-master/structttg_1_1detail_1_1default__keymap__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..67b0e471185b61db1030ae82ce5758ac05d7883d GIT binary patch literal 1061 zcmeAS@N?(olHy`uVBq!ia0y~yU{nCI12~w0WFJSwaUdlT;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z`VuN#WAFU@$KB#eNVJ_*t+>M@BN?X zzuH-d=h)nRXZ!m0c%5zAVi<7eUyzrkr{>Zh0SrP6{UR&^6Pg&9f&?5KxR^LBSnmG& z95VO*nc19gxwbpYzmOCD{U^r4w9P-xWp`a0e?#TDM&>mYt`~M0q*nwB95|5dc=@`) zvqcMHH|_i$z3}gb|B`IB$L2UjCzzM7eI#+=(%boG@02sXogR5%O0jCj`P?Y0?A_1L zZfG)d4Sx8?A+hR={^8dfn&vcA+xu4DIP2~(|J{ZcPh+??9e%-n(dMlBQJoh)cDz@Q ztxcZR)OXH$TdwWoj5%_~4C>ESGVaTzCHo4$ms=LjQhM|Ic71&F!^)if>i$XYZa=OtvkQKwP)sx zpJK+2>lF686|kMP)aROYeu1aIen#}JpsmV62$zIKkMJA%D}^2Q#kc zr{8xh?$!SLYsdUd*0YZpez0|y-HURJf3bV>QHDt(ECr2-xH#Y&pt)3K>6AxIAC~`M z^kAq75;!nx{(KXb4JxdRYj*zhbY{>7Mw!PeMh*{021ZQ|1qD_{mL&=e4G1$p@kzeq zkK(4RwO{o=24}CW=UAnpI_b&8CKXKuR?i>@u1QN8L{vN(&vR>icb~-b-28Kz({3lp z;u#U^89l2Sg4gE!S9xi=Pb(vKhH;JOh1VzJM7Nwj(VORhnm{f>6G-^#3n9Nt9oLG_ zUbM2HF5u#q8S!n`6Im@8%axbi$&y*LC+o0`=cV91iZ601rB?MuAJ<`(RW8oCUG;ax z-mEfK+x0INH{E)cEqzhE1eo%)9o4+QU%P6o{0*q|O{DAmI7HOnniV!7_^tdpXsr9l zn{aOeM*4f6S*!mx8)rmc2gY{V#@%+%*v?G>#kR~MP;B4RH4FXyH~P#s_euNuZeMtO z&HmE5FRk7Bx94yYwf2tDMbT?OlqCfO(q1)78&qol`;+0EV*EF8}}l literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html b/dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html new file mode 100644 index 000000000..7dfc647ef --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1has123945d9d792a00bb2cb6ba800d86ff2.html @@ -0,0 +1,282 @@ + + + + + + + + + + + ttg: ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename keyT>
    +struct ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >

    + + +

    Definition at line 17 of file keymap.h.

    +
    + + + + + + + + + + + +

    +Public Member Functions

     default_keymap_impl ()=default
     
     default_keymap_impl (int world_size)
     
    template<typename Key = keyT>
    std::enable_if_t<!meta::is_void_v< Key >, int > operator() (const Key &key) const
     
    template<typename Key = keyT>
    std::enable_if_t< meta::is_void_v< Key >, int > operator() () const
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ default_keymap_impl() [1/2]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + +
    ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::default_keymap_impl ()
    +
    +default
    +
    + +
    +
    + +

    ◆ default_keymap_impl() [2/2]

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + + +
    ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::default_keymap_impl (int world_size)
    +
    +inline
    +
    + +

    Definition at line 20 of file keymap.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename keyT >
    +
    +template<typename Key = keyT>
    + + + + + +
    + + + + + + + +
    std::enable_if_t<meta::is_void_v<Key>,int> ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::operator() () const
    +
    +inline
    +
    + +

    Definition at line 33 of file keymap.h.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename keyT >
    +
    +template<typename Key = keyT>
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<Key>,int> ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > >::operator() (const Key & key) const
    +
    +inline
    +
    + +

    Definition at line 24 of file keymap.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1hasd353ef25466bbdd7edbf73cb6ea42fbf.html b/dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1hasd353ef25466bbdd7edbf73cb6ea42fbf.html new file mode 100644 index 000000000..d37075417 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__keymap__impl_3_01key_t_00_01std_1_1enable__if__t_3_01meta_1_1hasd353ef25466bbdd7edbf73cb6ea42fbf.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::default_keymap_impl< keyT, std::enable_if_t< meta::has_ttg_hash_specialization_v< keyT >||meta::is_void_v< keyT > > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__priomap-members.html b/dox-master/structttg_1_1detail_1_1default__priomap-members.html new file mode 100644 index 000000000..8505520be --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__priomap-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::default_priomap< keyT > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__priomap.html b/dox-master/structttg_1_1detail_1_1default__priomap.html new file mode 100644 index 000000000..71dbfb1ef --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__priomap.html @@ -0,0 +1,198 @@ + + + + + + + + + + + ttg: ttg::detail::default_priomap< keyT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::default_priomap< keyT > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::default_priomap< keyT >:
    +
    +
    + + +ttg::detail::default_priomap_impl< keyT > + +
    +

    Documentation

    +

    template<typename keyT>
    +struct ttg::detail::default_priomap< keyT >

    + + +

    Definition at line 41 of file world.h.

    +
    + + + + + + + + + + + + +

    +Public Member Functions

     default_priomap ()=default
     
    - Public Member Functions inherited from ttg::detail::default_priomap_impl< keyT >
     default_priomap_impl ()=default
     
    template<typename Key = keyT>
    std::enable_if_t<!meta::is_void_v< Key >, int > operator() (const Key &key) const
     
    template<typename Key = keyT>
    std::enable_if_t< meta::is_void_v< Key >, int > operator() () const
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ default_priomap()

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + +
    ttg::detail::default_priomap< keyT >::default_priomap ()
    +
    +default
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__priomap.png b/dox-master/structttg_1_1detail_1_1default__priomap.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2f1b8363a6d3668a65f6b12f27298c285988bc GIT binary patch literal 908 zcmeAS@N?(olHy`uVBq!ia0vp^Z-F>~gBeI3I?f~pq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0r9E97Ln;{G&V9ITu@+CO{r2p+-|L^e zT)BW#U{&t>GrLa6l)D!Q|71F{f6eP%_uSS@DiQXL@{|gm95(6L6~Em!`kqBrzwXT4 zJnLA{F^)rSdnY})`av{S_xLyeNptQk?3FHUnGiPV-j(cIE6guHOR-5&+i!ZQ`Ojlc zt@DYuden~Z@BQ-MFk|=qU&XiIi6wjZXWe?WRX^kMjNa{8GO|%2vF|(!qtn!U&qU4> zSQjfZ`)&gBJ5A4-pN%!{NnMiLmv!%+c(qg1dZWs^CETHDx0Rm!6}l+(S@PDF(|7l-rLD* zb4_I4ZM)pkyxELrcYa;3mpS`+*=_miy&jwf}Aazgqtlu+k>+e)?Jtb{=b#C{TSpS{d zo^q?a%>KoleS5n}*(Md>0LST$@o}_pYT{`xg6~ z-h%h8*4ah}R?OPM094AV40fkff)n^>er@5PP^T~`alh?wBg&uo3HF4@wJ$Z z=@}O=#u#`_&+L4{RPx0#_s$CCmMsj+zt$bPwZ$^{9rIMFmyZ8FvP^w$kn6UYVSld; z>+3U&-^(^Q$2{@R2tELgB%P4y)j@Zr&Gg({HcfqA_Hsk(Qm?*xPeF+V*R*dvE;P-5 z-)*b7HhiXy{UxO*x`G#v?YW+LSbP0 Hl+XkKJP5oC literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1default__priomap__impl-members.html b/dox-master/structttg_1_1detail_1_1default__priomap__impl-members.html new file mode 100644 index 000000000..06255df50 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__priomap__impl-members.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::default_priomap_impl< keyT > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::default_priomap_impl< keyT >, including all inherited members.

    + + + + +
    default_priomap_impl()=defaultttg::detail::default_priomap_impl< keyT >
    operator()(const Key &key) constttg::detail::default_priomap_impl< keyT >inline
    operator()() constttg::detail::default_priomap_impl< keyT >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__priomap__impl.html b/dox-master/structttg_1_1detail_1_1default__priomap__impl.html new file mode 100644 index 000000000..c6283f657 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1default__priomap__impl.html @@ -0,0 +1,260 @@ + + + + + + + + + + + ttg: ttg::detail::default_priomap_impl< keyT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::default_priomap_impl< keyT > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::default_priomap_impl< keyT >:
    +
    +
    + + +ttg::detail::default_priomap< keyT > + +
    +

    Documentation

    +

    template<typename keyT>
    +struct ttg::detail::default_priomap_impl< keyT >

    + +

    the default priority map implementation

    + +

    Definition at line 42 of file keymap.h.

    +
    + + + + + + + + + +

    +Public Member Functions

     default_priomap_impl ()=default
     
    template<typename Key = keyT>
    std::enable_if_t<!meta::is_void_v< Key >, int > operator() (const Key &key) const
     
    template<typename Key = keyT>
    std::enable_if_t< meta::is_void_v< Key >, int > operator() () const
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ default_priomap_impl()

    + +
    +
    +
    +template<typename keyT >
    + + + + + +
    + + + + + + + +
    ttg::detail::default_priomap_impl< keyT >::default_priomap_impl ()
    +
    +default
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    +
    +template<typename keyT >
    +
    +template<typename Key = keyT>
    + + + + + +
    + + + + + + + +
    std::enable_if_t<meta::is_void_v<Key>,int> ttg::detail::default_priomap_impl< keyT >::operator() () const
    +
    +inline
    +
    + +

    Definition at line 50 of file keymap.h.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    +
    +template<typename keyT >
    +
    +template<typename Key = keyT>
    + + + + + +
    + + + + + + + + +
    std::enable_if_t<!meta::is_void_v<Key>,int> ttg::detail::default_priomap_impl< keyT >::operator() (const Key & key) const
    +
    +inline
    +
    + +

    Definition at line 47 of file keymap.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1default__priomap__impl.png b/dox-master/structttg_1_1detail_1_1default__priomap__impl.png new file mode 100644 index 0000000000000000000000000000000000000000..ec751b5d5a9b89faf2fa700c8e499fb1a9c28ca6 GIT binary patch literal 915 zcmeAS@N?(olHy`uVBq!ia0vp^Z-F>~gBeI3I?f~pq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0l{{S>Ln;{G&V4&+v4Vgr|MgXS{wwDT zIqv@1rFJt%*XZ$F!982%u-)3_uqH(^Vzq;@)!A@ESSIKMhE{TdH;ZlvddW} zmUSkVyw@7D-nmt_UBbC0=#tp_T1V;QYxcM%zgGx|dFNR+J6+B1OyoR)b#rBBpG{!S z)9jr2+4#i0TTAZN9^JEd{oBk-RZmZTR*qd^bDJ-5@#@QBoi8sRvz7Z^J-6)pn`M`` zPCjvOK!cT&sB1-Pxe==XFPEIOY_#Z z(S2$%5B^_Y!YUCwSuDZF*6xO4OMxKcALhFZdW*d;-pdO=v{&S<>^G+!*B8w-l}rfn zjcPD7&15`w1*V0Nz=Qnk$Z1c%@6tWJ=}(-_q!K~jC{L;2$zhX@g*2Pl=zA93`h92a z=2>nhl1+f|rMhxam*pD!NmnjE2ga7izY9SMuHni2oG6B~kEHSE{q8ha&_ul6%h5g6>#x1{VyZfcdTG^M&)-izl6R1|er&qhjriMJB2`|#{>ArpCFj07CnuTosI67$T?q__ + + + + + + + + + + ttg: ttg::detail::edges_tuple< keyT, valuesT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::edges_tuple< keyT, valuesT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename keyT, typename valuesT>
    +struct ttg::detail::edges_tuple< keyT, valuesT >

    + + +

    Definition at line 183 of file edge.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..a74643469 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >, including all inherited members.

    + + +
    type typedefttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..260394660 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1edges__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename keyT, typename... valuesT>
    +struct ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >

    + + +

    Definition at line 186 of file edge.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< ttg::Edge< keyT, valuesT >... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename keyT , typename... valuesT>
    + + + + +
    using ttg::detail::edges_tuple< keyT, std::tuple< valuesT... > >::type = std::tuple<ttg::Edge<keyT, valuesT>...>
    +
    + +

    Definition at line 187 of file edge.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1hash__combine__impl-members.html b/dox-master/structttg_1_1detail_1_1hash__combine__impl-members.html new file mode 100644 index 000000000..f0dff6ec5 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1hash__combine__impl-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::hash_combine_impl Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::hash_combine_impl, including all inherited members.

    + + +
    fn(std::size_t h, std::size_t k)ttg::detail::hash_combine_implinlinestatic
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1hash__combine__impl.html b/dox-master/structttg_1_1detail_1_1hash__combine__impl.html new file mode 100644 index 000000000..a9fa49e17 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1hash__combine__impl.html @@ -0,0 +1,189 @@ + + + + + + + + + + + ttg: ttg::detail::hash_combine_impl Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::hash_combine_impl Struct Reference
    +
    +
    +

    Documentation

    +

    combines 2 hash values; implementation based on boost::hash_combine_impl<64> from Boost v1.79.0

    + +

    Definition at line 37 of file hash.h.

    +
    + + + +

    +Static Public Member Functions

    static std::size_t fn (std::size_t h, std::size_t k)
     
    +

    Member Function Documentation

    + +

    ◆ fn()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static std::size_t ttg::detail::hash_combine_impl::fn (std::size_t h,
    std::size_t k 
    )
    +
    +inlinestatic
    +
    + +

    Definition at line 40 of file hash.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1input__terminals__tuple-members.html b/dox-master/structttg_1_1detail_1_1input__terminals__tuple-members.html new file mode 100644 index 000000000..a919dd9e4 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1input__terminals__tuple-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::input_terminals_tuple< keyT, valuesT > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::input_terminals_tuple< keyT, valuesT >, including all inherited members.

    + + +
    type typedefttg::detail::input_terminals_tuple< keyT, valuesT >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1input__terminals__tuple.html b/dox-master/structttg_1_1detail_1_1input__terminals__tuple.html new file mode 100644 index 000000000..bb898510f --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1input__terminals__tuple.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::detail::input_terminals_tuple< keyT, valuesT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::input_terminals_tuple< keyT, valuesT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename keyT, typename... valuesT>
    +struct ttg::detail::input_terminals_tuple< keyT, valuesT >

    + + +

    Definition at line 336 of file terminal.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< ttg::In< keyT, valuesT >... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename keyT , typename... valuesT>
    + + + + +
    using ttg::detail::input_terminals_tuple< keyT, valuesT >::type = std::tuple<ttg::In<keyT, valuesT>...>
    +
    + +

    Definition at line 337 of file terminal.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..7400d5fb8 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..d1999a1b5 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1input__terminals__tuple_3_01key_t_00_01std_1_1tuple_3_01values_t_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename keyT, typename... valuesT>
    +struct ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > >

    + + +

    Definition at line 341 of file terminal.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< ttg::In< keyT, valuesT >... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename keyT , typename... valuesT>
    + + + + +
    using ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > >::type = std::tuple<ttg::In<keyT, valuesT>...>
    +
    + +

    Definition at line 342 of file terminal.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__boost__array__serializable.html b/dox-master/structttg_1_1detail_1_1is__boost__array__serializable.html new file mode 100644 index 000000000..2198f21b7 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__boost__array__serializable.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::detail::is_boost_array_serializable< Archive, T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_boost_array_serializable< Archive, T, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Archive, typename T, typename Enabler = void>
    +struct ttg::detail::is_boost_array_serializable< Archive, T, Enabler >

    + + +

    Definition at line 59 of file boost.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/serialization/backends/boost.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.html b/dox-master/structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.html new file mode 100644 index 000000000..d8cfbfbb9 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_boost_array_serializable< Archive, T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_boost_array_serializable< Archive, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_boost_array_serializable< Archive, T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Archive, typename T>
    +struct ttg::detail::is_boost_array_serializable< Archive, T >

    + + +

    Definition at line 70 of file boost.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/serialization/backends/boost.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.png b/dox-master/structttg_1_1detail_1_1is__boost__array__serializable_3_01_archive_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4fa0c5436f903faaa0749564aa1ed98a598dd5 GIT binary patch literal 966 zcmeAS@N?(olHy`uVBq!ia0y~yU^E7@12~w0q|?MC9UvtU;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z#Qu7;uuoF_;&8iX^RbbSiSXY|NrlA z_dKvIhkZ??)2}Ul!6x0}ODDVuKXXRNcyp?OrcM(8PxN8 z&fCw|UapPV$MG_F-@E4)*^huyPkzn~{AMF6*#G-+%%*ph@zHPcw|76>s?&|FLK`7gUgIPfB7vj_UxK?PDRtrYVs0^mp+q{a?XK0 z7|LKbS-*iLVP*-Nz@yjNOBr1}(is%ZQZ;!M9ITi-CLLo)T4LNF@sdZu4al8%j;h?6 z4aUZskDSSo1(sNnc~i*DC%{B!5_l_n+x1#mO^&X#eO^)i?8JwN;J(L$+DYyOHv_aDFe zulCgbqRKO2YW4H_8gFa-6{ud3%TX;R)Bj3B{p7=C+4bkPJYKn3x$E!uQuD8j$Nps0 zEzj-@><{~*c+}tUO8o6Ij$^h(!m=|j_`h8Cy1L~48TZR<*Q{R`o%s8jY2K7CH$8e|mMA_^oBZsiNxkuu%Leby zNH!!Jp1&hiuxXyJx9N^~bFE%;y?xrD{rcvXbGPTbC@#pgtxo$~yjo}Jjl9s`b(c+6 zoE7`#Yo0xG*|ld9h1>J5tzFv^@cr!Z`>$&+TYtV?vf03_cINbe|q_f*3w z{qrie9S=6v@XZ&`=s)e2YQIB<>p^{?>DLXf>WVfn$RAi@#wgSvj+PW)X{e5Ia{BJM U9S{6?ftilM)78&qol`;+0M9AaEC2ui literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__boost__buffer__serializable.html b/dox-master/structttg_1_1detail_1_1is__boost__buffer__serializable.html new file mode 100644 index 000000000..ac9f0c98f --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__boost__buffer__serializable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_boost_buffer_serializable< T, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_boost_buffer_serializable< T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_boost_buffer_serializable< T, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, class = void>
    +struct ttg::detail::is_boost_buffer_serializable< T, class >

    + + +

    Definition at line 139 of file boost.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/serialization/backends/boost.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__boost__buffer__serializable.png b/dox-master/structttg_1_1detail_1_1is__boost__buffer__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..e71f53baeee407ba0a27a29067e3c7681d8c00c5 GIT binary patch literal 930 zcmeAS@N?(olHy`uVBq!ia0y~yU{nLL12~w0WV4t?1CWvk@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+mbPrdmU zrre8&%lTPmG_$|{RQ`pKvkE3pcWnHtzW#5VU0rd`+ozY5x8|8IPxGuYzMf^YGNyE4 z#EVz2p5I!o$Gh>gscCm!@G6Oj3@ICZ&-`c1p61uKq+Sf1U$o)euHY-CXD5A$)4P9& z-Se_qZ0+T57GEbX$^P-?p2;PXo3r_R>l5>>gkD*^Ty;0Y{_HXJ*mGCyi!OOyI<4Y6 zsl@XB+L!x+m+x3vulh2m&evpVW}BMluP~>{Dmz=$Jc~GeCp{4YdL{L8N}AY=nYs)= z%<>o*4|H8%c~H2!Rh^+7$k-Uk<0ObwQ(CQdTV{qJ_jE4Fw#_g`b~mx~u(irmfoz;K@HZ3~%K z78@I$RlV7}J|l|vU(>Srm$(&eD^iwbuHrxN^g_vwdn=}G77sf7vAAp5FX>$WJKir3 zKdt|{?bVjg!Sj##&b=+Ug?H(FyKWIh_fW~}{Bvx4Y)^Z}lwX{3XutjxuAYyf>H&9! z7sssjYqi_>s_k;ktX0oqkAIJ6|5y?E+`Za2c8SUVU7UPHU;p^*ofEpeEiJM6Se962 zVDr@N3k$DZ;jg$Aed@u!WmEbzP4_O5mdcoJ|2pK-f|==e3ud|AG?w!H-lbQ+Y*x{; zd6V^~%JnR}c>UGB@24E*mt4+}TDL4u;@FuTPq#dqxh!qk+pK37L*8#$y*G14^Z9qa zSAR@iVqGr5Q}yuPmg6t#c083??LVy~Dpb~MJG + + + + + + + + + + ttg: ttg::detail::is_boost_default_buffer_serializable< T, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_boost_default_buffer_serializable< T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_boost_default_buffer_serializable< T, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, class = void>
    +struct ttg::detail::is_boost_default_buffer_serializable< T, class >

    + + +

    Definition at line 153 of file boost.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/serialization/backends/boost.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__boost__default__buffer__serializable.png b/dox-master/structttg_1_1detail_1_1is__boost__default__buffer__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6fa051d2cbdbb6e6ac348c9e3a4facc6fd81b2 GIT binary patch literal 998 zcmeAS@N?(olHy`uVBq!ia0y~yULAu+iG}D@zV=m$^>LH#GJ>bLP+i70roD6fUh)IXcNtRdZU2mgmML!Jb`D zt^7_~y(-H2U$x=LYPZ9sb9a?44fd?+jdr>9Yh(AW`}y;$udMsN)jczIAJ5rIUnJK( zxU!_`=j>H$s-GR-x_F(y9`V9k5?RK(Us)AeN$Pvfe`vJRzI>O;=WlzaFwOttY-0}8 zB&b*9=3BJ=Z0-N0Zwbw+Dm{!6i;0=^kolB|oCs)6-XM~J58yGaOD0HA1dvmVd|Fp8#o1fjTyWDU2v-Or* z`F5Ep4ZCM;E$Q8U?l40G=V#UJy_Z*R`z)QY?)kmneU~?%ykB4y`z!GC+jqTZX7N}S zSG|yWpg8;T+xEzU+mZQRhrbyfS^3{_y5RTSpS0iq|F-^f=j$`C->fU1S@`tZ9sZ20 z@ZYB{J((VplwTe4yjEsXUTvv2yX57gnVxI@Ewei?Bi_!m*1xA}r-h6a@89!jYrgz^ zE3Ia{%l+)3Z6~b!`*$`MX1w3heel`+9Z&bA^d$c&JEvw>Vl{i?!i@%*CB}05R-fNq zx%AcRl-*ygekLzpsx^h{qsI5;Y`5O_3tyi(zjW8r!u^`}4Rm&1+xaZ^JA15@ywzRq z6El84eRtBrmS^#C#T!rV96YjoXT8Mo%WHqPWtzzCf4$NociWY`zZQOfUlxSKh+hVdwJg*W}BmX&-vGH4Y%HV z=jYN$#(B^8dj7Wf>)p-#!_=opUV*V8bg K=d#Wzp$P!BI_!V| literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__boost__default__serializable.html b/dox-master/structttg_1_1detail_1_1is__boost__default__serializable.html new file mode 100644 index 000000000..2457661c3 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__boost__default__serializable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_boost_default_serializable< Archive, T, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_boost_default_serializable< Archive, T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_boost_default_serializable< Archive, T, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Archive, typename T, class = void>
    +struct ttg::detail::is_boost_default_serializable< Archive, T, class >

    + + +

    Definition at line 111 of file boost.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/serialization/backends/boost.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__boost__default__serializable.png b/dox-master/structttg_1_1detail_1_1is__boost__default__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..fc7f609a97376da9648507c4a79b8307b72157d4 GIT binary patch literal 1025 zcmeAS@N?(olHy`uVBq!ia0y~yU`znA12~w0q`;>5bRZ=W;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z&ydz#WAFU@$KB`qBRCQtkL$Czwdv1 z%EuO6cSgB0%VUv<@392w%O0Qf)6zO;M)J&1QJo~>$Te+=L(m2l)=5pOniE8HJR4*D z3L^btr_Qw(*WO#!5))Ujc@I!H{z3hkTXj}z@7_B8v*-EV*y<^}Z}&gkrm}Z3H>cT3 zx!lFSUa#Bw_|J;hEnl~?SjX;T2q`aT@jvE$$$Dp0=M3(9MgMlhX}Lu!w|SIrSAE$V zlRbI%k{$YjZ~5;hzfkuSe{jgOLaidOng3v9vudWN=YMIxXaASv%e;HLaMK-=ez2C+ zE*_VjYc#38jQW#saQoghN3yD?EqVRHT4~1~XP__a-7vh8({%QXknv^#hB^^>22KYa zO$mj*{(ci40XHtTj^xj?+ZY#l9AsFyB(A|B$iP7XC_O=hN5F%NjYEZ%nPpNFBa`Pr zhQ=icluFmlNig1gn*f`;unx(zZu6}ph zSvaSSBX9pZvq#so=KuLq{%?+dO!~d__g3b{Q$@FHYkn+^S!L{dc-@|S$ro-q?BCA* z6MQR~(XZE3e$;t!+<_VLy}Z|j7t8s!@Xc-er#I)dw6C?<^gEyXUKD=3u%_5*5nqh@ z{UDF{FK!28OLo;i{{8)?O<$(!o!LM75)N3^9Dgd3++?aeE9=vy2X&IpylcIybasgJ z2YJX%?YJ3qeoB;YOu8J)^n>oQD|T8Q%QQdww(0!s;@z{j);(Q*`rFb6o2`0P7j2o> z^B}dsmd|hc;qK1&Q#%yTJTKfe@6gli`Mkjg8TzIse6PEA*s3Y^;I822<)V*Yo9^(R zXm@|Qusx9bblKlKwI%iGy!SR|-oJmo>%zMmskd{juH?O~$-A6CX?g9c**{*qkh{T#y;-hajHJBs+{a^%f7J$pIr&dxUrUA{Dh&*y&7Z}i`WLH`2hyy*%J?03xC zUaHq@y}aCtxyJndqwm^DBd= LtDnm{r-UW|uRO;D literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__boost__serializable.html b/dox-master/structttg_1_1detail_1_1is__boost__serializable.html new file mode 100644 index 000000000..37d4df696 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__boost__serializable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_boost_serializable< Archive, T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_boost_serializable< Archive, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_boost_serializable< Archive, T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Archive, typename T>
    +struct ttg::detail::is_boost_serializable< Archive, T >

    + + +

    Definition at line 108 of file boost.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/serialization/backends/boost.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__boost__serializable.png b/dox-master/structttg_1_1detail_1_1is__boost__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..4d80481a49d1ed64b2901f6bf258278d0c9ae25d GIT binary patch literal 1172 zcmeAS@N?(olHy`uVBq!ia0y~yU`znA12~w0q`;>5bRZ=W;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z@qHw;uuoF_;&8yqR&&<-Mc5 z{$H7v!^X>-{J-(?;)?A1kFWQgpRBn>_S?C8arKk7td3{a(X=sVl<(WcazoGm=amVf zAHMt9Y=5lC{$s1-WxKs`=U!g0tJj@(?OEaS`L_3h#WIs6t<^P7uZe4}y=-(}pf19N za-UMUB%!~i%(|@J>2_wjZrm-k#aHTf z8$Z66UsrvgbF%JD-UlU9-hbNrTlKTTC5e1So3@#stUBi~`)#(WvgNN}FVqo~XOua& zbUWAa?DWR!b%#`*TN$){oGGcKueML-$mM-K9*pacYOE}2@A#`aJ?ES5fuGy*jV(^E zk_}IE)pIZZWb*drwc90D?G37$FKXCkZ?V&U;B8t_GFkS!|Fs8qH|A$;xUIZDa+2nW z^EGGQoi?qotM%X6sajtB!DP$&=T*D9r?2%tcda06`^2#D#Ak;S;|}?3Jz)AXtF+>$ z`+-8obz63yu%}Y*QZGTjobt~Magv~o>q0|Ny z(N&D-j8}{|&a6pI3sY*aU#j0A=Flr;;4pXJzF7tiGeIo5n%M>pQ-Q3NQu+=Hfiz9= zKbZvM&C_N^_8I_P(u!`|I_A2b^FG(MeaQYPk;`{T?yN?+oOSuz?Xvm0arF%5p-P4ZWqG!MNSRcJ@Binajv*M?Sb*n`_MAfl%9ll-~Gym)ZovCdpHcWHU zcAdUxhznPORZNN%sjdyw7LBFyp;ztcYa)HnD%}B)d$xv{;peF z%ya#BiTiHG*9P(xy9ys=d+fgOQt#K%pE94XZkaZTx0j=0-fNB<$4_~&98isA-xEHU z;h$`6PHs8l^RHYFdgpCFvHNgYmVm=lJMmv-Z2w>VV*J-p7o@}x#lW6*fB~4D5x9!M h%s6}I%&9NzD?Xjx!NX&21uQ}sJYD@<);T3K0RXv>4*388 literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__madness__buffer__serializable.html b/dox-master/structttg_1_1detail_1_1is__madness__buffer__serializable.html new file mode 100644 index 000000000..d8e98804d --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__madness__buffer__serializable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_madness_buffer_serializable< T, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_madness_buffer_serializable< T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_madness_buffer_serializable< T, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, class = void>
    +struct ttg::detail::is_madness_buffer_serializable< T, class >

    + + +

    Definition at line 81 of file madness.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__madness__buffer__serializable.png b/dox-master/structttg_1_1detail_1_1is__madness__buffer__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..d67b8cdae4345f2c80bcb9722e37e001efb9980d GIT binary patch literal 957 zcmeAS@N?(olHy`uVBq!ia0y~yV6+6X12~w0Wa#EkPl1#~fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1GA5(i(^OyMQaRrSflMNf8YP8 zn(#rIEi`q;ofS^P2l!2TQ~oEViOraKmu2!2he>&Y&s0u2&zP*jpXfKqrp40p(}xv1 zzr2!Zl$}0#h20C|`YAh=rWmMuD(~BTdfVlN$$RggcW2A{zSBJ`R&Q6DXO%SnOk+*? zr@msBZM2VHT`cEyc5hUwfC$tm)~@*_l)ngopIh8f1j+-J_bWBjnOhLMHAoU@pL zZ{I#A*#otQWEz@XV^%Ql@SVZ@LGT^}(7z1)iF^l~fn0%SROQxevozj(;LIB}2?vIP zZUgoQif0%rIEoqMfNp3%eCJdC69fCz>-uJg@3H=+V||_Lfav1`uZ}$o`7Os8ay{2wW#)fk?)eya!tRY|v5&gO>CJBf zE{CPuywDn9yXxN7^plmV=Cefc=AJeE8S*!qNk*jd>YbG?>C$N%Hrym(5-Tpp9H=QIh-Xs>-O*M3#aqOCRF}i8C)OD(oo}b z)|c7#UEG>12+pU2GmSu6&An~(GvZ$GIes)@_ile?v%*R~vt-|Pzw)ex|1#J0^UiENZFsX_9o^Z=Ose4fsx~d8u^El&YjUQFy4LK{`|lF*{NCg=K%8>gQu&X%Q~lo FCID2lzpnrQ literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__madness__input__serializable.html b/dox-master/structttg_1_1detail_1_1is__madness__input__serializable.html new file mode 100644 index 000000000..5d2d8f9d4 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__madness__input__serializable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_madness_input_serializable< Archive, T, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_madness_input_serializable< Archive, T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_madness_input_serializable< Archive, T, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Archive, typename T, class = void>
    +struct ttg::detail::is_madness_input_serializable< Archive, T, class >

    + + +

    Definition at line 64 of file madness.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__madness__input__serializable.png b/dox-master/structttg_1_1detail_1_1is__madness__input__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..5e96f4623d961df406dc8a790d6e990b3e06a1f7 GIT binary patch literal 1045 zcmeAS@N?(olHy`uVBq!ia0y~yV9Wrr12~w0By+0#WFRFG;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=DR`y~NYSF{Fa=?cBRno3#YouFv_h_rLYM zu)u%9vyXM&z5k`~W<$dUiDSWM&M+Bo&OWH3Ibn%5=fz1+96F|{usdy0u@qROda^OP z%P;tp@#e?RQ?`BYpJuPPYerJXv?b;rWOr}7%U7LUxnKU{-l@giUrK&nw4JuZzu5Sq z+SAoKDgC~&H`l)_U2m{|{tK_@xe}WWvoB)*tNQZt9mCQdSN)v{>-}dgIU^hUB)nhs z<>5Q;lPxTMmA=xbzoNUVY*LAE-n_-`i_|Tv#APj`Ce534>5!M|S8GWTz3oNQ3&ZaI zP4@g{@ZDQ>(ibVuEh=~W?e(huK3jT2_x+?2{eSj?bFT?5Qhh0}=HfkxSutvo39|KcEHs?i#>z}`hE@RYFcVUh>|H#sZImWkxtw7O)*+O6uBTyp) zUrPo9yOT)+v!c|2MgiUj4nS!I7fPi+sJqUd$(ojSy@`>9AzTQ}s`eL8?|W3PTU{sH zYJB_4Y_tAfed!_gbH2Tow|TqqFJs7@?knLg^X2|bJ?2n3H8F}tSDP+cU|@D$M?T&p5<%kG^^5bu}FS(s9c&v zTjt%B$ybwaZPeYi{>63E?iaqL;U`2T9@k}_i@KE zExT{4BKz+Y>ik+b<5?^7Mc*ykyz_XrN-nRub9Sdx)`k3QCg$f4+ReJS@jzqiH-@Kj zuG4;Qd{HKKch{#W^Sb>!RaIxCuY4?__C2e8*3!QAMVAlWb3c*3t^f8jnRTLHEA8yE zoiAGInnosQRqa~0xWs6Yd*G!bk+U1m9ebX6@$14lN8kSNEbqI0*-(Txz)(2$P0{Xk zl`i3(ZyfvN(u8_yct6{?m402coBxP`dq2C*`G?Iiwm!~JuWh^d@0`rux$7Q#PxEv7 zDCs}{`69U7k0ZYBwT2fy z&9e2YUCwXgJusDjzubbvJ-!U~3j}Tbd>Q;B>}3wGWtnmL`|D|6ADv*xf2ccecgMdM zlk%i4GVD*AU)coongHBz?nBe|CqCN?;QEN^ItSD4>NeW`njxgN@xNA%!t|k literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__madness__output__serializable.html b/dox-master/structttg_1_1detail_1_1is__madness__output__serializable.html new file mode 100644 index 000000000..226c9d254 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__madness__output__serializable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_madness_output_serializable< Archive, T, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_madness_output_serializable< Archive, T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_madness_output_serializable< Archive, T, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Archive, typename T, class = void>
    +struct ttg::detail::is_madness_output_serializable< Archive, T, class >

    + + +

    Definition at line 51 of file madness.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__madness__output__serializable.png b/dox-master/structttg_1_1detail_1_1is__madness__output__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..c69431e366f365db61ebd20def487702ce17ed04 GIT binary patch literal 1046 zcmeAS@N?(olHy`uVBq!ia0y~yV9W=y12~w00e@Ru3qgLR{6MEK;Kh)Lx!#7?|WQFZq7gD9T~8zI3RY~ z64r=MwU#T`OKmmluauX3_q^n^CVs#BKJ~A^zsP=#o-|MOYS-LTZ_8UXrpUcr$Mg2u z@6(gEFnC`R_N?lE5FgzIQTJkBCw!5}{W@JLzGbT0x1`7c+W2e7=d;dhuyVZ5Ez3FAIzskN< zde}`P>c2X}7 z{k;0LeCN&TBlr9)3wk!zn$Go&k*nJO-Fn4K4Yg37DPjSBI;r<>PHmS|OO2}ITBEeA zF?VzAk%Y?0f9!h7d+#(F{u7BVvD7~{gD>D+w0P)O^Ur&>?V6o*HPrU?nYGVWezm&Y zA!G5a_Vx102M5Y0?|wT;Ixtsqm0o%Ay0%wbS5oqS_cAVCR`+S^xq}U7Gj)`@E`8qg zzD(-wr%zMle)~;T3!Ur!^@)_4`&MUOzB`xqUCy*;KgGWD{G(?D?_|F!?!Q;#e1B({ z>C(hk)w}kr{+d$PpJVd!+O(yWN&b)KeTkiaB~q+^eM$RnTW#n245G&OkEU%uJ^Oii z=-s?m-#6?@cyj)OY(rq}FQprM-QKm&<;k*o6_WYN!E|HsKKJl-*1n+`wew%+)J{JyC3j9~ z-JIO-J5GJi`OffI4r{C>k zFWvgd`{6pzD^3T758PPQXLJmVKR@8#xb30VGI92Gz)Z~G>FVdQ&MBb@0G?k9 ATmS$7 literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__madness__user__buffer__serializable.html b/dox-master/structttg_1_1detail_1_1is__madness__user__buffer__serializable.html new file mode 100644 index 000000000..94d8dcf25 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__madness__user__buffer__serializable.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_madness_user_buffer_serializable< T, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_madness_user_buffer_serializable< T, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_madness_user_buffer_serializable< T, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, class = void>
    +struct ttg::detail::is_madness_user_buffer_serializable< T, class >

    + + +

    Definition at line 96 of file madness.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__madness__user__buffer__serializable.png b/dox-master/structttg_1_1detail_1_1is__madness__user__buffer__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..07396a56625bacf88d9223c1426b389fc6071482 GIT binary patch literal 1013 zcmeAS@N?(olHy`uVBq!ia0y~yV2lK^12~w0WJ}1msX$61z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opRqgw4X5M~zWow-LbK~aiuP-I%$NnohJL!v| zT++2AMOVaKV~W?yJ$JWNnK(cBTIHwgy&k`hy-C=kQrn{*+Pv{*YNh=5?~ekeH|uSW z-Kjz#&b3I-S2x3db#2~}_sunK^G|u# zl&`nVy)P}V@H3sTlMTT@>s-~Su<7B(!Mi&NdCd(!H}nRmWk!V*Qr^I@6>^;4IRE)8MaSOV@&c`&j8fe zz;Q{(fhAK+p~-|>z;PC9hr(GVmkDW%!0@3|`j5`$w6xBdH_s+8a2{BTX4S#WvY(Qc zdf)Ht|NLm``=aC9vy*hJ-*X)hecbu`SmKK0e)c;bZx!D+{JnnDJM-V)U-hnNR=huR zt`z%@CkE9u^IE;0m2EVaS+1A<`uwiGi1pvs?>!pfclK;vjO^=ljT^-r)LUshiRu<}>ZIVAWvy|oVWiaz3h3Lof%6H8yFwgox5yiqFVdQ&MBb@076FU1^@s6 literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__memcpyable.html b/dox-master/structttg_1_1detail_1_1is__memcpyable.html new file mode 100644 index 000000000..d65f37260 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__memcpyable.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg::detail::is_memcpyable< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_memcpyable< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_memcpyable< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::detail::is_memcpyable< T >

    + +

    reports whether objects of type T are safe to std::memcpy

    +

    True if either std::is_trivially_copyable_v<T> or is_memcpyable_override_v<T> are true

    + +

    Definition at line 204 of file traits.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__memcpyable.png b/dox-master/structttg_1_1detail_1_1is__memcpyable.png new file mode 100644 index 0000000000000000000000000000000000000000..43ecb3341c5ec83a01d6910d95e379507db6f167 GIT binary patch literal 1283 zcmb_cc~Db#5PlD_p=gX&M?48S#DWJZw@4(4SOQ3BAVeApS|A=Hq~Va8M6HTa3p_3v z4X7X@kl;~7L2LizeOe7(B@7K`&>A&5XJ!j{e-Pv#UVu1e-c=I*p z5Cq|=-uvkg1OsCnV79<$t-kwx-mMDo3-SVBzCNbXBxJYc7^8o+rKM%z#kWLbY8FrT z4}^?O^D^)($R2`B5$gWEK}qnWp!Jl(YOzaVJCMKMv9iQ zdV1(=_J(s*x({NqS?5a+CGn`2szs&D|Vvo|^5q4V^^YhGk7i z%jXB%Pg>mIH69jxUbSj5z3Z$n2-In<8|lAV)BT(tp*Mz zHuLu6unVppm5e+Lj_MA}G{P^zHVrs8#1-|8X6)>CI$9Ruly}0R+o^~knE50EDh8$6 zri=Nr$tmS{dkitgyNV#^x#eK=SjqN5=@eo48my^3Ve47lpu$eLDV43{xMo-M5o=_z z-=go*&^h6ld7)q3!KyQ*_LoOPtx7<<+HJj9teyZYZDN!#z1jnQg>CYhw5e*6!IDcL zEKA=SeSQ0fbV+L~>b~ps(m_H3Pt`&;P{akXR<9u%%_j!RKYil*UEdjkEjnZw_ z<$zmAwk&3Sm}$@*r`ozv>ElCv7n&7w#SJ{Yos>4LG@whj+6O)_f;{1p^$5|4j( zPW#jp%B&h8EDd%s6hqM70t38pi*i8+V;YxPZ7egpiB=-SgJPs8-v|R4847>ctovUY zlKvYgrwyV*@K?CZ54^1Sl_%FveEOr0wdd}t;y3pvalh_Df5g;n8JED205%|Y9XxrI zi__D3|Kz&>uNTV%rJS@cvkji&E0q + + + + + + + + + + ttg: ttg::detail::is_printable< class, class > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_printable< class, class > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_printable< class, class >:
    +
    +
    + +
    +

    Documentation

    +

    template<class, class = void>
    +struct ttg::detail::is_printable< class, class >

    + + +

    Definition at line 153 of file traits.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__printable.png b/dox-master/structttg_1_1detail_1_1is__printable.png new file mode 100644 index 0000000000000000000000000000000000000000..860a433a1693cdd1ad34c2e08915ab6c9cb37806 GIT binary patch literal 728 zcmeAS@N?(olHy`uVBq!ia0vp^_klQogBeJ!I~X7gq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0(mh=qLn;{G&b_#4wE~Z;xc=S$|BqkS z@(9?n?PxXEWXbJZZ3mPT_X#<1Fn23>9zOL`Wo5kOe3h@Ouhm?PE|a=;y}9$<-TS+L z_I$thbKb;Rbrzq!i>$U^uI+tx>73Zd*IzdM*73Z*LN*}$baZqvI*F*Vbc=wI2gFXYqeGycDWqTakwS=so` zy54kO^XKV5>VExMddK_gC1LDqj= z{yY+Ddpdc^>?bvouB@NqKk3)iBjQdRkGUSyzhX4l!1lb_<`|pIocu%5QUxV;>*q7r zp8m=3YwBmlFWS$UUxc4yzp#D||AKf+d58T)b`5n;YZ(5XLQ@c+*kZ7Og8>*S5RI#+ z=2u#nIcH(jqWEKU~Nf9kxl-Q%M>bSIr!Q?qeh+CA6R zF14Cb;>$t^Qi8XYuUJ^9DepXbiUo5sFvu)05g?*5QhZz6*2uRCS% z_~_oeeqJ_Irh0GPy4iDM_ibZ(lUmO{|L<*v;#yOQ2NCi+?|l$`&i`Q5wEyX;+ZkrP zFg|} + + + + + + + + + + ttg: ttg::detail::is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> >:
    +
    +
    + +
    +

    Documentation

    +

    template<class T>
    +struct ttg::detail::is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> >

    + + +

    Definition at line 156 of file traits.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__printable_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1_1declval_3_a5774f3d043eeeee157069b2b78993f2.png b/dox-master/structttg_1_1detail_1_1is__printable_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1_1declval_3_a5774f3d043eeeee157069b2b78993f2.png new file mode 100644 index 0000000000000000000000000000000000000000..4fb61b327979244d2914f80da9d5cde7f0ef9f47 GIT binary patch literal 1392 zcmeAS@N?(olHy`uVBq!ia0y~yUFYD6&h1b$G~;lI+#@8IsHEiM;v(3hBI#)~DWqxdBo$@PsW-GioK7@O zNldoUw>dFt$7fDnV))JLQsGT)Ppt!SZ)aAhDoy)emOSnE_x-Mm%bh@PmOB#=Jc%o9a#N?#pYeKFbd*VY@WzscVGFm>-M@0c?{6V@M%OI>-dH2uNV@W(G@?(C7$(Dd9dUVU|bbGO6X#P=+^ zz47XIe?F;KyoLkzSzYJH0PfB?+Ri$=%c<8TRmRmN3Pr8!0UghQOH7AStR7&%m6((6u3)fo;JA`+6O*2F4YK;}|6xoZ_M)br_ff z+V(OTFl@b{1!Q)Dn82_bU}lAfOG_un3$6kTYzG*oB&=uPaZvrnb$}rx3BlY{{q>ir z(VL9d|8C{4TQld&+_LVc>@U`>)@xqg{N2s@occan$)j_9-z|Dr#(CcEO>taW@AX9c z*n<_p_js>Y|KAzjU;J@l_~dW1^{&P}^?&yN;njj;)91V28W@W`jD&c$<<%4j3!<_d(pvQ->t7Q`*$B~d>X+eM^;=u)V*jq$B=qzBUt^1?yu)?-n)d9@ePH*w zcK(~ID-FJ=YIRPrpBekN^1jHb)%xn|+2oJw=sxDE+T3w-y?Wt!ebZ?+u}mzsH+R;} zpC$X|)a&-d`Rf>4(?u>A%cckvx4H%TpEeuj(teif*>O_j!Z-I)(Z-)en+80(EOc*1M@L z`fu=VkCfS*Pli^v?Z0J(tv?r^I`7qjq?jd(?@xUvyesn128}XhzCBr!i^JD@g$D$$ z@4N1I{Ns()?=*6(diGjP?K&Aa@3fa*m*)TF$_s8ztP_m=q1!&$eBI@Z>ut`ex6AXn z7Q|ehQu_7Pi+eR^WB2^tFn_(m`@Fj9l+f2#gZ@p^Dv#JL_DuKh`)Li|yrTErS-R7_ zw*S`rQ*RgiF>SoAUf1ST*e6&#X?x_Z#oMdC{&P>_HV=c`q*aUeGF2Qp9>>eC-mv_S^X^S&zm^m+{*nGuu$f`s@xmr1 qo)s$%fC(C$zxvU$8Y0)W{bw-GESjWOvrL!)2s~Z=T-G@yGywo$QjSgl literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable.html b/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable.html new file mode 100644 index 000000000..15de5d02b --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg::detail::is_user_buffer_serializable< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_user_buffer_serializable< T, Enabler > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_user_buffer_serializable< T, Enabler >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::detail::is_user_buffer_serializable< T, Enabler >

    + +

    is_user_buffer_serializable<T> evaluates to true if T can be serialized to a buffer using user-provided methods

    + +

    Definition at line 175 of file traits.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable.png b/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable.png new file mode 100644 index 0000000000000000000000000000000000000000..33f29626345aceead3dcc83b0fb547e8b704a562 GIT binary patch literal 948 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-12~w0vZu(_N6z5l;= zIbPLy`{if?|%Bex5rD58SeTk(Wd%R(8h6w z=hw?}A@X;3ezU5-`uOrY%R_e_|882XXD4X3Gj5XH!OdPpdO52%7X4dsVVhdJPs!m) zUl`_H{-Un>)O*w4hv__@RbDpkap0fLx%)+;>y7uX5|`dNrFXMrZLRv8_mk39|L=+o znzZkXqR*sxhow1ofBmLB{Z_tbmCgI9iN~XYXQ=Gu)byFew8X%ZYr-KFO$V;YOBiMw z7;ipuCWo_O`V(da#t7wB#xy>d!~oRVzyRbr za4}Pp`(e|eGiQX1H=7zXuq3pKun8!%GO~CiGB5^7I5Y&`_?EwH-Mr%c=bBf%%lo(O zkt3Zz!$2P++$F;w%-Qd)Idd2;%^N+OMI%_)P>efz8dAas`Yp?Kej>Ak@#)baX z))%Kf4fQMwjP0-!J*6FUYQs(I7eWj3AD>;blxMbG`1g!tp)>BgjCLu%u{sjec2&Ce z-r;4URTsJc^tOMi2%Pk|WubH3=Jvap&0jUsZFBq|*CyL&Z@4?FFLu++faR9TlVdmS zy>IyFbIJ@0Hw|w~@qqG^x9|Ur-J~}EePX!cF^kJ{i_Lf+{QcRf{77IkzXtN;D18UBnHj{J!tXaJ7Z>KQrfm7@*HJ5&%e;C5&&i~22WQ% Jmvv4FO#uHcse%9i literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.html b/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.html new file mode 100644 index 000000000..5aa35ac2c --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::detail::is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::detail::is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::detail::is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > >

    + + +

    Definition at line 181 of file traits.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.png b/dox-master/structttg_1_1detail_1_1is__user__buffer__serializable_3_01_t_00_01std_1_1enable__if__t_3_01is__m0b1b0fef265c42eba757df512051490f.png new file mode 100644 index 0000000000000000000000000000000000000000..5ef5c5d6323ebe6eb1f1eb2f3e6284af01f6a660 GIT binary patch literal 1570 zcmc&!{Wny37#}pdAv&6Y3M*IHQtM@+k{L{CTaL~QHOhD? zluDwRX1$xdrAVW3Y%+G3nG8yUhQ^F}HTz{xryuqY*n7^s&-4A<&-b~X&vU-d%?l0j zGcwp>0E5Adu>Rg*Fqj?$^3e5q;5oF-(-;Kv(4cT1tyT-tnK|kCf@jx2wsv=Qb;0w- zZNPHb#xVfI@8tbp&^bcKwA;6ct0AqLM1kN?t0nH#geiH;Rr>-1Vt7qXC~In>!X} zXHtO-h21J@DE@IKu#>Nq*@@*}QA7g77IE69$PyM%K1E#>U`v`JS}CObmQ>tFPIl=k z-n@!CWco|LdzI^Q;mzJ{AODie8jJsA8JoRvoUi@5R~Wr!dC&_4&gA2Ob}di(2<$xv zjN?z!j7RZ7l=v#59q>T0JzE2T;`eO(qk+KH-Z@j1H$l4sCRjdPRy)Igz?UE%ztN3kG!i_A>yoyxdyxB(~xUV{$-IC>4H zD*rdQ+YsGre&UOr;v5~gfl0Bq=CUpv9FWSNvs;Hz_Mx$kQbPcv|RQW7c)OyWBE}v$V61GrC{&4 z&jDyD!%{Bnt{0{mC77}sPgqY1C2ocImdXQa%*$@f=-?@8US|KL2~x18ZS(ki!3nmx zUmwA{Rz<~kEO)d`yz4!RVBV=KO+)cyX$`vh$nmG5N`YouJ6_UYo5a<+)hf4`Q{?`Ly?rigQ7RYwwDi9Pj}I!Dnw2i zS6l)y|MuVx72FlvpVKeIhsSITW7Z))FmCm!OLaUk+I)x_M%Y!J(K%v`8lxQ`ZuL?D zqjTS!8H?QQBda=g^E&84-S0m3wdEm74@rWnUfI1w;})(v9UXI0qhHv{C)+%b)rV9# zka!V;90_ZkdPZF)o%NTz_GQ#QthE--TF*Qga6nm!U2=~!bth{uM$6s48JMOX<@wM# zq#5l)$a{k8%1I4oXYee1MX94bs%aCXX&9Cxz4WAXxtb$SP#Am%^$mDVq9VjE~P)w;Wer=BOL>f>C-c zSCg#fDwynLktvJgxF?3VH^F(igy(9FBB>%cP}#Kns!oqZ1yQqrPq$d%y?hrLf%90n zH~^I6uizFttgTG*#W7ly<%GC+=p!K=+90cDxc}m;rIjU}*7nxZt(|T$9z)uy`$q7U ztf)?;9L%VR+-+?V0{=50I3gMCYY|6sUYn+qi#8^nW;JhYm^;7^9ftJ@@uuyMz5EYG CU?$%H literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1detail_1_1printer__helper-members.html b/dox-master/structttg_1_1detail_1_1printer__helper-members.html new file mode 100644 index 000000000..eb13af5fb --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1printer__helper-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::printer_helper< T, Enabler > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::printer_helper< T, Enabler >, including all inherited members.

    + + +
    print(const void *object)ttg::detail::printer_helper< T, Enabler >inlinestatic
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1printer__helper.html b/dox-master/structttg_1_1detail_1_1printer__helper.html new file mode 100644 index 000000000..5c36311b3 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1printer__helper.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: ttg::detail::printer_helper< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::printer_helper< T, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::detail::printer_helper< T, Enabler >

    + + +

    Definition at line 159 of file traits.h.

    +
    + + + +

    +Static Public Member Functions

    static void print (const void *object)
     
    +

    Member Function Documentation

    + +

    ◆ print()

    + +
    +
    +
    +template<typename T , typename Enabler = void>
    + + + + + +
    + + + + + + + + +
    static void ttg::detail::printer_helper< T, Enabler >::print (const void * object)
    +
    +inlinestatic
    +
    + +

    Definition at line 160 of file traits.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html b/dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html new file mode 100644 index 000000000..27347afc2 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_t_01_4_1_1value_01_4_01_4.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >

    + + +

    Definition at line 164 of file traits.h.

    +
    + + + +

    +Static Public Member Functions

    static void print (const void *object)
     
    +

    Member Function Documentation

    + +

    ◆ print()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    static void ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >::print (const void * object)
    +
    +inlinestatic
    +
    + +

    Definition at line 165 of file traits.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_te4d74e9a4b6d34170b7dc6d3ce62121f.html b/dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_te4d74e9a4b6d34170b7dc6d3ce62121f.html new file mode 100644 index 000000000..78746770a --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1printer__helper_3_01_t_00_01std_1_1enable__if__t_3_01is__printable_3_01_te4d74e9a4b6d34170b7dc6d3ce62121f.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >, including all inherited members.

    + + +
    print(const void *object)ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >inlinestatic
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1value__copy__handler-members.html b/dox-master/structttg_1_1detail_1_1value__copy__handler-members.html new file mode 100644 index 000000000..5cc7b8bea --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1value__copy__handler-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::value_copy_handler< Runtime > Member List
    +
    +
    + +

    This is the complete list of members for ttg::detail::value_copy_handler< Runtime >, including all inherited members.

    + + +
    operator()(Value &&value) constttg::detail::value_copy_handler< Runtime >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1value__copy__handler.html b/dox-master/structttg_1_1detail_1_1value__copy__handler.html new file mode 100644 index 000000000..c44bcfb71 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1value__copy__handler.html @@ -0,0 +1,187 @@ + + + + + + + + + + + ttg: ttg::detail::value_copy_handler< Runtime > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::value_copy_handler< Runtime > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<ttg::Runtime Runtime>
    +struct ttg::detail::value_copy_handler< Runtime >

    + +

    Wrapper allowing implementations to provide copies of data the user passed to send and broadcast. The value returned by operator() will be passed to all terminals. By default, the given reference is (perfectly) forwarded. Implementations may provide specializations using the ttg::Runtime tag.

    + +

    Definition at line 21 of file func.h.

    +
    + + + + +

    +Public Member Functions

    template<typename Value >
    constexpr decltype(auto) operator() (Value &&value) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<ttg::Runtime Runtime>
    +
    +template<typename Value >
    + + + + + +
    + + + + + + + + +
    constexpr decltype(auto) ttg::detail::value_copy_handler< Runtime >::operator() (Value && value) const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 23 of file func.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4-members.html b/dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4-members.html new file mode 100644 index 000000000..a3b3a5726 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4-members.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html b/dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html new file mode 100644 index 000000000..734822cd5 --- /dev/null +++ b/dox-master/structttg_1_1detail_1_1value__copy__handler_3_01ttg_1_1_runtime_1_1_pa_r_s_e_c_01_4.html @@ -0,0 +1,423 @@ + + + + + + + + + + + ttg: ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC > Struct Reference
    +
    +
    +

    Documentation

    +

    The PaRSEC backend tracks data copies so we make a copy of the data if the data is not being tracked yet or if the data is not const, i.e., the user may mutate the data after it was passed to send/broadcast.

    + +

    Definition at line 4312 of file ttg.h.

    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     value_copy_handler ()=default
     
     value_copy_handler (const value_copy_handler &h)=delete
     
     value_copy_handler (value_copy_handler &&h)
     
    value_copy_handleroperator= (const value_copy_handler &h)=delete
     
    value_copy_handleroperator= (value_copy_handler &&h)
     
     ~value_copy_handler ()
     
    template<typename Value >
    std::add_lvalue_reference_t< Value > operator() (Value &&value)
     
    template<typename Value >
    std::add_lvalue_reference_t< Value > operator() (ttg_parsec::detail::persistent_value_ref< Value > vref)
     
    template<typename Value >
    const Value & operator() (const Value &value)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ value_copy_handler() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::value_copy_handler ()
    +
    +default
    +
    + +
    +
    + +

    ◆ value_copy_handler() [2/3]

    + +
    +
    + +
    +
    + +

    ◆ value_copy_handler() [3/3]

    + +
    +
    + +

    Definition at line 4320 of file ttg.h.

    + +
    +
    + +

    ◆ ~value_copy_handler()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::~value_copy_handler ()
    +
    +inline
    +
    + +

    Definition at line 4333 of file ttg.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/3]

    + +
    +
    +
    +template<typename Value >
    + + + + + +
    + + + + + + + + +
    const Value& ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator() (const Value & value)
    +
    +inline
    +
    +

    the value is not known, create a copy that we can track depending on Value, this uses either the copy or move constructor

    + +

    Definition at line 4399 of file ttg.h.

    + +
    +
    + +

    ◆ operator()() [2/3]

    + +
    +
    +
    +template<typename Value >
    + + + + + +
    + + + + + + + + +
    std::add_lvalue_reference_t<Value> ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator() (ttg_parsec::detail::persistent_value_ref< Value > vref)
    +
    +inline
    +
    + +

    Definition at line 4379 of file ttg.h.

    + +
    +
    + +

    ◆ operator()() [3/3]

    + +
    +
    +
    +template<typename Value >
    + + + + + +
    + + + + + + + + +
    std::add_lvalue_reference_t<Value> ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator() (Value && value)
    +
    +inline
    +
    +

    the value is not known, create a copy that we can track depending on Value, this uses either the copy or move constructor

    + +

    Definition at line 4343 of file ttg.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    value_copy_handler& ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator= (const value_copy_handler< ttg::Runtime::PaRSEC > & h)
    +
    +delete
    +
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    value_copy_handler& ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >::operator= (value_copy_handler< ttg::Runtime::PaRSEC > && h)
    +
    +inline
    +
    + +

    Definition at line 4327 of file ttg.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1edges__to__output__terminals.html b/dox-master/structttg_1_1edges__to__output__terminals.html new file mode 100644 index 000000000..9ebe9b4fa --- /dev/null +++ b/dox-master/structttg_1_1edges__to__output__terminals.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::edges_to_output_terminals< edgesT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::edges_to_output_terminals< edgesT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename edgesT>
    +struct ttg::edges_to_output_terminals< edgesT >

    + + +

    Definition at line 175 of file edge.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..cbd112b80 --- /dev/null +++ b/dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::edges_to_output_terminals< std::tuple< edgesT... > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::edges_to_output_terminals< std::tuple< edgesT... > >, including all inherited members.

    + + +
    type typedefttg::edges_to_output_terminals< std::tuple< edgesT... > >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..3ef79e224 --- /dev/null +++ b/dox-master/structttg_1_1edges__to__output__terminals_3_01std_1_1tuple_3_01edges_t_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::edges_to_output_terminals< std::tuple< edgesT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::edges_to_output_terminals< std::tuple< edgesT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... edgesT>
    +struct ttg::edges_to_output_terminals< std::tuple< edgesT... > >

    + + +

    Definition at line 177 of file edge.h.

    +
    + + + +

    +Public Types

    typedef std::tuple< typename edgesT::output_terminal_type... > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... edgesT>
    + + + + +
    typedef std::tuple<typename edgesT::output_terminal_type...> ttg::edges_to_output_terminals< std::tuple< edgesT... > >::type
    +
    + +

    Definition at line 178 of file edge.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1event-members.html b/dox-master/structttg_1_1event-members.html new file mode 100644 index 000000000..c3dc007a1 --- /dev/null +++ b/dox-master/structttg_1_1event-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::event Member List
    +
    +
    + +

    This is the complete list of members for ttg::event, including all inherited members.

    + + + +
    finish()ttg::eventinline
    finished() constttg::eventinline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1event.html b/dox-master/structttg_1_1event.html new file mode 100644 index 000000000..6810f856d --- /dev/null +++ b/dox-master/structttg_1_1event.html @@ -0,0 +1,208 @@ + + + + + + + + + + + ttg: ttg::event Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::event Struct Reference
    +
    +
    +

    Documentation

    +

    represents a generic one-time event

    + +

    Definition at line 42 of file coroutine.h.

    +
    + + + + + +

    +Public Member Functions

    void finish ()
     
    bool finished () const
     
    +

    Member Function Documentation

    + +

    ◆ finish()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::event::finish ()
    +
    +inline
    +
    + +

    Definition at line 43 of file coroutine.h.

    + +
    +
    + +

    ◆ finished()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg::event::finished () const
    +
    +inline
    +
    +
    Returns
    true if the event has occurred
    + +

    Definition at line 46 of file coroutine.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1has__split__metadata.html b/dox-master/structttg_1_1has__split__metadata.html new file mode 100644 index 000000000..46297979d --- /dev/null +++ b/dox-master/structttg_1_1has__split__metadata.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::has_split_metadata< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::has_split_metadata< T, Enabler > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::has_split_metadata< T, Enabler >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::has_split_metadata< T, Enabler >

    + + +

    Definition at line 39 of file splitmd_data_descriptor.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1has__split__metadata.png b/dox-master/structttg_1_1has__split__metadata.png new file mode 100644 index 0000000000000000000000000000000000000000..d9ee7fb5a3543667f4a01b6b6991d220ba5d1265 GIT binary patch literal 756 zcmeAS@N?(olHy`uVBq!ia0vp^cY!#7gBeJ!GHK8QQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;yA6NDNfB*GW z9E@+aiI#I8=GpGra=_E6=IEK6h{Q=IE7azyd|m0O?peFa@NS;Ytu2eIH=SR5ZtqMz z!+Yj;jlE8br@dvF{kr&vthrrRK8Tl0{W__{G1qvr-}WU@68D8oea|W#d$(1kcKx)_rIRALha3Nrrd z^yZr|kC(dV_l!%PLGx#oOuDjM%*uFkAnOPIuM84l&X;ZFlppi@Za=`=V{UeL%}j>9 zS(g~Utn_5Ruv|^n0jPnYmY~4elr*z71`Up;FByJaS;G7xnEmdj>Baj_@71-P|Mvco z<*&K|-fUt#u(cwq!Ps1Aw zw+Zu|d4`hNC91(mi#NRJ3tPw?8M@}|i%mzWrswUyy7df;ca-DwIj83uNT1*IS;ts= z+9S1@-GK9!qY@cvKcsp{|z zOG~1gWS$;)KJoavt3L0i&M03fCu6qgXo^h7S#__v_usZooyGYebmijrb + + + + + + + + + + ttg: ttg::has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::has_split_metadata< T, ttg::meta::void_t< decltype(std::declval< SplitMetadataDescriptor< T >>().get_metadata(std::declval< T >()))> >

    + + +

    Definition at line 42 of file splitmd_data_descriptor.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1has__split__metadata_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01decltype_07std_1_1declv04e799e75aff1843c5d29b807a5d2544.png b/dox-master/structttg_1_1has__split__metadata_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01decltype_07std_1_1declv04e799e75aff1843c5d29b807a5d2544.png new file mode 100644 index 0000000000000000000000000000000000000000..d1393f5dda12d98a9dfb8eb5b2251312b92a3f5a GIT binary patch literal 1573 zcmb_cdo+}382>cYIJU9TT54q0P6bbXknpC$rVrt*X(=nOZ7mPAP)Mf8b=pq(cs>c?F_+;fR_Z(<}B zjYoBWxLyMWg0{qjP~qle9@$A=DUDsMUCdwZI`9^L@zTjH;yV$-l3kQC}`6NVjW zinBB_e{LRaKH~Cs;O2=y#eBWvPzUP=hYdNKq1i8>c}f)XXyy&H@$~ShmjAwp-FOQO z5{-7Uzmbx>8VKy*#CKu=m>%5*0iq#KH>>z&=66AWVoYpamIy zUkructU-wbXer{-NPrp84nqC_B(Ni)1_5m6{NJzyd2zDxF12%LG<(k$sBQxE-v2D< zfeb-C*K|0N=Q|Q_#UwU&V*J-XQs9E|Xesz&vm?nnX}{%C6MxrhpJVx{60miyjW9Cj z3V%J1mM*J{e@@6+q076{`bV)L#(-Pl`BtGMYJGzOYVTfg04oqBf={c1@T(}Q?6V${ z${@O+DBucfrg9vMdFXC-W!N;_i|7^0dUFFbX)`|4OY$I@&&n#}LQmf<<&8JjOGj-P zgu|KPQ9e_uE4<&3JA1EtddR+O5j8d>DNQc1`Syy1H}dub**dp3zmnXO zf{d}I?rZ>e*lonD^>j~4K}!wRYQM(Z*c+ef4|p+#Z@nfnr0Qw7MY@GTyhUAw$N4w5!i><}L62A{ug- zC2!JK+Fgi~a9r&W^Bj&aTW;gExGRoJ9pcl*$Eg@m5iIP~Xpl~UNnh2V8nW2*#niD2 z$MR=F>GF*<)zJ(v$5xx6n)L~n1QlT1m1a>V--euSk>O)i7V43X9?dM#3wH{q?qtbI^06Pha*r+JL7q?Gyu zk?wYOySc9?Qdp<826CAGwYKjHKh%D%Sr!b#8;mr6vtkq}xmMBpAA70pds_O4&lft* zJm@`Sl1}iU9I2oGhEFKwah)iuemZl6`cp3CP>R7asEu7Nn$O|Z#$8&&RxX`{J{}oB6ZT*z*qSIdzy!~=c^h>JP5xpj7j5erx8gt>{KYrKh or`U2pbn{= + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::iovec Member List
    +
    +
    + +

    This is the complete list of members for ttg::iovec, including all inherited members.

    + + + +
    datattg::iovec
    num_bytesttg::iovec
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1iovec.html b/dox-master/structttg_1_1iovec.html new file mode 100644 index 000000000..8aa4e7726 --- /dev/null +++ b/dox-master/structttg_1_1iovec.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: ttg::iovec Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::iovec Struct Reference
    +
    +
    +

    Documentation

    +

    Used to describe transfer payload in types using the

    See also
    SplitMetadataDescriptor.
    + +

    Definition at line 11 of file iovec.h.

    +
    + + + + + + + +

    +Public Attributes

    std::size_t num_bytes
     The number of bytes to read from / write to the memory location given by data. More...
     
    void * data
     Pointer to the data to be read from / written to. More...
     
    +

    Member Data Documentation

    + +

    ◆ data

    + +
    +
    + + + + +
    void* ttg::iovec::data
    +
    + +

    Pointer to the data to be read from / written to.

    + +

    Definition at line 15 of file iovec.h.

    + +
    +
    + +

    ◆ num_bytes

    + +
    +
    + + + + +
    std::size_t ttg::iovec::num_bytes
    +
    + +

    The number of bytes to read from / write to the memory location given by data.

    + +

    Definition at line 13 of file iovec.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1candidate__argument__bindings.html b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings.html new file mode 100644 index 000000000..046cad143 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::candidate_argument_bindings< T, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::candidate_argument_bindings< T, typename > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename = void>
    +struct ttg::meta::candidate_argument_bindings< T, typename >

    + +
    Template Parameters
    + + +
    Ta non-reference type metafunction converts T into a list of types via which T can be bound to a callable
    +
    +
    + +

    Definition at line 189 of file callable.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1is7a159ba0312787ffbc0ba26aaf2230c7.html b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1is7a159ba0312787ffbc0ba26aaf2230c7.html new file mode 100644 index 000000000..dc1a43849 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1is7a159ba0312787ffbc0ba26aaf2230c7.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html new file mode 100644 index 000000000..fdc3e7b8a --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01_t_00_01std_1_1enable__if__t_3_9std_1_1iseab74741ca34f59dff800d7fbc4a7674.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >

    + + +

    Definition at line 192 of file callable.h.

    +
    + + + +

    +Public Types

    using type = std::conditional_t< std::is_const_v< T >, typelist< const T & >, typelist< T &&, const T & > >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::meta::candidate_argument_bindings< T, std::enable_if_t<!std::is_reference_v< T > &&!std::is_void_v< T > > >::type = std::conditional_t<std::is_const_v<T>, typelist<const T&>, typelist< T&&, const T& > >
    +
    + +

    Definition at line 193 of file callable.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4-members.html b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4-members.html new file mode 100644 index 000000000..e3f28e616 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::candidate_argument_bindings< const void, void > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::candidate_argument_bindings< const void, void >, including all inherited members.

    + + +
    type typedefttg::meta::candidate_argument_bindings< const void, void >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html new file mode 100644 index 000000000..4d1afb52d --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01const_01void_00_01void_01_4.html @@ -0,0 +1,166 @@ + + + + + + + + + + + ttg: ttg::meta::candidate_argument_bindings< const void, void > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::candidate_argument_bindings< const void, void > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 216 of file callable.h.

    +
    + + + +

    +Public Types

    using type = typelist<>
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + + + + +
    using ttg::meta::candidate_argument_bindings< const void, void >::type = typelist<>
    +
    + +

    Definition at line 217 of file callable.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4-members.html b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4-members.html new file mode 100644 index 000000000..2f7185a7f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::candidate_argument_bindings< void, void > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::candidate_argument_bindings< void, void >, including all inherited members.

    + + +
    type typedefttg::meta::candidate_argument_bindings< void, void >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html new file mode 100644 index 000000000..27fb91808 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1candidate__argument__bindings_3_01void_00_01void_01_4.html @@ -0,0 +1,166 @@ + + + + + + + + + + + ttg: ttg::meta::candidate_argument_bindings< void, void > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::candidate_argument_bindings< void, void > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 211 of file callable.h.

    +
    + + + +

    +Public Types

    using type = typelist<>
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + + + + +
    using ttg::meta::candidate_argument_bindings< void, void >::type = typelist<>
    +
    + +

    Definition at line 212 of file callable.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1decays__to__output__terminal__tuple.html b/dox-master/structttg_1_1meta_1_1decays__to__output__terminal__tuple.html new file mode 100644 index 000000000..a0ee04960 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1decays__to__output__terminal__tuple.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::decays_to_output_terminal_tuple< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::decays_to_output_terminal_tuple< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::decays_to_output_terminal_tuple< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::decays_to_output_terminal_tuple< T >

    + + +

    Definition at line 618 of file terminal.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1decays__to__output__terminal__tuple.png b/dox-master/structttg_1_1meta_1_1decays__to__output__terminal__tuple.png new file mode 100644 index 0000000000000000000000000000000000000000..45e4970ff3a27689fce74ffebf305a8cc1f25727 GIT binary patch literal 1185 zcmeAS@N?(olHy`uVBq!ia0y~yV9W)w12~w0*+{o1J6mo3#l?{w#GX>sM)zGO;}#?mP=E|Zo_P^pb^jGnYdWQ*!aZ#aYZ?Vsdq z>Aa)s{=Q`6UDKEIrF*0QowGXqGv0KV=+;j%xmxcNJ*ns3;=So13v2IBJAUs@$i=ua z?fhGxR;lIQx*mVqXX(z{-`*TM6JQzfYmKtCyY07sbMH=XyZ6cPg`E=rmebm++TEbG_dwUky@?VmX&%8EpOFGzIfJkzI}HtTS~+^+^%81U-?bw zwL)^y^*xiOe7=&f;`O6FIcH|6g!;#Ns=V|rQCrck^W>K2`HOXTByu--U2@&DeEH6K zY5Q(36L$QjChqg=?ao@gCG}?8RW(&SkE2EyDCSBQ&kgcgI3?)U9)`Mwbqr1nd|bB} z{C@r9yu)AzV(mJ}cZWd_$g1PI#t;XjX^MZX-4g7jIVH%8Pl>UG!EW6G-UmyOvGJCC zvGqM}f8AyFO584;-Zt~8;N*ugnLn8=*8XoZYq%JAi#?p-!b_I7rTzK0a^&at$M4Mk z8{Q*#cjwtXW}&a&zd3v3_xHd1GhgV+H(xs-xBlAOv?TYCiA+y_N^dFt!~Oo#)+2jb zbN8Q0xP5i@jK|5J&-dl-{W2}vYfa-`vz207D%Ve5;3wCxxT?Es?rqs*;kfhL<6ka_ zuw86xxGr=1@7T0C7vF`YpPz1-&A?u2`8FoC=xAo*)O%aircRxG=(E_{H($r9Dik>#&+L#e5 z=(X&fn({~|{O9}Cw@(XdZ|~eP);nv~%?9QcPgTR$ z>%@b-E-<{XJd%HD--W+FGxdsiL(aRa?QPj+`;s9&wWw + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::detail::keep_or_drop< bool > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::detail::keep_or_drop< bool >, including all inherited members.

    + + +
    type typedefttg::meta::detail::keep_or_drop< bool >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop.html b/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop.html new file mode 100644 index 000000000..ff8668f1d --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop.html @@ -0,0 +1,174 @@ + + + + + + + + + + + ttg: ttg::meta::detail::keep_or_drop< bool > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::detail::keep_or_drop< bool > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<bool>
    +struct ttg::meta::detail::keep_or_drop< bool >

    + + +

    Definition at line 68 of file meta.h.

    +
    + + + + +

    +Public Types

    template<typename E >
    using type = std::tuple< E >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<bool >
    +
    +template<typename E >
    + + + + +
    using ttg::meta::detail::keep_or_drop< bool >::type = std::tuple<E>
    +
    + +

    Definition at line 70 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4-members.html b/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4-members.html new file mode 100644 index 000000000..921657f03 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::detail::keep_or_drop< false > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::detail::keep_or_drop< false >, including all inherited members.

    + + +
    type typedefttg::meta::detail::keep_or_drop< false >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html b/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html new file mode 100644 index 000000000..b8b5a0263 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1detail_1_1keep__or__drop_3_01false_01_4.html @@ -0,0 +1,169 @@ + + + + + + + + + + + ttg: ttg::meta::detail::keep_or_drop< false > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::detail::keep_or_drop< false > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 74 of file meta.h.

    +
    + + + + +

    +Public Types

    template<typename E >
    using type = std::tuple<>
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename E >
    + + + + +
    using ttg::meta::detail::keep_or_drop< false >::type = std::tuple<>
    +
    + +

    Definition at line 76 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n.html b/dox-master/structttg_1_1meta_1_1drop__first__n.html new file mode 100644 index 000000000..700d890aa --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: ttg::meta::drop_first_n< Typelist, N, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::drop_first_n< Typelist, N, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Typelist, std::size_t N, typename Enabler = void>
    +struct ttg::meta::drop_first_n< Typelist, N, Enabler >

    + +

    drops N elements from the front

    + +

    Definition at line 349 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std288f286725e3f182c5b395c9e416f1c0.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std288f286725e3f182c5b395c9e416f1c0.html new file mode 100644 index 000000000..b4bbf7964 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std288f286725e3f182c5b395c9e416f1c0.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html new file mode 100644 index 000000000..7f40ddc93 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std6f4f1519ded77a1f92dfe0f077f96239.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename... Ts, std::size_t N>
    +struct ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >

    + + +

    Definition at line 362 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typename drop_first_n< std::tuple< Ts... >, N - 1 >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename... Ts, std::size_t N>
    + + + + +
    using ttg::meta::drop_first_n< std::tuple< T, Ts... >, N, std::enable_if_t< N !=0 > >::type = typename drop_first_n<std::tuple<Ts...>, N - 1>::type
    +
    + +

    Definition at line 363 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html new file mode 100644 index 000000000..8fd21af79 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)> Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>, including all inherited members.

    + + +
    type typedefttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html new file mode 100644 index 000000000..776df3464 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)> Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)> Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>

    + + +

    Definition at line 352 of file meta.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< Ts... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts>
    + + + + +
    using ttg::meta::drop_first_n< std::tuple< Ts... >, std::size_t(0)>::type = std::tuple<Ts...>
    +
    + +

    Definition at line 353 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html new file mode 100644 index 000000000..40654361e --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_119cabae0b548f4342060256f691646f6.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename... Ts, std::size_t N>
    +struct ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >

    + + +

    Definition at line 367 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typename drop_first_n< typelist< Ts... >, N - 1 >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T , typename... Ts, std::size_t N>
    + + + + +
    using ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > >::type = typename drop_first_n<typelist<Ts...>, N - 1>::type
    +
    + +

    Definition at line 368 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_16cbd3198e82281bcbc7e48e4cebcb5d1.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_16cbd3198e82281bcbc7e48e4cebcb5d1.html new file mode 100644 index 000000000..5f78666d2 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_t_00_01_ts_8_8_8_01_4_00_01_n_00_01std_1_16cbd3198e82281bcbc7e48e4cebcb5d1.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::drop_first_n< typelist< T, Ts... >, N, std::enable_if_t< N !=0 > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html new file mode 100644 index 000000000..70edcf66f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)> Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>, including all inherited members.

    + + +
    type typedefttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html new file mode 100644 index 000000000..e7ea7f5a8 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01std_1_1size__t_070_08_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)> Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)> Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>

    + + +

    Definition at line 357 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typelist< Ts... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts>
    + + + + +
    using ttg::meta::drop_first_n< typelist< Ts... >, std::size_t(0)>::type = typelist<Ts...>
    +
    + +

    Definition at line 358 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1drop__last__n.html b/dox-master/structttg_1_1meta_1_1drop__last__n.html new file mode 100644 index 000000000..abba083f6 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1drop__last__n.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: ttg::meta::drop_last_n< Typelist, N, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::drop_last_n< Typelist, N, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Typelist, std::size_t N, typename Enabler = void>
    +struct ttg::meta::drop_last_n< Typelist, N, Enabler >

    + +

    drops N trailing elements from a typelist

    + +

    Definition at line 408 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1filtered__tuple.html b/dox-master/structttg_1_1meta_1_1filtered__tuple.html new file mode 100644 index 000000000..e1bd6ec84 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1filtered__tuple.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::meta::filtered_tuple< Tuple, Predicate > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::filtered_tuple< Tuple, Predicate > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Tuple, template< typename > typename Predicate>
    +struct ttg::meta::filtered_tuple< Tuple, Predicate >

    + + +

    Definition at line 64 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4-members.html b/dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4-members.html new file mode 100644 index 000000000..b95b1249a --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::filtered_tuple< std::tuple< Es... >, Pred > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::filtered_tuple< std::tuple< Es... >, Pred >, including all inherited members.

    + + +
    type typedefttg::meta::filtered_tuple< std::tuple< Es... >, Pred >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html b/dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html new file mode 100644 index 000000000..192c39b2f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1filtered__tuple_3_01std_1_1tuple_3_01_es_8_8_8_01_4_00_01_pred_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::filtered_tuple< std::tuple< Es... >, Pred > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::filtered_tuple< std::tuple< Es... >, Pred > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<template< typename > typename Pred, typename... Es>
    +struct ttg::meta::filtered_tuple< std::tuple< Es... >, Pred >

    + + +

    Definition at line 81 of file meta.h.

    +
    + + + +

    +Public Types

    using type = decltype(std::tuple_cat(std::declval< typename detail::keep_or_drop< Pred< Es >::value >::template type< Es > >()...))
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<template< typename > typename Pred, typename... Es>
    + + + + +
    using ttg::meta::filtered_tuple< std::tuple< Es... >, Pred >::type = decltype(std::tuple_cat( std::declval<typename detail::keep_or_drop<Pred<Es>::value>::template type<Es> >()...))
    +
    + +

    Definition at line 82 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1has__member__function__hash.html b/dox-master/structttg_1_1meta_1_1has__member__function__hash.html new file mode 100644 index 000000000..6024b6b9d --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1has__member__function__hash.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::has_member_function_hash< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::has_member_function_hash< T, Enabler > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::has_member_function_hash< T, Enabler >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::meta::has_member_function_hash< T, Enabler >

    + + +

    Definition at line 66 of file hash.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1has__member__function__hash.png b/dox-master/structttg_1_1meta_1_1has__member__function__hash.png new file mode 100644 index 0000000000000000000000000000000000000000..e27dc2a7357646a5407a1345bf6e461948e31a44 GIT binary patch literal 940 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-12~w0W6%s0R*%FFW7-kz7 zZ$5G+hqIyo3A+MggmNq6n$MpnA7hy2naJ=uXWu1>16rCq3NEjhI3^ro0BUVu0CF9; zn5oJAu<;Nym>XCUT1D6d6j~WsJQ5iggCraplyZLm_Km&&uj7@q;cYe+gM#$5&A%V- zEv|l@$M7!Pl_BP%+kZDF%BRg}tber5K)x>K>c(ZSL#HS1-c+^Cf7_mR`_=wtYnSe+ z$=F$D_;&Zy=+Aw%!NEtxH%nR1=a^k;JA3Z=Nq!Nt6Pwk{D?S&*UzmJhp|<%n@oW9& zY;orkKIyV0rd#qpoV(#9({8mjFZZuJsn+;g($8u4`pRhsgIl&5&zSZ!)N|Xz-VKFi zPrptx&M~_GQ1;GjA18Kkf1zh-8zv=Q{!o}1dD>vQlgQ^ zoaSkZTJ_k(dQ + + + + + + + + + + ttg: ttg::meta::has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::has_member_function_hash< T, std::void_t< decltype(std::declval< const T & >().hash())> >

    + + +

    Definition at line 68 of file hash.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1has__member__function__hash_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1f4964d2720bb5e0fa5e45d0cbc913910.png b/dox-master/structttg_1_1meta_1_1has__member__function__hash_3_01_t_00_01std_1_1void__t_3_01decltype_07std_1f4964d2720bb5e0fa5e45d0cbc913910.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae007c447c74d024ad8f0499f02fe08090d5fe1 GIT binary patch literal 1370 zcmeAS@N?(olHy`uVBq!ia0y~yU~&br12~w0q=L%FPe4i{z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op9 zyjx6f!5g=#XJ2IQ9+?_(hf}mOTuI5trKPh&!_i~XL=|OE)|`ndlAf!QyH!ql1j$CL zc)Cq`bwkP1Xi~^=vAv5f{LS9yajAn@%~N*U2{F%0=XdON{dl8(&wrV^J@e!D=V!*T z`aTW&_v4dR{%X~iWq0l_nsCnl_Xc~}e&^}?4xiQ6h`!QYIL%B)_tYxYmw6V8Q?+`; zZ0n!B)?Pnt$?n4HZa3|)^1%Aqqr0Ley=ya$`g~HSO3Y6(ce{pQz@)r(<68?4pYFN5 zJUr%J>-jmR&ks!Zj$XZ+{i3Arq`KK>fsWkfF=^l9!pAoCew{fJbtf&+iasM_1@=Q- zkM1O(?@F=w&PJ!J!$43_O=%HR17pM|?gI=G4MN*E4lqpl`Sr9EqeO!im{aMI(#yc( zAQ;V(z);sD%VfY%nj_f2xFWe5C@KpQ1%?v?bHH&ipcX5TmMa@w8Q2!|>C#f^0aK96 z54pHZQDER{VAM#!>Y8@f{`&bfQm?iD#eV5@y?gZ3rcXO{?%6whw>0N7FuJPtc9Y_D z={wn*D#N>1vsBCPzh5eKcbQbeg7?*18}=VxlzMh*1p{;D=kB)ayMGjm_3FR5ziq|) z$?Mi=?&*4R?ae3KJ=*1k@+Poe?`bGDXg6Zv-_w%eT23Ysq(p?>SH*8K$sp0#iB`LOtS#O`e{dRT2MXO2oqqmsW z=70F}?cRf(Yv0|zxoM>>^W{?8dAsf2a@%)(YW%(GT3b!%=LgAOmc1=ww9ekG*w>V{ z?DbN;sFKg?+@$_}y}Ug5>qF1U*FXN9@Y`zAb4d^Ple(|?o^P4|F)QxL;U(E(vmS0) z(sUHAl!SrJouwpI1!el_{}e5oJze~b5bGU{isc>10;j{0BMckp-PCXa1mx;DSg zEz-T6J5%42@o~2IF23g_yO!4{1@3M#S*e}4DPX%frBcl6)&zs)-(eM>TH^PIU%e*Si@CT*}bUcW@E^T1LIf6@UIP{+Q-8J!t-`V_MOtmhGPC`rDN= zfq^SWa88lHf%`|N>;FEpk%80GjoE;K?EyE|JoY>>5L9LXbFJt<#&yBzaTlzu-vJ9k N22WQ%mvv4FO#sK^a4`S? literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization.html b/dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization.html new file mode 100644 index 000000000..4be41b6a5 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::has_ttg_hash_specialization< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::has_ttg_hash_specialization< T, Enabler > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::has_ttg_hash_specialization< T, Enabler >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::meta::has_ttg_hash_specialization< T, Enabler >

    + + +

    Definition at line 138 of file hash.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization.png b/dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization.png new file mode 100644 index 0000000000000000000000000000000000000000..ae88c42d899a7382092da11f24e994bf2de08e31 GIT binary patch literal 955 zcmeAS@N?(olHy`uVBq!ia0y~yU^D=-12~w0i(^Oye+Z zqT1E{-rHQ(CBaMpEDN{DV-{m)yIr-nh6gJR^E?uv*#O zNncpvHovr1y*fRm`l7o};iNAv_Y(L&x6FN$*uLTZ)^^#aWpgH-UAJ{^%RkLXt)JKD zPMY*3w=8ke7b!c38@2iOi&y@gy5#xiNXc#MO|)hoX?+%FN9FWN1I$vt#YX zowu$9&ieOn%irQpb2whl-*W%z%sYRxPHcFq`ugg&DQR=-QZBzfbM1!3%ti91$12a4 zS@qABx^VUl=V!KSZB~x+RS#=#lQh%aT3sP*Gi`zKY-u}pi)Fv6G$ZRbo_d!no9NEy zqb=3KyK}$Znwk4oo>Xf*E*i&~eRyx`RQ@=*TfA?c<<7QBbdH=i^@%~@|9#GUGV_ZK z5C1yuFD%+IDKs+CFV7&ugO-w{87eZ0{XD_kHdUIkT|$ zIytHQujLKjCr(}$c4OMH)amctrz_p^TT+;RC+ZjfqdAj`cf?N;U!GD~W~ + + + + + + + + + + ttg: ttg::meta::has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::has_ttg_hash_specialization< T, ttg::meta::void_t< decltype(std::declval< ttg::hash< T >>()(std::declval< const T & >()))> >

    + + +

    Definition at line 140 of file hash.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01declt91c1b3738036f1921f53ffe2f01abf5a.png b/dox-master/structttg_1_1meta_1_1has__ttg__hash__specialization_3_01_t_00_01ttg_1_1meta_1_1void__t_3_01declt91c1b3738036f1921f53ffe2f01abf5a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b5e46a30682bd01726e4c192dfdd3fd49b3fa9b GIT binary patch literal 1579 zcmcIkX;70_6#XDlsfAj`DhLszg46}1EP`PP*s!Fmh5!mCpa{rP1O);#gp37QM9_fX zf&>9UK6Y860R&MJ0oe_aEmT$sgiVrQFr*(&XFAjIZ{N(j@4hqVym!x?c`w=7(MEoU z@(ut1w0J^Q3OSzy?V(f;4(A`YXj&iGT;&cR>POSqg zCvx3}(k&$5|g$Stj~ic1OC zQs=pE_-+V9h|&J>zsm8H#aEzR|AV7^cx)_hMiKNMgYKNuE~9IVbuhb$B_d`I@rS8@ zLHo+Zz6y@owy;rcv^9m(x+RXU^}5SdyD=8j3+6UzZt2aw=m(aHYn);UbJW{-Wi>U2 zv22q)bJ>ClPsmPFf@^l+cne5}?9x>r50WG%N4!#VKLm1-2o<`vbcT9W?V5&I?!Wf+ zC|Ecou%@Iyw%ctnVXC0bKmFSSz?O|Z!Mp)E3tSn3EcLjHij3UX0%S5km=bx|)SfmE ze3Pf=wgoZsAqZ+G0CR?ye(w!Hr%B0Kgl)-wPIKL^3qb9M$i`dbADLVF|CLN`c0k1^ zC+R9EM5qIDQ0XaOub~keM?8y03aF_)`Mxia;#?jqqgU}6bM@og3Oku+Xrh{1E-~f~ z>RXv7Z8Ko^-prQG^9i|sm_^vM0D|O7y`Pw z`pa2`=zy7{UbKDhjNytcq}aIf0a$QD@gv9T{_W#3cB_aK1CrhGdmsHH&Xl+bEcq%f zW^^OhCNnF>Tftq-5VBYlv%ezI=knw9-6k$g`^B;b^O|kuCM^APgPu~6Lu1|BdX6W2a%eumnmR;VDbC5AWK26YAX;9T3fsNO zm8<-V!tOZLPqQ=9ulMeJPkl4Vcq%@!b2;dumoGWTl7GDqC?*Ei&;KDx8Kg<2z9C4B zI_9$*uHY)=^9qpOq|h!xS!ES>Bw9KYHl8A22SzV>NSVJtOoykzM&ESJkK~K3*~oLE vLg;Pl0tr=Leb+gOTm^-LKeeJznbXLp_T3=)bLKVZX9v($j;M;0-dFzyiWnNL literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__buffer.html b/dox-master/structttg_1_1meta_1_1is__buffer.html new file mode 100644 index 000000000..97f8328b6 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__buffer.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_buffer< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_buffer< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_buffer< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_buffer< T >

    + + +

    Definition at line 313 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__buffer.png b/dox-master/structttg_1_1meta_1_1is__buffer.png new file mode 100644 index 0000000000000000000000000000000000000000..2b22d34f7ba2952f2c2e87589de65dbd524dd339 GIT binary patch literal 642 zcmeAS@N?(olHy`uVBq!ia0vp^6M#5?gBeI3Ea0&NQW60^A+G=b{|7Q(y!l$%e+Z-k zj1L?*z}k679?0b=3GxeO04f53tEWPY7#NrYJzX3_Dj46+y}N0#f&g1}-lx6)rPl`r zu$?@zQy8UuvnZFV^?H5nRD-xjXDi^Mv11wleR3w8d`{Q{I&e9xq&Z zLl?fk7U1jtcGI$~ZGKYaH|M=vUp`ai?lKO~OQv-STdw7Gy8hPmeE&1I#c#j)B$3Jc zzfBUE=rl>haPfqhH(eNNTGI2IH;E8Os0m3OvxO|8Ln{&htKO;j7#8m|qvn zof`dhac%17E2*_xEBMU6={|qN(RymP_muA!pM}R=?(bVaOJ-}f%~yMQj-C3|3(cI= zdB4xGJALm+gIs)YUX1$n7B4IBtoY?Q8X?=}c<-4#l_RcqLcRCr1M8Nx3EsMXw{t@G zfdxfuhn7p-dVF*Fo5@nQs#4Y` + + + + + + + + + + ttg: ttg::meta::is_buffer< const ttg::Buffer< T, A > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_buffer< const ttg::Buffer< T, A > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_buffer< const ttg::Buffer< T, A > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename A>
    +struct ttg::meta::is_buffer< const ttg::Buffer< T, A > >

    + + +

    Definition at line 321 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__buffer_3_01const_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1is__buffer_3_01const_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..87596a790c0f41187544ddfac5a2ae6bff3dcde6 GIT binary patch literal 873 zcmeAS@N?(olHy`uVBq!ia0y~yU=#+j12~vLB4-l+04a$8pAgso|NjG-FW!7D?LRaD z$O7X72M(}y-jN4#IZA^3f*F8{K;Y`B5F-W#rXQXzjv*C{Z|B~vT5QGRIz4aK{r|n~ zOl4oa|NN65Xb`_5Z{79f%|EMZqbJ=v>g(rp%e^+} z+_uYUUH&_kSG+4Ws(827&Tmdnp7*8MJBr`VvHJP%%Tm*Qx}N!u_Q_dCFf?0zytFFn zY_IS4>AyUmFUiv0J9+<2|7%+}zqP)WyZ!8mYi^Ob^=0=bE(wpA>v5^JX5QqTQ`dNiPx-oOngP;rs(`1;%d^{TO=Iub;wn!$Y0n z*b~J-&$8Yp0fL-kQ4n)b&;iwGMsxJ?ZiHhlk9TdM}HKSD(7s_L#-;yH}?w z*cWa(7O7om9d#*k{ubL?`k|#U|Bq?%zgoZJ59f;GiGI&o7?yKh(tq)5(%uVIUaybb z^ZY*L?_a%pfx8~3{Ptv4|C&5y*DjGK8z(bsU!SwabkDPrJ!Nfv-!y1SYTudvY>D5VU-Jrz1X8a2xc#(lq2C%lw%C*hYhJ5I zhi*-+z2ndJ{(-{s^d_6KqFesc&h0l172ovj+tU@lPG;Qycq}HD)4_ID?eaKl{vxfd z^@bkz7y6aIzj&==S2*LHGycU@S#^(>WS(Yte&+qU%v^^5g8ENcLLTpYnLBsS$D0gs vkKWB;%VvL2?~4dxUbP0l+XkKUV5Hc literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html new file mode 100644 index 000000000..c43b4caaa --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_buffer< ttg::Buffer< T, A > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_buffer< ttg::Buffer< T, A > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_buffer< ttg::Buffer< T, A > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename A>
    +struct ttg::meta::is_buffer< ttg::Buffer< T, A > >

    + + +

    Definition at line 317 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1is__buffer_3_01ttg_1_1_buffer_3_01_t_00_01_a_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f0e6b5948cb5fd9fe28028cff932da25a5b90d6f GIT binary patch literal 753 zcmeAS@N?(olHy`uVBq!ia0vp^AAmT3gBeH)Oy}?eQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;>fBl}Y zgP%J3Z{51tc&2K%#-t}R1ojCzaVU2xcs@SSsJb%Ua)Zj(HPVfXA71^pZt?osGWKap zwu`DQzC6*Kf70Klb^o@1ILp83=y5yH7#(uTifYHC$@dBjeVnCy@T=Gwj%C7 z?B5G?UT*akf190q*Y)Hw-w)=yx2VJhvP@fY`^)VE#ra)3&(y2F6#MHg+1J>^tmFCp zG~A_}7A*p7LI>8rU{6r#W&88lSmI;G0pa%%M-DSqPiK1(&Bt?Lvy8-obV~z=^F;{_ z^PV1Husz+#ST&8A`HK!a+lxpv1^F5+0&YT#2{JGZTbca-%PzeBnf-gP^BmTM69qd; zE^ZbJx_+0NbHNqs0}h2-_k9nGIIwi8GWWDb=SN?>entJXH07VJFm2_R$?Q`qXWa8Q zv}^0WrW$In?eOz38Qk~$%dakFS&XCLz!o^*c!9Q{EfnrdPW&(&jO>4D$6t}Z?8H~njb!fu`Rl`7{WGX&1d%yUz=x7)*Lx1wBj z- + + + + + + + + + + ttg: ttg::meta::is_const_lvalue_reference< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_const_lvalue_reference< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_const_lvalue_reference< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_const_lvalue_reference< T >

    + + +

    Definition at line 278 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__const__lvalue__reference.png b/dox-master/structttg_1_1meta_1_1is__const__lvalue__reference.png new file mode 100644 index 0000000000000000000000000000000000000000..a36c5714c86f60ebb5be9abf35f18e7570ce29ef GIT binary patch literal 1069 zcmeAS@N?(olHy`uVBq!ia0y~yVDtvE12~w01nvc+p|kC)+>nT zTt z0tU6K_FlawyQM}TYsNkA>CQU-|BZ^L>s@{BUEtfl?wE7Tyoqw$WyR$)X6mmNUwCV` zyYH?y@~gKy(#Z5OU=KL^L<`k9=G0eN#kcvbD}GSvI;EM7XDv(Y>M>k zzj?QJ?3p`V?dsxPe=_!dNlg1%Rk*ig;jQbI^?z2??LKz=UFg5LUpGy;yt7~axcl#l z=ozVpZ7#n!TzjYWliuwc$1@8q`h350T-~|n_m7gx`}XyF2Pt`O-}(I0#-QCUlb1-x zaFtf>Ioi3l^!%PFOC&BWRXI8VBj9Iy8*e^xCP%d4{d0B&#t5}orj`$%CmS&;c}!Bs~<#w4I5Fzy;8E~z^30HxbXD3v}O|LD>g9Yf=2 zHf9e7F;6t(t@XCcy|?=LTb?IKUe+qMYg6uW2Kk~lM;OX~_Qx>Aq+ERZcj9#JFKwqE zbLY*em7m^U|Mc3&%V#$Ke)aTO-L0zW^|9-Pirz=B`_)$W9rr6Ju-@U6|uOpnTcYBY_{n9=5PYx_N zb-lv)1Sm0_w^+Y1BuxBn!Stp7PDg!Mb8NZZclDZ2a;7(TzcKGh-jVhs&9ES{+RQ5P z-F;d8kCm35b3IS_#`uXh+3l=Sx6}W9+H>>j>H4R<_xqj+Gh6>Zvd}&<uADR5SASE^lHZ}9Pn@pZv-YFi%>Hn_ji*)|w!3$9)$boE9q(@)XKrWzalhdH zQf=dg?>1t8%T-HWF6@_M`SCsS#A*F1?uPs6YmYHb0>+LvQsmu;nKe^2Ep7E5#%quE WFVUa-s1TU989ZJ6T-G@yGywqfEdKHU literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__devicescratch.html b/dox-master/structttg_1_1meta_1_1is__devicescratch.html new file mode 100644 index 000000000..ff6ec11f3 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__devicescratch.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_devicescratch< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_devicescratch< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_devicescratch< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_devicescratch< T >

    + + +

    Definition at line 328 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__devicescratch.png b/dox-master/structttg_1_1meta_1_1is__devicescratch.png new file mode 100644 index 0000000000000000000000000000000000000000..78c3a0fc0fdc69d4de02fce04a8f72ff82830c69 GIT binary patch literal 708 zcmeAS@N?(olHy`uVBq!ia0vp^`+zurgBeIpcw!$5q$C1-LR|m<{|{uoc=NTi|Ih@G z90(scaDcV*jy#abQ4-`A%m7pb0#{Fk7%?y~1$(+UhEy=VoqM})i2;v`f84Hr|NE!2 z74iF+8$9k!>1>LbQ;;P6*^5K*jCPaCS*_#KRkSVlsYJfi`?t?3UnuBv!ejTlUrp*Z z-mdTa|Lt>7<#o3^DQ}NgcOAWUUhMaqOD~qGzT}QQ&L6bzl;5)KW2Z{Lt~#x_vo-$U zm6a1u`h8%34V1p?Gtcnf@BBEG^S{d9FP_$1U|XG6yQ}%Z^^?J7S>5OSChfakywm=W z{fWOF`7?hT8YVr}+*G?-@A0Y0Mdx;W^0<`x_Q#|W@A~%rbqjaTKfPNec3S86+wogf zVkZXzWrd4sJU2~x>^*6!*dGC>8DR|jSBf9lGfVpa*IBdb^ZvBfrTshkaqlOF8z(<9 zu6got3d$M~9)7OoUD}GLz;lcbzt#MY|mqYFM z*2hHU-KgPKz3F%*Yw=@?*iUs&?>Zji?=wI1x5oPHU%vfSr=RcK@2Xw9`fGR4mHTTC zJz4TeB;8`IO||vDeKx`q)_*?r+2bYKk6_auhl`o#ynHd8 + + + + + + + + + + ttg: ttg::meta::is_devicescratch< const ttg::devicescratch< T > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_devicescratch< const ttg::devicescratch< T > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_devicescratch< const ttg::devicescratch< T > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_devicescratch< const ttg::devicescratch< T > >

    + + +

    Definition at line 336 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__devicescratch_3_01const_01ttg_1_1devicescratch_3_01_t_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1is__devicescratch_3_01const_01ttg_1_1devicescratch_3_01_t_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..4b9bae06cbafa3a2ef4ca374490e756689540284 GIT binary patch literal 928 zcmeAS@N?(olHy`uVBq!ia0y~yV2lB>12~w0WKyl|MIa>+;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z^w1-;uuoF_;&8?s?SDcey_O#|-bj&&4qer*aTFtn9`t+nPVQiD6FMZVY z-?sVhmlE&V!wxTPrrqf~V4FPu#M{_uOUjL+A}h4M|GunN{eP3n-pL!|GUo2Rd-9Ie z&F&(bThe(CX5Bua>y@v4-86jCy2w+9l0N>)x-GTeye`@!?P&J;#!2OCHYs@8r%l!N zZ2ma2==t|+vlc&Hufluec=|i3eNVkE{RcZ3*$17Tc`hxT9Xn(j_#bf}V7Sx&l@!%J1Fb!UEm&a_2R`6p1`k}c}f=hem~k``#tfy=G($v&B_T<@)7cpX1Rq^NURD~UVuv{v}t#abW<$G&p z2KpOsmwe^;?4I1k^+wxIo$*`x_Qd;ZcOE}aY|UO4w0rl8opYD&pXC_lV!vvq_qF%= z8-6YP{qCoo)~-3zHr1Gmf3EzI7uUc2`1H@K%VP_pW5w2`Pml_{%@A@w_8tE_Mu}O0 zX$6yR$0|0spLyRJypg?vd;cs(2d3v|WZi@gte41Oo4bi2f#F{lS`4U|D;;uixpU6G Y@bJ~nHR&_f0J9T=r>mdKI;Vst0C>W++5i9m literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html new file mode 100644 index 000000000..40007688a --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_devicescratch< ttg::devicescratch< T > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_devicescratch< ttg::devicescratch< T > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_devicescratch< ttg::devicescratch< T > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_devicescratch< ttg::devicescratch< T > >

    + + +

    Definition at line 332 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1is__devicescratch_3_01ttg_1_1devicescratch_3_01_t_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..066089e13c3c44b8a3d8dffa16d7f9f240c97f92 GIT binary patch literal 871 zcmeAS@N?(olHy`uVBq!ia0y~yV6+6X12~w0Wa#EkPl1#~fKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1JgH87srqa#=Ed2EJji03Gmf4#cqm`6=T#k5hcp6PA;hH^p36Gh&r(}-bB%>R1R8n`` zz9Y3)<)g{$?Y~Zd#PdwVgP%n39X(lO`#;|0tof>AU;mXD-CsXj^(Fhx^D!R3*YCTr z?o{e`kKYG!TPs%YY@8dEJ%5I@srRMxg`ac&Ub*wX{If(n3&u~Uj^Q`RCTcViW z-!;0IKG%B2>S?f|w7ie}T%`ETp@Ba5|CrwE-RrlQfN&C!M>4QGux&aAa(Jum4WeWs$>eAY9F4d#5cVnIPQrAIOh`KQ?%7%e)_GOGOevB9e0 z^9>n?CeJxn8Rr~(#!z%a+JS90^NECF2FV;gh32!2DH|*sc+A)*9DK%L1XM}BWZQQ$ zalu3-B|j$yiH2ZQqnr)R|NcCac;D_-{f_Uy+HY3#&8wVn&-LN9yTT6y;|UsC+au-Ueyw?9{>}dD(L2kl|CVg_u9d_44x%0tf$TKkK(Woqc+O+sjyqb&_GK8(&_Sy*m5d zjME$U{`Ki^yJYsBU+zqZ?e0dNOS^SqtT!#(ef`YZ;MBQh{b|`hTT+F#9NYf8bV9Bc zZ`&pQClhySANsnv^ufEQv$FT){QZ=7clG9)fYrInk3aoXb+)#8N61-IQ`3mMY-#PU z@6=W7`XJMG$whK~@%47=t><*VMr~^`%UJpQe|qS2_3CWXdCO + + + + + + + + + + ttg: ttg::meta::is_generic_callable< Callable, typename > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_generic_callable< Callable, typename > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_generic_callable< Callable, typename >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Callable, typename = void>
    +struct ttg::meta::is_generic_callable< Callable, typename >

    + + +

    Definition at line 25 of file callable.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__generic__callable.png b/dox-master/structttg_1_1meta_1_1is__generic__callable.png new file mode 100644 index 0000000000000000000000000000000000000000..cacaae804763eb3fcba0f92992a5c24c6bd2571a GIT binary patch literal 938 zcmeAS@N?(olHy`uVBq!ia0y~yU^D`<12~w0q|KB^k zz+hS~Q`W5se^;qZPI5?Ki`;eejEA@8xJsULs(wx%uU~ZGS{0PgnfYX?rGn^QoN5l(t}LIusd3t*SoKqG?W!+*@9Z$}pKAN>*AW@{X-mutqkqb;S?4(I=aDt1 z?)3hBV4M}Xe2rG--c9zAr?0g}S}n_FS=zg+b-V7<{kIHNUs|s@rSj6wF79T`)9W>> z>Q!IL{adaRojwaFx?c(1(MdsRY13xRjAeOX{FBLpVcn!t3`#Y%ON|>CR`MtuO3|6i z7^6Owk;OBSK`}_up(BJ%Kxryti$^L|xpv_*XGSKam5K5wFz#^EV&<55iot1#QG)=` z4K9IZf2}89m*YQe$5{}3V>#;u!}4_*PtKqJ$<#y|ze^1Hfzx{Ym?NsaY zv#CX=7rtFS%kl5J?GK*L$*k^=)!Qb&W>V_^?f1^Mepl>Wvf&4WW+D>X}|m%Iy-a9gikD2qghw)bDyXux%*_P^7kA6t|_PH z*{xksw(p&83DcZS7azSpHF3Sr-Y*xqtovm&q|a?U&p!RUV(RNfxu^1W8=Q{5bzX1r z^HW|&>bhSYd@ftpX`1^W^NGj1f>rO57Jo3kzCJDTyWOcQ$<)aAFJ^9f_$lji`i#`; zN`G(u<+fSDe>SFn^O@9(3z~SR^kv_Cc&KLYw5ffP>r$6;+Qu%c{jp)1?#_6w`TQ~0 zuH7OubzE&zVP@R?juV*zTb)d|84E9qrZ={-Px`oeJ!OyLZ6lS z4_oZys?1rvo6M#%`prE3WLhG_@*F{i{r>rH)ThcmQ98hSFP-s0bO@{b18W{JH3udG gHPlFlrJ5)5xg5Kz?}oiS4a`^!p00i_>zopr06O)iVE_OC literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.html b/dox-master/structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.html new file mode 100644 index 000000000..abf153d8a --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename Callable>
    +struct ttg::meta::is_generic_callable< Callable, ttg::meta::void_t< boost::callable_traits::args_t< Callable, ttg::typelist > > >

    + + +

    Definition at line 28 of file callable.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.png b/dox-master/structttg_1_1meta_1_1is__generic__callable_3_01_callable_00_01ttg_1_1meta_1_1void__t_3_01boost_151aa9d2cdd456888b9c46d5838d5db34.png new file mode 100644 index 0000000000000000000000000000000000000000..72ab75373f255e0dd839beda83a66032fd8c6cfe GIT binary patch literal 1431 zcmeAS@N?(olHy`uVBq!ia0y~yVCn_312~w0q_@xhazz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op!Q}#X6}5q=FMK*soTB4qkvI?P3lnz z1zLV9*{-izTHgKrpWh_~)7?wMomU^9l%f(k9cX1On|f|-(De9MVzJghlT8kR3{hNr zy{(ry)?3=WU-hKNDm{>Ee3pOcKDFoh&1jDA``+{Ym_GS0$R(>z1J!SzkpuE4JJ70K z6Wv*B{;f5-<>qPC4mAF~LFzTmX-k5!2LU2*&L2M3!66I^J|jj0hW(G&4=_kHgybkU zFnT5|fsfcaPh4Ucb6VAb>YfR?NZO=AWK>oq_v;9lO@eerA19y5FyNPyOkmSH9cc zo3iihQ%$*8iP!l#EITH1o9(MxC-uLxH+Hdz^m_fH0gJ3JZBKrzo;)|VCU4sFvdRDt z+x_)bCjYhLg7Y?7{V{LD3`8GS9Z!dls?p@3E-g%ZwT*se^zNgi%UZkbGo%6hZ z)zhbz``N!{?J}wMUwr!U?!etfe+}}z?tiX(nP9Q@;w#3U%&f;IC!gN_otypt>h`b8 zw{|b`6}@;bEc@=aTRh2}kTjYM8=!E%MUQ(v#0Ty;}5`}Nbj`^Qw1YF!Q2Ug!V1 zFi=*WeWH4<%=tpE3)|H1?qHMNSo`?uME#GxKDAxj+`_a!zy0#H`~LYqH;!N4y3wy7 z^1plb#n;=@A3wZ#BmB$W#ml;FqNUl3ZMJ;eVP+=0-{kq)P39}M>#`r-qgxx>wu&?S zZcTvn>RZ?Qij$Mqd{6g#HTSA^cGmxMyL93^fr0sYwcEwFJ5Fsfu-UrqeC6e1j`M5n zA1B_MweRLJM=A5wC$D|KdaT^EzRuyw_09jz>DQP_$cqPmxKnj=^3$qw+h2Pc)}Ps{ zXP&Je>QQPkw_E2^VQJrMFERB872CztlMHt}-LuNAGWXnPIsK$G^;JK1UVNaye(LqM zFS^IB1+VveRri&_ZOY2r*A@pt>qL1z@Uj^(|Eb?uUgiFB^%T}0GmahGX2C4;=}yMw zXEu^H?hG~apV`Wv71UV2f93)Ae9h(Mrw#fqnaj#C>|eUJcfZu{`zopr011 + + + + + + + + + + ttg: ttg::meta::is_input_terminal< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_input_terminal< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_input_terminal< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_input_terminal< T >

    + + +

    Definition at line 359 of file terminal.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__input__terminal.png b/dox-master/structttg_1_1meta_1_1is__input__terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..14991e1322f7a67395f21648fc492811a6051d8b GIT binary patch literal 947 zcmeAS@N?(olHy`uVBq!ia0y~yU=#+j12~vLB4-l+04a$8pAgso|NjG-FW!7D?LRaD z$O7X72M(}y-jN4#IZA^3f*F8{K;Y`B5F-W#W+zV<$B+ufw{!27ZB`I){eI`mp8wMI zom~Y2kNrPyjf}l~bX^xmiZSzc7Z(-5KyF1(&(G8SR8D%TPkORM*t6(Tr;6p=$xjp4 zN^@DK7G7Sl`o;bCrBSc@qvy=HU$n{NlHUGjE|bm`ym6V-)7;knH$>gPa`Hj;-pMy# zE-Kq+GPmsO)6BOk!@hSL@6D`^+8?j~Id^XS+ozU?GpBhw&tI0kXP?FD$rG|9@05y5 zZ;o+#<#pYC@xrw_=c|*q#ji1%?;XBp&yOYY*W+%#;+y+p$6|R~sp1=}YOn6Q`{&R> z{W`;lUU|(uCCs~oy90O2M}E9h**#h9%kzrwKkBAhxBE@|TX^16cEhu}^d;x#Hcl<; zziYAoC6Kw-;$`svm^nWh))!Zo6)^K4`)*4&*XGwr0zXhbl@+ng1E=n)Mr4 zR;bQpkcf}hWZf{ykD;f1(iEmGK#?y?1R2!lGFZH1IpC?z;Ah2HaEY^FvLC~o5~c@B zgvpe8-aH2q&x{kc1cGcs7*;;VW}n5c74`LB_N=wfGhCyg&VC@a?gZxn$v&X-*e5aQ z6&?1B?EEG(KX3W+r=dTupV=I{cjecRjd9OzUt0F|;mw~`4u6X({|fp|yLmS3)!j82 zbGO~Uy6Tqe{o~tQl{d>KeDQp~zk_whneB776mBw1y!`s|*=RY-o40b=UN~Q1+m-tC zt>3ggQAKZ3-^o}-R^2ELYI{{zvHvAg%%l1vo$HH?&j*Ug966~avPkpq)8a=*9wlt( z=9!Z__sj0fFYo+Z^EZX>`mX0UQ=S*Z`}Hn6nfGpr^ODVX=2;8GU0cZZ`Tx}7=e>vb zFXe71FS_6PlZar$Ia!_dZ}}sZ2l>DdK?+`ebwNST-{1K=;^vFb UKWgv|n8O%6UHx3vIVCg!0F-IQ;Q#;t literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__last__void.html b/dox-master/structttg_1_1meta_1_1is__last__void.html new file mode 100644 index 000000000..e2ec3513d --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__last__void.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::is_last_void< Ts > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_last_void< Ts > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_last_void< Ts >:
    +
    +
    + + +ttg::meta::probe_last< is_void, false, Ts... > + +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::is_last_void< Ts >

    + + +

    Definition at line 257 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__last__void.png b/dox-master/structttg_1_1meta_1_1is__last__void.png new file mode 100644 index 0000000000000000000000000000000000000000..c9aaa120d40dc618a850c3735279a497b52c58b2 GIT binary patch literal 857 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K50yvm~VbxK!_*tGZ125P+pf*m-RJVWtk^O% z@>g-fTKy!=m_5t&46`14@9mwYoX4=w- zi1XE!B?^LeF--ljTXVhBU4ei*iPfptUCd z3>gekMY1{JYOol}_7<_I%(mc=z{(1W5(jXGz?Jy~Bog0_OBzay2<^v20o^_?{2ELb{L@>l()9F@6Brmi ztS)AFS6g-W)Q`>YU2Emy_zN1ke@QSXRQEC6;NE{~$8v@>f8MHEi9g>i5mkStmc{lU-e#Wt4j}zVM&k;(6uhk znrRwsv+k{8!zl;OhOepzHdiq>%#bq-wbGohYI8u;CduUy@!G8C6e{|eH`$(1yW`P# zN-mc{m;FinpEl-AvUw?W%mLqd48HxlYn)J+V)gaYRrUD)Q+*~s)7`LcUC-Zdx*vYM zmUy7Oi)n$yZiZj8&YyU8?5#V)y`|oKKmL?3#;snh$?zdQn?Ztsje%kRE@lozmgB$J ZEw`HN&yKpd8JG_kJYD@<);T3K0RU8Ea1;Ol literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference.html b/dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference.html new file mode 100644 index 000000000..3d16981a0 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_nonconst_lvalue_reference< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_nonconst_lvalue_reference< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_nonconst_lvalue_reference< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_nonconst_lvalue_reference< T >

    + + +

    Definition at line 285 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference.png b/dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference.png new file mode 100644 index 0000000000000000000000000000000000000000..06b8f8aa0c7e2a5687c803aa107922141769d4a8 GIT binary patch literal 1123 zcmeAS@N?(olHy`uVBq!ia0y~yU`znA12~w0q`;>5bRZ=W;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|!2HS6#WAFU@$KB(lU{4^xK59&`u|_v zUu~ZP%eyBJGIpJx5_E5)ZnFTlVw|C|_RN`2IVLZeq>{RV!8>RX*9H~URWODY!@YRF z+f)8UdmEW>we5a=>(_oM&q;1K*@aGTo39f4>Ntbxwq&pA(e<^V(J$7CCjzn$B?){f-<#oifQui8RlJE zX~)~{k?i&>vhP{NHR}VXC4o+qdSJim;Kj2!>G9VdXdk%#@2|}H{S`Gj(>pd+M^Bt8 zwI_d%u911~%glE+tkt&<{XSXq>{?3x*>f*myt4i;xIzBI4&H`4GJNkhE7mku+U_v& zESjz_I4NY(68dnx^>IYlhh~r=B@e)WSH0 z!6>AGQ79A%Z)N&%@p0(#AAjFzZTr`}e0z*NUvY!|lwA9U)W7ZxjPG8kJ@{IX=bys( zVdEP9xwZ5A&u{;G`Q!6PUsis|xF6NN{oswAw~pVGdFQ`(VgJff`#tlY{oK*8yN>CD z-BRAd>RT1tHOu|aUfH%LTezC#xni^P?hKCP5^aGq;&+|X?yNNW&hVQ@?zvUnd*S4^ ztbe(D6&$LNMDo_N?7Vh|Jzs^se6{9IJ;C=(_ja`=6^AX}Ah^r7?#P2fg$V-}}f8??aD|$ZWf + + + + + + + + + + ttg: ttg::meta::is_nonconst_lvalue_reference_to_output_terminal_tuple< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_nonconst_lvalue_reference_to_output_terminal_tuple< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_nonconst_lvalue_reference_to_output_terminal_tuple< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_nonconst_lvalue_reference_to_output_terminal_tuple< T >

    + + +

    Definition at line 625 of file terminal.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference__to__output__terminal__tuple.png b/dox-master/structttg_1_1meta_1_1is__nonconst__lvalue__reference__to__output__terminal__tuple.png new file mode 100644 index 0000000000000000000000000000000000000000..b526c7438d42a9f28acef3dacf7c58c8410a9a66 GIT binary patch literal 1430 zcmb`HYfzF26oyeU%~7*dfG#g#9hG%Zuf5ZzKF^MaQ?5fMlXS$2Qy%=Wu8bIy6soOjNzXHITd$Wcr4 zt>zF2#1iX&I06DOk{fiG8Prfs0n0f znh_&HjzJ8je?r_Hxeo#{al#%x6nVu6EblKJ-euv3a!2d+UBPjQS%TbnQu45C?;^u- zAN`tJhbya?zKd0CUFjbYKsVl*9vETgM8M`%O}Jq%76VR*LOZ!OzA5drfL&Z&(tLyt;XfglrR#P_aef zyt+rm0kTh?76D!9a)Ri0eC(AcIl4Hll?N-a@YIlyFeXtkAE$t7Wfc%bUbzhB)d%Oh zy$O2AQ%#j}Quv+2Q}n#_krPkHz@LwW>XR`{YXVSxoS3IsUCi!No>QvRL)}Zx?9aCP zxL%~b{Cyf)-lCMO*d?u_d`|Xh?hGxL?`W=8tj@0bJSx?#kcu=^GPe_q;pDjLzLc$y zB<$_W{Zw8%cT_E+CMQhy=y2Q#y5RoF&cP#ZufCm{_*5rFTGo^USQ%qUxqX29xq=hi zO0|IfGWh5Sll2H11Zot6;i;4)j&n78au=P_lBE)C-JBU4U4W5$J7cFF>!RrqbYcXi zu|%^L-L(?_s}O^2d#L=wigfxO_<;u#mW4RNami+PWl{9`A-$R$XuxIl!2eO9a~xmv zXQm-o_X7}48IT>bn|;k4vgjyZTb;HKiK=HqJa;@6$zt8P$3dMO1whAf@qXQdbGSHO|2-sZ{oP_1^jL!L^QhVks|Ho#@mJ3=r1PO>;P z%NvC!)XV|kGMqytONVCiN4`jWvi}2Em=UB5wuK`I|a&EI}?Ryr~^&}uo+k4IX%5Zd8PkhT1R6gWjD%N?m&#x-c@9JJ5(A}hwUay&% zz9Mvoy`=wBSwC9F)f{}kQM&*gz>s)crT3rBE~xW|PiiA9yHj5-Pek`U4igy?0uyh9EXLBG^$e|w={Dy)!!Z7u>lIzhc`y1=p` zRfO(MlNQK=T{adWY3}m#e50JoSQ*U0WWgQrHBoRN5aDz@0I^{S#@@Z{4BZ}YWO$+w NtY66C`X6I6{s!A5=Sctn literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__nonvoid.html b/dox-master/structttg_1_1meta_1_1is__nonvoid.html new file mode 100644 index 000000000..d638dd6cc --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__nonvoid.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_nonvoid< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_nonvoid< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_nonvoid< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_nonvoid< T >

    + + +

    Definition at line 218 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__nonvoid.png b/dox-master/structttg_1_1meta_1_1is__nonvoid.png new file mode 100644 index 0000000000000000000000000000000000000000..a3a08c297be4dbd6dde1638f9ce9047408710b8a GIT binary patch literal 765 zcmeAS@N?(olHy`uVBq!ia0vp^pMW@kgBeJQB;6YErDM zY;w)jJ>7Pyd0&dH<%yj1>&t-)hfBFWT{Smn*IhLse0u8nwf(17yu2T^d+DXz+Is1g zx~AGsudTbZ%4|Eox7PK~Cp@*Le@>G-JL|Tx=QATSty8;-zfU$_UioAp^QM3w|s16G|N@H-?;4bT=48}bDr?;@CmEu#9XeHwtch4Hz$4R>m_Mt z=4lImOHQ)BQ2MiIO_}2DBm2Zt^^;^z+zs>#+R624<>s8T6+i2~>+C-9^x52}M*Cmu zJTJMU{jF^7svD(A&$ad*f0=mHPUN|kVi?t^( zx`it+_pEbZlZb8PG1$cH<|9iV5|w#AonEo*kaGJJ%`sC>F|!Y5|twd&=+ z{`M*DZS>1qcdpeWr*HAz@-C~FVa^rr6Qxu57o7d}Ceq@ + + + + + + + + + + ttg: ttg::meta::is_output_terminal< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_output_terminal< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_output_terminal< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_output_terminal< T >

    + + +

    Definition at line 606 of file terminal.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__output__terminal.png b/dox-master/structttg_1_1meta_1_1is__output__terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..ced2bee3e4d2cf915ce97e2d2e9b65d3deedb5b3 GIT binary patch literal 975 zcmeAS@N?(olHy`uVBq!ia0y~yV3Y!~12~w0bw7D;-pcX3e>6jW|eQJr*Ua+b=;Nl4geg(iRW%&*@jorzt% z@Il3d=6jp_&NF$f3b$-l$vk!ZipQln+*v9sAA25N{y4<6yq$ldxs+-5t)z;dnQXGB zt}oAB5@l1j*xffe_p5g2=U)9%__yV|VeaZ}tJdD#`>=6V<(XN&L0_&5 zY!APjo;iKvvwiUa`GJ>pT2z1k&Y7>XA~@@mm{oA_<7>5v0>*k8%FFMzmA}$oHFN(R zz4`rOR|>CvsqNdXlcksL>+y9}mfu@b{WD)$_onq)=2htHuh=_F>+`9&;AscToYr1n zDZDB+;Hg5S-Hh|;#ZGH4ZWmr9)}#LNVN;ZFYMsnni#@6@XaD%IXWh!mH_gsc9+y~` zIrqAXC;iKtHPdub%Fj5{NnZkkdQ~EkabA{^(xi?K#)kI~*%cTiJWUz;=Fcx-PVfLS zX3s2P-k^S!!N=OnxQfjABP#hvUNG4C*@zQ!A$f2XWB zmHYee-~ZPw$PAN{@4aTxKR;;SSC&^_IZac`y604FpK)v1-TPM;xrJU&dvhiI#j0(+ zk9YCJCx7KGm=(V=b90*dlG*omuzk-u#!*KEK#xb#B(a^J`9vr}|D8O=~xN^=*CTwza|BuXcZ% zrCRyA?uKuf=f9#2Ccbw#xAtwE8?bdj<=VF`O)u8#E~@P9pA(SJ^IzPJse=3Z)e>&D z2cmM(tGqvK%(x}+;Qoj1HI=W={9nC>@yB}92-vx@v%^D4iR~Z5*=vhge;qwj3(S2C Mp00i_>zopr0P!xqga7~l literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__output__terminal__tuple.html b/dox-master/structttg_1_1meta_1_1is__output__terminal__tuple.html new file mode 100644 index 000000000..e727f84d2 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__output__terminal__tuple.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_output_terminal_tuple< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_output_terminal_tuple< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_output_terminal_tuple< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_output_terminal_tuple< T >

    + + +

    Definition at line 609 of file terminal.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__output__terminal__tuple.png b/dox-master/structttg_1_1meta_1_1is__output__terminal__tuple.png new file mode 100644 index 0000000000000000000000000000000000000000..9b6f7dd01d205b9396c0470009621ac8ce50ef11 GIT binary patch literal 757 zcmeAS@N?(olHy`uVBq!ia0vp^Pk}gqgBeI(6mWV3q$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0T0C7GLn;{G&b>QrvjUH+xw-B8|HtMl z?{_S@mGyjf=bERPf*u8v1@br*S-vZIOe*&E^8B>WQ`6J#3*)IL8-DRF-MRVNar0m7 z8nanz0_t3Ich0@$_HFmR=l6wf{)kIoa&hTK$!SX_@0w!d@ijAE%jNp@Tal~1nQKg! z{!E+QFZ!UNC_&#-y|ngNpXPLtGk-N3Z%?^<c#(Vy;GNLpQ@qyvgmL4sjVlLtk}ALQpw6X zZ=K8G7R#qBIiDHiHHjbW@K&Q1fj!(0+P^Xstd9<`lPf>4hxI8_CG(l;fOAsZ4_qe; z9cWimZ2&4}ke@Y$!OldJu_hyk>Bog7EFTtnaz1cIQ!qb(Lve>VYm8_;>uB@qHAF#aer=yz0F#2cFw&Oerx2j zuK&EZ + + + + + + + + + + ttg: ttg::meta::is_output_terminal_tuple< std::tuple< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_output_terminal_tuple< std::tuple< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_output_terminal_tuple< std::tuple< Ts... > >:
    +
    +
    + + +ttg::meta::probe_all< is_output_terminal, Ts... > + +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::is_output_terminal_tuple< std::tuple< Ts... > >

    + + +

    Definition at line 611 of file terminal.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__output__terminal__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1is__output__terminal__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..711c4108545c16f7c5359a9fc5f818da056ed2ad GIT binary patch literal 1798 zcmb`IeN>WH9LFCqMR9JD8ZAwd+H7h%Hyb9*mO<+AEsaO0Y$mMbP&9R>CMl<^q1GJJ z)H11=+ob8{eAAa_n!O5_jB&e z*&E_#iP(Su0KhW9pAZfJMic|H&5RA>1+DS4p{(Bpx&$Zg#!n$1X#d!YlJp`P&?&u}-l&It;+VJ3ZQ?!}Y97)0*pi38*MpDXsOf9-V& zE1k?esXB#bTSChprqNrW2~o|}LFOfozI>keSozQQH8;vF@v!K=>jUBEQ%J!hweuMl z5q$_#DtxzQ4{l>;#1U}6T~xLFc^=9xk1>AjiZDdYh}=FPx3ZJ@2j8UzYCvZSM(EY4 z?WlT-{&3b>AldF|ZFiILBfSu@P}2z>Nb-&+ZpiKJI}J^SGMj1Ku?6Le)!l+*EGRmj z+E>7?(q5K6-qO+06~a6FJk{}uL>C}3?O*Alq9+aPlJj;P9l<&GuZ~=vG@Bh?a67 zX~lUnzAQU4tJJ)QbQOB(*ZAQ?6r~7KDm*Q8L2BIf#jkdOnm1GK<@+gNs-ycLXt0jJ zhm@g>9*TrKnVXd^mjd?dcl;G5D-Q&>w~HZY!?U$^zGfk2j;waQB+{TFn{7~$AY#F(o!ZTq4<;ZTFJNcqGV2h-tt16M zjfvJfVHT2guZ|@9Sh--r!?2N`X*jaRGWWjU<|K;nbmMBw@f9XEm)6$SZF^2s%^s8>n=5-mn-%=)C%g|#&ebJbNBz)}R$o^eFRQv9 zTat~nC`$>TI>8keXG29rNclAXO_CMo?8{g@Q=uTlVd?I|{V^UI5})lawQi^sIeanZ z|29@M@R*=@~|!~X702dA~(NJg zk|K&g?zqQ4BkRbCEToNl9r9@_Md+^CH=`di%^!so&E+u7Z(20Aoaw>+(4v00E$v%G zUvL{XGZnJv-qu?H=PVQyt<3hvMcUsOT94!$#aqeIhPuz^U;+Eyp`!bT1@|RX^vqMR zb8$6E!49?)62JGmJ)%<}wV(acwuMS0L_803wn8Qn2$O%00YJH6sO^DjA)~b35SR@s zsuRUBu3d++sO8qUV=Zd!Ur{mHKpPB_oQnOwB>5KuN69&sj%%E#^1@RYeqV zW3&~yS-D3@xEAs(b7z*m%J4Wzq^aL|Nwuo2p&#!nZW8;X*SNZSYFdYvr{)tMaS7^H z-pXzF_o|@GZsM6KC|G{WXJaC*JH5KuMx_GR+`9ryDC&~W@e+S6YI0Ia#Su<1zg-GG zdFM$1qa<%86)HKpRd_Hi_VWcyaalcu#SLtbieKAPPkQFB_IMB!$DJ4THixa|CO(K2 zoc^i!)~N4{9}@RzLTU#-N7f`A-c<9|TvXyq4A#525>~Ms{f9!v^LNU3HDwke-lgWB zWA2prDB}ugi^-e>4&6j+j*B1S1=K&C-;+;{Y8op=ohL7T;aoAWzj{VZbze6aNyB=R zZ}e2b8$0&KWjO$ucbhm7mh?Ivj*5;CLp)jtDQ&xZ+p)c*wP(%-hu;LCpCTmC*US^qpZ2Iz%kKxk-0*E1mYTv`Beh0*)Ox6GZ literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__ptr.html b/dox-master/structttg_1_1meta_1_1is__ptr.html new file mode 100644 index 000000000..e4ed5ebaf --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__ptr.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_ptr< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_ptr< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_ptr< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_ptr< T >

    + + +

    Definition at line 302 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__ptr.png b/dox-master/structttg_1_1meta_1_1is__ptr.png new file mode 100644 index 0000000000000000000000000000000000000000..47f53bdb3a7c3e8b4c281414824dfa3d8fb58f65 GIT binary patch literal 579 zcmV-J0=)f+P)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0005fNkl0e#*gANd)K?jJ?paVo`&;cSe=l~HKbbtsA zIzWU59pE*YnS}`h2-2VfMCe24)8B9R=+}4bo#|ZRK-2Ef0UY^e?rf&#%hiwI+?_{h zDgRUl)(%bftJ%3gb-pkB(pxSwW7hB(bZw1qvB^F;^k%ZB*S>F<%{hItDzg-^9pBf5 zbM%yzl%f5|H+OAg-HlRg&idZ@RSxXx;HK}5Z%($I+c|l6Qhb>AT(KB^OO>80x-xNU zK3@W;+i}fbeyjmnUEkQzo5%v3(d*ypevkJ)1URGnbb$ZUpaVoGoNi_or62ybNx-Ke R(4qhU002ovPDHLkV1mQ=A7%gm literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.html new file mode 100644 index 000000000..56bede063 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_ptr< ttg::Ptr< T > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_ptr< ttg::Ptr< T > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_ptr< ttg::Ptr< T > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_ptr< ttg::Ptr< T > >

    + + +

    Definition at line 306 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1is__ptr_3_01ttg_1_1_ptr_3_01_t_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c51e5f1c77f132bb4dfe7ab1f8af2e6b9dcf1fd6 GIT binary patch literal 686 zcmeAS@N?(olHy`uVBq!ia0vp^JAgQVgBeK9{pBwOq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0Y&~5ZLn;{G&b?dpSb>Mt-Q4p1|6`@O z8yF|I-B`J+X0@LB>GcvVI(df1vjbs7SWA?RKKakyV_p<(h z>cf*v)>SY3B=qO^`x?)`iJnr|=k{+dzAxK^;c>2(x>cOKVH&5{iil+Z}I)AsG@oQ_$rd_^vG|`U0$*{ z_w9>Q702hi={xm!>(@h%-+sB4wY-jPea)puVP?0h^_DHI&T?A1E$&E#^MniVQ5|AkEa&TJ@HOvjqu~;xmDM) zKdd&KSIp!V9i(^Ca`B8yC$(nETX@~Cs*G8n^EmS9+Y;V@?2L!YU)O#g!G6l + + + + + + + + + + ttg: ttg::meta::is_terminal< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_terminal< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_terminal< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_terminal< T >

    + + +

    Definition at line 135 of file terminal.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__terminal.png b/dox-master/structttg_1_1meta_1_1is__terminal.png new file mode 100644 index 0000000000000000000000000000000000000000..1b4f29bdeb01591fd585bd3daa5362291cd70cfe GIT binary patch literal 790 zcmeAS@N?(olHy`uVBq!ia0vp^AAvZ4gBeKv4^1urQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;<{p&gZ8~jpy{sH+G-1 zyy(8nW6t|%C#|=Ue@^-TyeXSF(Sj`@T~GboCiQB4!{?EI#U7o#6yi~~GxFRk%W0bV zzMphwc$e#aIJQR5;PL~fEx^2Gts~EcZES`PzyQTBa3DP;?b=j>hCY)H##`4E*fOF`k9-$BFLv~2`rpGJ zYZBIOW7zsjz;MFW%d_nY84tLI3aqdDwm;|c>nqXAuGPPrv+wmYdGGB{FDFaRm$P@= zGbb<2FMl)hw&dsenHt`cuL{;x8qJ!hn9EDq0p9 zhn~q-k29(}`LB6RS-hOk`ZlI8om7VDU-Xma9KSHPc>2}Z#s^}$`|o!aiXA@mR=46w zN!b5uw)28@ug-e2p?H + + + + + + + + + + ttg: ttg::meta::is_typelist< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_typelist< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_typelist< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_typelist< T >

    + + +

    Definition at line 35 of file typelist.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__typelist.png b/dox-master/structttg_1_1meta_1_1is__typelist.png new file mode 100644 index 0000000000000000000000000000000000000000..21c6c34fc7f8dc1604eead276c152dfab3c33a10 GIT binary patch literal 656 zcmeAS@N?(olHy`uVBq!ia0vp^Q-L^ugBeJwM;@;NQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;+6izPAXqSB7(%mv$m2v%ynZD{ilhiIRnzUqw*i@CHUzkFTbiS3DuxH2odmtYW z+V{Wxm9^IQ;FRo?-)raB_n&zCH)&$p``*i2RCq-e8LhM_UA||F!L>BA1pYm+o4o@^WR} z-?uuR|2?|BCMC_9cIr%y8RH&L^M;ous#o8dDPNlsQoe$7RnJ}BdOqgWztAF2n*3YfKw*FYZ zX8z=InFsUc2Qa>?bTHla(kgWoPprIXbn)w@EB^%RMwCx}|7=VD`)ip~uh}|GjVWJu z=~jHmw6e8EPY%7kb|7Q^v*=aps~nzYEr`9l_OjaD=&}{(KIUGUZEd(}%H1h19oc59 z&bgmBtJwNP!YrQSr)q2WCIqMVt?JC|{hqWYM#t*w#f5gkd)Kb}c0=yz+lk*^EcXqW z`GZI9%wgLb&)(mZ>yh_nNLJNqc%8K(rj0>qmH&%v*BIi$rB~nk$uAI6UBM7@;mLO6 l112Ev`+BFQna$qEz`8TyQYxQJKQQ?)c)I$ztaD0e0svb`FV+A6 literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..e25c03ece --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_typelist< typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_typelist< typelist< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_typelist< typelist< Ts... > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::is_typelist< typelist< Ts... > >

    + + +

    Definition at line 38 of file typelist.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1is__typelist_3_01typelist_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..cf50227182d373f845832bd5a049b2bf5031a4ad GIT binary patch literal 725 zcmeAS@N?(olHy`uVBq!ia0vp^&wx09gBeI#ssDTkq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IZ0QaoK8Ln;{G&b^(qMuEpQJTC43e|h=U zD;j)6Wp7`evGVpQ)dNb3dy>+g#m`Ww3{UWyB+j}_rShWfjLb8sFY=%N=&a@Q@q9I% z_c8DHD?beRZKodJ-g#F;QJpJu^RKir;Uz=@7YR zNAu0BX-iJ;Qq3qg++TN_A;aAJQtI6aO;QuDe@K&LxVdq!s`}kpGxHfY1@9*Po4I*r zQ`yNau0~Op@&%_9&-lO8N82-fih=4&zQ0P(W@Jvf|7p8QZPfpE^UG3ulD#giBIW;gne=S4{F$+Is9Zf*Ph_EjP=9f11ujF5s!DcrltLB zWvmEKV5$fN;)_j|e{M6cyZ!xC-lWc{jZA;rPRwZOiepe z+5bs8?T?K2%FMdd%TJG{SWEeS4SsLpm0Nc%<=~r78Bfo0mi(PHZKGdI&Du~`2a)82 zEB^bA2&;WQw|(!d!{TbDX@wfEc6QHLnXXlBcI{3_L)~Oi;e^#{FAUF!T+rNcpC#AS zC2@Pn+~m)DPS#y8bKtMueB({hu1{;kve)gIr~hxuNvq`9pBI>O=bQ5RBuj70erGXz zubTMzXCl(x=QJgkzwoTof4xc8Z0$qeTX&Ac@Ao`8mzC*&b?W!yt=TUN>KJakXyJ6| z*E+*2%^Z-mtN8QeTc$@ig&Xv)-n$cbjG;aBz9oaTRU*@c(&X3Io$1gQu&X%Q~loCIF&MTa^F+ literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1is__void.html b/dox-master/structttg_1_1meta_1_1is__void.html new file mode 100644 index 000000000..ba121b06c --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1is__void.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::is_void< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::is_void< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::is_void< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::is_void< T >

    + + +

    Definition at line 212 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1is__void.png b/dox-master/structttg_1_1meta_1_1is__void.png new file mode 100644 index 0000000000000000000000000000000000000000..98096cf85c8b56a99e42102ef23178dcfa5d27f0 GIT binary patch literal 728 zcmeAS@N?(olHy`uVBq!ia0vp^cY!#7gBeJ!GHK8QQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;7Fi*Ar*{o=ic77T7kz^T|f5!|KrO; zLpmb1e<_l3J65puglftpfp|~NrHQVSmN<%*OnMURsP1W(`r^~+Ti0FwU#@(kHnZ=! z+Zy>vDN|N2QjvYN|Dxxmm44Ue%)0YJ?zq9+qp_@aYpi}wc((u0ikI>C!n~um+dj)& zvSrJ++_g#So8O1-QpxpSoceE-?ezUBGmqcUXgGDQZDr}xzH=pc3p2NP?>hDG;JoVT zvo@bvShOW-*KXly>jZaeF|R7?UVrY)_6uvLE$fc&d1qrR`+5`GU7I^6-Yu_54b6;r zyJ+*wN|D`dztv0bZuGwNEvIDqySb*9y>2Y7o_^c?d*19@rSFUE)|wVq>Rml!WL!Kq z#`)Qogk%{Y8oP36riY6b@ehR%GL3mHAv&o}X4O05W!6UOMH{ z3Z@^6@)!<@xL*tX=m zXnOaXAD@3#Zke|w#I_->wv+Ec$Zl8t<)Q3%iLX4MUoyy)hA-~On-zdOe%TXN;aXIe9| z(+rPR>{#$8=4{R5Zw&Gw_OVkd8R{?oS^MYK!aV}J^{Y59EWU0e{9w9h34 + + + + + + + + + + ttg: ttg::meta::nonref_tuple< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::nonref_tuple< T, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::meta::nonref_tuple< T, Enabler >

    + + +

    Definition at line 35 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..13978410b --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::nonref_tuple< std::tuple< Ts... > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::nonref_tuple< std::tuple< Ts... > >, including all inherited members.

    + + +
    type typedefttg::meta::nonref_tuple< std::tuple< Ts... > >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..c86207fa1 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1nonref__tuple_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::nonref_tuple< std::tuple< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::nonref_tuple< std::tuple< Ts... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::nonref_tuple< std::tuple< Ts... > >

    + + +

    Definition at line 38 of file meta.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< typename std::remove_reference< Ts >::type... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts>
    + + + + +
    using ttg::meta::nonref_tuple< std::tuple< Ts... > >::type = std::tuple<typename std::remove_reference<Ts>::type...>
    +
    + +

    Definition at line 39 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__all.html b/dox-master/structttg_1_1meta_1_1probe__all.html new file mode 100644 index 000000000..f7b6324ee --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__all.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg::meta::probe_all< Predicate, Ts > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_all< Predicate, Ts > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_all< Predicate, Ts >:
    +
    +
    + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, typename... Ts>
    +struct ttg::meta::probe_all< Predicate, Ts >

    + +

    This metafunction checks if Predicate is true for all elements of Ts...; evaluates to true for the empty Ts...

    Template Parameters
    + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Tsa type pack
    +
    +
    + +

    Definition at line 180 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__all.png b/dox-master/structttg_1_1meta_1_1probe__all.png new file mode 100644 index 0000000000000000000000000000000000000000..4c2a91211c3585533c8f0c45cf476395ad5ffb0b GIT binary patch literal 1069 zcmeAS@N?(olHy`uVBq!ia0y~yVAKS%12~w0WRYw!FOZT5@CkAK|NlRb`Qpvj(*8pe zfGjXRaNq!I=N)+M3|>ii)d8@FbB$ zgRTEp(sBeSPibbL;#3Yj$nfr^gn&JpF!6N!*;;e<^Q|1=!W_{rcx~>BOTq zlb8JO(l62UG?#SyIcsHZbd2npNhN3hpO~Vu_i%iGsp!{mAJ0qi%IJ~tF!9tG9YbSl z_6OHLGEZQLnXrt3>Cc}fS`FEkL>wC0SA?(@c+O(#m^hC?X^Cb7M<$no6Oap3MNRG> zzu>gA&Y3q^B^;OvyimAlXudWY)-lExeA}ftKX~$dy{EhqFYK>9 zoO@`~c^%~)4B^Xaelgv7xOv&PQ+L$G4X);I{rWX%&SSG+C4Jwm+n4j!gw~eF*4iu= zJDGIgK#{%FtL6Hq^)4+6x$bGk@*$I}p#A%|m4{!w_TAZb{rk$Dzv_P5eO=SDtM&V= zdF|Kh{%mo-rB__}ZEN$F1;6~x?=#wwnEdP1&FvEQ2PE@(1s=HC-G1M_>=_HY#e-J| zbJ^?i4>G#h$$YpvXP5Ej{HG!Zo>wgX#qiG^EtYJ2X3kViOMCu@d0Y1C{vbi!1;D(` N;OXk;vd$@?2>`=S1up;q literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..d8366c49c --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::probe_all< Predicate, std::tuple< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_all< Predicate, std::tuple< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_all< Predicate, std::tuple< Ts... > >:
    +
    +
    + + +ttg::meta::probe_all< Predicate, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, typename... Ts>
    +struct ttg::meta::probe_all< Predicate, std::tuple< Ts... > >

    + + +

    Definition at line 183 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..776719a0659fecd0641791a313450b1dd86aa130 GIT binary patch literal 1661 zcmb_dX;71A5dNYfYPkxnC6iPTgy^PIk&sU<4{`BcnmF#{a<#R`Z zpSM4tZ2Dk5oB%5T*skV&=2SouWQI0X__KrBcJWU!OYbqMR@=fX=L>j9_*9gI(;;F6 z8!EctZeFp!qIjFz?Cedp+~jhnB-8}SVpnBAaX3=l$ZSphqsGl6xL>VI{$x}7^k4PD zo=XUWv2zU(E$bWcI9)q@?KYunpY3`+qxzcm_|yArd9FS-c0MLVKf2%oC{65rhJP)@ zdq{&8lB35YQhu99IiAhCB@pz5>?|^Bj4kz@9Y|$ncXg9r1u|CRkjRjhHBOP2Yj-ATAidgWj?Eywq%lT~KKkzV1o#Xt z5Y)MPaRW`h#X+mVz=|JA;`D}Wjk7#b?=ZBZ1G|s&4CYeyTte2Hn2BX5H)4p1Agq+A zcOddC^jWixXXeOTaxXhH%~KYPGT42(6kOalj^ZtO*^u2YlSDp;V=4C*VPl7y3R5=! zVmGZYEVo(VVwm|E_STLq`%XI#LkAbZCIiKKR&E{ek`bl$6k7I75$ zP~7T`ybo+>Gy5fh?PNCFLl}n(P8NE6WUmIYmYE9K25hvz=MrK-T; zlnf{gMyiW||Dw(0as%4QR4NAwMsMDw8pJJcydx1bC**uCGTer|nSz*#PJulVZ=`{$ zUK(m8)a55$Jziik&9KD$6(qrB-##)&0iuyp;*s`XxsLn<$*6m)bAm6^fx$B!<~=RAKh z=XuZ?QiG&YXINuX1SZo$V)~VEvPs%~TzB&E%)f5=j|ny ziOy>r>|HQ=Vuzyg?Eo6T&mk%1R#DJIz$jqN1U z4fjr0Wz4d*~q_ERyr<59L$pgwnE=GV5Kel{hi`jl2 zwfx{ktE?;Qnj{Brb+@k`oE|ESF<4o*OpuH$q5H3PX)aMj+~%%Dfo0BXjkTA8ayE=l zcuv<{<5J*=s%}(zIwMUL%8P%H>*$($yfF~WlgELBV@v`0szF%5yAH}da50uP9OPV` zjLs=Ajd1i~7L_}47_<_!Gcc|dU)4!_h3@&Winl;nWe`kSn=x42jU*`^9wQRS%gXHA z3{EYRnx`(7WiJz*9(KHeS!&iu5hdr;<(n(u2_3PEs@;9V7P&oeFLrENB}q4?ZO%v< zes;bp4=w@oaOa4@YlAVlENo;VodX3j=}jtH0C&fy=bgnU_S@y>F;Sub@(RW!+wG(G RDgO$<-NpM%&9~v{{{R)8FJ=G$ literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..b0a6fc782 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::probe_all< Predicate, ttg::typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_all< Predicate, ttg::typelist< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_all< Predicate, ttg::typelist< Ts... > >:
    +
    +
    + + +ttg::meta::probe_all< Predicate, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, typename... Ts>
    +struct ttg::meta::probe_all< Predicate, ttg::typelist< Ts... > >

    + + +

    Definition at line 186 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__all_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f639802e8147fa352fe97de23ada88ebc9c161ef GIT binary patch literal 1689 zcmb_ddoSpg+?#aT$zE1k zMH&DASsd1u000QI2q#L4i`H|jW4fYk|7k~}-S+mj2!2@LN2a!51rSpunauxJ>wH?;xIvw13GJMDOP zGoZO-U~r9?xv+-PL;z&+o;Wl)_!*|5Z|Ok+*%O>ucCt!v$6ynb}9 zyma?Sf9J=$1H=3VmCEw7m|26oE!K*`Mr1sp$le?xS9oL(@fJb`r)keC7f5~-t%qw{ z#D0C(jx-_8QLldas^ZX+AHg_zC3#h!{UC2Kv>R4=Y2MP`Kjn;P2rGT0z0zrnD24Kr zEKIorto1I7@=hS`Xy4*4=SJ0^ZwtuI|E>|;_j~pFag*qvODPc!ZrcfFnV=oj6C@Ng zf(sp#iT0Kkm%~K}TJER`vjvES?x%{pbzgE0Sc2jwTqD$sTYd zi%Vv*ffkYUEh)nTrh%mAAiVD;-d0my-qe|_ATO24wzUHVoVg3TKQCg^7bXX!Z!TKr7zDWyQt29wCEKCBJG1|M*DBZevxm{H1L66VDwD2`H3XV#pP( zgQ(?u^jskdg=h*Lr?73h_|Usp83sWQg$il9L^TK`UC6@x0-{jft%1oz+o^bmubbM9 z|EKW)hrWzR18lJ%;9_YxsA`qQ+_C4+0R2Wpn@Cc^1_M3>RjbD$QHzSWjRU_ajjN^+ z9B>YY4~a<}Kpc1eZ^*g}xKS~OmTq$b@ze6iz`a(fN-0CV!8Db(XfDjml;@aZC?Hq- zx5**)FlfLevCihcHR>XW!``fIwlMa6XUe1tJ&r#?$e#5{<$PwYn#eBR+2ry3bW~pr zOpfA)_PwsvfRQdW-T}M8g#!NuIQ4$v=PL^5hlZmq9w%8FojS+hDYhAGutRto^<>7^e8-&q{$?1~E6h z^a96;qdetVF_TO3MXN*D`up zK^E+zfP4RL-Zf*OFEM8n;Q1m)#wbnbT5DKpV1_zDpX58qT$0fCe` + + + + + + + + + + ttg: ttg::meta::probe_any< Predicate, Ts > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_any< Predicate, Ts > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_any< Predicate, Ts >:
    +
    +
    + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, typename... Ts>
    +struct ttg::meta::probe_any< Predicate, Ts >

    + +

    This metafunction checks if Predicate is true for any element of Ts...; evaluates to false for the empty Ts...

    Template Parameters
    + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Tsa type pack
    +
    +
    + +

    Definition at line 158 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__any.png b/dox-master/structttg_1_1meta_1_1probe__any.png new file mode 100644 index 0000000000000000000000000000000000000000..efecc5d1e9b7f68b0ec4789b79a2b9b785cb3b33 GIT binary patch literal 1043 zcmeAS@N?(olHy`uVBq!ia0y~yV3Yu|12~w07@f z+FdjKeW_hkP|A7#(|PmX74{{o&Up6b$dxHZwoWl#_Daj#qxRkVx^4Qoe2Kgg%L_pn zKTX%n%F%oq9_@I;dCQUyypgqc5AAwno%Xi;sLZ*E=V#QUEuL{EBuMm5h105|DLu{m z=K)=G-0n@ZX&TSuwHuhf+D9ZWn`#zzrrI-gH(lln_@wOm+ z`PRv?C*M~l^1L-!_ovX~a?qqD`wvOSX==(`-=6Kc>rBwWNtRQVaR1qzr1DbqUVfU8 zvF?fO9TS)EFNcM-kg_MIs@o(Xxui2^xQsV5960`gHGsjzi|4?Z>)|sQXJ{BQ81w6= zvL!4z!mwnDSVM~t^MrsT1|csV2d7R(51=%sDx1Q>BMd52Bq)*W7fMbGn=#YXpn-|Q z9o66%q0c*>zFC(Y$dI?`odCnc9G}m%x$TTQjz90VtoY&}=I~^;_M@&DX?NehJ$=6P zLU#D??cej~U$L$Vo^kNP^%F;Sc-;1w7A9US)goMMot>9*W>wn%r*79LXYDDr|J{Dq zy8qX&_BTn7w2ze^b5u#IK9Jq@uJfa$@k@@%>;n!qXSJ_>{dpzZRH^p~)7;LFo?Hco zUMFo!-Bt@sKpUlY9j`Szqq=CXqUhz@&!cARF6GXuQ%Rl_VvwNl?AnGYHHw{*#%?_P zvZg9&wL(mD3icn9(OasaR`a&9w=?OOl(GI&{*{KWmt9<)yJgcm_1kS5?r#cjyBwP- z>$1;~-O#^$so4p|bMx;^os`IA^Z1=bTrD5R@zaHQ9WytJJZRV~JzdGt|MBsPol^}@ zwlgfL$xpF=%KE@HPfxYse=}-CRdg5{Yo9s8w4b5VY2ozXWV<|I4rcIl^>bP0l+XkK DTH?&- literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..3e332292a --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::probe_any< Predicate, std::tuple< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_any< Predicate, std::tuple< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_any< Predicate, std::tuple< Ts... > >:
    +
    +
    + + +ttg::meta::probe_any< Predicate, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, typename... Ts>
    +struct ttg::meta::probe_any< Predicate, std::tuple< Ts... > >

    + + +

    Definition at line 161 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ba322377e97444ddc91d1af6f340bb0e998f5161 GIT binary patch literal 1671 zcmb_dYfzGD6#iIC-HO!O$&xIytjx?(vC_y&G&QwEu|$d8ZS#icZm39Vxz#F`m&8kE zUedq|@?j~2N|K|sc?na|kHYJkcv(X%FKimR>}8tS{oOlr-uHRVoH_5zInSJvbjIT( ze3ii}007`F&S(q(z>sQ8)7DVmkA{;?)z8K=Zr+Z|%gbsw{%$TZt?{-R{cQ~m4J(uS zwyLRi1jfS)PzU{WdRo0L0YGzu3;MWsG)$h~d8xv74IufxWMSD}7~EjA389-fKl;)$ zk+cpGN==uYbu~3HWo823V0+NmIm=*oEYcO{g-xMD-q;5WB(`UFB9zUUOPvDmuoYod zaL2(hIxD29LO$IB{&L3_1 z#mD|;2pM^SZJ&%hI29z6U!;EASHPT%)*kFI*vLZo%_tb9%s?>aj=ZYg$;Z8PU`EjY z#KaX*<>&UG`}vR0rLTKC*Ty}Q+IIP+On`dwz@RYeH(nVE73hlzPYipSZCefZ6t~#S zhFrEUPbfVu*ffPh2=Vubs=R6FvVmPz^Ru_~?$Sp(OGW->tX>{y>MfCecNsyMKEH)c z6u|p@CbTA{Rh5tx_k596_f&^$$d6FlZz6S1{BEC-EVrKjw&T{Dguu)7HA(q(yJ>+Q9W0l-xqzP)ewd| zY@fJ39;DbA*dap^Z6r~gzNp>CT|@TsD;s9tFu=%iJNl;am$|g&f*k%B+gw2L9a>2g z9=Z2|v_;;A$uA<3NQ3&z)rJP|=Yu$r^fH?B^;fL{iPB*i88qxfS%;{Tw|z|UC)akD z2Lz;eJg4GkAZgv>!J?}U_gpXH4)doJuGgcWkg2qs$pl`;Aiub?8xEO6sunAh1lSdsKdfrf_@G7(gi}XTOqtSJA2C6W;&hM&OIqq zc^n$}0~Id$ERV+A7bK5&W~cso3{@&y*2<#=c|=vs+DoFui-ZU;OM@tP zc#sgchtSH)H$J-y*sM<$$uOn4cWd%)&eV;9yhzeh2L*(bEHp)u+WUB)7VnOt9&X0| zD;LRnaD72_RCEGlq&l>-Zq)zW6~a*mt;8ck9C_J5C2WY+?5lc4ju&uJXS!n@i26qe zX`}cUrG=8uR6XH^t + + + + + + + + + + ttg: ttg::meta::probe_any< Predicate, ttg::typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_any< Predicate, ttg::typelist< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_any< Predicate, ttg::typelist< Ts... > >:
    +
    +
    + + +ttg::meta::probe_any< Predicate, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, typename... Ts>
    +struct ttg::meta::probe_any< Predicate, ttg::typelist< Ts... > >

    + + +

    Definition at line 164 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__any_3_01_predicate_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2e33a9cce912123f466f25ac561dbdbf38fbe937 GIT binary patch literal 1695 zcmcK5c~Fx_6aerqpnzhkL9Gf^Ft#9~h$2C$2B=(7cw;WI=gjOK@+jOOrHkCm0#kv!P!4PGcN zd(8B$Vc|%*eD_`6XtY=|l4c+dggn3#4`r}R$!WgmjJeugzbS6kCR0rf@bSetuG z%{<3+4Kl(1^ho0iLUM~w<`!G(WF~nak>^;Q7Dyv=RdUir3>}GtGEMTx)_~6yMu^@I zrP{t_hz!Ojjkilt(29eOA7_-4R7A$I3ps*3cgnR(Nl}Ai)`i@dI{nbiFIkHAVGbw} z*KVfCjxYmIRf6XptelYK_q~MSiFg}uFe|QYg1IoPw%J&`faD%V(LC_2=;m2dI;8kE zL5KdfNk`A_*v?hT-ih&|>O4P}qB;rKcN`=dclX)deC8QZ3}qn|2<^vlDD|UuLy)$` zKCQobZ2w`p$VbvQ$XXH1oZ<+lf+c2Umy&i&?GmJreQY{nSWP+W66kb${VJlr5agdIr%{VB4ho-X~!x8B7-;i ze0U{drsQCxe{x1mr z;?>L>x4Lt!=$aqW2QZ4&{0m(vxQ=I=vC5@M&`4vzqTIH@pTHTi#-K!So9gR@Rjrhf z{wbX|QAZ_n*-n#Ke56)L%Qx<6$7=h*tOV}b&`eD#hr7K!_|!2ZwK8`X-;8lfJNLMz z$-Sbr$LrB3|9ad3b&D?%;!sJk-@xP3dp7os<8%j?1AWf&(vku&UdYgw5d{nqEaj&^zsAs zUUiJ{&1QdP1Xq8w`YmxH@)lWYB@8}2?8!VeDjF#cL0r1H@wgTXoYM9`I$Op mLs-mJu#41@Kij7>s~@>`3X`gC{1W<20F0}b3+KDz@xKFfv|z{p literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__first.html b/dox-master/structttg_1_1meta_1_1probe__first.html new file mode 100644 index 000000000..80434c36b --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__first.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg::meta::probe_first< Predicate, Default, Ts > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_first< Predicate, Default, Ts > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename... Ts>
    +struct ttg::meta::probe_first< Predicate, Default, Ts >

    + +

    This metafunction checks if Predicate is true when applied to the first element of Ts..., if not empty, else evaluates to Default

    Template Parameters
    + + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Defaultthe metafunction result for the case of empty Ts...
    Tsa type pack
    +
    +
    + +

    Definition at line 129 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html new file mode 100644 index 000000000..24aec41e2 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::probe_first< Predicate, Default, T1, Ts... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_first< Predicate, Default, T1, Ts... > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_first< Predicate, Default, T1, Ts... >:
    +
    +
    + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename T1, typename... Ts>
    +struct ttg::meta::probe_first< Predicate, Default, T1, Ts... >

    + + +

    Definition at line 135 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.png b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ef997fcf46039e2a6713d5080764aa6a7d71f975 GIT binary patch literal 1109 zcmeAS@N?(olHy`uVBq!ia0y~yU^D@;12~w0`X-=jo&?v5(cKU5QOyQF>vY z6z&7Te!8TRME_Op_SrzVG(UCewesYJHnrYCLbr-1F~>zuf;Dcz^L0%jbu# zspLvtwSP7L+h^^gTf8oae-2RnKGjU4ba8}7^_6WKZS0lSrdb^+@edcyYxK_C`d4;i z)T76ratxoFT`rn(>ig@@VYeSU8tApW_u3sJ-@VjStY!MPO*>*Umv4Fc=}w5)-OIZ! zCszAQUtSZo_V(pxPk&Cd%`Lp~bG6CFK=Ji%{Q}ew&I&wCB}-dvEH(6?VPH&141>`exV9bB)MGFU7-xp()PCrmbhOGHoC2Fln+|N6Gv*8X_3{FP;P zZ(dw~^z7ob$nu%zCd#ahJ(np^y2|vEjHm8W<bvUBY#s@Tw!MAXO~-s+ zX72iZY1y<1CJi&+DZlryp8n2qKW}E9d+DJ&T5{VbeQJAJlKp!}ym{u@>~22q-I4R2 zPk!qaJ!JwT^Wp7r9@&ZaR&|$fu9vztbz9(i|4Zw--Y&ZoqpDlBDX**Uf5pAaZIVB1 zbLZt{_|Nt|8)>(H`QGV1cYp5P_}QWAf0kmd`Yub`@YBVXtkW}VtEM^bI=fu=dRfZ6 zi+5}0aI5F$%=;F8AU5f2iMb zwwA8Z$@%L{8srl<+As<=Xa`9-OqjwZpt6*a#WRz^G49ftGeX9jbN?~={ob-l&CGNz Qunb`EboFyt=akR{0I=x;xc~qF literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..f028fbd5f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::probe_first< Predicate, Default, std::tuple< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_first< Predicate, Default, std::tuple< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_first< Predicate, Default, std::tuple< Ts... > >:
    +
    +
    + + +ttg::meta::probe_first< Predicate, Default, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename... Ts>
    +struct ttg::meta::probe_first< Predicate, Default, std::tuple< Ts... > >

    + + +

    Definition at line 138 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9e41926e4d9b8f4b1db3dc1441439fab12b34738 GIT binary patch literal 1253 zcmeAS@N?(olHy`uVBq!ia0y~yU`zwD12~w0r0g1f1t296;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z*6Gr;uuoF_;&8YqQ_c1t@eHCzy9^t z?B-)*DN1_ocK2P6m1QrplgIqlAE&qFMrYmLrW=$qY09J}7OH8UT;WO6mK4AlcMrvU z>sOik>gu1Bo|>1Bq=fzZ<9SI%U+s8a1oPt zo<>oVeoH)_J)>XTM(p0dA159fmi~GD+4Qj4#WuIiwXxebZ*IH%V5Qrpem=YD3R0WX zB9&Ku3_131QvZdz#k2VNj$fXTy}I+}ruzQw_NL6A-=>BV13 zcRv>i|Er#HJS*iqM|yL%!{@c<{yrc_EIfk+`Kc1 zC+TwZGr!6=516tZe`dXA_gvlA%p$khE9o( zoc*QmR^B%&lVh(;c=vB}^MCyIcCDP_tb4a+pAdA}EceMU;P`hNSu@XFOQUDZU84GO z=Dl9;Np=fw|31$0hwWK({@1Aw<5J7}7pTNu)?fH1%=G@jPuo{VPO59Xmm>v=oNTW% zlSI}X(eZo;XZ$+0C-?TWTibHEMGov=rr#jqutdn%VavXKlZ+iUfLWUA=?xL8X$|rL zPHY_ENwme+_jl}^5)`y_ijXFk1DAqdr=&s*GUomK{krx8@wkrsO)*<0-+Zjcw&7D! z(VJ;cyN%6v&im1sZa%Zt*gUGi_%F+|%RFcO`{fTTG2Wbb=kEL98S4uf&OAR*vuE+f z58sZv^YyQM96x`(7?3{4?9^dUdo$hI!VeuHD@}{yr^CE zb^Om3yC?jSIl`cqwdz^(;g2RyZe=BHdvpKsqla_9PjEMPULd>qZqmKWY#WodO?#~r zeaCy3pIEJSaNP6d^)30@MYnFvS)_XL=M=P5_9>?^*)BKr{GrR|9yaZ3+i5n%>j_g@ zvA4vLW!ul3eRty^>y=~AtycuU_TIgodyD;b{55=M=)>ZD5oec0&F!-}lKT6>>w7k?`PHAfUWDbx-CP%U zu4=O+@4K`8n=ihz*&V!hPyg>9GhWJWz5Ay0M9y|I-uEI=u(bE>1~lzS?&NvtGd=O| z-9I9um-$~C;eGKs;{)z4*} HQ$iB}KvG)b literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..b3285198f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::probe_first< Predicate, Default, ttg::typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_first< Predicate, Default, ttg::typelist< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_first< Predicate, Default, ttg::typelist< Ts... > >:
    +
    +
    + + +ttg::meta::probe_first< Predicate, Default, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename... Ts>
    +struct ttg::meta::probe_first< Predicate, Default, ttg::typelist< Ts... > >

    + + +

    Definition at line 141 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f612a0051a46b99654f80b475224b0a6a83e5903 GIT binary patch literal 1267 zcmcJPeK6Yx7{`C{(&k)E*Y$9~K@$t@b#;PbJte|M5^`A85UScA zW~rB0%Wyd_8%s`uq~6uY`XWpssrPD#ROnC0uUXc+?YjT=&z`&Q^Zh(`&wtPN9(EY< zoTbGv3jhEt3FiaJ0DzzwISgrP?DO4buZ(6J78(&`Fc^&Za(ySGtpARY-bpMLo3rKi z#u1rLCWZsXrN3(Gal~l=Fv}wZ`bRJk8?_rLD2GEqR*Z%|1B&L&K_u66#tH>)-LI%* zj~M%8Z536Kb|3VdpBupZW733A7=v4oj? z2By>I>ZyqW-i^#0ZZoJJ^pXCq_tKqRn>~J9=4KDkY1$p=sWHq_K@pV*~2#3$T@vHHK1v^y(?CWzwaWCK4s2`I+w90prunlgP zQ_{jf%G9zJzpCl%`D9Lu8i-V2!)w9q%OWJC)n$Jt5lzwvd(K&n-1FpMaMCR^gj@p( zoQ7QghP7(Qc)aT}zIy;*c+dxs0f%4(5WBY*`~vvm9Szrt5qT9o2*=7U#DdZPS8Xe| z(2W%lu8sLcCU;DbVOs}^!r#|248JbYv#UAPhuVL^2=Q{@5{7$%KCl&w5j=@kUQF(7 zDVcw3n(F^y&xpT-Wqw4Qm>?}BNmzBz>V|BV9}Rcgn&QIO)_5v6lipvM=H;_D(Brub9!apsn<$ja?kG z#>4sI2z+*mDQKM7v)IIeba}sO1db2Tr{|E42mm5_;6x7z~!9 z3a;{(G2`VvnsOa=i}7^a*Pi;hpIV7#%0%bLReKOJQ=Tv@I;il6_bKi>H@Z3?7Xx#& zj3doZeWSpuRXL}5A;NG&gaB*ha$z+YUQWG#h4K1_NzdU~>wAYo@n0VOUPSx0@}x0? z0Di5@L3}V>r%!vdq`=!%E@m$jOpdU|g*!=;hnwCPP0?5Zo@}f@!U#!L=#NwP;xmjN3Lpd#1KR>(^8N(1#g;Ar literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.html b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.html new file mode 100644 index 000000000..b35e40474 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::probe_first< Predicate, Default > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_first< Predicate, Default > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_first< Predicate, Default >:
    +
    +
    + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default>
    +struct ttg::meta::probe_first< Predicate, Default >

    + + +

    Definition at line 132 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.png b/dox-master/structttg_1_1meta_1_1probe__first_3_01_predicate_00_01_default_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..f50027907b696195aae59aba743cc087b76a0e9c GIT binary patch literal 848 zcmeAS@N?(olHy`uVBq!ia0vp^zkxV_gBeJ^DF3_@NJ#|vgt-3y{~sjs=4)yHp$R}1 z7#}!rfVK0EJdn##666=m08|75S5Ji)F)%RQ_jGX#sbG9NH+Iq^10J?${l&lUS8VP~ z_TI!S!FD5RXIFlLOk`NJeWk05%1VLIt5c%htXlPR%Z<>`&o3pvZCacsQ&n*yH(f;R zTjm?_kgIju{?GTjXMaxaTGev-l>gQ5tF_D|zbVVAx*wn3dt?3l|Dpc5mMJ?eZqAp! z{HmV4zd9sT{<6&O72D1~2>+4AkQN(qSpA2=)YzMQ`S%C)roT^^b(h_+NqQsy+BeF- zP4eE(<-583<@^;t;}h4<`&RkPtD@riS*^T+zjm(nwy$HB?mHlt{jcuc?EdvnVnc2( z-{}9fy2Ln(_4<3;0{e8k3-6Z(y`E!lA6$IzT8-qri~@ zFE-!w-m}_DbJeQ+Yo~Uv%Cgff3%yzc@$$y*jwd1qzJFn!5YlqC@pz@nru9&g L>gTe~DWM4fHocyU literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__last.html b/dox-master/structttg_1_1meta_1_1probe__last.html new file mode 100644 index 000000000..19b9ef586 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__last.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: ttg::meta::probe_last< Predicate, Default, Ts > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_last< Predicate, Default, Ts > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename... Ts>
    +struct ttg::meta::probe_last< Predicate, Default, Ts >

    + +

    This metafunction applies Predicate is true when applied to the last element of Ts..., if not empty, else evaluates to Default

    Template Parameters
    + + + + +
    Predicateboolean metafunction, i.e. Predicate<T>::value is a compile-time boolean
    Defaultthe metafunction result for the case of empty Ts...
    Tsa type pack
    +
    +
    + +

    Definition at line 96 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html new file mode 100644 index 000000000..a01e7d5ed --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::probe_last< Predicate, Default, T1, Ts... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_last< Predicate, Default, T1, Ts... > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_last< Predicate, Default, T1, Ts... >:
    +
    +
    + + +ttg::meta::probe_last< Predicate, Default, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename T1, typename... Ts>
    +struct ttg::meta::probe_last< Predicate, Default, T1, Ts... >

    + + +

    Definition at line 105 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.png b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t1_00_01_ts_8_8_8_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b8cdb777b777dbead42b093a8e2c3c7ac144df70 GIT binary patch literal 1146 zcmeAS@N?(olHy`uVBq!ia0y~yU^D`<12~w0@LNP~I!>>R0x8 z<38hAm#5pSB<0Ob)z5spvU|_FYd1Fkeal`RZP~k7&^&e9;~%clht{0=Hi!M}>?hAQ z>VFE0oS!;bWAZiEO9uqDNnS{~c_J&ba{GZ(bH16J|MYq5o6?x9z1#P_TKTIcD>jPv)=tCq ze?R1%NtFA4Y>$)4))lf>%6!Y_Z#KVLWANK{`V!W8M(LcBO5C4Jnzm%V>YuOqt-Hgv zJ*>8Gd;V{I_ZpSjx&O1@=$%&b{&QDn@{<3@{~nyO#3kteCh0uCh#y(XD;KL$)^~amKZb$tmIK} z(PHM9c!~k2m#WLhA2IkdydxaPdZ`pEPz+d-(wO;D< z$Lys~K5z8BU$^y}@x5CC@n1jMNU!@|yr%T*U7K{7v?bzBu^DeGj|E0AI5pr}`c0Kn zH7gmIoo^(!)ViHH`r>ZV_oEW7&-_z0dB6tKUyqEA&>4#Pss + + + + + + + + + + ttg: ttg::meta::probe_last< Predicate, Default, T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_last< Predicate, Default, T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_last< Predicate, Default, T >:
    +
    +
    + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename T>
    +struct ttg::meta::probe_last< Predicate, Default, T >

    + + +

    Definition at line 102 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t_01_4.png b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01_t_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1a24ffe220c393dc9f84e81d6abb597a667f0284 GIT binary patch literal 963 zcmeAS@N?(olHy`uVBq!ia0y~yVB`d{12~w0q^(22T_7b9;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z#Qc1;uuoF_;&8yqAv;@4*lj&|K9)M zEnLsAv2gp$%>A0O8JpMy`#QEy3G#aN(Opo`bE?Wj6_+C(lRSi!l2X(H>%Tvoa7Aq2 z$rHSDWTRb_R5)SP}l? z`e7fV$8W>Go3#D?Rx0#7>#qN5&bJXig#=Z*Rib-rqpTH_9)(WUP;zcE|89`I&0VnY zQB91!4CmvDtq*Q6PVKE)eShDaHRTuIcdHuSX6H~7S~&IJlKro4+}`HSS8{V_ZtRs7 z=9Fpt9u@xoN^G1KRaUnJn`^v;1*&ty0GEYw!K$uQ0v)zE4g6 zuI#UpD|Pq3r-$CWR$owlr2PD=WntSlNA0sMd&eg@asTT4$rjb;g*J4Ys9zQ-?CIpv zqtdCOsN^=uWs-oPGJ9u`m!~f4gX3SB6-+%f1mruFJQ<+ zl5O*aBmBGWhd*Z9Amu7@!}qd!`nAB_nheVO8;@wYGA!3No~zk#QFE*7l{&TzSX_04y};b*^z zWg33D^sh!*?QzZfJF>jRCFK_OAMajtG7*1nq5Jqy!0DUM_7#`kxnsx>x1E8h#SUTlO&_Bkc W#91cU{tG~vkHOQ`&t;ucLK6TnrL0*1 literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..2fbf3fa6d --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,152 @@ + + + + + + + + + + + ttg: ttg::meta::probe_last< Predicate, Default, std::tuple< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_last< Predicate, Default, std::tuple< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_last< Predicate, Default, std::tuple< Ts... > >:
    +
    +
    + + +ttg::meta::probe_last< Predicate, Default, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename... Ts>
    +struct ttg::meta::probe_last< Predicate, Default, std::tuple< Ts... > >

    + + +

    Definition at line 108 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..69b041180da7cf05b74e6e7274f6e80dffaaf6d0 GIT binary patch literal 1230 zcmeAS@N?(olHy`uVBq!ia0y~yU`zqB12~w0q-5lOSs*15;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z!K}};uuoF_;&8=qEA*luG7oYe*NpO z(KsT0lS@Tp?)tfb?XgX|H!pSR{7=2TO?PYVZ83E-PcP4)DMFi6ShW?sgEqh!dX9SE z`&DFLUHvohq>aU2z5Df(Oip&6*cg3h`q4K|<<;fRp1aoUXZqPOPsP{DNLtZr(#1)) zj&sDf#Kgb%)ouCxSh@Xp$lvSFzw_L7k(Tm)Y8QBX`Ob-#Hk^}d|MwP) z`rRo1$?@7;>u2Lmd)}Sfx@PG9{{F&d%IQbx#cw98eYj^aZ(?hXZus)ATX&^DRr>W^ zp?~V01*Yw5J!YAxX31E^&Gycoxc^Ju|;~&-O`kPjH@imL>Ve$A6}E z%GTnKTR#50^=iWI?Co}Ke^{Q0o{?XhvfQP6iD$5>Wu0?(q2g@!>KdE4%bV2C9p13` z{HOmbQi50dsmm?6!S`eFygiS0UYQ)e>9yAWh3fWvg}YzsJS@AmfBr7d_enGQg`skCBzHom@+dW~)6qUJwPSchosHS*w zg~1rtct35+jm`o_oex93PdtNWgN15JLqu(@YHC9Oh;>&&J+;9D$SP1xY5?k`E&l6x zV(FAgT1%%`1Tq9M1bUrdIEak1CgjJjFPL8;yAG6q>hA1k2#a&+yZdOL&a-9LF55-i z^nd!1y})rl<0nDe22c02!#hrY4xVs6km1a7r*-)+mL=Yox@Q;q|LafN!)6!Tj%}}< zzvA)bJ06)4>HUW*suZ^@nGH=syLhy>rtGihe`c1opk7PAVe%}kpBszorHXPz4Wqxk zzgSuExO+bDX6J2fpZm;OL^o}XnVVzby~&TSRy#QA`15;HrmZ}dnO)p8&E>hUS*BNs z-OS{xYkj|p&ig!JZ+P{K2Q&PmZx(;plD=ccdB=OvC;gtVq!e58)Gb?n#&_MVofWr! z)O;>UySp{odP1~$1@F&&J=gEf+rrKM`K8yl$5lZmPajRz&d@B`{G;i4!}UFHIzN9f ziM)S$E$94CC%w$3zAAa7sCS#O9+=2%rdNIPDvN!(LVfnd2lM_|h`(L7*?Q~de>+-V z`#@6LnXc*93f{-@IMimauJe`IifN&r;g&=gQumajnd7n#6%d zsTB3hhIFf3jt_;g_x`Rq{QUAPh4~e_&lm5!e&ZuA + + + + + + + + + + ttg: ttg::meta::probe_last< Predicate, Default, ttg::typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_last< Predicate, Default, ttg::typelist< Ts... > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_last< Predicate, Default, ttg::typelist< Ts... > >:
    +
    +
    + + +ttg::meta::probe_last< Predicate, Default, Ts... > + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default, typename... Ts>
    +struct ttg::meta::probe_last< Predicate, Default, ttg::typelist< Ts... > >

    + + +

    Definition at line 111 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_00_01ttg_1_1typelist_3_01_ts_8_8_8_01_4_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0202ef11e30e91bf44dc882be69723f1a5c837e5 GIT binary patch literal 1252 zcmeAS@N?(olHy`uVBq!ia0y~yV9W)w12~w0t#w=OZJ8r#o{FBob~J5MsnpEyo-`fKICt6a zd%ueA*POc4OZ;W~FMqf9d}Y#|kz~Guzx!tEyKk3yRbNi}C-PR*&GXe3qwGwtNf#&F ziVlolIG6v=GNIFdUn|c%9`bMfx%VrlbsAj}J725RUtX-cE^V$Y-(ySeg$uN&Rm)VH zSijnN`u2kOwQt$q|61$0>xxHyMJ`%x-$!milIWOTg{cwW1QK^W|05dUFnP zZ@GO-PGWZT43*MXMrM3dH~X&Iaxr~Q-{pC8KQ`Vgo%(%t=KI(*_u__amF-gYm-Bw< z&3e0R&Z&z3$3kyi-5Rw%^S{Gao%i3be_N6%?~Iq`?z_cp%6wh7`azqC z^|^(+u5DX+*K>Q`iyL}BgYL^&&V6-T`BCB2_^aFHzwfr`7AwtUzJGs}=iBW!Rrt3$ zJ{SEISjH)N>*nUld9S-HT`rerr=L`u@%Bx#UD>2!BOVhdc z{uV!sTUz^S%6!RttKXeEJ7r1wFV_w0uYZ%Y`oDdf>dWabrur!XBgJaf0$tBIu3M9y zEQK?q-{#)lb^#b~&sjgPe`OV5DhRm1R&eQh_ye{Nfgl!d*#ou$AnQZ$2DT4DK$@2L zQvA}nL0$`|1QiKzDzJPgWX)yJN5-PJw%ecIA#X8#rKkOkzjZd(7{WGpsFgMU-Vm|< zLdxCHw6!a@?tE{>E1j_PzC(4Z;DXDi)=0|x#x2^rZRZ6Mqqj97=BCSMGT&bQslK$% zf2+@wh2L(x7p~khJG;>I^_xP8^N}2?FOzm2-{`)1vuR-e%)0-1IoV9AErzc)eUy9= zn`^&l#r;`JUf-LW`uDb#xx4+3n+Dps**D&2I7?(kpT2mqE!j9$Wx|5L5j!m3y_C)A zK6@oyy!mB_^Rc@%>-CZ!2PnUDI>Gxva{1#e>FIwi8*L6&4YW_b@|y1l^ZVp2-*<0c zZ0T@&k3#SKO!M0Rr^|xwrY)bmYMS8gpKGr;+c`N_4@;$qk+nlGcEH}Tj?y}wa(xWnqUe4IM`H8@p zvTu&@sZp}NOv@(g=!MqbV$c@7HTex=-K9k5hV8Gvyjy(u$rbzA!S25g{FFKWJ+Ab1 zILm`wajmu~QBo!c+OI%UA!A(N^vuu4m}=Z6`!NYHRqSpuYnYCV^R@(gX-*09nt$Ei Y-QUMjmv!PAV3EY&>FVdQ&MBb@0GSAOq5uE@ literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.html b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.html new file mode 100644 index 000000000..4c083cb21 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::probe_last< Predicate, Default > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::probe_last< Predicate, Default > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::probe_last< Predicate, Default >:
    +
    +
    + +
    +

    Documentation

    +

    template<template< typename > typename Predicate, bool Default>
    +struct ttg::meta::probe_last< Predicate, Default >

    + + +

    Definition at line 99 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.png b/dox-master/structttg_1_1meta_1_1probe__last_3_01_predicate_00_01_default_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..be3a548aabe26dfb0279dddbc47c6d64cb102c18 GIT binary patch literal 840 zcmeAS@N?(olHy`uVBq!ia0vp^KY=)agBeJ^X;N+hQW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;>@@BwyUfDUHZb`Pb z=Cb@|4c&VE>;L&_@A4;xAJD*>b*Q~{yIPGGp;$`d%3o`^MUZ@*wC;0 zFaAEUz2&co;;L2o*G|Fx8TDk-2g#H6$P;s4qTOclLKQa4I(Tc;;)+3!%t&#CZY-pt7NzH*bN``>wcVAa*K z-PZTyW$SN!{&eft0==8f_vK_>Kb*;X_lIWTj=75kv@*Bq6i&(D`nF<))4B3*W$8>S z(#3UeufLnqxAXS%?oAV`5C3qJck+Ly``dS+a8=Rl&wbaYPG)d?_%_cunNLxs_m{yl z%}*CA-M*ugrmRrh}Z122Me$~77-f^3&z?gXdG;jWU(+Kxj$JZ^b z+MTVo*8cpNZ;vC~H{1S@JpWDE<-20`)%$F_Dr0@p{q4TqoM*!Fqjc}DZw_+aoDbH` zlgzs*F~{t{>8hK#XMXxDxqsI3fVNbKwF46@ + + + + + + + + + + ttg: ttg::meta::take_first_n< Typelist, N > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n< Typelist, N > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename Typelist, std::size_t N>
    +struct ttg::meta::take_first_n< Typelist, N >

    + +

    take first N elements of a type list

    + +

    Definition at line 373 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html b/dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html new file mode 100644 index 000000000..57e6dc68f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n< std::tuple< Ts... >, N > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::take_first_n< std::tuple< Ts... >, N >, including all inherited members.

    + + +
    type typedefttg::meta::take_first_n< std::tuple< Ts... >, N >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html b/dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html new file mode 100644 index 000000000..4a595dd79 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01_n_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::take_first_n< std::tuple< Ts... >, N > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::take_first_n< std::tuple< Ts... >, N > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts, std::size_t N>
    +struct ttg::meta::take_first_n< std::tuple< Ts... >, N >

    + + +

    Definition at line 397 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typename take_first_n_helper< std::tuple<>, std::tuple< Ts... >, N >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts, std::size_t N>
    + + + + +
    using ttg::meta::take_first_n< std::tuple< Ts... >, N >::type = typename take_first_n_helper<std::tuple<>, std::tuple<Ts...>, N>::type
    +
    + +

    Definition at line 398 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html b/dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html new file mode 100644 index 000000000..d24dfe67f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n< typelist< Ts... >, N > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::take_first_n< typelist< Ts... >, N >, including all inherited members.

    + + +
    type typedefttg::meta::take_first_n< typelist< Ts... >, N >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html b/dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html new file mode 100644 index 000000000..6a58fed8e --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n_3_01typelist_3_01_ts_8_8_8_01_4_00_01_n_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::take_first_n< typelist< Ts... >, N > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::take_first_n< typelist< Ts... >, N > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts, std::size_t N>
    +struct ttg::meta::take_first_n< typelist< Ts... >, N >

    + + +

    Definition at line 402 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typename take_first_n_helper< typelist<>, typelist< Ts... >, N >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts, std::size_t N>
    + + + + +
    using ttg::meta::take_first_n< typelist< Ts... >, N >::type = typename take_first_n_helper<typelist<>, typelist<Ts...>, N>::type
    +
    + +

    Definition at line 403 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper.html new file mode 100644 index 000000000..acda9d88e --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::meta::take_first_n_helper< ResultTuple, InputTuple, N, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n_helper< ResultTuple, InputTuple, N, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename ResultTuple, typename InputTuple, std::size_t N, typename Enabler = void>
    +struct ttg::meta::take_first_n_helper< ResultTuple, InputTuple, N, Enabler >

    + + +

    Definition at line 376 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html new file mode 100644 index 000000000..9f64a41d7 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl087bc2aa09466f7a41eb421fa6dc2189.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts, typename U, typename... Us, std::size_t N>
    +struct ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >

    + + +

    Definition at line 388 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typename take_first_n_helper< std::tuple< Ts..., U >, std::tuple< Us... >, N - 1 >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts, typename U , typename... Us, std::size_t N>
    + + + + +
    using ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > >::type = typename take_first_n_helper<std::tuple<Ts..., U>, std::tuple<Us...>, N - 1>::type
    +
    + +

    Definition at line 389 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl57f596bcb60dd4ff3651f207d2d36354.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl57f596bcb60dd4ff3651f207d2d36354.html new file mode 100644 index 000000000..c8541e7ae --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tupl57f596bcb60dd4ff3651f207d2d36354.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< U, Us... >, N, std::enable_if_t< N !=0 > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html new file mode 100644 index 000000000..da59355b6 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplf939f30af9801e3babea00f194da9b08.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)> Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)> Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts, typename... Us>
    +struct ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>

    + + +

    Definition at line 379 of file meta.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< Ts... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts, typename... Us>
    + + + + +
    using ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)>::type = std::tuple<Ts...>
    +
    + +

    Definition at line 380 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplfd14cb50a1d89382e947b83efb2a8c80.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplfd14cb50a1d89382e947b83efb2a8c80.html new file mode 100644 index 000000000..28bc20a4d --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuplfd14cb50a1d89382e947b83efb2a8c80.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n_helper< std::tuple< Ts... >, std::tuple< Us... >, std::size_t(0)> Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u41dc57dc65984b72b52c1483694d56f9.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u41dc57dc65984b72b52c1483694d56f9.html new file mode 100644 index 000000000..236c9a67c --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u41dc57dc65984b72b52c1483694d56f9.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html new file mode 100644 index 000000000..d8d45559e --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u54fb7a43cd9eba128cee33299969c5bb.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)> Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)> Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts, typename... Us>
    +struct ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>

    + + +

    Definition at line 383 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typelist< Ts... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts, typename... Us>
    + + + + +
    using ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)>::type = typelist<Ts...>
    +
    + +

    Definition at line 384 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u5e0d670a402dd96d35d59fa67f97571e.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u5e0d670a402dd96d35d59fa67f97571e.html new file mode 100644 index 000000000..7cec30745 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u5e0d670a402dd96d35d59fa67f97571e.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< Us... >, std::size_t(0)> Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html new file mode 100644 index 000000000..89ed77ee4 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1take__first__n__helper_3_01typelist_3_01_ts_8_8_8_01_4_00_01typelist_3_01_u8bdbd1c6f92a8347a098fe714bb57d38.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts, typename U, typename... Us, std::size_t N>
    +struct ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >

    + + +

    Definition at line 392 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typename take_first_n_helper< typelist< Ts..., U >, typelist< Us... >, N - 1 >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts, typename U , typename... Us, std::size_t N>
    + + + + +
    using ttg::meta::take_first_n_helper< typelist< Ts... >, typelist< U, Us... >, N, std::enable_if_t< N !=0 > >::type = typename take_first_n_helper<typelist<Ts..., U>, typelist<Us...>, N - 1>::type
    +
    + +

    Definition at line 393 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1tuple__concat.html b/dox-master/structttg_1_1meta_1_1tuple__concat.html new file mode 100644 index 000000000..e1a467bf9 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1tuple__concat.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::meta::tuple_concat< TupleTs > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::tuple_concat< TupleTs > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... TupleTs>
    +struct ttg::meta::tuple_concat< TupleTs >

    + + +

    Definition at line 46 of file meta.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us0a9bdd37818c6c83e28bcbaf9b2dfc3f.html b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us0a9bdd37818c6c83e28bcbaf9b2dfc3f.html new file mode 100644 index 000000000..83db973d2 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us0a9bdd37818c6c83e28bcbaf9b2dfc3f.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html new file mode 100644 index 000000000..717297ed9 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_00_01std_1_1tuple_3_01_us_8_8_8_01_4_00_01_r_8_8_8_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts, typename... Us, typename... R>
    +struct ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >

    + + +

    Definition at line 54 of file meta.h.

    +
    + + + +

    +Public Types

    using type = typename tuple_concat< decltype(std::tuple_cat(std::declval< std::tuple< Ts... > >(), std::declval< std::tuple< Us... > >())), R... >::type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts, typename... Us, typename... R>
    + + + + +
    using ttg::meta::tuple_concat< std::tuple< Ts... >, std::tuple< Us... >, R... >::type = typename tuple_concat< decltype(std::tuple_cat(std::declval<std::tuple<Ts...> >(), std::declval<std::tuple<Us...> >())), R...>::type
    +
    + +

    Definition at line 55 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..88fb724d4 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::tuple_concat< std::tuple< Ts... > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::tuple_concat< std::tuple< Ts... > >, including all inherited members.

    + + +
    type typedefttg::meta::tuple_concat< std::tuple< Ts... > >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..da6f0f5bf --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1tuple__concat_3_01std_1_1tuple_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::tuple_concat< std::tuple< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::tuple_concat< std::tuple< Ts... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::tuple_concat< std::tuple< Ts... > >

    + + +

    Definition at line 49 of file meta.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< Ts... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... Ts>
    + + + + +
    using ttg::meta::tuple_concat< std::tuple< Ts... > >::type = std::tuple<Ts...>
    +
    + +

    Definition at line 50 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1type__identity-members.html b/dox-master/structttg_1_1meta_1_1type__identity-members.html new file mode 100644 index 000000000..3648965bf --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1type__identity-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::type_identity< T > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::type_identity< T >, including all inherited members.

    + + +
    type typedefttg::meta::type_identity< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1type__identity.html b/dox-master/structttg_1_1meta_1_1type__identity.html new file mode 100644 index 000000000..e4f03f04f --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1type__identity.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::type_identity< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::type_identity< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::type_identity< T >

    + + +

    Definition at line 11 of file typelist.h.

    +
    + + + +

    +Public Types

    using type = T
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::meta::type_identity< T >::type = T
    +
    + +

    Definition at line 12 of file typelist.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist-members.html b/dox-master/structttg_1_1meta_1_1typelist-members.html new file mode 100644 index 000000000..37895a376 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::typelist< Ts > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::typelist< Ts >, including all inherited members.

    + + + +
    get() constttg::meta::typelist< Ts >inline
    size() constttg::meta::typelist< Ts >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist.html b/dox-master/structttg_1_1meta_1_1typelist.html new file mode 100644 index 000000000..a31e22a69 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist.html @@ -0,0 +1,219 @@ + + + + + + + + + + + ttg: ttg::meta::typelist< Ts > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::typelist< Ts > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::typelist< Ts >

    + +

    A container for types.

    +

    We use this to work around ADL issues when templating ttg::TT with std::tuple. This is a simple wrapper type holding type information. A tuple containing the types can be extracted using the tuple_type member type.

    + +

    Definition at line 24 of file typelist.h.

    +
    + + + + + + +

    +Public Member Functions

    constexpr auto size () const
     
    template<std::size_t I>
    constexpr auto get () const
     
    +

    Member Function Documentation

    + +

    ◆ get()

    + +
    +
    +
    +template<typename... Ts>
    +
    +template<std::size_t I>
    + + + + + +
    + + + + + + + +
    constexpr auto ttg::meta::typelist< Ts >::get () const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 29 of file typelist.h.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + + + + +
    constexpr auto ttg::meta::typelist< Ts >::size () const
    +
    +inlineconstexpr
    +
    +
    Returns
    the size of typelist
    + +

    Definition at line 26 of file typelist.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__is__empty.html b/dox-master/structttg_1_1meta_1_1typelist__is__empty.html new file mode 100644 index 000000000..cbb382d3d --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__is__empty.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::typelist_is_empty< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::typelist_is_empty< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::typelist_is_empty< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::typelist_is_empty< T >

    + + +

    Definition at line 69 of file typelist.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__is__empty.png b/dox-master/structttg_1_1meta_1_1typelist__is__empty.png new file mode 100644 index 0000000000000000000000000000000000000000..e7bc12f030d5a6588b263ea3f372742df041add2 GIT binary patch literal 986 zcmeAS@N?(olHy`uVBq!ia0y~yU=#te12~w0dtRv;x2;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|z?|vn;uuoF_;&8izSkB!tls*y|Ni%@ zU)QemdA#lI85M~Q3tv@Sd?w_&*XWqUSqWv4HWky4>z8^=x)`K#GDCAx$`%n%BcD@6 zn{Bmw|9U-MILX%H^^>oAB>qm<{@$H+`lpiT@|wj{R%@*@`;omi_LO|}}d~aq8OtfnEPA7led!7ygY+TjYy^t>`&;8VdZ=1Y#P6_r)-gQoM^%Qo?rDtldR#xdR*J0c} z*DiZ!$*&_9?)x=Q@UQKBb}W6lf6ScCm(|Z-ULG!QD&Cjk`D=aT5|2y9=gQhuVxP~O zqIv%2CGShFHo+c2$Jni;E!f_F=BzUca+)=5iFyd9^Q3nlZ@yLbjQ8-KsInL-jQ1?* zF?2INc7yxC^bgDz7#403X*hGEw4p=TOX!WI#R#Y-6^ zbXgB%Xfn8YGa5v3kty}jHRzbcV#(x|Lkt-~bAZUuuKWVP}B-zr5hOC^|hoVdMICp!CPTIuAF{NHNbJqGJTc5-e0!&_GVocX@Irl#1V zD0fXU;r6#dbKF8L^gjPzuYY;- zo?89ZJ6T-G@y GGywqdV$UD| literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1typelist__is__not__empty.html b/dox-master/structttg_1_1meta_1_1typelist__is__not__empty.html new file mode 100644 index 000000000..d004b20a8 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__is__not__empty.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg::meta::typelist_is_not_empty< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::typelist_is_not_empty< T > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg::meta::typelist_is_not_empty< T >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::typelist_is_not_empty< T >

    + + +

    Definition at line 75 of file typelist.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__is__not__empty.png b/dox-master/structttg_1_1meta_1_1typelist__is__not__empty.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4177c6b06aa809221d4e1e752228ae879989c4 GIT binary patch literal 1058 zcmeAS@N?(olHy`uVBq!ia0y~yVAKJ!12~w0z$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-opCzWe{! zY|i>k0?kg7&gQIL^@62GclNf_{Yh!pX3U)1>=~r&nZ8BGQ|r?2+oz|Qy<0@vBY)S;N$#yZqpfWc*>$P#=Y{O)#j{N>SbX>(*?-C?bN8g( zAI!h({4-NzoxtJR!e9566!31{J9$2P$#jwSDW^UyYX5L@?{w1|rz~aZ=%~~Cxn8I0 zYyUecvGIDd-0@E-Y(kNTi{#%K$0kedbGat;U^^WpmCf}L_!ytQ0wmruBT{P7jv-hMx4`^-uyz1(lh zA6opgc=PAQ>iKPxzFeP~>UpW!;*^nR)tu~2?|x@QXifT}P^dm>$;2BM1CO^qElipx z^+P>;nzfwDOW73ZNh-0AH)m>i{uclRI7$qdN2aCq&b+C~uz!Mn1KWc+(^vx@zh0fo zI3**J!8C8(Eis2ypwO~VMv=@&2G=MthlxP$l2od4e=gm0=8Tl_=3)b&3wqGZ*WQ$; zdrs=;clWQgE7qPnf6zP|vZBg*d)L+HO5(Oh$_itj2isnke6Y^{#H@C+m$%+6Q_N#)v;JQ5qs-&*N6T#= zgKD2|+#L8zLg0bpyh)~S%x|){et&sC%KDVl^dtV8F8#c@_PpWq^)IS+uCa7|UUGIe z&(~}DTtaOoHWQvUr<^YRv+YC4)5G!mH?{eHp8q$WkoH~_P{6RymIa>wy w&2KCpwB~s`H~jBF3&Ytu#+#3wc{9b{E@rJ)+#{)cV1{P!boFyt=akR{0NOh85dZ)H literal 0 HcmV?d00001 diff --git a/dox-master/structttg_1_1meta_1_1typelist__size.html b/dox-master/structttg_1_1meta_1_1typelist__size.html new file mode 100644 index 000000000..6d768b921 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__size.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::meta::typelist_size< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::typelist_size< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::typelist_size< T >

    + + +

    Definition at line 55 of file typelist.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..de9946801 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::typelist_size< typelist< Ts... > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::typelist_size< typelist< Ts... > >, including all inherited members.

    + + +
    valuettg::meta::typelist_size< typelist< Ts... > >static
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..cc9b1c8b2 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__size_3_01typelist_3_01_ts_8_8_8_01_4_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: ttg::meta::typelist_size< typelist< Ts... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::typelist_size< typelist< Ts... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... Ts>
    +struct ttg::meta::typelist_size< typelist< Ts... > >

    + + +

    Definition at line 58 of file typelist.h.

    +
    + + + +

    +Static Public Attributes

    constexpr static std::size_t value = sizeof...(Ts)
     
    +

    Member Data Documentation

    + +

    ◆ value

    + +
    +
    +
    +template<typename... Ts>
    + + + + + +
    + + + + +
    constexpr static std::size_t ttg::meta::typelist_size< typelist< Ts... > >::value = sizeof...(Ts)
    +
    +staticconstexpr
    +
    + +

    Definition at line 59 of file typelist.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__to__tuple.html b/dox-master/structttg_1_1meta_1_1typelist__to__tuple.html new file mode 100644 index 000000000..ae48bf96c --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__to__tuple.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::meta::typelist_to_tuple< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::typelist_to_tuple< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::typelist_to_tuple< T >

    + + +

    Definition at line 44 of file typelist.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..c72448404 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::typelist_to_tuple< typelist< T... > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::typelist_to_tuple< typelist< T... > >, including all inherited members.

    + + +
    type typedefttg::meta::typelist_to_tuple< typelist< T... > >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..a1fe6cbbd --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1typelist__to__tuple_3_01typelist_3_01_t_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::typelist_to_tuple< typelist< T... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::typelist_to_tuple< typelist< T... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... T>
    +struct ttg::meta::typelist_to_tuple< typelist< T... > >

    + + +

    Definition at line 47 of file typelist.h.

    +
    + + + +

    +Public Types

    using type = std::tuple< T... >
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... T>
    + + + + +
    using ttg::meta::typelist_to_tuple< typelist< T... > >::type = std::tuple<T...>
    +
    + +

    Definition at line 48 of file typelist.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1void__to___void-members.html b/dox-master/structttg_1_1meta_1_1void__to___void-members.html new file mode 100644 index 000000000..49c4dda1b --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1void__to___void-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::void_to_Void< T > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::void_to_Void< T >, including all inherited members.

    + + +
    type typedefttg::meta::void_to_Void< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1void__to___void.html b/dox-master/structttg_1_1meta_1_1void__to___void.html new file mode 100644 index 000000000..416ac530b --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1void__to___void.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::meta::void_to_Void< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::void_to_Void< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::meta::void_to_Void< T >

    + + +

    Definition at line 263 of file meta.h.

    +
    + + + +

    +Public Types

    using type = T
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg::meta::void_to_Void< T >::type = T
    +
    + +

    Definition at line 264 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4-members.html b/dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4-members.html new file mode 100644 index 000000000..1b4b972c3 --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::meta::void_to_Void< void > Member List
    +
    +
    + +

    This is the complete list of members for ttg::meta::void_to_Void< void >, including all inherited members.

    + + +
    type typedefttg::meta::void_to_Void< void >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4.html b/dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4.html new file mode 100644 index 000000000..2d6f06bac --- /dev/null +++ b/dox-master/structttg_1_1meta_1_1void__to___void_3_01void_01_4.html @@ -0,0 +1,166 @@ + + + + + + + + + + + ttg: ttg::meta::void_to_Void< void > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::meta::void_to_Void< void > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 267 of file meta.h.

    +
    + + + +

    +Public Types

    using type = Void
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    + + + + +
    using ttg::meta::void_to_Void< void >::type = Void
    +
    + +

    Definition at line 268 of file meta.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash.html b/dox-master/structttg_1_1overload_1_1hash.html new file mode 100644 index 000000000..d7635146e --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash.html @@ -0,0 +1,145 @@ + + + + + + + + + + + ttg: ttg::overload::hash< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::overload::hash< T, Enabler > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg::overload::hash< T, Enabler >

    + +

    Computes hash values for objects of type T.

    +

    Specialize for your type, if needed.

    Note
    Must provide operator()(const Input&)
    + +

    Definition at line 81 of file hash.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function4bfc12a19cd65f57d26589241cdb555a.html b/dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function4bfc12a19cd65f57d26589241cdb555a.html new file mode 100644 index 000000000..8d61f43c7 --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function4bfc12a19cd65f57d26589241cdb555a.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html b/dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html new file mode 100644 index 000000000..2dd58c0d9 --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01_t_00_01std_1_1enable__if__t_3_01meta_1_1has__member__function__hash__v_3_01_t_01_4_01_4_01_4.html @@ -0,0 +1,184 @@ + + + + + + + + + + + ttg: ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >

    + +

    instantiation of hash for types which have member function hash() that returns

    + +

    Definition at line 85 of file hash.h.

    +
    + + + +

    +Public Member Functions

    auto operator() (const T &t) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    auto ttg::overload::hash< T, std::enable_if_t< meta::has_member_function_hash_v< T > > >::operator() (const T & t) const
    +
    +inline
    +
    + +

    Definition at line 86 of file hash.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4-members.html b/dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4-members.html new file mode 100644 index 000000000..cc225b65c --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::overload::hash< Void, void > Member List
    +
    +
    + +

    This is the complete list of members for ttg::overload::hash< Void, void >, including all inherited members.

    + + +
    operator()(const ttg::Void &) constttg::overload::hash< Void, void >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html b/dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html new file mode 100644 index 000000000..017bc90ff --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01_void_00_01void_01_4.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: ttg::overload::hash< Void, void > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::overload::hash< Void, void > Struct Reference
    +
    +
    +

    Documentation

    +

    instantiation of hash for Void

    + +

    Definition at line 99 of file hash.h.

    +
    + + + +

    +Public Member Functions

    auto operator() (const ttg::Void &) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    + + + + + +
    + + + + + + + + +
    auto ttg::overload::hash< Void, void >::operator() (const ttg::Void) const
    +
    +inline
    +
    + +

    Definition at line 100 of file hash.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html b/dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html new file mode 100644 index 000000000..e4dc01177 --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_2a4854418d5ad9e9a07628b11c4bc252.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T1, typename T2>
    +struct ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >

    + + +

    Definition at line 11 of file pair.h.

    +
    + + + +

    +Public Member Functions

    auto operator() (const std::pair< T1, T2 > &t) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()()

    + +
    +
    +
    +template<typename T1 , typename T2 >
    + + + + + +
    + + + + + + + + +
    auto ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >::operator() (const std::pair< T1, T2 > & t) const
    +
    +inline
    +
    + +

    Definition at line 13 of file pair.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/util/hash/std/pair.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_742e6ee90400eb8af68965db2186c9b8.html b/dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_742e6ee90400eb8af68965db2186c9b8.html new file mode 100644 index 000000000..c1388f804 --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01std_1_1pair_3_01_t1_00_01_t2_01_4_00_01std_1_1enable__if__t_3_742e6ee90400eb8af68965db2186c9b8.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4-members.html b/dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4-members.html new file mode 100644 index 000000000..e9137d921 --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4-members.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::overload::hash< void, void > Member List
    +
    +
    + +

    This is the complete list of members for ttg::overload::hash< void, void >, including all inherited members.

    + + + +
    operator()() constttg::overload::hash< void, void >inline
    operator()(const ttg::Void &) constttg::overload::hash< void, void >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html b/dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html new file mode 100644 index 000000000..a1e5aefa7 --- /dev/null +++ b/dox-master/structttg_1_1overload_1_1hash_3_01void_00_01void_01_4.html @@ -0,0 +1,208 @@ + + + + + + + + + + + ttg: ttg::overload::hash< void, void > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::overload::hash< void, void > Struct Reference
    +
    +
    +

    Documentation

    +

    instantiation of hash for void

    + +

    Definition at line 91 of file hash.h.

    +
    + + + + + +

    +Public Member Functions

    auto operator() () const
     
    auto operator() (const ttg::Void &) const
     
    +

    Member Function Documentation

    + +

    ◆ operator()() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    auto ttg::overload::hash< void, void >::operator() () const
    +
    +inline
    +
    + +

    Definition at line 92 of file hash.h.

    + +
    +
    + +

    ◆ operator()() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    auto ttg::overload::hash< void, void >::operator() (const ttg::Void) const
    +
    +inline
    +
    + +

    Definition at line 94 of file hash.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1resumable__task-members.html b/dox-master/structttg_1_1resumable__task-members.html new file mode 100644 index 000000000..b7f9bd104 --- /dev/null +++ b/dox-master/structttg_1_1resumable__task-members.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::resumable_task Member List
    +
    +
    + +

    This is the complete list of members for ttg::resumable_task, including all inherited members.

    + + + + + + + + +
    base_type typedefttg::resumable_task
    completed() constttg::resumable_taskinline
    events()ttg::resumable_taskinline
    handle()ttg::resumable_taskinline
    promise_type typedefttg::resumable_task
    ready() constttg::resumable_taskinline
    resumable_task(base_type base)ttg::resumable_taskinline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1resumable__task.html b/dox-master/structttg_1_1resumable__task.html new file mode 100644 index 000000000..d396de794 --- /dev/null +++ b/dox-master/structttg_1_1resumable__task.html @@ -0,0 +1,263 @@ + + + + + + + + + + + ttg: ttg::resumable_task Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::resumable_task Struct Reference
    +
    +
    +
    +Inheritance diagram for ttg::resumable_task:
    +
    +
    + +
    +

    Documentation

    +

    task that can be resumed after some events occur

    + +

    Definition at line 53 of file coroutine.h.

    +
    + + + + + + +

    +Public Types

    using base_type = ttg::coroutine_handle< resumable_task_state >
     
    members mandated by the promise_type concept
    using promise_type = struct resumable_task_state
     
    + + + + + + + + + + + +

    +Public Member Functions

     resumable_task (base_type base)
     
    base_type handle ()
     
    bool ready () const
     
    bool completed () const
     
    ttg::span< event * > events ()
     
    +

    Member Typedef Documentation

    + +

    ◆ base_type

    + +
    +
    + +

    Definition at line 54 of file coroutine.h.

    + +
    +
    + +

    ◆ promise_type

    + +
    +
    + +

    Definition at line 59 of file coroutine.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ resumable_task()

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg::resumable_task::resumable_task (base_type base)
    +
    +inline
    +
    + +

    Definition at line 63 of file coroutine.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ handle()

    + +
    +
    + + + + + +
    + + + + + + + +
    base_type ttg::resumable_task::handle ()
    +
    +inline
    +
    + +

    Definition at line 65 of file coroutine.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1resumable__task.png b/dox-master/structttg_1_1resumable__task.png new file mode 100644 index 0000000000000000000000000000000000000000..179108264cbedbd35a83ece4b646de216b3549a6 GIT binary patch literal 886 zcmeAS@N?(olHy`uVBq!ia0y~yU=#$h12~w0B&X%ZgFs3mz$e7@|Ns9$=8HF9OZyK^ z0J6aNz<~p-op2c}Iz4<4~MC$J?zMby5`|8yz&(GS;f6cV^ zreTs!PCmO}cFnF9#q)vRJ}un5Z+h*oXL9N#SIX)qrCd9D;@FbCEw=+7nm$V~So^T_ zv6=S!`*WC2o@BB8<+QeTVPfD#>q)X5Tk4!D%FO2e5SY48e);B)8#c8~4qR9Da{2Ae zc|Y{8--@!Icw*bzUr%#CTJE@7)PHO7PtPowrLS|0QcAwxYnR;l{pP=&hDJ3XR^L{M z`oD{PUG+;_r+<>K^!Kh$R>^sz*Z(8^_oa0+S&o;=&1`Ay{Zt?)sU?3}Ia*-8rOuL1 zpVxG{x}V$3Yvjqb)z?G%`#GuC_GbKkU(Mx>Bp3PA)-SoR#r)=pt>yU-3dOUoyPQl?+P7$fN_FP^-SK75 z^WSxEJKNovvwP)jQ{Apz7Pq2z|9|ygBWCf&Ip|8O#-ZYrFR9$usTgT&wbF&iaVYuUDCH zUATEkqVlN|!@Q)`<-7-~BjH{G1{gGqU-KI>&3?#Jd6@&4Nf + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::resumable_task_events< N > Member List
    +
    +
    + +

    This is the complete list of members for ttg::resumable_task_events< N >, including all inherited members.

    + + + + + +
    await_ready() constttg::resumable_task_events< N >inline
    await_resume()ttg::resumable_task_events< N >inline
    await_suspend(coroutine_handle< resumable_task_state > pending_task)ttg::resumable_task_events< N >inline
    resumable_task_events(Events &&... events)ttg::resumable_task_events< N >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1resumable__task__events.html b/dox-master/structttg_1_1resumable__task__events.html new file mode 100644 index 000000000..6232b1e23 --- /dev/null +++ b/dox-master/structttg_1_1resumable__task__events.html @@ -0,0 +1,283 @@ + + + + + + + + + + + ttg: ttg::resumable_task_events< N > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::resumable_task_events< N > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<std::size_t N>
    +struct ttg::resumable_task_events< N >

    + +

    statically-sized sequence of events on whose completion progress of a given task depends on

    Note
    this is the Awaiter for resumable_task coroutine (the concept is not defined in the standard, see https://lewissbaker.github.io/2017/11/17/understanding-operator-co-await instead )
    + +

    Definition at line 168 of file coroutine.h.

    +
    + + + + + + + + + + + +

    +Public Member Functions

    template<typename... Events>
    constexpr resumable_task_events (Events &&... events)
     
    members mandated by the Awaiter concept
    constexpr bool await_ready () const
     
    void await_suspend (coroutine_handle< resumable_task_state > pending_task)
     
    void await_resume ()
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ resumable_task_events()

    + +
    +
    +
    +template<std::size_t N>
    +
    +template<typename... Events>
    + + + + + +
    + + + + + + + + +
    constexpr ttg::resumable_task_events< N >::resumable_task_events (Events &&... events)
    +
    +inlineconstexpr
    +
    + +

    Definition at line 177 of file coroutine.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ await_ready()

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + + + + +
    constexpr bool ttg::resumable_task_events< N >::await_ready () const
    +
    +inlineconstexpr
    +
    + +

    Definition at line 182 of file coroutine.h.

    + +
    +
    + +

    ◆ await_resume()

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + + + + +
    void ttg::resumable_task_events< N >::await_resume ()
    +
    +inline
    +
    + +

    Definition at line 189 of file coroutine.h.

    + +
    +
    + +

    ◆ await_suspend()

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + + + + + +
    void ttg::resumable_task_events< N >::await_suspend (coroutine_handle< resumable_task_statepending_task)
    +
    +inline
    +
    + +

    Definition at line 184 of file coroutine.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1resumable__task__state-members.html b/dox-master/structttg_1_1resumable__task__state-members.html new file mode 100644 index 000000000..3e43e5de2 --- /dev/null +++ b/dox-master/structttg_1_1resumable__task__state-members.html @@ -0,0 +1,153 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::resumable_task_state Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1resumable__task__state.html b/dox-master/structttg_1_1resumable__task__state.html new file mode 100644 index 000000000..a4116c5a2 --- /dev/null +++ b/dox-master/structttg_1_1resumable__task__state.html @@ -0,0 +1,617 @@ + + + + + + + + + + + ttg: ttg::resumable_task_state Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::resumable_task_state Struct Reference
    +
    +
    +

    Documentation

    +

    encapsulates the state of the coroutine object visible to the outside world

    Note
    this is the promise_type for resumable_task coroutine
    + +

    Definition at line 79 of file coroutine.h.

    +
    + + + +

    +Public Types

    using handle_type = coroutine_handle< resumable_task_state >
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     resumable_task_state () noexcept=default
     
     resumable_task_state (const resumable_task_state &)=delete
     
    resumable_task_stateoperator= (const resumable_task_state &)=delete
     
     resumable_task_state (resumable_task_state &&)=delete
     
    resumable_task_stateoperator= (resumable_task_state &&)=delete
     
    constexpr bool ready () const
     
    constexpr bool completed () const
     
    ttg::span< event * > events ()
     
    members mandated by the promise_type concept
    resumable_task get_return_object ()
     
    suspend_never initial_suspend () noexcept
     
    suspend_always final_suspend () noexcept
     
    void return_void ()
     
    void unhandled_exception ()
     
    + + + +

    +Static Public Attributes

    constexpr static std::size_t MaxNumEvents = 20
     
    + + + + +

    +Friends

    template<std::size_t N>
    struct resumable_task_events
     
    +

    Member Typedef Documentation

    + +

    ◆ handle_type

    + +
    +
    + +

    Definition at line 88 of file coroutine.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ resumable_task_state() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::resumable_task_state::resumable_task_state ()
    +
    +defaultnoexcept
    +
    + +
    +
    + +

    ◆ resumable_task_state() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg::resumable_task_state::resumable_task_state (const resumable_task_state)
    +
    +delete
    +
    + +
    +
    + +

    ◆ resumable_task_state() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg::resumable_task_state::resumable_task_state (resumable_task_state && )
    +
    +delete
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ completed()

    + +
    +
    + + + + + +
    + + + + + + + +
    constexpr bool ttg::resumable_task_state::completed () const
    +
    +inlineconstexpr
    +
    +
    Returns
    true if the task is completed
    + +

    Definition at line 134 of file coroutine.h.

    + +
    +
    + +

    ◆ events()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::span<event*> ttg::resumable_task_state::events ()
    +
    +inline
    +
    + +

    Definition at line 136 of file coroutine.h.

    + +
    +
    + +

    ◆ final_suspend()

    + +
    +
    + + + + + +
    + + + + + + + +
    suspend_always ttg::resumable_task_state::final_suspend ()
    +
    +inlinenoexcept
    +
    +
    Note
    suspend task before destroying it so the runtime can know that the task is completed
    + +

    Definition at line 99 of file coroutine.h.

    + +
    +
    + +

    ◆ get_return_object()

    + +
    +
    + + + + + +
    + + + + + + + +
    resumable_task ttg::resumable_task_state::get_return_object ()
    +
    +inline
    +
    +
    Note
    start task eagerly
    + +

    Definition at line 93 of file coroutine.h.

    + +
    +
    + +

    ◆ initial_suspend()

    + +
    +
    + + + + + +
    + + + + + + + +
    suspend_never ttg::resumable_task_state::initial_suspend ()
    +
    +inlinenoexcept
    +
    +
    Note
    start task eagerly
    + +

    Definition at line 96 of file coroutine.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    resumable_task_state& ttg::resumable_task_state::operator= (const resumable_task_state)
    +
    +delete
    +
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    resumable_task_state& ttg::resumable_task_state::operator= (resumable_task_state && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ ready()

    + +
    +
    + + + + + +
    + + + + + + + +
    constexpr bool ttg::resumable_task_state::ready () const
    +
    +inlineconstexpr
    +
    +
    Returns
    true if ready to resume
    + +

    Definition at line 127 of file coroutine.h.

    + +
    +
    + +

    ◆ return_void()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::resumable_task_state::return_void ()
    +
    +inline
    +
    +
    Note
    start task eagerly
    + +

    Definition at line 103 of file coroutine.h.

    + +
    +
    + +

    ◆ unhandled_exception()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg::resumable_task_state::unhandled_exception ()
    +
    +inline
    +
    +
    Note
    start task eagerly
    + +

    Definition at line 104 of file coroutine.h.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ resumable_task_events

    + +
    +
    +
    +template<std::size_t N>
    + + + + + +
    + + + + +
    friend struct resumable_task_events
    +
    +friend
    +
    + +

    Definition at line 144 of file coroutine.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ MaxNumEvents

    + +
    +
    + + + + + +
    + + + + +
    constexpr static std::size_t ttg::resumable_task_state::MaxNumEvents = 20
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 87 of file coroutine.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1runtime__traits.html b/dox-master/structttg_1_1runtime__traits.html new file mode 100644 index 000000000..5011d1e89 --- /dev/null +++ b/dox-master/structttg_1_1runtime__traits.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::runtime_traits< R > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::runtime_traits< R > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<Runtime R>
    +struct ttg::runtime_traits< R >

    + + +

    Definition at line 18 of file runtimes.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4-members.html b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4-members.html new file mode 100644 index 000000000..ff3ffb490 --- /dev/null +++ b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4-members.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::runtime_traits< Runtime::MADWorld > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html new file mode 100644 index 000000000..3cbbb13ef --- /dev/null +++ b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_m_a_d_world_01_4.html @@ -0,0 +1,275 @@ + + + + + + + + + + + ttg: ttg::runtime_traits< Runtime::MADWorld > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::runtime_traits< Runtime::MADWorld > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 30 of file runtimes.h.

    +
    + + + +

    +Public Types

    using hash_t = uint64_t
     
    + + + + + + + + + +

    +Static Public Attributes

    static constexpr const bool supports_streaming_terminal = true
     
    static constexpr const bool supports_async_reduction = true
     
    constexpr static ExecutionSpace execution_spaces [] = {ExecutionSpace::Host}
     
    constexpr static std::size_t num_execution_spaces = sizeof(execution_spaces) / sizeof(ExecutionSpace)
     
    +

    Member Typedef Documentation

    + +

    ◆ hash_t

    + +
    +
    + + + + +
    using ttg::runtime_traits< Runtime::MADWorld >::hash_t = uint64_t
    +
    + +

    Definition at line 33 of file runtimes.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ execution_spaces

    + +
    +
    + + + + + +
    + + + + +
    constexpr static ExecutionSpace ttg::runtime_traits< Runtime::MADWorld >::execution_spaces[] = {ExecutionSpace::Host}
    +
    +staticconstexpr
    +
    + +

    Definition at line 34 of file runtimes.h.

    + +
    +
    + +

    ◆ num_execution_spaces

    + +
    +
    + + + + + +
    + + + + +
    constexpr static std::size_t ttg::runtime_traits< Runtime::MADWorld >::num_execution_spaces = sizeof(execution_spaces) / sizeof(ExecutionSpace)
    +
    +staticconstexpr
    +
    + +

    Definition at line 35 of file runtimes.h.

    + +
    +
    + +

    ◆ supports_async_reduction

    + +
    +
    + + + + + +
    + + + + +
    constexpr const bool ttg::runtime_traits< Runtime::MADWorld >::supports_async_reduction = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 32 of file runtimes.h.

    + +
    +
    + +

    ◆ supports_streaming_terminal

    + +
    +
    + + + + + +
    + + + + +
    constexpr const bool ttg::runtime_traits< Runtime::MADWorld >::supports_streaming_terminal = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 31 of file runtimes.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4-members.html b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4-members.html new file mode 100644 index 000000000..01761d5ca --- /dev/null +++ b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4-members.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::runtime_traits< Runtime::PaRSEC > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html new file mode 100644 index 000000000..1922293ae --- /dev/null +++ b/dox-master/structttg_1_1runtime__traits_3_01_runtime_1_1_pa_r_s_e_c_01_4.html @@ -0,0 +1,275 @@ + + + + + + + + + + + ttg: ttg::runtime_traits< Runtime::PaRSEC > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::runtime_traits< Runtime::PaRSEC > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 21 of file runtimes.h.

    +
    + + + +

    +Public Types

    using hash_t = unsigned long
     
    + + + + + + + + + +

    +Static Public Attributes

    static constexpr const bool supports_streaming_terminal = true
     
    static constexpr const bool supports_async_reduction = false
     
    constexpr static ExecutionSpace execution_spaces [] = {ExecutionSpace::CUDA, ExecutionSpace::Host}
     
    constexpr static std::size_t num_execution_spaces = sizeof(execution_spaces) / sizeof(ExecutionSpace)
     
    +

    Member Typedef Documentation

    + +

    ◆ hash_t

    + +
    +
    + + + + +
    using ttg::runtime_traits< Runtime::PaRSEC >::hash_t = unsigned long
    +
    + +

    Definition at line 24 of file runtimes.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ execution_spaces

    + +
    +
    + + + + + +
    + + + + +
    constexpr static ExecutionSpace ttg::runtime_traits< Runtime::PaRSEC >::execution_spaces[] = {ExecutionSpace::CUDA, ExecutionSpace::Host}
    +
    +staticconstexpr
    +
    + +

    Definition at line 25 of file runtimes.h.

    + +
    +
    + +

    ◆ num_execution_spaces

    + +
    +
    + + + + + +
    + + + + +
    constexpr static std::size_t ttg::runtime_traits< Runtime::PaRSEC >::num_execution_spaces = sizeof(execution_spaces) / sizeof(ExecutionSpace)
    +
    +staticconstexpr
    +
    + +

    Definition at line 26 of file runtimes.h.

    + +
    +
    + +

    ◆ supports_async_reduction

    + +
    +
    + + + + + +
    + + + + +
    constexpr const bool ttg::runtime_traits< Runtime::PaRSEC >::supports_async_reduction = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 23 of file runtimes.h.

    + +
    +
    + +

    ◆ supports_streaming_terminal

    + +
    +
    + + + + + +
    + + + + +
    constexpr const bool ttg::runtime_traits< Runtime::PaRSEC >::supports_streaming_terminal = true
    +
    +staticconstexpr
    +
    + +

    Definition at line 22 of file runtimes.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1terminals__to__edges.html b/dox-master/structttg_1_1terminals__to__edges.html new file mode 100644 index 000000000..b894846b9 --- /dev/null +++ b/dox-master/structttg_1_1terminals__to__edges.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg::terminals_to_edges< termsT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::terminals_to_edges< termsT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename termsT>
    +struct ttg::terminals_to_edges< termsT >

    + + +

    Definition at line 167 of file edge.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4-members.html b/dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4-members.html new file mode 100644 index 000000000..5f7dd3b2c --- /dev/null +++ b/dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg::terminals_to_edges< std::tuple< termsT... > > Member List
    +
    +
    + +

    This is the complete list of members for ttg::terminals_to_edges< std::tuple< termsT... > >, including all inherited members.

    + + +
    type typedefttg::terminals_to_edges< std::tuple< termsT... > >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html b/dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html new file mode 100644 index 000000000..7df3f6edd --- /dev/null +++ b/dox-master/structttg_1_1terminals__to__edges_3_01std_1_1tuple_3_01terms_t_8_8_8_01_4_01_4.html @@ -0,0 +1,171 @@ + + + + + + + + + + + ttg: ttg::terminals_to_edges< std::tuple< termsT... > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg::terminals_to_edges< std::tuple< termsT... > > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename... termsT>
    +struct ttg::terminals_to_edges< std::tuple< termsT... > >

    + + +

    Definition at line 169 of file edge.h.

    +
    + + + +

    +Public Types

    typedef std::tuple< typename termsT::edge_type... > type
     
    +

    Member Typedef Documentation

    + +

    ◆ type

    + +
    +
    +
    +template<typename... termsT>
    + + + + +
    typedef std::tuple<typename termsT::edge_type...> ttg::terminals_to_edges< std::tuple< termsT... > >::type
    +
    + +

    Definition at line 170 of file edge.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__data__descriptor-members.html b/dox-master/structttg__data__descriptor-members.html new file mode 100644 index 000000000..c3eeef4a5 --- /dev/null +++ b/dox-master/structttg__data__descriptor-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    ttg_data_descriptor Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__data__descriptor.html b/dox-master/structttg__data__descriptor.html new file mode 100644 index 000000000..64cc1ab8b --- /dev/null +++ b/dox-master/structttg__data__descriptor.html @@ -0,0 +1,271 @@ + + + + + + + + + + + ttg: ttg_data_descriptor Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + +
    +
    + +
    +
    ttg_data_descriptor Struct Reference
    +
    +
    +

    Documentation

    +

    This provides an efficient C API for serializing/deserializing a data type to a nonportable contiguous bytestring. An object of this type will need to be provided for each serializable type. The default implementation, in serialization.h, works only for primitive/POD data types; backend-specific implementations may be available in backend/serialization.h .

    + +

    Definition at line 22 of file data_descriptor.h.

    +
    + + + + + + + + + + + + + + +

    +Public Attributes

    const char * name
     
    uint64_t(* payload_size )(const void *object)
     measures the size of the binary representation of object More...
     
    uint64_t(* pack_payload )(const void *object, uint64_t max_nbytes_to_write, uint64_t offset, void *buf)
     serializes object to a buffer More...
     
    uint64_t(* unpack_payload )(void *object, uint64_t max_nbytes_to_read, uint64_t offset, const void *buf)
     deserializes object from a buffer More...
     
    void(* print )(const void *object)
     
    +

    Member Data Documentation

    + +

    ◆ name

    + +
    +
    + + + + +
    const char* ttg_data_descriptor::name
    +
    + +

    Definition at line 23 of file data_descriptor.h.

    + +
    +
    + +

    ◆ pack_payload

    + +
    +
    + + + + +
    uint64_t(* ttg_data_descriptor::pack_payload) (const void *object, uint64_t max_nbytes_to_write, uint64_t offset, void *buf)
    +
    + +

    serializes object to a buffer

    +
    Parameters
    + + + + + +
    [in]objectpointer to the object to be serialized
    [in]max_nbytes_to_writethe maximum number of bytes to write
    [in]offsetthe position in buf where the first byte of serialized data will be written
    [in,out]bufthe data buffer that will contain the serialized representation of the object
    +
    +
    +
    Returns
    position in buf after the last byte written
    + +

    Definition at line 36 of file data_descriptor.h.

    + +
    +
    + +

    ◆ payload_size

    + +
    +
    + + + + +
    uint64_t(* ttg_data_descriptor::payload_size) (const void *object)
    +
    + +

    measures the size of the binary representation of object

    +
    Parameters
    + + +
    [in]objectpointer to the object to be serialized
    +
    +
    +
    Returns
    the number of bytes needed for binary representation of object
    + +

    Definition at line 28 of file data_descriptor.h.

    + +
    +
    + +

    ◆ print

    + +
    +
    + + + + +
    void(* ttg_data_descriptor::print) (const void *object)
    +
    + +

    Definition at line 46 of file data_descriptor.h.

    + +
    +
    + +

    ◆ unpack_payload

    + +
    +
    + + + + +
    uint64_t(* ttg_data_descriptor::unpack_payload) (void *object, uint64_t max_nbytes_to_read, uint64_t offset, const void *buf)
    +
    + +

    deserializes object from a buffer

    +
    Parameters
    + + + + + +
    [in]objectpointer to the object to be deserialized
    [in]max_nbytes_to_readthe maximum number of bytes to read
    [in]offsetthe position in buf where the first byte of serialized data will be read
    [in]bufthe data buffer that contains the serialized representation of the object
    +
    +
    +
    Returns
    position in buf after the last byte read
    + +

    Definition at line 44 of file data_descriptor.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__madness_1_1_buffer-members.html b/dox-master/structttg__madness_1_1_buffer-members.html new file mode 100644 index 000000000..90de59edd --- /dev/null +++ b/dox-master/structttg__madness_1_1_buffer-members.html @@ -0,0 +1,169 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_madness::Buffer< T, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for ttg_madness::Buffer< T, Allocator >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocate_on(const ttg::device::Device &device_id)ttg_madness::Buffer< T, Allocator >inline
    allocator_traits typedefttg_madness::Buffer< T, Allocator >
    allocator_type typedefttg_madness::Buffer< T, Allocator >
    Buffer()ttg_madness::Buffer< T, Allocator >inline
    Buffer(std::size_t n)ttg_madness::Buffer< T, Allocator >inline
    Buffer(element_type *ptr, std::size_t n=1)ttg_madness::Buffer< T, Allocator >inline
    Buffer(Buffer &&db)ttg_madness::Buffer< T, Allocator >inline
    Buffer(const Buffer &db)=deletettg_madness::Buffer< T, Allocator >
    current_device_ptr()ttg_madness::Buffer< T, Allocator >inline
    current_device_ptr() constttg_madness::Buffer< T, Allocator >inline
    device_ptr_on(const ttg::device::Device &device)ttg_madness::Buffer< T, Allocator >inline
    device_ptr_on(const ttg::device::Device &device) constttg_madness::Buffer< T, Allocator >inline
    element_type typedefttg_madness::Buffer< T, Allocator >
    get_owner_device() constttg_madness::Buffer< T, Allocator >inline
    host_ptr()ttg_madness::Buffer< T, Allocator >inline
    host_ptr() constttg_madness::Buffer< T, Allocator >inline
    is_valid() constttg_madness::Buffer< T, Allocator >inline
    is_valid_on(const ttg::device::Device &device) constttg_madness::Buffer< T, Allocator >inline
    operator bool() constttg_madness::Buffer< T, Allocator >inline
    operator=(Buffer &&db)ttg_madness::Buffer< T, Allocator >inline
    operator=(const Buffer &db)=deletettg_madness::Buffer< T, Allocator >
    owner_device_ptr()ttg_madness::Buffer< T, Allocator >inline
    owner_device_ptr() constttg_madness::Buffer< T, Allocator >inline
    pin()ttg_madness::Buffer< T, Allocator >inline
    pin_on(int device_id)ttg_madness::Buffer< T, Allocator >inline
    reset(std::size_t n)ttg_madness::Buffer< T, Allocator >inline
    reset(T *ptr, std::size_t n=1)ttg_madness::Buffer< T, Allocator >inline
    set_current_device(const ttg::device::Device &device)ttg_madness::Buffer< T, Allocator >inline
    size() constttg_madness::Buffer< T, Allocator >inline
    unpin()ttg_madness::Buffer< T, Allocator >inline
    unpin_on(int device_id)ttg_madness::Buffer< T, Allocator >inline
    ~Buffer()ttg_madness::Buffer< T, Allocator >inlinevirtual
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__madness_1_1_buffer.html b/dox-master/structttg__madness_1_1_buffer.html new file mode 100644 index 000000000..66338c4bc --- /dev/null +++ b/dox-master/structttg__madness_1_1_buffer.html @@ -0,0 +1,1155 @@ + + + + + + + + + + + ttg: ttg_madness::Buffer< T, Allocator > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_madness::Buffer< T, Allocator > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg_madness::Buffer< T, Allocator >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename Allocator>
    +struct ttg_madness::Buffer< T, Allocator >

    + +

    A runtime-managed buffer mirrored between host and device memory.

    + +

    Definition at line 10 of file buffer.h.

    +
    + + + + + + + +

    +Public Types

    using element_type = std::decay_t< T >
     
    using allocator_traits = std::allocator_traits< Allocator >
     
    using allocator_type = typename allocator_traits::allocator_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     Buffer ()
     
     Buffer (std::size_t n)
     
     Buffer (element_type *ptr, std::size_t n=1)
     
    virtual ~Buffer ()
     
     Buffer (Buffer &&db)
     
     Buffer (const Buffer &db)=delete
     
    Bufferoperator= (Buffer &&db)
     
    Bufferoperator= (const Buffer &db)=delete
     
    void set_current_device (const ttg::device::Device &device)
     
    ttg::device::Device get_owner_device () const
     
    element_typecurrent_device_ptr ()
     
    const element_typecurrent_device_ptr () const
     
    element_typeowner_device_ptr ()
     
    const element_typeowner_device_ptr () const
     
    element_typedevice_ptr_on (const ttg::device::Device &device)
     
    const element_typedevice_ptr_on (const ttg::device::Device &device) const
     
    element_typehost_ptr ()
     
    const element_typehost_ptr () const
     
    bool is_valid_on (const ttg::device::Device &device) const
     
    void allocate_on (const ttg::device::Device &device_id)
     
    void pin ()
     
    void unpin ()
     
    void pin_on (int device_id)
     
    void unpin_on (int device_id)
     
    bool is_valid () const
     
     operator bool () const
     
    std::size_t size () const
     
    void reset (std::size_t n)
     
    void reset (T *ptr, std::size_t n=1)
     
    +

    Member Typedef Documentation

    + +

    ◆ allocator_traits

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + +
    using ttg_madness::Buffer< T, Allocator >::allocator_traits = std::allocator_traits<Allocator>
    +
    + +

    Definition at line 14 of file buffer.h.

    + +
    +
    + +

    ◆ allocator_type

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + +
    using ttg_madness::Buffer< T, Allocator >::allocator_type = typename allocator_traits::allocator_type
    +
    + +

    Definition at line 15 of file buffer.h.

    + +
    +
    + +

    ◆ element_type

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + +
    using ttg_madness::Buffer< T, Allocator >::element_type = std::decay_t<T>
    +
    + +

    Definition at line 12 of file buffer.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ Buffer() [1/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    ttg_madness::Buffer< T, Allocator >::Buffer ()
    +
    +inline
    +
    + +

    Definition at line 46 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [2/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    ttg_madness::Buffer< T, Allocator >::Buffer (std::size_t n)
    +
    +inline
    +
    + +

    Definition at line 49 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [3/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_madness::Buffer< T, Allocator >::Buffer (element_typeptr,
    std::size_t n = 1 
    )
    +
    +inline
    +
    + +

    Definition at line 59 of file buffer.h.

    + +
    +
    + +

    ◆ ~Buffer()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    virtual ttg_madness::Buffer< T, Allocator >::~Buffer ()
    +
    +inlinevirtual
    +
    + +

    Definition at line 66 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [4/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    ttg_madness::Buffer< T, Allocator >::Buffer (Buffer< T, Allocator > && db)
    +
    +inline
    +
    + +

    Definition at line 75 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [5/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    ttg_madness::Buffer< T, Allocator >::Buffer (const Buffer< T, Allocator > & db)
    +
    +delete
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ allocate_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::allocate_on (const ttg::device::Devicedevice_id)
    +
    +inline
    +
    + +

    Definition at line 176 of file buffer.h.

    + +
    +
    + +

    ◆ current_device_ptr() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    element_type* ttg_madness::Buffer< T, Allocator >::current_device_ptr ()
    +
    +inline
    +
    + +

    Definition at line 121 of file buffer.h.

    + +
    +
    + +

    ◆ current_device_ptr() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    const element_type* ttg_madness::Buffer< T, Allocator >::current_device_ptr () const
    +
    +inline
    +
    + +

    Definition at line 127 of file buffer.h.

    + +
    +
    + +

    ◆ device_ptr_on() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    element_type* ttg_madness::Buffer< T, Allocator >::device_ptr_on (const ttg::device::Devicedevice)
    +
    +inline
    +
    + +

    Definition at line 148 of file buffer.h.

    + +
    +
    + +

    ◆ device_ptr_on() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    const element_type* ttg_madness::Buffer< T, Allocator >::device_ptr_on (const ttg::device::Devicedevice) const
    +
    +inline
    +
    + +

    Definition at line 156 of file buffer.h.

    + +
    +
    + +

    ◆ get_owner_device()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    ttg::device::Device ttg_madness::Buffer< T, Allocator >::get_owner_device () const
    +
    +inline
    +
    + +

    Definition at line 115 of file buffer.h.

    + +
    +
    + +

    ◆ host_ptr() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    element_type* ttg_madness::Buffer< T, Allocator >::host_ptr ()
    +
    +inline
    +
    + +

    Definition at line 162 of file buffer.h.

    + +
    +
    + +

    ◆ host_ptr() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    const element_type* ttg_madness::Buffer< T, Allocator >::host_ptr () const
    +
    +inline
    +
    + +

    Definition at line 166 of file buffer.h.

    + +
    +
    + +

    ◆ is_valid()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    bool ttg_madness::Buffer< T, Allocator >::is_valid (void ) const
    +
    +inline
    +
    + +

    Definition at line 205 of file buffer.h.

    + +
    +
    + +

    ◆ is_valid_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    bool ttg_madness::Buffer< T, Allocator >::is_valid_on (const ttg::device::Devicedevice) const
    +
    +inline
    +
    + +

    Definition at line 170 of file buffer.h.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    ttg_madness::Buffer< T, Allocator >::operator bool () const
    +
    +inline
    +
    + +

    Definition at line 209 of file buffer.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    Buffer& ttg_madness::Buffer< T, Allocator >::operator= (Buffer< T, Allocator > && db)
    +
    +inline
    +
    + +

    Definition at line 92 of file buffer.h.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    Buffer& ttg_madness::Buffer< T, Allocator >::operator= (const Buffer< T, Allocator > & db)
    +
    +delete
    +
    + +
    +
    + +

    ◆ owner_device_ptr() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    element_type* ttg_madness::Buffer< T, Allocator >::owner_device_ptr ()
    +
    +inline
    +
    + +

    Definition at line 135 of file buffer.h.

    + +
    +
    + +

    ◆ owner_device_ptr() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    const element_type* ttg_madness::Buffer< T, Allocator >::owner_device_ptr () const
    +
    +inline
    +
    + +

    Definition at line 141 of file buffer.h.

    + +
    +
    + +

    ◆ pin()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::pin ()
    +
    +inline
    +
    + +

    Definition at line 186 of file buffer.h.

    + +
    +
    + +

    ◆ pin_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::pin_on (int device_id)
    +
    +inline
    +
    + +

    Definition at line 196 of file buffer.h.

    + +
    +
    + +

    ◆ reset() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::reset (std::size_t n)
    +
    +inline
    +
    + +

    Definition at line 218 of file buffer.h.

    + +
    +
    + +

    ◆ reset() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::reset (T * ptr,
    std::size_t n = 1 
    )
    +
    +inline
    +
    + +

    Definition at line 236 of file buffer.h.

    + +
    +
    + +

    ◆ set_current_device()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::set_current_device (const ttg::device::Devicedevice)
    +
    +inline
    +
    + +

    Definition at line 107 of file buffer.h.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    std::size_t ttg_madness::Buffer< T, Allocator >::size () const
    +
    +inline
    +
    + +

    Definition at line 213 of file buffer.h.

    + +
    +
    + +

    ◆ unpin()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::unpin ()
    +
    +inline
    +
    + +

    Definition at line 191 of file buffer.h.

    + +
    +
    + +

    ◆ unpin_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_madness::Buffer< T, Allocator >::unpin_on (int device_id)
    +
    +inline
    +
    + +

    Definition at line 201 of file buffer.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__madness_1_1_buffer.png b/dox-master/structttg__madness_1_1_buffer.png new file mode 100644 index 0000000000000000000000000000000000000000..43dc716940f69c764efaa7b24f0cd71c254f6815 GIT binary patch literal 671 zcmeAS@N?(olHy`uVBq!ia0vp^SAjTygBeKfe0<;*kdg@S332`Z|38rV;?396{zDUh zEHFNB-~emq9eE&^qa?^Lm;tB=1g@S6F=Aj~((`n245?szJNNCm#R>v${GOAa|9fAt zHe_F^uh?ClndQ}6M8lpL82nLf5t!Dj;Mx5!Y*GsI_DL$zHYuX0^#gVLV&#<4-wcdN5xqny}ny0^3B~$NwMD71`Ym#Q$uHM8@ z7S=4P;aOaHJ!{W;pp(?|+GMU=$m+1Mcf5%jnn+MjaoMg*W^)!pPrqv=4 z#{59lj^XsiC0CzsUUY3z*z7A!QQ1+9YdX@o4zSJBW{|E}$B^@2C)0+;=Y#|f&fdwT z*z#0?L8mR6@y3C*3^^0lY`d+yUwUqms8+o@Lsj3ZtNcZRm*N*y99i}5``@y^`)^%~ z5BQ%~>Jt(A>ihe`28)>+OLv>_U*5W@%j);bjoan^vWq!k8Q6!Srw;U zZDYA_aq03Zj)nhBWV8AzZ8mFJmFK^l_xyW^e$LugTPKGfJj&pkaNN#vbC%PN{Hv{3 zb>8VzoPV|5CVQ^(kJq9RK3S7w#o8~f`4Xl%sWCK;eft`{Ng-3$WUpTJ(0uR;sa8%zM?!#&)k@quEYe z0fEnVZIrrlK>5n#>%6ZYtxe`mFcLnVyXKPMW!dix{YJ$*%)-~7X7EWbF=D=P3>Y#G k!WhgvQf*oUu07=6@7(xWKHk3=n3@ + + + + + + + + + + ttg: ttg_madness::Ptr< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_madness::Ptr< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg_madness::Ptr< T >

    + + +

    Definition at line 57 of file fwd.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/madness/fwd.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__madness_1_1_t_t_value.html b/dox-master/structttg__madness_1_1_t_t_value.html new file mode 100644 index 000000000..4f10c66bf --- /dev/null +++ b/dox-master/structttg__madness_1_1_t_t_value.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg_madness::TTValue< DerivedT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_madness::TTValue< DerivedT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename DerivedT>
    +struct ttg_madness::TTValue< DerivedT >

    + + +

    Definition at line 7 of file ttvalue.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/madness/fwd.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__madness_1_1devicescratch.html b/dox-master/structttg__madness_1_1devicescratch.html new file mode 100644 index 000000000..7391c3e4c --- /dev/null +++ b/dox-master/structttg__madness_1_1devicescratch.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg_madness::devicescratch< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_madness::devicescratch< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg_madness::devicescratch< T >

    + + +

    Definition at line 60 of file fwd.h.

    +

    The documentation for this struct was generated from the following file:
      +
    • ttg/ttg/madness/fwd.h
    • +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1_buffer-members.html b/dox-master/structttg__parsec_1_1_buffer-members.html new file mode 100644 index 000000000..806f163e2 --- /dev/null +++ b/dox-master/structttg__parsec_1_1_buffer-members.html @@ -0,0 +1,189 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::Buffer< T, Allocator > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::Buffer< T, Allocator >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    allocate_on(const ttg::device::Device &device_id)ttg_parsec::Buffer< T, Allocator >inline
    allocator_traits typedefttg_parsec::Buffer< T, Allocator >
    allocator_type typedefttg_parsec::Buffer< T, Allocator >
    Buffer()ttg_parsec::Buffer< T, Allocator >inline
    Buffer(std::size_t n)ttg_parsec::Buffer< T, Allocator >inline
    Buffer(element_type *ptr, std::size_t n=1)ttg_parsec::Buffer< T, Allocator >inline
    Buffer(Buffer &&db)ttg_parsec::Buffer< T, Allocator >inline
    Buffer(const Buffer &db)=deletettg_parsec::Buffer< T, Allocator >
    create_parsec_data(void *ptr, size_t size)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedstatic
    current_device_ptr()ttg_parsec::Buffer< T, Allocator >inline
    current_device_ptr() constttg_parsec::Buffer< T, Allocator >inline
    delete_null_parsec_data(parsec_data_t *)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedstatic
    delete_parsec_data(parsec_data_t *data)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedstatic
    detail::get_parsec_data(const ttg_parsec::Buffer< T, Allocator > &)ttg_parsec::Buffer< T, Allocator >friend
    device_ptr_on(const ttg::device::Device &device)ttg_parsec::Buffer< T, Allocator >inline
    device_ptr_on(const ttg::device::Device &device) constttg_parsec::Buffer< T, Allocator >inline
    element_type typedefttg_parsec::Buffer< T, Allocator >
    get_owner_device() constttg_parsec::Buffer< T, Allocator >inline
    host_ptr()ttg_parsec::Buffer< T, Allocator >inline
    host_ptr() constttg_parsec::Buffer< T, Allocator >inline
    is_valid() constttg_parsec::Buffer< T, Allocator >inline
    is_valid_on(const ttg::device::Device &device) constttg_parsec::Buffer< T, Allocator >inline
    m_datattg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    m_ttg_copyttg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    operator bool() constttg_parsec::Buffer< T, Allocator >inline
    operator=(Buffer &&db)ttg_parsec::Buffer< T, Allocator >inline
    operator=(const Buffer &db)=deletettg_parsec::Buffer< T, Allocator >
    ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator=(const ttg_parsec_data_wrapper_t &other)=deletettg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator=(ttg_parsec_data_wrapper_t &&other)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    owner_device_ptr()ttg_parsec::Buffer< T, Allocator >inline
    owner_device_ptr() constttg_parsec::Buffer< T, Allocator >inline
    parsec_data()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    parsec_data() constttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    parsec_data_ptr typedefttg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    pin()ttg_parsec::Buffer< T, Allocator >inline
    pin_on(int device_id)ttg_parsec::Buffer< T, Allocator >inline
    prefer_device(ttg::device::Device dev)ttg_parsec::Buffer< T, Allocator >inline
    remove_from_owner()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    reset(std::size_t n)ttg_parsec::Buffer< T, Allocator >inline
    reset(T *ptr, std::size_t n=1)ttg_parsec::Buffer< T, Allocator >inline
    reset_parsec_data(void *ptr, size_t size)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    set_current_device(const ttg::device::Device &device)ttg_parsec::Buffer< T, Allocator >inline
    set_owner(ttg_data_copy_t &new_copy)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    size() constttg_parsec::Buffer< T, Allocator >inline
    ttg_data_copy_tttg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    ttg_parsec_data_wrapper_t()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    ttg_parsec_data_wrapper_t(const ttg_parsec_data_wrapper_t &other)=deletettg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    ttg_parsec_data_wrapper_t(ttg_parsec_data_wrapper_t &&other)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    unpin()ttg_parsec::Buffer< T, Allocator >inline
    unpin_on(int device_id)ttg_parsec::Buffer< T, Allocator >inline
    ~Buffer()ttg_parsec::Buffer< T, Allocator >inlinevirtual
    ~ttg_parsec_data_wrapper_t()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedvirtual
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1_buffer.html b/dox-master/structttg__parsec_1_1_buffer.html new file mode 100644 index 000000000..03656443c --- /dev/null +++ b/dox-master/structttg__parsec_1_1_buffer.html @@ -0,0 +1,1269 @@ + + + + + + + + + + + ttg: ttg_parsec::Buffer< T, Allocator > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::Buffer< T, Allocator > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::Buffer< T, Allocator >:
    +
    +
    + + +ttg_parsec::detail::ttg_parsec_data_wrapper_t + +
    +

    Documentation

    +

    template<typename T, typename Allocator>
    +struct ttg_parsec::Buffer< T, Allocator >

    + +

    A buffer that is mirrored between host memory and different devices. The runtime is free to move data between device and host memory based on where the tasks are executing.

    +

    Note that a buffer is movable and should not be shared between two objects (e.g., through a pointer) in order for TTG to properly facilitate ownership tracking of the containing object.

    + +

    Definition at line 40 of file buffer.h.

    +
    + + + + + + + +

    +Public Types

    using element_type = std::decay_t< T >
     
    using allocator_traits = std::allocator_traits< Allocator >
     
    using allocator_type = typename allocator_traits::allocator_type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     Buffer ()
     
     Buffer (std::size_t n)
     
     Buffer (element_type *ptr, std::size_t n=1)
     
    virtual ~Buffer ()
     
     Buffer (Buffer &&db)
     
     Buffer (const Buffer &db)=delete
     
    Bufferoperator= (Buffer &&db)
     
    Bufferoperator= (const Buffer &db)=delete
     
    void set_current_device (const ttg::device::Device &device)
     
    ttg::device::Device get_owner_device () const
     
    element_typecurrent_device_ptr ()
     
    const element_typecurrent_device_ptr () const
     
    element_typeowner_device_ptr ()
     
    const element_typeowner_device_ptr () const
     
    element_typedevice_ptr_on (const ttg::device::Device &device)
     
    const element_typedevice_ptr_on (const ttg::device::Device &device) const
     
    element_typehost_ptr ()
     
    const element_typehost_ptr () const
     
    bool is_valid_on (const ttg::device::Device &device) const
     
    void allocate_on (const ttg::device::Device &device_id)
     
    void pin ()
     
    void unpin ()
     
    void pin_on (int device_id)
     
    void unpin_on (int device_id)
     
    bool is_valid () const
     
     operator bool () const
     
    std::size_t size () const
     
    void reset (std::size_t n)
     
    void reset (T *ptr, std::size_t n=1)
     
    void prefer_device (ttg::device::Device dev)
     
    + + + +

    +Friends

    parsec_data_t * detail::get_parsec_data (const ttg_parsec::Buffer< T, Allocator > &)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Types inherited from ttg_parsec::detail::ttg_parsec_data_wrapper_t
    using parsec_data_ptr = std::unique_ptr< parsec_data_t, decltype(&parsec_data_destroy)>
     
    - Protected Member Functions inherited from ttg_parsec::detail::ttg_parsec_data_wrapper_t
    parsec_data_t * parsec_data ()
     
    const parsec_data_t * parsec_data () const
     
    void remove_from_owner ()
     
    void reset_parsec_data (void *ptr, size_t size)
     
     ttg_parsec_data_wrapper_t ()
     
     ttg_parsec_data_wrapper_t (const ttg_parsec_data_wrapper_t &other)=delete
     
     ttg_parsec_data_wrapper_t (ttg_parsec_data_wrapper_t &&other)
     
    ttg_parsec_data_wrapper_toperator= (const ttg_parsec_data_wrapper_t &other)=delete
     
    ttg_parsec_data_wrapper_toperator= (ttg_parsec_data_wrapper_t &&other)
     
    virtual ~ttg_parsec_data_wrapper_t ()
     
    void set_owner (ttg_data_copy_t &new_copy)
     
    - Static Protected Member Functions inherited from ttg_parsec::detail::ttg_parsec_data_wrapper_t
    static parsec_data_t * create_parsec_data (void *ptr, size_t size)
     
    static void delete_parsec_data (parsec_data_t *data)
     
    static void delete_null_parsec_data (parsec_data_t *)
     
    - Protected Attributes inherited from ttg_parsec::detail::ttg_parsec_data_wrapper_t
    ttg_data_copy_tm_ttg_copy = nullptr
     
    parsec_data_ptr m_data
     
    friend ttg_data_copy_t
     
    +

    Member Typedef Documentation

    + +

    ◆ allocator_traits

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + +
    using ttg_parsec::Buffer< T, Allocator >::allocator_traits = std::allocator_traits<Allocator>
    +
    + +

    Definition at line 45 of file buffer.h.

    + +
    +
    + +

    ◆ allocator_type

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + +
    using ttg_parsec::Buffer< T, Allocator >::allocator_type = typename allocator_traits::allocator_type
    +
    + +

    Definition at line 46 of file buffer.h.

    + +
    +
    + +

    ◆ element_type

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + +
    using ttg_parsec::Buffer< T, Allocator >::element_type = std::decay_t<T>
    +
    + +

    Definition at line 43 of file buffer.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ Buffer() [1/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    ttg_parsec::Buffer< T, Allocator >::Buffer ()
    +
    +inline
    +
    + +

    Definition at line 79 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [2/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::Buffer< T, Allocator >::Buffer (std::size_t n)
    +
    +inline
    +
    + +

    Definition at line 82 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [3/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_parsec::Buffer< T, Allocator >::Buffer (element_typeptr,
    std::size_t n = 1 
    )
    +
    +inline
    +
    + +

    Definition at line 99 of file buffer.h.

    + +
    +
    + +

    ◆ ~Buffer()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    virtual ttg_parsec::Buffer< T, Allocator >::~Buffer ()
    +
    +inlinevirtual
    +
    + +

    Definition at line 113 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [4/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::Buffer< T, Allocator >::Buffer (Buffer< T, Allocator > && db)
    +
    +inline
    +
    + +

    Definition at line 122 of file buffer.h.

    + +
    +
    + +

    ◆ Buffer() [5/5]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::Buffer< T, Allocator >::Buffer (const Buffer< T, Allocator > & db)
    +
    +delete
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ allocate_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::allocate_on (const ttg::device::Devicedevice_id)
    +
    +inline
    +
    + +

    Definition at line 237 of file buffer.h.

    + +
    +
    + +

    ◆ current_device_ptr() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    element_type* ttg_parsec::Buffer< T, Allocator >::current_device_ptr ()
    +
    +inline
    +
    + +

    Definition at line 180 of file buffer.h.

    + +
    +
    + +

    ◆ current_device_ptr() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    const element_type* ttg_parsec::Buffer< T, Allocator >::current_device_ptr () const
    +
    +inline
    +
    + +

    Definition at line 187 of file buffer.h.

    + +
    +
    + +

    ◆ device_ptr_on() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    element_type* ttg_parsec::Buffer< T, Allocator >::device_ptr_on (const ttg::device::Devicedevice)
    +
    +inline
    +
    + +

    Definition at line 209 of file buffer.h.

    + +
    +
    + +

    ◆ device_ptr_on() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    const element_type* ttg_parsec::Buffer< T, Allocator >::device_ptr_on (const ttg::device::Devicedevice) const
    +
    +inline
    +
    + +

    Definition at line 217 of file buffer.h.

    + +
    +
    + +

    ◆ get_owner_device()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    ttg::device::Device ttg_parsec::Buffer< T, Allocator >::get_owner_device () const
    +
    +inline
    +
    + +

    Definition at line 174 of file buffer.h.

    + +
    +
    + +

    ◆ host_ptr() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    element_type* ttg_parsec::Buffer< T, Allocator >::host_ptr ()
    +
    +inline
    +
    + +

    Definition at line 223 of file buffer.h.

    + +
    +
    + +

    ◆ host_ptr() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    const element_type* ttg_parsec::Buffer< T, Allocator >::host_ptr () const
    +
    +inline
    +
    + +

    Definition at line 227 of file buffer.h.

    + +
    +
    + +

    ◆ is_valid()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    bool ttg_parsec::Buffer< T, Allocator >::is_valid (void ) const
    +
    +inline
    +
    + +

    Definition at line 271 of file buffer.h.

    + +
    +
    + +

    ◆ is_valid_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    bool ttg_parsec::Buffer< T, Allocator >::is_valid_on (const ttg::device::Devicedevice) const
    +
    +inline
    +
    + +

    Definition at line 231 of file buffer.h.

    + +
    +
    + +

    ◆ operator bool()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    ttg_parsec::Buffer< T, Allocator >::operator bool () const
    +
    +inline
    +
    + +

    Definition at line 275 of file buffer.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    Buffer& ttg_parsec::Buffer< T, Allocator >::operator= (Buffer< T, Allocator > && db)
    +
    +inline
    +
    + +

    Definition at line 140 of file buffer.h.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    Buffer& ttg_parsec::Buffer< T, Allocator >::operator= (const Buffer< T, Allocator > & db)
    +
    +delete
    +
    + +
    +
    + +

    ◆ owner_device_ptr() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    element_type* ttg_parsec::Buffer< T, Allocator >::owner_device_ptr ()
    +
    +inline
    +
    + +

    Definition at line 196 of file buffer.h.

    + +
    +
    + +

    ◆ owner_device_ptr() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    const element_type* ttg_parsec::Buffer< T, Allocator >::owner_device_ptr () const
    +
    +inline
    +
    + +

    Definition at line 202 of file buffer.h.

    + +
    +
    + +

    ◆ pin()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::pin ()
    +
    +inline
    +
    + +

    Definition at line 247 of file buffer.h.

    + +
    +
    + +

    ◆ pin_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::pin_on (int device_id)
    +
    +inline
    +
    + +

    Definition at line 262 of file buffer.h.

    + +
    +
    + +

    ◆ prefer_device()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::prefer_device (ttg::device::Device dev)
    +
    +inline
    +
    + +

    Definition at line 332 of file buffer.h.

    + +
    +
    + +

    ◆ reset() [1/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::reset (std::size_t n)
    +
    +inline
    +
    + +

    Definition at line 284 of file buffer.h.

    + +
    +
    + +

    ◆ reset() [2/2]

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::reset (T * ptr,
    std::size_t n = 1 
    )
    +
    +inline
    +
    + +

    Definition at line 307 of file buffer.h.

    + +
    +
    + +

    ◆ set_current_device()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::set_current_device (const ttg::device::Devicedevice)
    +
    +inline
    +
    + +

    Definition at line 162 of file buffer.h.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    std::size_t ttg_parsec::Buffer< T, Allocator >::size () const
    +
    +inline
    +
    + +

    Definition at line 279 of file buffer.h.

    + +
    +
    + +

    ◆ unpin()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::unpin ()
    +
    +inline
    +
    + +

    Definition at line 254 of file buffer.h.

    + +
    +
    + +

    ◆ unpin_on()

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::Buffer< T, Allocator >::unpin_on (int device_id)
    +
    +inline
    +
    + +

    Definition at line 267 of file buffer.h.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ detail::get_parsec_data

    + +
    +
    +
    +template<typename T , typename Allocator >
    + + + + + +
    + + + + + + + + +
    parsec_data_t* detail::get_parsec_data (const ttg_parsec::Buffer< T, Allocator > & )
    +
    +friend
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1_buffer.png b/dox-master/structttg__parsec_1_1_buffer.png new file mode 100644 index 0000000000000000000000000000000000000000..5821bd46effc401c2c8acbd45b475da4a796dbe2 GIT binary patch literal 1313 zcmaJ>Yfw{17~Q~)B*Clc! zg!;Ma#tyb>I={nC(tK%s_nBRmiUZ~7naUz92Gcv0sfAD}ED-qF6++Ig*0zXUVdW6! z#EpDpnV5T|-DH0K^ISWw8?VIq)7hKnSd_9qw(0#3-xEweH{CwMrMWg$V9@PGINp8y zN}pc0C%a{21GU&*+juLu=9(r|&s*n3&I9v19eCC z66+ina=w+`-6@Nxo_qQ_XDJA~oH3(u@CkX90;$aSqFs~(!9lA6D8Sk;r!=oVniGO8 zMSRNOVt&ZwK}DtpaIWNtC3L>mR#ciPF_%Vt-+o%{v>>ov2*Tcuk8cSSHqmwdc2WBiBpQ19x<0&Q!?p;#`K9kye>V#;Od z;q;)1Kya~?m^>I3rb#TBNvxuG`e#{9MB`G$RPeBUGG_O#hnh4rwLY=rmyQk<{+0$@ ztR0*fWM_pwMOZ^;n{_HD_ic#|!o@me(1t>`MU={XE{&WZ*vv)^TQ+nyPDrhUS~UCJ zoEgVpo1^f!@#x|(0Sc}12EHix8-rUJnO_-=E_^7pp+j+EXx$QKBlfWO<`+VQiPcDz zEim!{&$u)(W#Dr%?&tF`0vy8;JCYb=p%CFxD6tdf8jVppn(_z%Y-cgARh|@_Z=<`5c)X=lK+RMZ}TM~ zP9|b7TzA9a3*c97o@5kP_@p)nEdM5|oGiBC9d{vY{4*}YgC;%mannk5-m^|^IJWdMW$j+1 zIR6Cf9_x>F6ysIQpC{I>O{!`3LvO2IQpy6uLa;~XKT(X{kz>uIJ(;@)Hb0d_TcD`} zvY~|BX?fm{xG%S29Xa^X&-{txHIZ0=mO~t z=?O5=5Inb{U{hOF#bYaz1yB1&XCcC#taZ#}4ND;(po_gzde08TLbnr|HX5B~Bx@Bjb+ literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1_ptr-members.html b/dox-master/structttg__parsec_1_1_ptr-members.html new file mode 100644 index 000000000..58aa409ef --- /dev/null +++ b/dox-master/structttg__parsec_1_1_ptr-members.html @@ -0,0 +1,151 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::Ptr< T > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::Ptr< T >, including all inherited members.

    + + + + + + + + + + + + + + + +
    detail::get_copy(Ptr< S > &p)ttg_parsec::Ptr< T >friend
    get_ptr(S &&obj)ttg_parsec::Ptr< T >friend
    is_valid() constttg_parsec::Ptr< T >inline
    make_ptr(Args &&... args)ttg_parsec::Ptr< T >friend
    operator*() constttg_parsec::Ptr< T >inline
    operator->() constttg_parsec::Ptr< T >inline
    operator=(const Ptr &p)ttg_parsec::Ptr< T >inline
    operator=(Ptr &&p)=defaultttg_parsec::Ptr< T >
    Ptr()=defaultttg_parsec::Ptr< T >
    Ptr(const Ptr &p)ttg_parsec::Ptr< T >inline
    Ptr(Ptr &&p)=defaultttg_parsec::Ptr< T >
    reset()ttg_parsec::Ptr< T >inline
    value_type typedefttg_parsec::Ptr< T >
    ~Ptr()=defaultttg_parsec::Ptr< T >
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1_ptr.html b/dox-master/structttg__parsec_1_1_ptr.html new file mode 100644 index 000000000..0a81d35d8 --- /dev/null +++ b/dox-master/structttg__parsec_1_1_ptr.html @@ -0,0 +1,591 @@ + + + + + + + + + + + ttg: ttg_parsec::Ptr< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::Ptr< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg_parsec::Ptr< T >

    + + +

    Definition at line 138 of file ptr.h.

    +
    + + + +

    +Public Types

    using value_type = std::decay_t< T >
     
    + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     Ptr ()=default
     
     Ptr (const Ptr &p)
     
     Ptr (Ptr &&p)=default
     
     ~Ptr ()=default
     
    Ptroperator= (const Ptr &p)
     
    Ptroperator= (Ptr &&p)=default
     
    value_typeoperator* () const
     
    value_typeoperator-> () const
     
    bool is_valid () const
     
    void reset ()
     
    + + + + + + + + + + +

    +Friends

    template<typename... Args>
    Ptr< T > make_ptr (Args &&... args)
     
    template<typename S >
    Ptr< std::decay_t< S > > get_ptr (S &&obj)
     
    template<typename S >
    detail::ttg_data_copy_tdetail::get_copy (Ptr< S > &p)
     
    +

    Member Typedef Documentation

    + +

    ◆ value_type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg_parsec::Ptr< T >::value_type = std::decay_t<T>
    +
    + +

    Definition at line 140 of file ptr.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ Ptr() [1/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    ttg_parsec::Ptr< T >::Ptr ()
    +
    +default
    +
    + +
    +
    + +

    ◆ Ptr() [2/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::Ptr< T >::Ptr (const Ptr< T > & p)
    +
    +inline
    +
    + +

    Definition at line 169 of file ptr.h.

    + +
    +
    + +

    ◆ Ptr() [3/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::Ptr< T >::Ptr (Ptr< T > && p)
    +
    +default
    +
    + +
    +
    + +

    ◆ ~Ptr()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    ttg_parsec::Ptr< T >::~Ptr ()
    +
    +default
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ is_valid()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    bool ttg_parsec::Ptr< T >::is_valid (void ) const
    +
    +inline
    +
    + +

    Definition at line 192 of file ptr.h.

    + +
    +
    + +

    ◆ operator*()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    value_type& ttg_parsec::Ptr< T >::operator* () const
    +
    +inline
    +
    + +

    Definition at line 184 of file ptr.h.

    + +
    +
    + +

    ◆ operator->()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    value_type& ttg_parsec::Ptr< T >::operator-> () const
    +
    +inline
    +
    + +

    Definition at line 188 of file ptr.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    Ptr& ttg_parsec::Ptr< T >::operator= (const Ptr< T > & p)
    +
    +inline
    +
    + +

    Definition at line 177 of file ptr.h.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    Ptr& ttg_parsec::Ptr< T >::operator= (Ptr< T > && p)
    +
    +default
    +
    + +
    +
    + +

    ◆ reset()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    void ttg_parsec::Ptr< T >::reset ()
    +
    +inline
    +
    + +

    Definition at line 196 of file ptr.h.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ detail::get_copy

    + +
    +
    +
    +template<typename T >
    +
    +template<typename S >
    + + + + + +
    + + + + + + + + +
    detail::ttg_data_copy_t* detail::get_copy (Ptr< S > & p)
    +
    +friend
    +
    + +
    +
    + +

    ◆ get_ptr

    + +
    +
    +
    +template<typename T >
    +
    +template<typename S >
    + + + + + +
    + + + + + + + + +
    Ptr<std::decay_t<S> > get_ptr (S && obj)
    +
    +friend
    +
    + +
    +
    + +

    ◆ make_ptr

    + +
    +
    +
    +template<typename T >
    +
    +template<typename... Args>
    + + + + + +
    + + + + + + + + +
    Ptr<T> make_ptr (Args &&... args)
    +
    +friend
    +
    + +

    Definition at line 270 of file ptr.h.

    + +
    +
    +
    The documentation for this struct was generated from the following files: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1_t_t_value-members.html b/dox-master/structttg__parsec_1_1_t_t_value-members.html new file mode 100644 index 000000000..a49e37037 --- /dev/null +++ b/dox-master/structttg__parsec_1_1_t_t_value-members.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::TTValue< DerivedT > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::TTValue< DerivedT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_device_data(ttg_parsec_data_wrapper_t *data)ttg_parsec::detail::ttg_data_copy_tinline
    add_ref()ttg_parsec::detail::ttg_data_copy_tinline
    decrement_readers()ttg_parsec::detail::ttg_data_copy_tinline
    derived_type typedefttg_parsec::TTValue< DerivedT >
    drop_ref()ttg_parsec::detail::ttg_data_copy_tinline
    foreach_parsec_data(Fn &&fn)ttg_parsec::detail::ttg_data_copy_tinline
    foreach_wrapper(Fn &&fn)ttg_parsec::detail::ttg_data_copy_tinline
    get_derived()ttg_parsec::TTValue< DerivedT >inline
    get_derived() constttg_parsec::TTValue< DerivedT >inline
    get_next_task() constttg_parsec::detail::ttg_data_copy_tinline
    get_ptr() override finalttg_parsec::TTValue< DerivedT >inlinevirtual
    has_ref()ttg_parsec::detail::ttg_data_copy_tinline
    inc_current_version()ttg_parsec::detail::ttg_data_copy_tinline
    increment_readers()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_add(const ttg::iovec &iov)ttg_parsec::detail::ttg_data_copy_tinline
    iovec_begin()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_count() constttg_parsec::detail::ttg_data_copy_tinline
    iovec_end()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_iterator typedefttg_parsec::detail::ttg_data_copy_t
    iovec_reset()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_span()ttg_parsec::detail::ttg_data_copy_tinline
    is_mutable() constttg_parsec::detail::ttg_data_copy_tinline
    iterator typedefttg_parsec::detail::ttg_data_copy_t
    m_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    m_iovecsttg_parsec::detail::ttg_data_copy_tprotected
    m_next_taskttg_parsec::detail::ttg_data_copy_tprotected
    m_num_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    m_readersttg_parsec::detail::ttg_data_copy_tprotected
    m_refsttg_parsec::detail::ttg_data_copy_tprotected
    m_single_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    mark_mutable()ttg_parsec::detail::ttg_data_copy_tinline
    mutable_tagttg_parsec::detail::ttg_data_copy_tstatic
    num_dev_data() constttg_parsec::detail::ttg_data_copy_tinline
    num_readers() constttg_parsec::detail::ttg_data_copy_tinline
    num_ref() constttg_parsec::detail::ttg_data_copy_tinline
    operator=(const TTValue &v)ttg_parsec::TTValue< DerivedT >inline
    operator=(TTValue &&v)ttg_parsec::TTValue< DerivedT >inline
    ttg_parsec::detail::ttg_data_copy_t::operator=(ttg_data_copy_t &&c)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_parsec::detail::ttg_data_copy_t::operator=(const ttg_data_copy_t &c)ttg_parsec::detail::ttg_data_copy_tinline
    remove_device_data(ttg_parsec_data_wrapper_t *data)ttg_parsec::detail::ttg_data_copy_tinline
    reset_readers()ttg_parsec::detail::ttg_data_copy_tinline
    selfttg_parsec::detail::ttg_data_copy_self_t
    set_next_task(parsec_task_t *task)ttg_parsec::detail::ttg_data_copy_tinline
    superttg_parsec::detail::ttg_data_copy_self_t
    transfer_ownership(int access, int device=0)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_self_t(ttg_data_copy_t *dc)ttg_parsec::detail::ttg_data_copy_self_tinline
    ttg_data_copy_t()ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_t(const ttg_data_copy_t &c)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_t(ttg_data_copy_t &&c)ttg_parsec::detail::ttg_data_copy_tinline
    TTValue()ttg_parsec::TTValue< DerivedT >inline
    TTValue(const TTValue &v)ttg_parsec::TTValue< DerivedT >inline
    TTValue(TTValue &&v)ttg_parsec::TTValue< DerivedT >inline
    ~ttg_data_copy_t()=defaultttg_parsec::detail::ttg_data_copy_tvirtual
    ~TTValue()=defaultttg_parsec::TTValue< DerivedT >virtual
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1_t_t_value.html b/dox-master/structttg__parsec_1_1_t_t_value.html new file mode 100644 index 000000000..ecea1b1bc --- /dev/null +++ b/dox-master/structttg__parsec_1_1_t_t_value.html @@ -0,0 +1,574 @@ + + + + + + + + + + + ttg: ttg_parsec::TTValue< DerivedT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::TTValue< DerivedT > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::TTValue< DerivedT >:
    +
    +
    + + +ttg_parsec::detail::ttg_data_copy_container_setter< ttg_parsec::detail::ttg_data_copy_t > +ttg_parsec::detail::ttg_data_copy_t +ttg_parsec::detail::ttg_data_copy_self_t + +
    +

    Documentation

    +

    template<typename DerivedT>
    +struct ttg_parsec::TTValue< DerivedT >

    + +

    Base class for data to moved into, through, and out of a task graph. By inheriting from this base class, TTG is able to easily track the data and avoid some of the copies otherwise necessary.

    + +

    Definition at line 17 of file ttvalue.h.

    +
    + + + + + + + + +

    +Public Types

    using derived_type = std::decay_t< DerivedT >
     
    - Public Types inherited from ttg_parsec::detail::ttg_data_copy_t
    using iterator = ttg_parsec_data_wrapper_t **
     
    using iovec_iterator = typename std::vector< ttg::iovec >::iterator
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     TTValue ()
     
     TTValue (const TTValue &v)
     
     TTValue (TTValue &&v)
     
    virtual ~TTValue ()=default
     
    TTValueoperator= (const TTValue &v)
     
    TTValueoperator= (TTValue &&v)
     
    virtual void * get_ptr () override final
     
    derived_typeget_derived ()
     
    const derived_typeget_derived () const
     
    - Public Member Functions inherited from ttg_parsec::detail::ttg_data_copy_t
     ttg_data_copy_t ()
     
     ttg_data_copy_t (const ttg_data_copy_t &c)
     
     ttg_data_copy_t (ttg_data_copy_t &&c)
     
    ttg_data_copy_toperator= (ttg_data_copy_t &&c)
     
    ttg_data_copy_toperator= (const ttg_data_copy_t &c)
     
    virtual ~ttg_data_copy_t ()=default
     
    bool is_mutable () const
     
    void mark_mutable ()
     
    template<bool Atomic = true>
    int increment_readers ()
     
    void reset_readers ()
     
    template<bool Atomic = true>
    int decrement_readers ()
     
    int num_readers () const
     
    parsec_task_t * get_next_task () const
     
    void set_next_task (parsec_task_t *task)
     
    int32_t add_ref ()
     
    int32_t drop_ref ()
     
    bool has_ref ()
     
    int32_t num_ref () const
     
    void inc_current_version ()
     
    void transfer_ownership (int access, int device=0)
     
    void add_device_data (ttg_parsec_data_wrapper_t *data)
     
    void remove_device_data (ttg_parsec_data_wrapper_t *data)
     
    int num_dev_data () const
     
    template<typename Fn >
    void foreach_wrapper (Fn &&fn)
     
    template<typename Fn >
    void foreach_parsec_data (Fn &&fn)
     
    iovec_iterator iovec_begin ()
     
    iovec_iterator iovec_end ()
     
    void iovec_reset ()
     
    void iovec_add (const ttg::iovec &iov)
     
    ttg::span< ttg::ioveciovec_span ()
     
    std::size_t iovec_count () const
     
    - Public Member Functions inherited from ttg_parsec::detail::ttg_data_copy_self_t
     ttg_data_copy_self_t (ttg_data_copy_t *dc)
     
    + + + + + + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from ttg_parsec::detail::ttg_data_copy_self_t
    parsec_list_item_t super
     
    ttg_data_copy_tself
     
    - Static Public Attributes inherited from ttg_parsec::detail::ttg_data_copy_t
    static constexpr int mutable_tag = std::numeric_limits<int>::min()
     
    - Protected Attributes inherited from ttg_parsec::detail::ttg_data_copy_t
    parsec_task_t * m_next_task = nullptr
     
    int32_t m_readers = 1
     
    std::atomic< int32_t > m_refs = 1
     
    std::vector< ttg::iovecm_iovecs
     
    std::vector< ttg_parsec_data_wrapper_t * > m_dev_data
     
    ttg_parsec_data_wrapper_tm_single_dev_data
     
    int m_num_dev_data = 0
     
    +

    Member Typedef Documentation

    + +

    ◆ derived_type

    + +
    +
    +
    +template<typename DerivedT >
    + + + + +
    using ttg_parsec::TTValue< DerivedT >::derived_type = std::decay_t<DerivedT>
    +
    + +

    Definition at line 20 of file ttvalue.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ TTValue() [1/3]

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + +
    ttg_parsec::TTValue< DerivedT >::TTValue ()
    +
    +inline
    +
    + +

    Definition at line 23 of file ttvalue.h.

    + +
    +
    + +

    ◆ TTValue() [2/3]

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::TTValue< DerivedT >::TTValue (const TTValue< DerivedT > & v)
    +
    +inline
    +
    + +

    Definition at line 29 of file ttvalue.h.

    + +
    +
    + +

    ◆ TTValue() [3/3]

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::TTValue< DerivedT >::TTValue (TTValue< DerivedT > && v)
    +
    +inline
    +
    + +

    Definition at line 35 of file ttvalue.h.

    + +
    +
    + +

    ◆ ~TTValue()

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + +
    virtual ttg_parsec::TTValue< DerivedT >::~TTValue ()
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_derived() [1/2]

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + +
    derived_type& ttg_parsec::TTValue< DerivedT >::get_derived ()
    +
    +inline
    +
    + +

    Definition at line 61 of file ttvalue.h.

    + +
    +
    + +

    ◆ get_derived() [2/2]

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + +
    const derived_type& ttg_parsec::TTValue< DerivedT >::get_derived () const
    +
    +inline
    +
    + +

    Definition at line 65 of file ttvalue.h.

    + +
    +
    + +

    ◆ get_ptr()

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + +
    virtual void* ttg_parsec::TTValue< DerivedT >::get_ptr ()
    +
    +inlinefinaloverridevirtual
    +
    + +

    Implements ttg_parsec::detail::ttg_data_copy_t.

    + +

    Definition at line 57 of file ttvalue.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + + +
    TTValue& ttg_parsec::TTValue< DerivedT >::operator= (const TTValue< DerivedT > & v)
    +
    +inline
    +
    + +

    Definition at line 44 of file ttvalue.h.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<typename DerivedT >
    + + + + + +
    + + + + + + + + +
    TTValue& ttg_parsec::TTValue< DerivedT >::operator= (TTValue< DerivedT > && v)
    +
    +inline
    +
    + +

    Definition at line 51 of file ttvalue.h.

    + +
    +
    +
    The documentation for this struct was generated from the following files: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1_t_t_value.png b/dox-master/structttg__parsec_1_1_t_t_value.png new file mode 100644 index 0000000000000000000000000000000000000000..7e802428c9a3cab106df4ca13a808030962038b3 GIT binary patch literal 2298 zcmc&$c~nzZ9uA8oWkk?ghYBUoI@dFQ-)zxUmD@43J8 z-QV}S1wjEmMus~LQ7DwrAz#lB6iN?5a6VcOX(OE@e?vOcAiq#A7={rjomHmLJ4+C> z@pg1{Y$_PVAfISbNWftf@{{%v-4Fc|p$ZOpx`(FeD8>}26|LL6pVOkQ%)^)HlYtk` zo!@=X$*5LR81E)6^dKnzs(brn`Lxr+WmlCh0_#CT0AS`r17$TtKvY~~%qxHZK=EG* zUM=oeF$m(G4GCY!&n=%VsY?X_;Tjm(E`#Y19uthwoy}t+6S5gp zr;M~-7Gn=%B-5M6a9y6Mkkyr~Pe@-(S7J`*MG2sUlpC5D}}Cy{RKE!pS6= zYBfbl`T2VPgp&+D_Nyvzy3w|0a88qETktBV#XtJ_ zO4o@UfgqUb@su_`>#wf!d;R@*R^yD%t+C2w5DYX?vK`h#;qtJ3g88M>PQHNXy%GAn zN@WMv(~(SIU83fS*Lnv~stil*2ak`oAO za$<}NIo-Wn_dCM?pw=PEmL#^0iPQtb=H6=7hpQmSTu{sD4iqmn2=*^Bp28ZmmzqcA zfpL3AMXbF7`tpku+&}gjC$umO@%NM@4mmz!W=iAWoswK~UQte`v9;%%e?LRFVc(KD z*)+?XVtWtob1F>zjU2vt^C+O80%8hvfqmD;O=7zF-wyqm>M}(hGdb-|0=W4YpWhS3 zB?hM4P}XEEpl!xqC5FKR#~Z+5OoLp&A4^Mra=b0}Y;M%p%pQY}@(ADZRy74*m|-$S zE3e4n=5fU~TG7B7w)-&Lqn%`iq=PfOV{g{>_QHkbN0aiyTO(T5{i(#2F$g`WU!F{O zn5o1*2p76$dr-Y!Q>c)EVJ0BruN6U@6K&0#_-9&29<8Y@SzpUyuxyQ3)U_v_VW{yE z<9w;v;bL6CAO~FS;y{y8ME+9MSA|k_XS?cRdu)qZ$AZB@3;g6vh;u^_oXq<2Xlt#*1!ma`Uj1h-X zY$xZhy^#o$POBU$Ap9q!+c#LbVStj@bY$b~sS}H>PI z`j^e8(#r|9HSds4{A&YUyI1-;8C#X?{lOS$u^)F110^}%C7<$nO6x;>vU})Ft8u(j z8Aio63&uEq@HSCT`6gjWyR``&kGMt239{7hZN{>#?m+{k+U&kGdpD@=jKgX{)pBN^4?9@SkT1M%?vTu|DDeBdt#Rxd#x(ME$7Y&BR7|& zA+|%9-av6ys?=YMy8S8ZSMM}#Aa%FduBUqJ=L zfZ2WVF>MQ%Zqau1{}4eKo!)`e0xL&PF{PC}Vtk}eTXTZ%RYDJ(@d-j-`i_QA>+-^C z;iiHPzSe##Y6LydUswjQtN_h{8Np%7XjH^gqKn|_h~w7cCbePCguAwjP3MfJjmEbSW?;bI0k-$ozcx24+f zj!k@RQQci(qfGdIpK`7`<+HxOwKQc49_YiS3i}yheF3sJ;f)KyWb^{C4KMAr5_i~- zMKmoO?Dojn_k*cNLUH4J*rNWXTsZ$XlmAfR4@CNxoToJg6VdyJ!eMg;a#2AY@(S>* I_lW%NpP` + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::ParsecTTBase Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::ParsecTTBase, including all inherited members.

    + + + +
    selfttg_parsec::detail::ParsecTTBaseprotected
    tasks_tablettg_parsec::detail::ParsecTTBaseprotected
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base.html b/dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base.html new file mode 100644 index 000000000..fda9da3af --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base.html @@ -0,0 +1,213 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::ParsecTTBase Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::ParsecTTBase Struct Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::ParsecTTBase:
    +
    +
    + + +ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value >, Out< OutKey, Value > >, BinaryTreeReduce< Value, BinaryOp, OutKey >, ttg::typelist< Value, Value, Value > > +ttg_parsec::TT< int, std::tuple< Out< int, Value >, Out< int, Value >, Out< int, Value > >, BinaryTreeBroadcast< Value, int >, ttg::typelist< Value > > +ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs > +ttg::BinaryTreeReduce< Value, BinaryOp, OutKey > +ttg::BinaryTreeBroadcast< Value, OutKey > + +
    +

    Documentation

    +
    +

    Definition at line 1141 of file ttg.h.

    +
    + + + + + +

    +Protected Attributes

    parsec_hash_table_t tasks_table
     
    parsec_task_class_t self
     
    +

    Member Data Documentation

    + +

    ◆ self

    + +
    +
    + + + + + +
    + + + + +
    parsec_task_class_t ttg_parsec::detail::ParsecTTBase::self
    +
    +protected
    +
    + +

    Definition at line 1145 of file ttg.h.

    + +
    +
    + +

    ◆ tasks_table

    + +
    +
    + + + + + +
    + + + + +
    parsec_hash_table_t ttg_parsec::detail::ParsecTTBase::tasks_table
    +
    +protected
    +
    + +

    Definition at line 1144 of file ttg.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base.png b/dox-master/structttg__parsec_1_1detail_1_1_parsec_t_t_base.png new file mode 100644 index 0000000000000000000000000000000000000000..8066fdded2d8ac6dd3a3d1e49cbf124e3bef5273 GIT binary patch literal 6097 zcmeG=2~<d$aG^XOHLX zeQ!J3pOM?ExK~C-Mh^Pjsq?__8*u;go?XB-JI>7t7!EqxUOX)pi-Ftm$%RPtpT7Wi z(%-XZ&vxG)00EDCVCU^G$N(=%pzGB|JsBAVPw1&{FUEW@HOO%)HcAq^fo!9s8UWXOEZyP{{79a=l_5C6-jpmU_`C-9ba zjFI8zHa}euBsrCTVGr$dP}bDevefGCSg}wE$g%W@dU{Z4@7e>%^=;N( zd+Z-)N)WfHtX_D1VK{;_%zrdGKNH4jpLbjwU|gWQ5Sgbe`l1VQ&5v2;Ul`=Rp-udd zxZxatZ+L>J`|Hpud#4|AKb3e60E<4iZjom=*BlD4_a&I39T??|f?odg{iIv*6Q)1D zqa)GxKi>`gaRs;n|Dtz8={M_ImRuW(Rit*_yu1mt*oFo0*tnROzi-BYbR^Et&dO|f z)cW8tKFoRV9sVqA2c35-N*3KO*hydqHOrx08$R?GgD7UdB%uEqW=D21zjIOayG4-$ z&v!LGx3VyIG&k?uaU1`Egcn!;Pb6$6=qCeuc>}>&zrWsWzjURBF)1nxWOro4o3@6f zDXC&TBc!OO=z;_9OCySsit#ezR2FaKQ(l!dQw%R0Ksh^#)H8<#Y|6eya5a=qN+$5eq z4AbA7>uqIse}jW+^o>t)IYL_uIETGQtA?loVQR#jmPgu$U zQz{ZtDxy|}T<#ze_LV}*I6gfva57IQw{P5wPx3)9qNh&?=D*Lue(o^{B8Ch5=ewtH;XV+&ku$n%doF1f{Qs#@~)XNtsuTLdW|P zYkjQ5_~a}wl4|^8`#juy)kCwUFprH&BGNwhRn-v>G56?LxLveNZ*77vugwcPM_K)O zgW5sn5jI#wx#`%aEAjz zJIWJ;fBkHPN#qTM=}gtoK?YcO4gpnErO3kr$F&uv^A^KnJ*GNYS%}`oh%~Voa$3C5 z_C&AK99kxeVnc5cEwq~8 z!B}PNq-!WAI_WA&-yKQTQedYv*VI6i%ZO3pN4KxqPH>(E=y@cR!)vGv7k*d%6F&pO zi(o$K2EsXddPFckac}VPH9Zy_F~&e7v~?Y|%ucZaI7QQc9&kQ|u+ekVOkLn05bUzZ zc$#MHDoKrk=Gk<74UKwZW))2W=@`y7Iyyt+>#H&9`%uZ{JyYeYya`9*^b2QSVZcI# z>*AFpg_~F)Dg-A|4$pU68Y%OOU6^$l?~1*hSFFjh_i0vA+xpt|;FQJ?p#Up3tdI%97U2CBKy z!#OUzz63iAh=m2*a`IVp;`BtIAUx88ToT{X0R$z3sIk9qFGeY42zYjjt*W+x}CTP=i zDI0s#4SW5(Yrd?ux+lLpW<|MQ9~$L($ZA|H8y>@^DGXjSsQXm~0l)gt)XmbThx3YcM4WWH z#BRd>B`O0?B(W4--R_`NBNX8-PxaEG$5x4aGlSYzde#hQdC+C>cr&5?vARQ+CS|g2 zj)CxL1IIRQZ4!Evx1!<$LS+gp`((wJorBZBGf!V;fQ7%9mD~YW_sX)3Y}&!qZILX&*|C{iu&|`Rb{X?+ z68%Qn`T;2TEXvX%6Vpl+Tz?dq4yF)!Txq~(Sw;79i>=_RJ%sVO`uc1jsL9=z6Wi&0 zyk7kwChtk;G@ttslh?K8?5aw+gQY^4tWt{s4J5>r{9J& z^he*_2Mcc~-mBePOUSW>`m$HbdrW~tAX<1y>cOkIwUzrYqa9sJYsU)#{)xfMKs^HF zCo2aP4nK*>h)yVTy9ni#2d~~mEaRTyn6hect5nnr3%Iae$=6u9Wj*jS!D*xLwZ1cR zjK^RogdLqP33b4mN)y&*@vogvVnm1UAKpwxTowOMq(j&4>IQ7Uweos~{p&r_un<;_n@=C3E=Qg(Lz_gtC%KN*Q) z0r<}r``^;dZ1JXpHId^FdEHf%c4W8y`VB2WQR;n7&5|0jLHX`R;tpglO@4}-MS@#v zhqPicJh4$8JivG>-3MZQy%>qswUHKOJ+0qu6d`9Z!FRVxhJi*+Npbg^=ZPa5<;pQ= zrS4W?60T6bUQ4z84;CLa%E+OC*%5K3?%Jx9BDN{50^@y+^{17PUBg;5B|EFE5>So^tqh?LmHrlJzzCs~B-&#pJGS$L_yMR^xc95f54hJA4Wa!C&21UwD+<9kg%JZwAyBBtoeVnY0LKl70rB(7DnUZRd z+yFDB5qw!}%=L1b4sz^tIkJVwjigRFoXB)7hLY#sS`d|7UQ#MHZ<{Asr?Vy z>_0NPz7MaW&RmV_67gQOWV7*_S*=HbZ5wRa12_)_#7j`GD5?M3rSd;%-cru}-s9Yy zpp4RPDHNken!Vci%)(-a#w4UdKHIRcASsZRKrIX(=k-kYj2&OLY@0D|Zwz&<4WAA$ zWH)wdtKlT;(AU?oP)}2Lsj)4II8^WbjICFkn+lFUvE3<|o~Ajpl+y~V=9VN49RnJ2 zzZP38pG^JSSM2L$SNJVWnGmSm-&!bI6H#|*A^Q8$TI7Anb8#4nB_gDjILySJk04ri zJxpcmfT&U@YJ1O#U~4lM^)(2qX6~^MW7ld+3<4qCWl`wRFuVt)LhRElt~Vpo30?}$ zQ|t?_RN=gmj#`F9ioPvvAvmT*z9w_`r1sEm+ZJ|!Jqil>LZ%q$K`k8Nbnu05VXKZ| z%L0)ge{GoA(j3bf?teVn-txV6v%1A4H~$D6FBr&eTn#NfOx7l_=TgWCLuY{cU!*39 zT;xlm2c0G==~(K`uuCyZsiW|r3>P^(xHsQL`rV?z*IM$f_65wq+p#-P-cKRQg1n(Q zuBF|IJ6RWqW5_j$2RSUysi%2I83IAT*bxNrwz5!Ojw@G{;=DXAl4pwj`vl9$5^a7d zU7i~H-9vDBIbf(2!|jIh@WvH@s~bueFrzAEV}hF>i|3gV9Ti&xA3N4^$f-c$o(s%E z(zfe<{VT{nx~Z&x^7xnRXzxyT;FSN1!yP!+>%}r5ufpFZI(^6mzQ4;rPurg=JL!4r FKLBvLKZgJS literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1detail_1_1device__ptr__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1device__ptr__t-members.html new file mode 100644 index 000000000..ce953b150 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1device__ptr__t-members.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::device_ptr_t Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1device__ptr__t.html b/dox-master/structttg__parsec_1_1detail_1_1device__ptr__t.html new file mode 100644 index 000000000..2d0a47456 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1device__ptr__t.html @@ -0,0 +1,238 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::device_ptr_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::device_ptr_t Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 13 of file task.h.

    +
    + + + + + + + + + + + +

    +Public Attributes

    parsec_gpu_task_t * gpu_task = nullptr
     
    parsec_flow_t * flows = nullptr
     
    parsec_gpu_exec_stream_t * stream = nullptr
     
    parsec_device_gpu_module_t * device = nullptr
     
    parsec_task_class_t task_class
     
    +

    Member Data Documentation

    + +

    ◆ device

    + +
    +
    + + + + +
    parsec_device_gpu_module_t* ttg_parsec::detail::device_ptr_t::device = nullptr
    +
    + +

    Definition at line 17 of file task.h.

    + +
    +
    + +

    ◆ flows

    + +
    +
    + + + + +
    parsec_flow_t* ttg_parsec::detail::device_ptr_t::flows = nullptr
    +
    + +

    Definition at line 15 of file task.h.

    + +
    +
    + +

    ◆ gpu_task

    + +
    +
    + + + + +
    parsec_gpu_task_t* ttg_parsec::detail::device_ptr_t::gpu_task = nullptr
    +
    + +

    Definition at line 14 of file task.h.

    + +
    +
    + +

    ◆ stream

    + +
    +
    + + + + +
    parsec_gpu_exec_stream_t* ttg_parsec::detail::device_ptr_t::stream = nullptr
    +
    + +

    Definition at line 16 of file task.h.

    + +
    +
    + +

    ◆ task_class

    + +
    +
    + + + + +
    parsec_task_class_t ttg_parsec::detail::device_ptr_t::task_class
    +
    + +

    Definition at line 18 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1device__state__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1device__state__t-members.html new file mode 100644 index 000000000..517dc1949 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1device__state__t-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::device_state_t< SupportDevice > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1device__state__t.html b/dox-master/structttg__parsec_1_1detail_1_1device__state__t.html new file mode 100644 index 000000000..3d9625fa9 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1device__state__t.html @@ -0,0 +1,279 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::device_state_t< SupportDevice > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::device_state_t< SupportDevice > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<bool SupportDevice>
    +struct ttg_parsec::detail::device_state_t< SupportDevice >

    + + +

    Definition at line 22 of file task.h.

    +
    + + + +

    +Public Member Functions

     device_state_t ()
     
    + + + +

    +Static Public Member Functions

    static constexpr device_ptr_tdev_ptr ()
     
    + + + + + +

    +Static Public Attributes

    static constexpr bool support_device = false
     
    static constexpr size_t num_flows = 0
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ device_state_t()

    + +
    +
    +
    +template<bool SupportDevice>
    + + + + + +
    + + + + + + + +
    ttg_parsec::detail::device_state_t< SupportDevice >::device_state_t ()
    +
    +inline
    +
    + +

    Definition at line 26 of file task.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ dev_ptr()

    + +
    +
    +
    +template<bool SupportDevice>
    + + + + + +
    + + + + + + + +
    static constexpr device_ptr_t* ttg_parsec::detail::device_state_t< SupportDevice >::dev_ptr ()
    +
    +inlinestaticconstexpr
    +
    + +

    Definition at line 28 of file task.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ num_flows

    + +
    +
    +
    +template<bool SupportDevice>
    + + + + + +
    + + + + +
    constexpr size_t ttg_parsec::detail::device_state_t< SupportDevice >::num_flows = 0
    +
    +staticconstexpr
    +
    + +

    Definition at line 25 of file task.h.

    + +
    +
    + +

    ◆ support_device

    + +
    +
    +
    +template<bool SupportDevice>
    + + + + + +
    + + + + +
    constexpr bool ttg_parsec::detail::device_state_t< SupportDevice >::support_device = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 24 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4-members.html b/dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4-members.html new file mode 100644 index 000000000..75454d3e5 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4-members.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::device_state_t< true > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html b/dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html new file mode 100644 index 000000000..4dc82031e --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1device__state__t_3_01true_01_4.html @@ -0,0 +1,274 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::device_state_t< true > Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::device_state_t< true > Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 34 of file task.h.

    +
    + + + +

    +Public Member Functions

    device_ptr_tdev_ptr ()
     
    + + + + + +

    +Public Attributes

    parsec_flow_t m_flows [num_flows]
     
    device_ptr_t m_dev_ptr = {nullptr, &m_flows[0], nullptr, nullptr}
     
    + + + + + +

    +Static Public Attributes

    static constexpr bool support_device = false
     
    static constexpr size_t num_flows = MAX_PARAM_COUNT
     
    +

    Member Function Documentation

    + +

    ◆ dev_ptr()

    + +
    +
    + + + + + +
    + + + + + + + +
    device_ptr_t* ttg_parsec::detail::device_state_t< true >::dev_ptr ()
    +
    +inline
    +
    + +

    Definition at line 39 of file task.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_dev_ptr

    + +
    +
    + + + + +
    device_ptr_t ttg_parsec::detail::device_state_t< true >::m_dev_ptr = {nullptr, &m_flows[0], nullptr, nullptr}
    +
    + +

    Definition at line 38 of file task.h.

    + +
    +
    + +

    ◆ m_flows

    + +
    +
    + + + + +
    parsec_flow_t ttg_parsec::detail::device_state_t< true >::m_flows[num_flows]
    +
    + +

    Definition at line 37 of file task.h.

    + +
    +
    + +

    ◆ num_flows

    + +
    +
    + + + + + +
    + + + + +
    constexpr size_t ttg_parsec::detail::device_state_t< true >::num_flows = MAX_PARAM_COUNT
    +
    +staticconstexpr
    +
    + +

    Definition at line 36 of file task.h.

    + +
    +
    + +

    ◆ support_device

    + +
    +
    + + + + + +
    + + + + +
    constexpr bool ttg_parsec::detail::device_state_t< true >::support_device = false
    +
    +staticconstexpr
    +
    + +

    Definition at line 35 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base.html b/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base.html new file mode 100644 index 000000000..73252cd69 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::is_ttvalue_base< T, Enabler > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::is_ttvalue_base< T, Enabler > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::is_ttvalue_base< T, Enabler >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T, typename Enabler = void>
    +struct ttg_parsec::detail::is_ttvalue_base< T, Enabler >

    + + +

    Definition at line 73 of file ttvalue.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base.png b/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base.png new file mode 100644 index 0000000000000000000000000000000000000000..0dade49fbc9570c5f7c6ab8f4a6d5e06b48e4baf GIT binary patch literal 910 zcmeAS@N?(olHy`uVBq!ia0y~yV3Yx}12~w0_A32ZcJG-jXaAd2B6oe-)wpwO{a$?zN==T{m3#)&ba_XS zY*vhp8C!pCj%Lbn(mXBg8Ecg?>w0?Q#CD(n?e7G zv;)(INkt6b_Uv6M+n}q-o^bxG?=8j~6N?y}f_NPqPBC(LSTZnbvMVS&Wnft%)6g)5 zSztmD15*$m1(FB4PZ}C~pE(m|(7=+QhHCJvIk)%!zkcQZgLSvg+8oNepwZRu8oqtz zOU4I%c9{(wpP$Mc{ZM1+eYke}`I9S~?%u20z3;xr*YETH2>0}Y4}P}g=Jl7qBHGjb#lL?wFYyikbj#h_dmq1R`Z)3D zipDw<%YDB;b$w&{zAW-wh_o{k-@+WPq?wEAUvKM~=Ggz_%-Ulsj&1iV%JS5?t8TfD z#ZGa#PNwbLc1CeaXPvKFTC44n&i;7$xi8e1{qo}(UfNo#HCIe~d-#c(t^7pelckj# z&(67fUD8U&`sRi=Ih*q3d$J3sSSBX@zF{}bl0Exe;ywBGmbbOC&EIZ`-ZyW{vkL9k zvo^1gd}?#a_|Do}HrMX13ca}F`INh>%4C#gn(ZiTTDrGBRN##D?ofZN{m-sAUc1Y6 zVDrs`i}D#h)K<8?nLK9`lgQoWCs#5v>^Yu(%kKKwNtVHC%zxtieE1vQ`=UndmfG8A ebY}kh$H42d)>H1yJWpWeVeoYIb6Mw<&;$UfnW$I* literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.html b/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.html new file mode 100644 index 000000000..e14355e44 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >:
    +
    +
    + +
    +

    Documentation

    +

    template<typename T>
    +struct ttg_parsec::detail::is_ttvalue_base< T, std::is_base_of< TTValue< std::decay_t< T > >, std::decay_t< T > > >

    + + +

    Definition at line 76 of file ttvalue.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.png b/dox-master/structttg__parsec_1_1detail_1_1is__ttvalue__base_3_01_t_00_01std_1_1is__base__of_3_01_t_t_value_6d3aa991efc6cbb2e8250bf7d4769adb.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6a29923d7bb31bec61a37afdc0d934f3a2c8e1 GIT binary patch literal 1370 zcmeAS@N?(olHy`uVBq!ia0y~yV9E!w12~w0WJPq+Yak^N;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|!1B`5#WAFU@$KB((;ivzuzKrn{{O$9 zpVzZyGP93xaoSqn-BKKVx~D~dPVL|j7EDx9(rcTbqU`B5N$==B&q))Ph~6;wG@7)9 z>9-nCEG*%^%1Mt)TyJKpEY0b({8T(kBRz1^yyW{Tnn2Z;+BfD;x+1)N$&ttR6E8jf z{rCOC>wlfTJ}&$F?P1;Cf02`VY9}vgnc%g0|C{@L>+kBm<<+a2bS3G&%F4$RC&kTL zyw3Kc?r*57-+@2QY@dHULg@2+)ssLcczN<2U9xYhs^K$x?@2&wOoW0mXXe|Bw|_4A zt{WH%HoE6{YxGd+lw5 z-}@Kt3*8Jv>f-`wlF_<8C6 z9UtRonXS!l4^Z7?l^VMJ+uA#~Vw6ur2jAax@m1yKgj*+Wt!TW&veUpnaR>45vcs&9Fo zuX$a4HPEz`L*wm>8+J=8KfHXfIR9qJW80TeZM9xX(wAqH+Qk33vtzwav~7z1k8c)P zt7G1`=Rb@7`SM3eQBUsnw^w)HU7UN*W`>aacNX>Mne*CadS?_D}vbO<$KY z#p;Lk*S8fVY1xulXFV65^qc-qvU2~v+SFTH`u?id%g>(@JJ9mECB{rQV7uGhgW(PJQ|c|t8s@~Wd1cP|GsejJ z{?D`K~&|7Kx0U$OlCZOJOTANPIv3mB^}?$lFcVBSANEF(%kw7dnFH~urn-|F}G yt4 + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::msg_t Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::msg_t, including all inherited members.

    + + + + + + +
    bytesttg_parsec::detail::msg_t
    max_payload_sizettg_parsec::detail::msg_tstatic
    msg_t()=defaultttg_parsec::detail::msg_t
    msg_t(uint64_t tt_id, uint32_t taskpool_id, msg_header_t::fn_id_t fn_id, int32_t param_id, int sender, int num_keys=1)ttg_parsec::detail::msg_tinline
    tt_idttg_parsec::detail::msg_t
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1msg__t.html b/dox-master/structttg__parsec_1_1detail_1_1msg__t.html new file mode 100644 index 000000000..e9cefa37c --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1msg__t.html @@ -0,0 +1,310 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::msg_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::msg_t Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 174 of file ttg.h.

    +
    + + + + + +

    +Public Member Functions

     msg_t ()=default
     
     msg_t (uint64_t tt_id, uint32_t taskpool_id, msg_header_t::fn_id_t fn_id, int32_t param_id, int sender, int num_keys=1)
     
    + + + + + +

    +Public Attributes

    msg_header_t tt_id
     
    unsigned char bytes [max_payload_size]
     
    + + + +

    +Static Public Attributes

    static constexpr std::size_t max_payload_size = PARSEC_TTG_MAX_AM_SIZE - sizeof(msg_header_t)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ msg_t() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg_parsec::detail::msg_t::msg_t ()
    +
    +default
    +
    + +
    +
    + +

    ◆ msg_t() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::msg_t::msg_t (uint64_t tt_id,
    uint32_t taskpool_id,
    msg_header_t::fn_id_t fn_id,
    int32_t param_id,
    int sender,
    int num_keys = 1 
    )
    +
    +inline
    +
    + +

    Definition at line 180 of file ttg.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ bytes

    + +
    +
    + + + + +
    unsigned char ttg_parsec::detail::msg_t::bytes[max_payload_size]
    +
    + +

    Definition at line 177 of file ttg.h.

    + +
    +
    + +

    ◆ max_payload_size

    + +
    +
    + + + + + +
    + + + + +
    constexpr std::size_t ttg_parsec::detail::msg_t::max_payload_size = PARSEC_TTG_MAX_AM_SIZE - sizeof(msg_header_t)
    +
    +staticconstexpr
    +
    + +

    Definition at line 176 of file ttg.h.

    + +
    +
    + +

    ◆ tt_id

    + +
    +
    + + + + +
    msg_header_t ttg_parsec::detail::msg_t::tt_id
    +
    + +

    Definition at line 175 of file ttg.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t-members.html new file mode 100644 index 000000000..f8492b801 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t-members.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::parsec_ttg_task_base_t Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::parsec_ttg_task_base_t, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + +
    copiesttg_parsec::detail::parsec_ttg_task_base_t
    data_countttg_parsec::detail::parsec_ttg_task_base_t
    data_flagsttg_parsec::detail::parsec_ttg_task_base_t
    defer_writerttg_parsec::detail::parsec_ttg_task_base_t
    dev_ptrttg_parsec::detail::parsec_ttg_task_base_t
    dummyttg_parsec::detail::parsec_ttg_task_base_t
    in_data_countttg_parsec::detail::parsec_ttg_task_base_t
    init_stream_info(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    init_stream_info_impl(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    is_dummy()ttg_parsec::detail::parsec_ttg_task_base_tinline
    parsec_taskttg_parsec::detail::parsec_ttg_task_base_t
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    release_task()ttg_parsec::detail::parsec_ttg_task_base_tinline
    release_task_cbttg_parsec::detail::parsec_ttg_task_base_t
    release_task_fn typedefttg_parsec::detail::parsec_ttg_task_base_t
    remove_from_hashttg_parsec::detail::parsec_ttg_task_base_t
    set_dummy(bool d)ttg_parsec::detail::parsec_ttg_task_base_tinline
    tt_ht_itemttg_parsec::detail::parsec_ttg_task_base_t
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html new file mode 100644 index 000000000..253e38902 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.html @@ -0,0 +1,705 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::parsec_ttg_task_base_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::parsec_ttg_task_base_t Struct Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::parsec_ttg_task_base_t:
    +
    +
    + + +ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid > +ttg_parsec::detail::parsec_ttg_task_t< TT, true > +ttg_parsec::detail::reducer_task_t + +
    +

    Documentation

    +
    +

    Definition at line 89 of file task.h.

    +
    + + + +

    +Classes

    struct  stream_info_t
     
    + + + +

    +Public Types

    typedef void() release_task_fn(parsec_ttg_task_base_t *)
     
    + + + + + + + +

    +Public Member Functions

    void release_task ()
     
    void set_dummy (bool d)
     
    bool is_dummy ()
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    parsec_task_t parsec_task
     
    int32_t in_data_count = 0
     
    int32_t data_count = 0
     
    ttg_data_copy_t ** copies
     
    parsec_hash_table_item_t tt_ht_item = {}
     
    release_task_fnrelease_task_cb = nullptr
     
    device_ptr_tdev_ptr = nullptr
     
    bool remove_from_hash = true
     
    bool dummy = false
     
    bool defer_writer = TTG_PARSEC_DEFER_WRITER
     
    ttg_parsec_data_flags data_flags
     
    + + + + + + + + + + + +

    +Protected Member Functions

    template<std::size_t i = 0, typename TT >
    void init_stream_info_impl (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
    template<typename TT >
    void init_stream_info (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
    +

    Member Typedef Documentation

    + +

    ◆ release_task_fn

    + +
    +
    + + + + +
    typedef void() ttg_parsec::detail::parsec_ttg_task_base_t::release_task_fn(parsec_ttg_task_base_t *)
    +
    + +

    Definition at line 126 of file task.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ parsec_ttg_task_base_t() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::parsec_ttg_task_base_t::parsec_ttg_task_base_t (parsec_thread_mempool_t * mempool,
    parsec_task_class_t * task_class,
    int data_count,
    ttg_data_copy_t ** copies,
    bool defer_writer = TTG_PARSEC_DEFER_WRITER 
    )
    +
    +inlineprotected
    +
    +

    Protected constructors: this class should not be instantiated directly but always be use through parsec_ttg_task_t.

    + +

    Definition at line 152 of file task.h.

    + +
    +
    + +

    ◆ parsec_ttg_task_base_t() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::parsec_ttg_task_base_t::parsec_ttg_task_base_t (parsec_thread_mempool_t * mempool,
    parsec_task_class_t * task_class,
    parsec_taskpool_t * taskpool,
    int32_t priority,
    int data_count,
    ttg_data_copy_t ** copies,
    release_task_fnrelease_fn,
    bool defer_writer = TTG_PARSEC_DEFER_WRITER 
    )
    +
    +inlineprotected
    +
    + +

    Definition at line 168 of file task.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ init_stream_info()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::parsec_ttg_task_base_t::init_stream_info (TTtt,
    std::array< stream_info_t, TT::numins > & streams 
    )
    +
    +inlineprotected
    +
    + +

    Definition at line 121 of file task.h.

    + +
    +
    + +

    ◆ init_stream_info_impl()

    + +
    +
    +
    +template<std::size_t i = 0, typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::parsec_ttg_task_base_t::init_stream_info_impl (TTtt,
    std::array< stream_info_t, TT::numins > & streams 
    )
    +
    +inlineprotected
    +
    + +

    Definition at line 105 of file task.h.

    + +
    +
    + +

    ◆ is_dummy()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg_parsec::detail::parsec_ttg_task_base_t::is_dummy ()
    +
    +inline
    +
    + +

    Definition at line 192 of file task.h.

    + +
    +
    + +

    ◆ release_task()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::detail::parsec_ttg_task_base_t::release_task ()
    +
    +inline
    +
    + +

    Definition at line 142 of file task.h.

    + +
    +
    + +

    ◆ set_dummy()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::parsec_ttg_task_base_t::set_dummy (bool d)
    +
    +inline
    +
    + +

    Definition at line 191 of file task.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ copies

    + +
    +
    + + + + +
    ttg_data_copy_t** ttg_parsec::detail::parsec_ttg_task_base_t::copies
    +
    + +

    Definition at line 93 of file task.h.

    + +
    +
    + +

    ◆ data_count

    + +
    +
    + + + + +
    int32_t ttg_parsec::detail::parsec_ttg_task_base_t::data_count = 0
    +
    + +

    Definition at line 92 of file task.h.

    + +
    +
    + +

    ◆ data_flags

    + +
    +
    + + + + +
    ttg_parsec_data_flags ttg_parsec::detail::parsec_ttg_task_base_t::data_flags
    +
    + +

    Definition at line 136 of file task.h.

    + +
    +
    + +

    ◆ defer_writer

    + +
    +
    + + + + +
    bool ttg_parsec::detail::parsec_ttg_task_base_t::defer_writer = TTG_PARSEC_DEFER_WRITER
    +
    + +

    Definition at line 135 of file task.h.

    + +
    +
    + +

    ◆ dev_ptr

    + +
    +
    + + + + +
    device_ptr_t* ttg_parsec::detail::parsec_ttg_task_base_t::dev_ptr = nullptr
    +
    + +

    Definition at line 132 of file task.h.

    + +
    +
    + +

    ◆ dummy

    + +
    +
    + + + + +
    bool ttg_parsec::detail::parsec_ttg_task_base_t::dummy = false
    +
    + +

    Definition at line 134 of file task.h.

    + +
    +
    + +

    ◆ in_data_count

    + +
    +
    + + + + +
    int32_t ttg_parsec::detail::parsec_ttg_task_base_t::in_data_count = 0
    +
    + +

    Definition at line 91 of file task.h.

    + +
    +
    + +

    ◆ parsec_task

    + +
    +
    + + + + +
    parsec_task_t ttg_parsec::detail::parsec_ttg_task_base_t::parsec_task
    +
    + +

    Definition at line 90 of file task.h.

    + +
    +
    + +

    ◆ release_task_cb

    + +
    +
    + + + + +
    release_task_fn* ttg_parsec::detail::parsec_ttg_task_base_t::release_task_cb = nullptr
    +
    + +

    Definition at line 131 of file task.h.

    + +
    +
    + +

    ◆ remove_from_hash

    + +
    +
    + + + + +
    bool ttg_parsec::detail::parsec_ttg_task_base_t::remove_from_hash = true
    +
    + +

    Definition at line 133 of file task.h.

    + +
    +
    + +

    ◆ tt_ht_item

    + +
    +
    + + + + +
    parsec_hash_table_item_t ttg_parsec::detail::parsec_ttg_task_base_t::tt_ht_item = {}
    +
    + +

    Definition at line 94 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.png b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t.png new file mode 100644 index 0000000000000000000000000000000000000000..538d73b68498d6085a68d797d799e249b6530d57 GIT binary patch literal 1918 zcmb_deN<9u8W$VamQ2k|tW0Md9Aq1##v;(fu{63?NT}O1qKsp!tBHc>j3|UnYCq&+k3I-*caj z^So~nk$~R_-3GO>vDpY52_@OstW$$Fas4`QwQoWAgCBR|v8XVs)e4%==a;g0U0;LN z+N)Bj?20D5K)61WM2NHjNvqFLZ`4PidLs}T5|s_nKhkGN0vs;>s80M~nbRYtDt5o; zH)X8HM&~1(6E@tarM|sro8z7z@0%a*j$UWyN_#h&d%b|<2*s2)hK(FT+S_>?AM&2B zDLrpn+>o-#NbC)P;3K8$bA4y3^J-5~xat1p4a=T2vazk%$uq3#H*c31=vfHp$X%&Y zn|GYpm2Yd=`_D6Ulc`g*eW${SJ<++ca&`Astf=`t+?BX4vT_?L4cbc768pRvc4wl^l%&>wx05=YH2K0EzsZaa$F?J$-QtJ08i3ddi*f7B`MP#3gUO;r6j zPct+d!pM}nf%Ugf4j+$;!>#C z{Ud*w)z+CS{UF~&mVcMR8q4S0LfsxN<<{iYjuNHmvHH}j$^D|Y{*`#t@Nmia>|EKR zwr>RAv|Mto=fTzBcFuG+`*~`N!!GX+fd^l4yZ^opZiYz_0~h3 zOe&YQENf2eQsB-aeX^$pDt0DSW7kqoZB{o7a`33hr#O@2+D?>TmuEN@6gIlWJJoxD zh5X+gO?1z%0h>SK;7a@$!mF&#vxR2w0lj<-LEW2;Lg#}p=vP=#)YrYbj|Zdlo!WU zkRaA&1_&MBfsPzYwilKbJ^+f=n|<}w0+&qz$W8HH^*b_2-Uksr-t)CL&lAE!pVx(6 zV3&TeN(0%~d0I!1Rs*t)C&ofR8p!U#g$J(EK=ug!|Ks$hzA%rw^c87kH{FBd=cB_E zCm{Z_cEgeU)9(-19^-ohXp;8_0AfZ5AH{F^j1NZgyU>1^lNX+!N#i{r>m538X5b#I zq@_FF*^NzeNixMcj{+=9~6 zKW9$&Y=KtC<Eo*kHM3Qo+V0glR+6|Mhmv2Ao!!^_+w5&- zm-ma8zM#+T>&kjwJ|v|)UWkYuCFXJPLyW>j$-*BIJusG-YrQ-%?0izztX_0BRH+Z2 z6P(^GiDTv7d9hQ9B{WFIW^Lk!hgQe5J55sRsUujwig_sNFiobxw3Yrx<6YQUD9iT7 z`~Jc~8vnq*?Q;xHeLa-a$=k$gZbz5Z|ox$E8giyE!B`&6~nVStFZAnlhVbWo#s5%r3=jH zl|l6Y{yP^8kn_p3Zgf(c7I0J`+AF)fdLqm>!0zhx+rAu_Tz=LWxY-2HB65A{p6CA@?!kw7qgZNi3<}tow9cBNzd{H!4rmJ zSZzJ{@=T$TDn_w`_7zc`F#wv*Fp$nKJcjd+@#GMtPl-6hc=&Nt9)~alKXtpc-6Xmv zge(7cjjPH1*LbtRf^D2^=260tfT!v8Q{J^~HpCJZEjYa~cuMDWB@lS1MbY@Io=({Q z6CC`osS0+SA7-?tQ1Untpg(oQYn`Yp5IDP)0Yd;KaLVFlyQ^@{C6_%w01}4i!8O_l z>IA + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html new file mode 100644 index 000000000..bf49eebb9 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__base__t_1_1stream__info__t.html @@ -0,0 +1,220 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 96 of file task.h.

    +
    + + + + + + + + + +

    +Public Attributes

    std::size_t goal
     
    std::size_t size
     
    parsec_lifo_t reduce_copies
     
    std::atomic< std::size_t > reduce_count
     
    +

    Member Data Documentation

    + +

    ◆ goal

    + +
    +
    + + + + +
    std::size_t ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t::goal
    +
    + +

    Definition at line 97 of file task.h.

    + +
    +
    + +

    ◆ reduce_copies

    + +
    +
    + + + + +
    parsec_lifo_t ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t::reduce_copies
    +
    + +

    Definition at line 99 of file task.h.

    + +
    +
    + +

    ◆ reduce_count

    + +
    +
    + + + + +
    std::atomic<std::size_t> ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t::reduce_count
    +
    + +

    Definition at line 100 of file task.h.

    + +
    +
    + +

    ◆ size

    + +
    +
    + + + + +
    std::size_t ttg_parsec::detail::parsec_ttg_task_base_t::stream_info_t::size
    +
    + +

    Definition at line 98 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t-members.html new file mode 100644 index 000000000..66332cfcf --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t-members.html @@ -0,0 +1,169 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    copiesttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >
    data_countttg_parsec::detail::parsec_ttg_task_base_t
    data_flagsttg_parsec::detail::parsec_ttg_task_base_t
    defer_writerttg_parsec::detail::parsec_ttg_task_base_t
    dev_ptrttg_parsec::detail::parsec_ttg_task_base_t
    dev_statettg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >
    dummyttg_parsec::detail::parsec_ttg_task_base_t
    in_data_countttg_parsec::detail::parsec_ttg_task_base_t
    init_stream_info(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    init_stream_info_impl(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    invoke_evaluate()ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >inline
    invoke_op()ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >inline
    is_dummy()ttg_parsec::detail::parsec_ttg_task_base_tinline
    keyttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >
    key_type typedefttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >
    num_copiesttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >static
    num_streamsttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >static
    parsec_taskttg_parsec::detail::parsec_ttg_task_base_t
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >inline
    parsec_ttg_task_t(const key_type &key, parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >inline
    pkey()ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >inline
    release_task(parsec_ttg_task_base_t *task_base)ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >inlinestatic
    ttg_parsec::detail::parsec_ttg_task_base_t::release_task()ttg_parsec::detail::parsec_ttg_task_base_tinline
    release_task_cbttg_parsec::detail::parsec_ttg_task_base_t
    release_task_fn typedefttg_parsec::detail::parsec_ttg_task_base_t
    remove_from_hashttg_parsec::detail::parsec_ttg_task_base_t
    set_dummy(bool d)ttg_parsec::detail::parsec_ttg_task_base_tinline
    streamsttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >
    ttttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >
    tt_ht_itemttg_parsec::detail::parsec_ttg_task_base_t
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html new file mode 100644 index 000000000..4dc9a1089 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t.html @@ -0,0 +1,645 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >:
    +
    +
    + + +ttg_parsec::detail::parsec_ttg_task_base_t + +
    +

    Documentation

    +

    template<typename TT, bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    +struct ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >

    + + +

    Definition at line 196 of file task.h.

    +
    + + + + + + +

    +Public Types

    using key_type = typename TT::key_type
     
    - Public Types inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    typedef void() release_task_fn(parsec_ttg_task_base_t *)
     
    + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     parsec_ttg_task_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)
     
     parsec_ttg_task_t (const key_type &key, parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)
     
    template<ttg::ExecutionSpace Space>
    parsec_hook_return_t invoke_op ()
     
    template<ttg::ExecutionSpace Space>
    parsec_hook_return_t invoke_evaluate ()
     
    parsec_key_t pkey ()
     
    - Public Member Functions inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    void release_task ()
     
    void set_dummy (bool d)
     
    bool is_dummy ()
     
    + + + +

    +Static Public Member Functions

    static void release_task (parsec_ttg_task_base_t *task_base)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    TTtt = nullptr
     
    key_type key
     
    std::array< stream_info_t, num_streamsstreams
     
    device_state_t< TT::derived_has_device_op()> dev_state
     
    ttg_data_copy_tcopies [num_copies] = { nullptr }
     
    - Public Attributes inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    parsec_task_t parsec_task
     
    int32_t in_data_count = 0
     
    int32_t data_count = 0
     
    ttg_data_copy_t ** copies
     
    parsec_hash_table_item_t tt_ht_item = {}
     
    release_task_fnrelease_task_cb = nullptr
     
    device_ptr_tdev_ptr = nullptr
     
    bool remove_from_hash = true
     
    bool dummy = false
     
    bool defer_writer = TTG_PARSEC_DEFER_WRITER
     
    ttg_parsec_data_flags data_flags
     
    + + + + + +

    +Static Public Attributes

    static constexpr size_t num_streams = TT::numins
     
    static constexpr size_t num_copies
     
    + + + + + + + + + + + + +

    +Additional Inherited Members

    - Protected Member Functions inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    template<std::size_t i = 0, typename TT >
    void init_stream_info_impl (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
    template<typename TT >
    void init_stream_info (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
    +

    Member Typedef Documentation

    + +

    ◆ key_type

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + +
    using ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::key_type = typename TT::key_type
    +
    + +

    Definition at line 197 of file task.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ parsec_ttg_task_t() [1/2]

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::parsec_ttg_task_t (parsec_thread_mempool_t * mempool,
    parsec_task_class_t * task_class 
    )
    +
    +inline
    +
    + +

    Definition at line 212 of file task.h.

    + +
    +
    + +

    ◆ parsec_ttg_task_t() [2/2]

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::parsec_ttg_task_t (const key_typekey,
    parsec_thread_mempool_t * mempool,
    parsec_task_class_t * task_class,
    parsec_taskpool_t * taskpool,
    TTtt_ptr,
    int32_t priority 
    )
    +
    +inline
    +
    + +

    Definition at line 221 of file task.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ invoke_evaluate()

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    +
    +template<ttg::ExecutionSpace Space>
    + + + + + +
    + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::invoke_evaluate ()
    +
    +inline
    +
    + +

    Definition at line 255 of file task.h.

    + +
    +
    + +

    ◆ invoke_op()

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    +
    +template<ttg::ExecutionSpace Space>
    + + + + + +
    + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::invoke_op ()
    +
    +inline
    +
    + +

    Definition at line 246 of file task.h.

    + +
    +
    + +

    ◆ pkey()

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + + +
    + + + + + + + +
    parsec_key_t ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::pkey ()
    +
    +inline
    +
    + +

    Definition at line 263 of file task.h.

    + +
    +
    + +

    ◆ release_task()

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + + +
    + + + + + + + + +
    static void ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::release_task (parsec_ttg_task_base_ttask_base)
    +
    +inlinestatic
    +
    + +

    Definition at line 239 of file task.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ copies

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + +
    ttg_data_copy_t* ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::copies[num_copies] = { nullptr }
    +
    + +

    Definition at line 210 of file task.h.

    + +
    +
    + +

    ◆ dev_state

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + +
    device_state_t<TT::derived_has_device_op()> ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::dev_state
    +
    + +

    Definition at line 209 of file task.h.

    + +
    +
    + +

    ◆ key

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + +
    key_type ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::key
    +
    + +

    Definition at line 203 of file task.h.

    + +
    +
    + +

    ◆ num_copies

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + + +
    + + + + +
    constexpr size_t ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::num_copies
    +
    +staticconstexpr
    +
    +Initial value:
    = TT::derived_has_device_op() ? static_cast<size_t>(MAX_PARAM_COUNT)
    + +
    static constexpr bool derived_has_device_op()
    Definition: ttg.h:1213
    +
    static constexpr size_t num_streams
    Definition: task.h:198
    +
    +

    Definition at line 200 of file task.h.

    + +
    +
    + +

    ◆ num_streams

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + + +
    + + + + +
    constexpr size_t ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::num_streams = TT::numins
    +
    +staticconstexpr
    +
    + +

    Definition at line 198 of file task.h.

    + +
    +
    + +

    ◆ streams

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + +
    std::array<stream_info_t, num_streams> ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::streams
    +
    + +

    Definition at line 204 of file task.h.

    + +
    +
    + +

    ◆ tt

    + +
    +
    +
    +template<typename TT , bool KeyIsVoid = ttg::meta::is_void_v<typename TT::key_type>>
    + + + + +
    TT* ttg_parsec::detail::parsec_ttg_task_t< TT, KeyIsVoid >::tt = nullptr
    +
    + +

    Definition at line 202 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t.png b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t.png new file mode 100644 index 0000000000000000000000000000000000000000..7725e3b509ca3e5c82477ea4e70155e6a511b698 GIT binary patch literal 1106 zcmeAS@N?(olHy`uVBq!ia0y~yV6+CZ12~w0WT2bU4Im{E;1lBd|Nnm=^TnI5rTvE{ z09jys;J^Xa&O7ozE=Ng_UoZnu5eQs86=KA|!2HnD#WAFU@$KA;MTa$bT=}QZ{P$ly zU-))|fklMp_Pdd#HPX_vyDdCEc%8FsFFN;g+lfgcla|cpDx35qc*A6s`Au_Geu}(N zIl0{W&85$imY9dgo|${O;>zZHgY)Z;NA^GQ->_SB~3yfecJ)u!+{>X@2_3_@b<0yv`JeQ{jLmuR&>Fl>Glef`8Vg^y1GU4 zWL$PzxZ>QJx37BH=1px@@qL3Lmyc=gHY`Mye#)sO#Vzu9){ zW?W8rwQ28-tKm=I9mzXcAb08B?mx3{nxET$^xU$Jv#S#C@n)S)wBSCOvU=^!hwT5a zSyu18&%4d&@YAII#S(h&%5&TA-+I5zIjicNoFiY~(V#_N=iJ>Zr|X%uPWABW30?V? z>Bo;()Hhv!H|a}M`HkLBRkc%9G9BX%_p>W`Uf*>-FZ$T?e_7L_C)q79J)Ha_&|^}` zrKhKl>Z{B=J+a*EujdKukv9xATxAS)tkw+kfy(?3@*P+X zR1^%9*1SQf^q1o|mre=NSUM%In?-?EbieVf`1i-8c8h`#WH7$u|C`*yefB*Y7_2k;C)kb94R`!>Dzr(*b|j$X6b_P8|GSDLeWt>i4vGGL1M zo%Lp)+{V=_O*uA)i#HX%zggOPohM%Yx2SwuQtW$aKj%$5FSlPX@A-C6bGO~5L=M)+ zT)S)6=W3;{UnaQw*Qz^nZ|F*%bG}v0A5a=v9l5#m%r-u)$&$PO?e;D+bKNB>RcjM@ zVRqZ*2|nBAWtAzu-}O1^{<7P~KPKIEy%+nYym{@Jf}JzPoZk{QL61T;C>s zGyPk%|F%$F)wydv_Ojhyr)WKY^X_Yg=Y<&WwzCIoxmNy|R(ws5H$eaJx@F#xS(9_N z);n&hI5&^YX07;v*`K89R3@zKv|n{_+1ER+$Ja3ai88inlW%1y045-L=kin5(IyP@ zr=0$vD$20`&olc8F%18?(PQ57Z?Ko5O})!xvX + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::parsec_ttg_task_t< TT, true > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::parsec_ttg_task_t< TT, true >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    copiesttg_parsec::detail::parsec_ttg_task_t< TT, true >
    data_countttg_parsec::detail::parsec_ttg_task_base_t
    data_flagsttg_parsec::detail::parsec_ttg_task_base_t
    defer_writerttg_parsec::detail::parsec_ttg_task_base_t
    dev_ptrttg_parsec::detail::parsec_ttg_task_base_t
    dev_statettg_parsec::detail::parsec_ttg_task_t< TT, true >
    dummyttg_parsec::detail::parsec_ttg_task_base_t
    in_data_countttg_parsec::detail::parsec_ttg_task_base_t
    init_stream_info(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    init_stream_info_impl(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    invoke_op()ttg_parsec::detail::parsec_ttg_task_t< TT, true >inline
    is_dummy()ttg_parsec::detail::parsec_ttg_task_base_tinline
    num_streamsttg_parsec::detail::parsec_ttg_task_t< TT, true >static
    parsec_taskttg_parsec::detail::parsec_ttg_task_base_t
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)ttg_parsec::detail::parsec_ttg_task_t< TT, true >inline
    parsec_ttg_task_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)ttg_parsec::detail::parsec_ttg_task_t< TT, true >inline
    pkey()ttg_parsec::detail::parsec_ttg_task_t< TT, true >inline
    release_task(parsec_ttg_task_base_t *task_base)ttg_parsec::detail::parsec_ttg_task_t< TT, true >inlinestatic
    ttg_parsec::detail::parsec_ttg_task_base_t::release_task()ttg_parsec::detail::parsec_ttg_task_base_tinline
    release_task_cbttg_parsec::detail::parsec_ttg_task_base_t
    release_task_fn typedefttg_parsec::detail::parsec_ttg_task_base_t
    remove_from_hashttg_parsec::detail::parsec_ttg_task_base_t
    set_dummy(bool d)ttg_parsec::detail::parsec_ttg_task_base_tinline
    streamsttg_parsec::detail::parsec_ttg_task_t< TT, true >
    ttttg_parsec::detail::parsec_ttg_task_t< TT, true >
    tt_ht_itemttg_parsec::detail::parsec_ttg_task_base_t
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html new file mode 100644 index 000000000..d06b6355e --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.html @@ -0,0 +1,528 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::parsec_ttg_task_t< TT, true > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::parsec_ttg_task_t< TT, true > Struct Template Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::parsec_ttg_task_t< TT, true >:
    +
    +
    + + +ttg_parsec::detail::parsec_ttg_task_base_t + +
    +

    Documentation

    +

    template<typename TT>
    +struct ttg_parsec::detail::parsec_ttg_task_t< TT, true >

    + + +

    Definition at line 267 of file task.h.

    +
    + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     parsec_ttg_task_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class)
     
     parsec_ttg_task_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, TT *tt_ptr, int32_t priority)
     
    template<ttg::ExecutionSpace Space>
    parsec_hook_return_t invoke_op ()
     
    parsec_key_t pkey ()
     
    - Public Member Functions inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    void release_task ()
     
    void set_dummy (bool d)
     
    bool is_dummy ()
     
    + + + +

    +Static Public Member Functions

    static void release_task (parsec_ttg_task_base_t *task_base)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    TTtt = nullptr
     
    std::array< stream_info_t, num_streamsstreams
     
    device_state_t< TT::derived_has_device_op()> dev_state
     
    ttg_data_copy_tcopies [num_streams+1] = { nullptr }
     
    - Public Attributes inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    parsec_task_t parsec_task
     
    int32_t in_data_count = 0
     
    int32_t data_count = 0
     
    ttg_data_copy_t ** copies
     
    parsec_hash_table_item_t tt_ht_item = {}
     
    release_task_fnrelease_task_cb = nullptr
     
    device_ptr_tdev_ptr = nullptr
     
    bool remove_from_hash = true
     
    bool dummy = false
     
    bool defer_writer = TTG_PARSEC_DEFER_WRITER
     
    ttg_parsec_data_flags data_flags
     
    + + + +

    +Static Public Attributes

    static constexpr size_t num_streams = TT::numins
     
    + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    typedef void() release_task_fn(parsec_ttg_task_base_t *)
     
    - Protected Member Functions inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    template<std::size_t i = 0, typename TT >
    void init_stream_info_impl (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
    template<typename TT >
    void init_stream_info (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ parsec_ttg_task_t() [1/2]

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::parsec_ttg_task_t< TT, true >::parsec_ttg_task_t (parsec_thread_mempool_t * mempool,
    parsec_task_class_t * task_class 
    )
    +
    +inline
    +
    + +

    Definition at line 279 of file task.h.

    + +
    +
    + +

    ◆ parsec_ttg_task_t() [2/2]

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::parsec_ttg_task_t< TT, true >::parsec_ttg_task_t (parsec_thread_mempool_t * mempool,
    parsec_task_class_t * task_class,
    parsec_taskpool_t * taskpool,
    TTtt_ptr,
    int32_t priority 
    )
    +
    +inline
    +
    + +

    Definition at line 285 of file task.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ invoke_op()

    + +
    +
    +
    +template<typename TT >
    +
    +template<ttg::ExecutionSpace Space>
    + + + + + +
    + + + + + + + +
    parsec_hook_return_t ttg_parsec::detail::parsec_ttg_task_t< TT, true >::invoke_op ()
    +
    +inline
    +
    + +

    Definition at line 303 of file task.h.

    + +
    +
    + +

    ◆ pkey()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + +
    parsec_key_t ttg_parsec::detail::parsec_ttg_task_t< TT, true >::pkey ()
    +
    +inline
    +
    + +

    Definition at line 311 of file task.h.

    + +
    +
    + +

    ◆ release_task()

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + + + + + +
    static void ttg_parsec::detail::parsec_ttg_task_t< TT, true >::release_task (parsec_ttg_task_base_ttask_base)
    +
    +inlinestatic
    +
    + +

    Definition at line 296 of file task.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ copies

    + +
    +
    +
    +template<typename TT >
    + + + + +
    ttg_data_copy_t* ttg_parsec::detail::parsec_ttg_task_t< TT, true >::copies[num_streams+1] = { nullptr }
    +
    + +

    Definition at line 276 of file task.h.

    + +
    +
    + +

    ◆ dev_state

    + +
    +
    +
    +template<typename TT >
    + + + + +
    device_state_t<TT::derived_has_device_op()> ttg_parsec::detail::parsec_ttg_task_t< TT, true >::dev_state
    +
    + +

    Definition at line 275 of file task.h.

    + +
    +
    + +

    ◆ num_streams

    + +
    +
    +
    +template<typename TT >
    + + + + + +
    + + + + +
    constexpr size_t ttg_parsec::detail::parsec_ttg_task_t< TT, true >::num_streams = TT::numins
    +
    +staticconstexpr
    +
    + +

    Definition at line 268 of file task.h.

    + +
    +
    + +

    ◆ streams

    + +
    +
    +
    +template<typename TT >
    + + + + +
    std::array<stream_info_t, num_streams> ttg_parsec::detail::parsec_ttg_task_t< TT, true >::streams
    +
    + +

    Definition at line 270 of file task.h.

    + +
    +
    + +

    ◆ tt

    + +
    +
    +
    +template<typename TT >
    + + + + +
    TT* ttg_parsec::detail::parsec_ttg_task_t< TT, true >::tt = nullptr
    +
    + +

    Definition at line 269 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.png b/dox-master/structttg__parsec_1_1detail_1_1parsec__ttg__task__t_3_01_t_t_00_01true_01_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a1274375b83e206c82b9ab31555285aae47c2b68 GIT binary patch literal 1038 zcmeAS@N?(olHy`uVBq!ia0y~yV3Yu|12~w0#CxDR~EZOtNI^QL*GQnDj*BfXAf849cE; z&k`<`d0f&jv6``Z_OW{>_8q*lzwZ2&0oOy=o;YyF=FMgSC&Yxq?bWCsES$6Z}IaBs0T5z9yGV|}0JAD0bysn!b)09uU zByRew?O{@HCVS12V{cSzcWF=MnB%*o&hq)Xl8V1uR90F}1G-|>zS8hd=6mb*Teo{( zT3{)me|K4p>dU@&Qg(73Dw2DdHtQb<+i=Fo^AdBEvCjJMPLq~6PUpW~wdah)?21WW zmgGss`A1HYyKri`isyf8Rte7{kpz{KfejN?+!@^_$<#KVw0s_L&QhB3k7O-l3&R>F zo&zh^uUB9;&^W-*^Xr*V3PTmE1VeZu>w&-q#sZN91{omNoso^2+>7&>CI@*foD#H2 z3Fw4k7E}vD4el?$uWTiI=BjUUe#-rXcW)0*2`WCL%ivZkccw^#!EHZFv02FhhPYJ? znh|IJ{jJ@5SLVQW_iabl9I^YdL9;%sDqpfn(RAN$hsXEaj9E8F%LuP$WR@s}#k%aQ zyl*9ZrnxF_Hl}45E#uDoAZsUd`}TPW>CCqYZQl}hy6?A~D} zf2XG~=wI7I9hJ%HhnJUVC$s6~Uz1o~Gs83f$_(kYZqu|M=cZ+y5%{p@*qcg=yHmYb z&Z!0MpR?@5^t+3B)+{YLy5Z)twh629?@rYze_+EiqwL$$v)sEUZ9l*M?GJ|TUD-c8 z6yDD)N%+Qkhac literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref-members.html b/dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref-members.html new file mode 100644 index 000000000..7b4218589 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref-members.html @@ -0,0 +1,141 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::persistent_value_ref< ValueT > Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref.html b/dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref.html new file mode 100644 index 000000000..42607f9e8 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1persistent__value__ref.html @@ -0,0 +1,236 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::persistent_value_ref< ValueT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::persistent_value_ref< ValueT > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename ValueT>
    +struct ttg_parsec::detail::persistent_value_ref< ValueT >

    + + +

    Definition at line 84 of file ttvalue.h.

    +
    + + + + + + + +

    +Public Types

    using reference_type = ValueT
     
    using value_type = std::decay_t< ValueT >
     
    using lvalue_reference_type = std::add_lvalue_reference_t< std::remove_reference_t< ValueT > >
     
    + + + +

    +Public Attributes

    lvalue_reference_type value_ref
     
    +

    Member Typedef Documentation

    + +

    ◆ lvalue_reference_type

    + +
    +
    +
    +template<typename ValueT >
    + + + + +
    using ttg_parsec::detail::persistent_value_ref< ValueT >::lvalue_reference_type = std::add_lvalue_reference_t<std::remove_reference_t<ValueT> >
    +
    + +

    Definition at line 87 of file ttvalue.h.

    + +
    +
    + +

    ◆ reference_type

    + +
    +
    +
    +template<typename ValueT >
    + + + + +
    using ttg_parsec::detail::persistent_value_ref< ValueT >::reference_type = ValueT
    +
    + +

    Definition at line 85 of file ttvalue.h.

    + +
    +
    + +

    ◆ value_type

    + +
    +
    +
    +template<typename ValueT >
    + + + + +
    using ttg_parsec::detail::persistent_value_ref< ValueT >::value_type = std::decay_t<ValueT>
    +
    + +

    Definition at line 86 of file ttvalue.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ value_ref

    + +
    +
    +
    +template<typename ValueT >
    + + + + +
    lvalue_reference_type ttg_parsec::detail::persistent_value_ref< ValueT >::value_ref
    +
    + +

    Definition at line 88 of file ttvalue.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ptr__impl-members.html b/dox-master/structttg__parsec_1_1detail_1_1ptr__impl-members.html new file mode 100644 index 000000000..d67ed2f2f --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ptr__impl-members.html @@ -0,0 +1,148 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::ptr_impl Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ptr__impl.html b/dox-master/structttg__parsec_1_1detail_1_1ptr__impl.html new file mode 100644 index 000000000..4f75c0ed4 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ptr__impl.html @@ -0,0 +1,472 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::ptr_impl Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::ptr_impl Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 22 of file ptr.h.

    +
    + + + +

    +Public Types

    using copy_type = detail::ttg_data_copy_t
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     ptr_impl (copy_type *copy)
     
    copy_typeget_copy () const
     
     ptr_impl (const ptr_impl &p)
     
     ptr_impl (ptr_impl &&p)
     
     ~ptr_impl ()
     
    ptr_imploperator= (const ptr_impl &p)
     
    ptr_imploperator= (ptr_impl &&p)
     
    bool is_valid () const
     
    void reset ()
     
    + + + +

    +Static Public Member Functions

    static void drop_all_ptr ()
     
    +

    Member Typedef Documentation

    + +

    ◆ copy_type

    + +
    +
    + +

    Definition at line 23 of file ptr.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ ptr_impl() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ptr_impl::ptr_impl (copy_typecopy)
    +
    +inline
    +
    + +

    Definition at line 54 of file ptr.h.

    + +
    +
    + +

    ◆ ptr_impl() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ptr_impl::ptr_impl (const ptr_implp)
    +
    +inline
    +
    + +

    Definition at line 66 of file ptr.h.

    + +
    +
    + +

    ◆ ptr_impl() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ptr_impl::ptr_impl (ptr_impl && p)
    +
    +inline
    +
    + +

    Definition at line 74 of file ptr.h.

    + +
    +
    + +

    ◆ ~ptr_impl()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg_parsec::detail::ptr_impl::~ptr_impl ()
    +
    +inline
    +
    + +

    Definition at line 82 of file ptr.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ drop_all_ptr()

    + +
    +
    + + + + + +
    + + + + + + + +
    static void ttg_parsec::detail::ptr_impl::drop_all_ptr ()
    +
    +inlinestatic
    +
    + +

    Definition at line 117 of file ptr.h.

    + +
    +
    + +

    ◆ get_copy()

    + +
    +
    + + + + + +
    + + + + + + + +
    copy_type* ttg_parsec::detail::ptr_impl::get_copy () const
    +
    +inline
    +
    + +

    Definition at line 62 of file ptr.h.

    + +
    +
    + +

    ◆ is_valid()

    + +
    +
    + + + + + +
    + + + + + + + + +
    bool ttg_parsec::detail::ptr_impl::is_valid (void ) const
    +
    +inline
    +
    + +

    Definition at line 104 of file ptr.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ptr_impl& ttg_parsec::detail::ptr_impl::operator= (const ptr_implp)
    +
    +inline
    +
    + +

    Definition at line 87 of file ptr.h.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ptr_impl& ttg_parsec::detail::ptr_impl::operator= (ptr_impl && p)
    +
    +inline
    +
    + +

    Definition at line 96 of file ptr.h.

    + +
    +
    + +

    ◆ reset()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::detail::ptr_impl::reset ()
    +
    +inline
    +
    + +

    Definition at line 108 of file ptr.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t-members.html new file mode 100644 index 000000000..e49c7257f --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t-members.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::reducer_task_t Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::reducer_task_t, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + +
    copiesttg_parsec::detail::parsec_ttg_task_base_t
    data_countttg_parsec::detail::parsec_ttg_task_base_t
    data_flagsttg_parsec::detail::parsec_ttg_task_base_t
    defer_writerttg_parsec::detail::parsec_ttg_task_base_t
    dev_ptrttg_parsec::detail::parsec_ttg_task_base_t
    dummyttg_parsec::detail::parsec_ttg_task_base_t
    in_data_countttg_parsec::detail::parsec_ttg_task_base_t
    init_stream_info(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    init_stream_info_impl(TT *tt, std::array< stream_info_t, TT::numins > &streams)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    is_dummy()ttg_parsec::detail::parsec_ttg_task_base_tinline
    is_firstttg_parsec::detail::reducer_task_t
    parent_taskttg_parsec::detail::reducer_task_t
    parsec_taskttg_parsec::detail::parsec_ttg_task_base_t
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    parsec_ttg_task_base_t(parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)ttg_parsec::detail::parsec_ttg_task_base_tinlineprotected
    reducer_task_t(parsec_ttg_task_base_t *task, parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, bool is_first)ttg_parsec::detail::reducer_task_tinline
    release_task(parsec_ttg_task_base_t *task_base)ttg_parsec::detail::reducer_task_tinlinestatic
    ttg_parsec::detail::parsec_ttg_task_base_t::release_task()ttg_parsec::detail::parsec_ttg_task_base_tinline
    release_task_cbttg_parsec::detail::parsec_ttg_task_base_t
    release_task_fn typedefttg_parsec::detail::parsec_ttg_task_base_t
    remove_from_hashttg_parsec::detail::parsec_ttg_task_base_t
    set_dummy(bool d)ttg_parsec::detail::parsec_ttg_task_base_tinline
    tt_ht_itemttg_parsec::detail::parsec_ttg_task_base_t
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t.html b/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t.html new file mode 100644 index 000000000..0da554bad --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t.html @@ -0,0 +1,345 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::reducer_task_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::reducer_task_t Struct Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::reducer_task_t:
    +
    +
    + + +ttg_parsec::detail::parsec_ttg_task_base_t + +
    +

    Documentation

    +

    Reducer task representing one or more stream reductions. A reducer task may be deferred on its first input (the object into which all other inputs are folded). Once that input becomes available the task is submitted and reduces all available inputs. Additional reducer tasks may be submitted until all required inputs have been processed.

    + +

    Definition at line 322 of file task.h.

    +
    + + + + + + + + + + +

    +Public Member Functions

     reducer_task_t (parsec_ttg_task_base_t *task, parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, bool is_first)
     
    - Public Member Functions inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    void release_task ()
     
    void set_dummy (bool d)
     
    bool is_dummy ()
     
    + + + +

    +Static Public Member Functions

    static void release_task (parsec_ttg_task_base_t *task_base)
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    parsec_ttg_task_base_tparent_task
     
    bool is_first
     
    - Public Attributes inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    parsec_task_t parsec_task
     
    int32_t in_data_count = 0
     
    int32_t data_count = 0
     
    ttg_data_copy_t ** copies
     
    parsec_hash_table_item_t tt_ht_item = {}
     
    release_task_fnrelease_task_cb = nullptr
     
    device_ptr_tdev_ptr = nullptr
     
    bool remove_from_hash = true
     
    bool dummy = false
     
    bool defer_writer = TTG_PARSEC_DEFER_WRITER
     
    ttg_parsec_data_flags data_flags
     
    + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Public Types inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    typedef void() release_task_fn(parsec_ttg_task_base_t *)
     
    - Protected Member Functions inherited from ttg_parsec::detail::parsec_ttg_task_base_t
    template<std::size_t i = 0, typename TT >
    void init_stream_info_impl (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
    template<typename TT >
    void init_stream_info (TT *tt, std::array< stream_info_t, TT::numins > &streams)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, int data_count, ttg_data_copy_t **copies, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
     parsec_ttg_task_base_t (parsec_thread_mempool_t *mempool, parsec_task_class_t *task_class, parsec_taskpool_t *taskpool, int32_t priority, int data_count, ttg_data_copy_t **copies, release_task_fn *release_fn, bool defer_writer=TTG_PARSEC_DEFER_WRITER)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ reducer_task_t()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::detail::reducer_task_t::reducer_task_t (parsec_ttg_task_base_ttask,
    parsec_thread_mempool_t * mempool,
    parsec_task_class_t * task_class,
    parsec_taskpool_t * taskpool,
    int32_t priority,
    bool is_first 
    )
    +
    +inline
    +
    + +

    Definition at line 326 of file task.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ release_task()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void ttg_parsec::detail::reducer_task_t::release_task (parsec_ttg_task_base_ttask_base)
    +
    +inlinestatic
    +
    + +

    Definition at line 342 of file task.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ is_first

    + +
    +
    + + + + +
    bool ttg_parsec::detail::reducer_task_t::is_first
    +
    + +

    Definition at line 324 of file task.h.

    + +
    +
    + +

    ◆ parent_task

    + +
    +
    + + + + +
    parsec_ttg_task_base_t* ttg_parsec::detail::reducer_task_t::parent_task
    +
    + +

    Definition at line 323 of file task.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t.png b/dox-master/structttg__parsec_1_1detail_1_1reducer__task__t.png new file mode 100644 index 0000000000000000000000000000000000000000..748b71d0a7ef940da1dc457d3d39e612597aa4c8 GIT binary patch literal 858 zcmeAS@N?(olHy`uVBq!ia0vp^Ux7G)gBeJE+jkfwArasc;`;ype<1V4o3Ew)hb917 zV0_@f0oKkt@<1*}NswPK15gnNTs;+H#K6Gx($mE;q=ND7+{{U@6?j_gZ-wssKQUfN zO!+|cw3$`PLGNxfTv_4Rv0vx(rX9@PDwc;sbUp11LcJ&Pi(Gy9)8mqKgyfm)-A9zq zZ#%rD|GB5w{qR~XDbH6QYJsxVdwgH?uX~=5WyiZ}-Vd*97fmldu^0ZWdMMCCG{3|| z`|_oJ4fpEUMJKF`a<2r>ym|dq)-REi`Nb`1>t|1}irf8eap!N5H=*WcD?^#qM#om& z{K5OW^w8c7-MMpfc=smOIhLN;Vj-|U=v{BfdgrIBgKN7Atd~5A{kQFf_OsWk-fp`w zSLWSU1>tywJ6tDII?jGrc(9Q7zWw!P*24ReXIqW+tPnIp48>s zd+o!KuP-=*zRpovqt~jpjV7xeUphMbl8mHh zmHcy#&tDc#P+58S-GdX0?q<*CpY+9ZkIRnr?vwPACp?_=<+vdzuzapgdcs_O_4Fp4 zdki1EcQEc~_P)A(w);)J(EF~|Q{D!DUGtD3&LEWe$AJ*u2h72y4L}_Xz;GrYVBaa= zRKU*EU<_Bi@YU}Rzh7@Mnz7#Zk+JbMvt_j!ueOK0Kl<(Vs>@%?>Ste&k3E0zP-68X z?O>Z&Vc&n7PtVktR4k{RSGGzf;%(y3Gk+L({oa*MoLYM0fR^#^s90Zl#?M>ClvgFC zPu{R-Ww=y=^z%^j%vn*Yb9P--oy~iHLzzkRH(#Dr;Q6+bJh=bJeCd^Ij*mrT;s) zQ*Nc1=p*M<$p`PPd04s0kvCrZYE)10)3beFrDjUy-MuE2H{Fi)g6^r^rhh(MV*PQy zAgDCvL`7wMghqqEGCSji#PScn;-t0ot9d`P!^7^W6_+B5{SWr|Zlm>~Gx&c3GXjIB LtDnm{r-UW|9512? literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter-members.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter-members.html new file mode 100644 index 000000000..89257b0cf --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter-members.html @@ -0,0 +1,138 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::ttg_data_copy_container_setter< T > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::ttg_data_copy_container_setter< T >, including all inherited members.

    + + +
    ttg_data_copy_container_setter(T *ptr)ttg_parsec::detail::ttg_data_copy_container_setter< T >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html new file mode 100644 index 000000000..037add654 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__container__setter.html @@ -0,0 +1,183 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::ttg_data_copy_container_setter< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::ttg_data_copy_container_setter< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T = ttg_data_copy_t>
    +struct ttg_parsec::detail::ttg_data_copy_container_setter< T >

    + + +

    Definition at line 110 of file ttg_data_copy.h.

    +
    + + + +

    +Public Member Functions

     ttg_data_copy_container_setter (T *ptr)
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ ttg_data_copy_container_setter()

    + +
    +
    +
    +template<typename T = ttg_data_copy_t>
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_copy_container_setter< T >::ttg_data_copy_container_setter (T * ptr)
    +
    +inline
    +
    + +

    Definition at line 111 of file ttg_data_copy.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t-members.html new file mode 100644 index 000000000..e2b929391 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t-members.html @@ -0,0 +1,140 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::ttg_data_copy_self_t Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html new file mode 100644 index 000000000..407a3fead --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.html @@ -0,0 +1,230 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::ttg_data_copy_self_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::ttg_data_copy_self_t Struct Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::ttg_data_copy_self_t:
    +
    +
    + + +ttg_parsec::detail::ttg_data_copy_t +ttg_parsec::TTValue< DerivedT > +ttg_parsec::detail::ttg_data_value_copy_t< ValueT > + +
    +

    Documentation

    +
    +

    Definition at line 121 of file ttg_data_copy.h.

    +
    + + + +

    +Public Member Functions

     ttg_data_copy_self_t (ttg_data_copy_t *dc)
     
    + + + + + +

    +Public Attributes

    parsec_list_item_t super
     
    ttg_data_copy_tself
     
    +

    Constructor & Destructor Documentation

    + +

    ◆ ttg_data_copy_self_t()

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_copy_self_t::ttg_data_copy_self_t (ttg_data_copy_tdc)
    +
    +inline
    +
    + +

    Definition at line 124 of file ttg_data_copy.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ self

    + +
    +
    + + + + +
    ttg_data_copy_t* ttg_parsec::detail::ttg_data_copy_self_t::self
    +
    + +

    Definition at line 123 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ super

    + +
    +
    + + + + +
    parsec_list_item_t ttg_parsec::detail::ttg_data_copy_self_t::super
    +
    + +

    Definition at line 122 of file ttg_data_copy.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.png b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__self__t.png new file mode 100644 index 0000000000000000000000000000000000000000..4b9300221078dc1b02de7b7b36f4ff5e75b12f95 GIT binary patch literal 2257 zcmb`JYgAKL7JyL^6nPlmMNMb`t*r#)?G%APAW$GcNCE}~v`TFR5tJZ7p_nytkqQA6 zq$*H(UnV>XH%Kr%#0M`y$y{E6fLMeYV#E-lM4&hAkC`<;W=+?cyVl)jpL6!PXP>>l zv)4`YBN6p<40SX#H1s?@2xJY7wG2cDHmpNrIL1zjG`sw~DQ>H)tB5)~r-;jZ$U(F} z-nO>3^=V@mq`Tn)nG~Rb7^xq)n_`I!g?ke4l#6Smj zj!dx}k;h%zj)|Lu?&O{mNHEEr&Zpn@>b!c32kQBpSfG4WO!m z$?cVf3o$L=_%Xiu%M;yvb80*~l_-2u(A8Hi4iA=g>&?duC!7-EX*M4Y^C=?S`2<$; zC6H#ezaa65y~m-DIG%L*<4ua*%8o*^lqVfWkM-qVuPq&Y^^tZ{m7$_2F(Xl4&wt?zH8^jSr*wgQl0pnlNuwV*WBWH&o{B;CLP1&6K=iY*F~7 zm&D=6NoB0H+8%IGX3L!I?VXo?>Z|Tq+JG^ovK{-rYoujJCMxD6_#(V&o+Zew6QEmu z+rukiJSP&F@Y0XnD-D|cR)$t}6utkRn_hkWoESXjUl~oly2*soW>2>92tSzT#n;-X zi|nZRs0cK!-Xc;0{y_ z;@8q_U=%+Iixp44aE)WO4(~33aoDL{%W@L3I;?`8kOj84;u{$Vf|4MvYKSZ8n0~+H z5;MaLYQArKjDK|XCd)>9Pm` zoh^lY&?neDidxk}t3M`sr21YxYe!Mlvl^j;c^}Ij4PE6K%I}|d8dD15RKaEfaXuDZ z_{8W`vm(YOjaA_`K(2Wx0)VaRkhLI~fkN%~Ksqe7AaM|M z7u4d85j7o{{TvbYc!b^;9l@Z_kS~FNT-5D_r8UG%b5)B?8t`5iIbZ(j)DHju)i1BJT5PrFcXH3CR3rO4mGLg!M%O554TaMiFr17bLT1%l6ftymw&z=urUl|E{8p+f0TGi{?!4xgZn5iXvUTV8I;so{~P}%3mzxzdKoS~ z4`iF_j@7#MEX2UM__qhD!&=b~E^-}j==>9eW!nVXjmLu{i7dm{o{*j0fB;-{*YOe# zHWpwDoD^CjM&RywZ10oc#JxAyCAWG%Yj7$aWxnYT0L$c2RFO(QuFto>AZPsJ`{?dP z7f8H~7f_v?@l>laJ5tS|x!{*#_ogvfQ~sg_e0F`ZS%U=qjt+_3&qs%>47Z%MW{Oqy zv7UwQXCjNDJDDWN^#CR8m(xrNG{bz1Yr(vZ2jOLh$I96J#Q}8bs4!z<36@q3{-f9T z8imTOMqkf05?bW!-;j=z6+^bq0f1x(3hufnOrtNGO|*t| zJ^SOz3bXQ#JNlf~Q%vLDja%9Xlf0m3!-XM200`@(K^W5U({0bpEU;7SE;&Prp>tJM zt5i72eo&3hzYV5c@0RxscTEA><8h@*SCGPcFI8QAH7n@^f + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::ttg_data_copy_t Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::ttg_data_copy_t, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_device_data(ttg_parsec_data_wrapper_t *data)ttg_parsec::detail::ttg_data_copy_tinline
    add_ref()ttg_parsec::detail::ttg_data_copy_tinline
    decrement_readers()ttg_parsec::detail::ttg_data_copy_tinline
    drop_ref()ttg_parsec::detail::ttg_data_copy_tinline
    foreach_parsec_data(Fn &&fn)ttg_parsec::detail::ttg_data_copy_tinline
    foreach_wrapper(Fn &&fn)ttg_parsec::detail::ttg_data_copy_tinline
    get_next_task() constttg_parsec::detail::ttg_data_copy_tinline
    get_ptr()=0ttg_parsec::detail::ttg_data_copy_tpure virtual
    has_ref()ttg_parsec::detail::ttg_data_copy_tinline
    inc_current_version()ttg_parsec::detail::ttg_data_copy_tinline
    increment_readers()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_add(const ttg::iovec &iov)ttg_parsec::detail::ttg_data_copy_tinline
    iovec_begin()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_count() constttg_parsec::detail::ttg_data_copy_tinline
    iovec_end()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_iterator typedefttg_parsec::detail::ttg_data_copy_t
    iovec_reset()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_span()ttg_parsec::detail::ttg_data_copy_tinline
    is_mutable() constttg_parsec::detail::ttg_data_copy_tinline
    iterator typedefttg_parsec::detail::ttg_data_copy_t
    m_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    m_iovecsttg_parsec::detail::ttg_data_copy_tprotected
    m_next_taskttg_parsec::detail::ttg_data_copy_tprotected
    m_num_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    m_readersttg_parsec::detail::ttg_data_copy_tprotected
    m_refsttg_parsec::detail::ttg_data_copy_tprotected
    m_single_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    mark_mutable()ttg_parsec::detail::ttg_data_copy_tinline
    mutable_tagttg_parsec::detail::ttg_data_copy_tstatic
    num_dev_data() constttg_parsec::detail::ttg_data_copy_tinline
    num_readers() constttg_parsec::detail::ttg_data_copy_tinline
    num_ref() constttg_parsec::detail::ttg_data_copy_tinline
    operator=(ttg_data_copy_t &&c)ttg_parsec::detail::ttg_data_copy_tinline
    operator=(const ttg_data_copy_t &c)ttg_parsec::detail::ttg_data_copy_tinline
    remove_device_data(ttg_parsec_data_wrapper_t *data)ttg_parsec::detail::ttg_data_copy_tinline
    reset_readers()ttg_parsec::detail::ttg_data_copy_tinline
    selfttg_parsec::detail::ttg_data_copy_self_t
    set_next_task(parsec_task_t *task)ttg_parsec::detail::ttg_data_copy_tinline
    superttg_parsec::detail::ttg_data_copy_self_t
    transfer_ownership(int access, int device=0)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_self_t(ttg_data_copy_t *dc)ttg_parsec::detail::ttg_data_copy_self_tinline
    ttg_data_copy_t()ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_t(const ttg_data_copy_t &c)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_t(ttg_data_copy_t &&c)ttg_parsec::detail::ttg_data_copy_tinline
    ~ttg_data_copy_t()=defaultttg_parsec::detail::ttg_data_copy_tvirtual
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t.html new file mode 100644 index 000000000..0c92fc5c4 --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t.html @@ -0,0 +1,1389 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::ttg_data_copy_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::ttg_data_copy_t Struct Referenceabstract
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::ttg_data_copy_t:
    +
    +
    + + +ttg_parsec::detail::ttg_data_copy_self_t +ttg_parsec::TTValue< DerivedT > +ttg_parsec::detail::ttg_data_value_copy_t< ValueT > + +
    +

    Documentation

    +
    +

    Definition at line 136 of file ttg_data_copy.h.

    +
    + + + + + +

    +Public Types

    using iterator = ttg_parsec_data_wrapper_t **
     
    using iovec_iterator = typename std::vector< ttg::iovec >::iterator
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     ttg_data_copy_t ()
     
     ttg_data_copy_t (const ttg_data_copy_t &c)
     
     ttg_data_copy_t (ttg_data_copy_t &&c)
     
    ttg_data_copy_toperator= (ttg_data_copy_t &&c)
     
    ttg_data_copy_toperator= (const ttg_data_copy_t &c)
     
    virtual ~ttg_data_copy_t ()=default
     
    bool is_mutable () const
     
    void mark_mutable ()
     
    template<bool Atomic = true>
    int increment_readers ()
     
    void reset_readers ()
     
    template<bool Atomic = true>
    int decrement_readers ()
     
    int num_readers () const
     
    virtual void * get_ptr ()=0
     
    parsec_task_t * get_next_task () const
     
    void set_next_task (parsec_task_t *task)
     
    int32_t add_ref ()
     
    int32_t drop_ref ()
     
    bool has_ref ()
     
    int32_t num_ref () const
     
    void inc_current_version ()
     
    void transfer_ownership (int access, int device=0)
     
    void add_device_data (ttg_parsec_data_wrapper_t *data)
     
    void remove_device_data (ttg_parsec_data_wrapper_t *data)
     
    int num_dev_data () const
     
    template<typename Fn >
    void foreach_wrapper (Fn &&fn)
     
    template<typename Fn >
    void foreach_parsec_data (Fn &&fn)
     
    iovec_iterator iovec_begin ()
     
    iovec_iterator iovec_end ()
     
    void iovec_reset ()
     
    void iovec_add (const ttg::iovec &iov)
     
    ttg::span< ttg::ioveciovec_span ()
     
    std::size_t iovec_count () const
     
    - Public Member Functions inherited from ttg_parsec::detail::ttg_data_copy_self_t
     ttg_data_copy_self_t (ttg_data_copy_t *dc)
     
    + + + +

    +Static Public Attributes

    static constexpr int mutable_tag = std::numeric_limits<int>::min()
     
    + + + + + + + + + + + + + + + +

    +Protected Attributes

    parsec_task_t * m_next_task = nullptr
     
    int32_t m_readers = 1
     
    std::atomic< int32_t > m_refs = 1
     
    std::vector< ttg::iovecm_iovecs
     
    std::vector< ttg_parsec_data_wrapper_t * > m_dev_data
     
    ttg_parsec_data_wrapper_tm_single_dev_data
     
    int m_num_dev_data = 0
     
    + + + + + + +

    +Additional Inherited Members

    - Public Attributes inherited from ttg_parsec::detail::ttg_data_copy_self_t
    parsec_list_item_t super
     
    ttg_data_copy_tself
     
    +

    Member Typedef Documentation

    + +

    ◆ iovec_iterator

    + +
    +
    + + + + +
    using ttg_parsec::detail::ttg_data_copy_t::iovec_iterator = typename std::vector<ttg::iovec>::iterator
    +
    + +

    Definition at line 399 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ iterator

    + +
    +
    + +

    Definition at line 303 of file ttg_data_copy.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ ttg_data_copy_t() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t ()
    +
    +inline
    +
    + +

    Definition at line 142 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ttg_data_copy_t() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t (const ttg_data_copy_tc)
    +
    +inline
    +
    + +

    Definition at line 146 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ttg_data_copy_t() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_copy_t::ttg_data_copy_t (ttg_data_copy_t && c)
    +
    +inline
    +
    + +

    Definition at line 154 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ~ttg_data_copy_t()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual ttg_parsec::detail::ttg_data_copy_t::~ttg_data_copy_t ()
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ add_device_data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::add_device_data (ttg_parsec_data_wrapper_tdata)
    +
    +inline
    +
    + +

    Definition at line 305 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ add_ref()

    + +
    +
    + + + + + +
    + + + + + + + +
    int32_t ttg_parsec::detail::ttg_data_copy_t::add_ref ()
    +
    +inline
    +
    + +

    Definition at line 268 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ decrement_readers()

    + +
    +
    +
    +template<bool Atomic = true>
    + + + + + +
    + + + + + + + +
    int ttg_parsec::detail::ttg_data_copy_t::decrement_readers ()
    +
    +inline
    +
    + +

    Definition at line 241 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ drop_ref()

    + +
    +
    + + + + + +
    + + + + + + + +
    int32_t ttg_parsec::detail::ttg_data_copy_t::drop_ref ()
    +
    +inline
    +
    + +

    Definition at line 272 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ foreach_parsec_data()

    + +
    +
    +
    +template<typename Fn >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::foreach_parsec_data (Fn && fn)
    +
    +inline
    +
    + +

    Definition at line 361 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ foreach_wrapper()

    + +
    +
    +
    +template<typename Fn >
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::foreach_wrapper (Fn && fn)
    +
    +inline
    +
    + +

    Definition at line 352 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ get_next_task()

    + +
    +
    + + + + + +
    + + + + + + + +
    parsec_task_t* ttg_parsec::detail::ttg_data_copy_t::get_next_task () const
    +
    +inline
    +
    + +

    Definition at line 260 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ get_ptr()

    + +
    +
    + + + + + +
    + + + + + + + +
    virtual void* ttg_parsec::detail::ttg_data_copy_t::get_ptr ()
    +
    +pure virtual
    +
    +
    + +

    ◆ has_ref()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg_parsec::detail::ttg_data_copy_t::has_ref ()
    +
    +inline
    +
    + +

    Definition at line 276 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ inc_current_version()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::inc_current_version ()
    +
    +inline
    +
    + +

    Definition at line 285 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ increment_readers()

    + +
    +
    +
    +template<bool Atomic = true>
    + + + + + +
    + + + + + + + +
    int ttg_parsec::detail::ttg_data_copy_t::increment_readers ()
    +
    +inline
    +
    + +

    Definition at line 218 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ iovec_add()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::iovec_add (const ttg::ioveciov)
    +
    +inline
    +
    + +

    Definition at line 413 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ iovec_begin()

    + +
    +
    + + + + + +
    + + + + + + + +
    iovec_iterator ttg_parsec::detail::ttg_data_copy_t::iovec_begin ()
    +
    +inline
    +
    + +

    Definition at line 401 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ iovec_count()

    + +
    +
    + + + + + +
    + + + + + + + +
    std::size_t ttg_parsec::detail::ttg_data_copy_t::iovec_count () const
    +
    +inline
    +
    + +

    Definition at line 421 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ iovec_end()

    + +
    +
    + + + + + +
    + + + + + + + +
    iovec_iterator ttg_parsec::detail::ttg_data_copy_t::iovec_end ()
    +
    +inline
    +
    + +

    Definition at line 405 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ iovec_reset()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::iovec_reset ()
    +
    +inline
    +
    + +

    Definition at line 409 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ iovec_span()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg::span<ttg::iovec> ttg_parsec::detail::ttg_data_copy_t::iovec_span ()
    +
    +inline
    +
    + +

    Definition at line 417 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ is_mutable()

    + +
    +
    + + + + + +
    + + + + + + + +
    bool ttg_parsec::detail::ttg_data_copy_t::is_mutable () const
    +
    +inline
    +
    + +

    Definition at line 205 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ mark_mutable()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::mark_mutable ()
    +
    +inline
    +
    + +

    Definition at line 210 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ num_dev_data()

    + +
    +
    + + + + + +
    + + + + + + + +
    int ttg_parsec::detail::ttg_data_copy_t::num_dev_data () const
    +
    +inline
    +
    + +

    Definition at line 347 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ num_readers()

    + +
    +
    + + + + + +
    + + + + + + + +
    int ttg_parsec::detail::ttg_data_copy_t::num_readers () const
    +
    +inline
    +
    + +

    Definition at line 253 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ num_ref()

    + +
    +
    + + + + + +
    + + + + + + + +
    int32_t ttg_parsec::detail::ttg_data_copy_t::num_ref () const
    +
    +inline
    +
    + +

    Definition at line 280 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_data_copy_t& ttg_parsec::detail::ttg_data_copy_t::operator= (const ttg_data_copy_tc)
    +
    +inline
    +
    + +

    Definition at line 193 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_data_copy_t& ttg_parsec::detail::ttg_data_copy_t::operator= (ttg_data_copy_t && c)
    +
    +inline
    +
    + +

    Definition at line 172 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ remove_device_data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::remove_device_data (ttg_parsec_data_wrapper_tdata)
    +
    +inline
    +
    + +

    Definition at line 324 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ reset_readers()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::reset_readers ()
    +
    +inline
    +
    +

    Reset the number of readers to read-only with a single reader.

    + +

    Definition at line 231 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ set_next_task()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::set_next_task (parsec_task_t * task)
    +
    +inline
    +
    + +

    Definition at line 264 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ transfer_ownership()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::ttg_data_copy_t::transfer_ownership (int access,
    int device = 0 
    )
    +
    +inline
    +
    + +

    Definition at line 293 of file ttg_data_copy.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_dev_data

    + +
    +
    + + + + + +
    + + + + +
    std::vector<ttg_parsec_data_wrapper_t*> ttg_parsec::detail::ttg_data_copy_t::m_dev_data
    +
    +protected
    +
    + +

    Definition at line 436 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ m_iovecs

    + +
    +
    + + + + + +
    + + + + +
    std::vector<ttg::iovec> ttg_parsec::detail::ttg_data_copy_t::m_iovecs
    +
    +protected
    +
    + +

    Definition at line 434 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ m_next_task

    + +
    +
    + + + + + +
    + + + + +
    parsec_task_t* ttg_parsec::detail::ttg_data_copy_t::m_next_task = nullptr
    +
    +protected
    +
    + +

    Definition at line 430 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ m_num_dev_data

    + +
    +
    + + + + + +
    + + + + +
    int ttg_parsec::detail::ttg_data_copy_t::m_num_dev_data = 0
    +
    +protected
    +
    + +

    Definition at line 439 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ m_readers

    + +
    +
    + + + + + +
    + + + + +
    int32_t ttg_parsec::detail::ttg_data_copy_t::m_readers = 1
    +
    +protected
    +
    + +

    Definition at line 431 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ m_refs

    + +
    +
    + + + + + +
    + + + + +
    std::atomic<int32_t> ttg_parsec::detail::ttg_data_copy_t::m_refs = 1
    +
    +protected
    +
    + +

    Definition at line 432 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ m_single_dev_data

    + +
    +
    + + + + + +
    + + + + +
    ttg_parsec_data_wrapper_t* ttg_parsec::detail::ttg_data_copy_t::m_single_dev_data
    +
    +protected
    +
    + +

    Definition at line 438 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ mutable_tag

    + +
    +
    + + + + + +
    + + + + +
    constexpr int ttg_parsec::detail::ttg_data_copy_t::mutable_tag = std::numeric_limits<int>::min()
    +
    +staticconstexpr
    +
    + +

    Definition at line 140 of file ttg_data_copy.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t.png b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__copy__t.png new file mode 100644 index 0000000000000000000000000000000000000000..ffb8f285fe7510a5a2a812e0a21801f076c3f73f GIT binary patch literal 2255 zcmcImdpMNa8g~#Wmrb1#LPHm)LXNN_*Fkb^d^2jst>`ktxEr@{WS38r!H(P|x0#yS z#YbdZHgc;Z=WAjZA`uO0jQfo9%{k|v^E~JLvHv*V^L%Ul)>`jc>sjml{oZ$_y1CfP z?NHevCMG85a0ZPL6B8#P7~C#_l)f6qT%=NVa{_F)wzd#B^Nk;w@jDek|NL89Teqc- zXdun)5f~SDF~msp!M%V1(&g=dwgRI6#2pPTg$DjVYe?FP>ggrnVBlfS@*NVmnP`DU)uCRy%}EHpf69*j`S0XHVaw z7%?!D;jP2CikASS8<>%O4|KrUv$R_%*mO_r*4eR zAExv_$Cr~9cNV&l8--pwtsCa+*F%`$f<|0AzxQFnNP+I?sOSpGTd$^D_p-(Fvv z8nEGa*l_7pAn1YY+_grhM15`kB~53p8SsixQ+Iw8aH8{V6~~vr?Unl;`Z30T&ib^)(ww|-B<@0co(yk*bwTa7qfxv4W1TFWmCtzVwlW+Ir^gLxavhmsEe^NbO0`9 z3rg|KE?oFocsy#2N{X}%_)zRz5fBjSn-ZA&mC>J+>-W9KZz04@SS3DNoX!T5XQfHMf1xLjpjj!y?yk02fh^@gA@&n-I| zPC-d=pfo;C(46y(sh%)nhPvcPmx_-7AX2;?78+DC>%aE81G(>q!4h}CRo5)UH#9uD z<08_fg-ruZoDl1BlA>aY16-N`97j#)Bg>!Y=M}!@nQ2HUtzLa$DK3+)g-w=x71mH5 zKy7uyoIK-u%%`#f!DmF+L`OwiA922tGP0J8EW!&(DTD&z$quk)Qd>ER+UhGZL)QI2 zmZ_=S6A8YkB$XP%90= zP&{QqVpd6 zB6ngq;_DTG$1JSo|J3V5P1nV|fwOC3g~$wZ4ucexi<7~*2N~?nfK%)TXY+gh#lYLf ze+gPREj}%}TZQU6uP;BAmiaV1R2V(aAJ^;*frsi=06C$WAMlbKSFc)Mb6G2pw)`T} z!nAxi{G|qPG|G1dh3s&v8s|}ag*yZ^*6op|bQfhod1vWTiByH^|HVAfs4->>&t&6s z`mVcA#Muz;#CSGn%x`cS1&kc;r%q<(cdU9Tb6k=V-z}|tDs2zvcNvi`cMXw^^i~av zymI-99Bt9@-UKn!SS{y{o>LH)8?I+91U!g?B{nS);xrX`K@kseWn&o?qg97;5N_q| zS35L$!`#5s#Oc+xcz;UB{q&vd-T&bizx+y_yh`FJDecAnkR(YZWqX7+=~H12EX||` zBD$P!c5*~;rU-{%4F3pqHjjGh<~oKocJdnplehThWjla@(WJM?CU9vzpkW`Q9G{}u%hxXiuf(5+*}xldWrw~yXitRS(r zI{)g}DHH<7YhI)L5*@WVWxCZ2oGB8|XSFm7q85@B6a@dwm$9ZJfIjq@W zx#xE5aZmH6@pJ0Z#C&%)~N)(u6sI0P)L}+zacvMy0boI;i5Ij>Ym} zLKzca7~fn!nCQk3LMPeqr{?W7pXLM+HFo`knMcJ1#FnaIMs0$I5xm?ud5_S=?-hi! zz!);IX)`~k=m4s>-%s_(ZOXt@eC-D*6~zGu8>rsB+WW@`)(_#-*&rz$Hlx1aZj&sJ zXdO_k7nM|!L(5wx(8;fapYst9-wecVOzplUH8LWug)(oI1_+6A^{03~Sgr@AS~?ZH zw%E?ib;Z8ydv+Je%HLDzIOk~#0-SL0roxl!=#E>FSCMRDs4;A*g%YYZiK;9R-1Fa9 zDWc|KQErbF6)sdH|1T|844d_b8}#$8gVxZ$p9w#0NwBjUA0KBnOd_ujF$Y^0^b>2} G8~*^LvRBXm literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t-members.html new file mode 100644 index 000000000..23be75a8d --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t-members.html @@ -0,0 +1,191 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::ttg_data_value_copy_t< ValueT > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::ttg_data_value_copy_t< ValueT >, including all inherited members.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    add_device_data(ttg_parsec_data_wrapper_t *data)ttg_parsec::detail::ttg_data_copy_tinline
    add_ref()ttg_parsec::detail::ttg_data_copy_tinline
    decrement_readers()ttg_parsec::detail::ttg_data_copy_tinline
    drop_ref()ttg_parsec::detail::ttg_data_copy_tinline
    foreach_parsec_data(Fn &&fn)ttg_parsec::detail::ttg_data_copy_tinline
    foreach_wrapper(Fn &&fn)ttg_parsec::detail::ttg_data_copy_tinline
    get_next_task() constttg_parsec::detail::ttg_data_copy_tinline
    get_ptr() override finalttg_parsec::detail::ttg_data_value_copy_t< ValueT >inlinevirtual
    has_ref()ttg_parsec::detail::ttg_data_copy_tinline
    inc_current_version()ttg_parsec::detail::ttg_data_copy_tinline
    increment_readers()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_add(const ttg::iovec &iov)ttg_parsec::detail::ttg_data_copy_tinline
    iovec_begin()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_count() constttg_parsec::detail::ttg_data_copy_tinline
    iovec_end()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_iterator typedefttg_parsec::detail::ttg_data_copy_t
    iovec_reset()ttg_parsec::detail::ttg_data_copy_tinline
    iovec_span()ttg_parsec::detail::ttg_data_copy_tinline
    is_mutable() constttg_parsec::detail::ttg_data_copy_tinline
    iterator typedefttg_parsec::detail::ttg_data_copy_t
    m_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    m_iovecsttg_parsec::detail::ttg_data_copy_tprotected
    m_next_taskttg_parsec::detail::ttg_data_copy_tprotected
    m_num_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    m_readersttg_parsec::detail::ttg_data_copy_tprotected
    m_refsttg_parsec::detail::ttg_data_copy_tprotected
    m_single_dev_datattg_parsec::detail::ttg_data_copy_tprotected
    m_valuettg_parsec::detail::ttg_data_value_copy_t< ValueT >
    mark_mutable()ttg_parsec::detail::ttg_data_copy_tinline
    mutable_tagttg_parsec::detail::ttg_data_copy_tstatic
    num_dev_data() constttg_parsec::detail::ttg_data_copy_tinline
    num_readers() constttg_parsec::detail::ttg_data_copy_tinline
    num_ref() constttg_parsec::detail::ttg_data_copy_tinline
    operator*()ttg_parsec::detail::ttg_data_value_copy_t< ValueT >inline
    operator=(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_assignable_v< value_type >)ttg_parsec::detail::ttg_data_value_copy_t< ValueT >inline
    operator=(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_assignable_v< value_type >)ttg_parsec::detail::ttg_data_value_copy_t< ValueT >inline
    ttg_parsec::detail::ttg_data_copy_t::operator=(ttg_data_copy_t &&c)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_parsec::detail::ttg_data_copy_t::operator=(const ttg_data_copy_t &c)ttg_parsec::detail::ttg_data_copy_tinline
    remove_device_data(ttg_parsec_data_wrapper_t *data)ttg_parsec::detail::ttg_data_copy_tinline
    reset_readers()ttg_parsec::detail::ttg_data_copy_tinline
    selfttg_parsec::detail::ttg_data_copy_self_t
    set_next_task(parsec_task_t *task)ttg_parsec::detail::ttg_data_copy_tinline
    superttg_parsec::detail::ttg_data_copy_self_t
    transfer_ownership(int access, int device=0)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_self_t(ttg_data_copy_t *dc)ttg_parsec::detail::ttg_data_copy_self_tinline
    ttg_data_copy_t()ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_t(const ttg_data_copy_t &c)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_copy_t(ttg_data_copy_t &&c)ttg_parsec::detail::ttg_data_copy_tinline
    ttg_data_value_copy_t(T &&value)ttg_parsec::detail::ttg_data_value_copy_t< ValueT >inline
    ttg_data_value_copy_t(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_constructible_v< value_type >)ttg_parsec::detail::ttg_data_value_copy_t< ValueT >inline
    ttg_data_value_copy_t(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_constructible_v< value_type >)ttg_parsec::detail::ttg_data_value_copy_t< ValueT >inline
    value_type typedefttg_parsec::detail::ttg_data_value_copy_t< ValueT >
    ~ttg_data_copy_t()=defaultttg_parsec::detail::ttg_data_copy_tvirtual
    ~ttg_data_value_copy_t()=defaultttg_parsec::detail::ttg_data_value_copy_t< ValueT >virtual
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html new file mode 100644 index 000000000..19f8289bf --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.html @@ -0,0 +1,571 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::ttg_data_value_copy_t< ValueT > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::ttg_data_value_copy_t< ValueT > Struct Template Referencefinal
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::ttg_data_value_copy_t< ValueT >:
    +
    +
    + + +ttg_parsec::detail::ttg_data_copy_container_setter< ttg_data_copy_t > +ttg_parsec::detail::ttg_data_copy_t +ttg_parsec::detail::ttg_data_copy_self_t + +
    +

    Documentation

    +

    template<typename ValueT>
    +struct ttg_parsec::detail::ttg_data_value_copy_t< ValueT >

    + +

    Extension of ttg_data_copy_t holding the actual value. The virtual destructor will take care of destructing the value if the destructor of ttg_data_copy_t base class is called.

    + +

    Definition at line 449 of file ttg_data_copy.h.

    +
    + + + + + + + + +

    +Public Types

    using value_type = ValueT
     
    - Public Types inherited from ttg_parsec::detail::ttg_data_copy_t
    using iterator = ttg_parsec_data_wrapper_t **
     
    using iovec_iterator = typename std::vector< ttg::iovec >::iterator
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

    template<typename T >
     ttg_data_value_copy_t (T &&value)
     
     ttg_data_value_copy_t (ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_constructible_v< value_type >)
     
     ttg_data_value_copy_t (const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_constructible_v< value_type >)
     
    ttg_data_value_copy_toperator= (ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_assignable_v< value_type >)
     
    ttg_data_value_copy_toperator= (const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_assignable_v< value_type >)
     
    value_typeoperator* ()
     
    virtual ~ttg_data_value_copy_t ()=default
     
    virtual void * get_ptr () override final
     
    - Public Member Functions inherited from ttg_parsec::detail::ttg_data_copy_t
     ttg_data_copy_t ()
     
     ttg_data_copy_t (const ttg_data_copy_t &c)
     
     ttg_data_copy_t (ttg_data_copy_t &&c)
     
    ttg_data_copy_toperator= (ttg_data_copy_t &&c)
     
    ttg_data_copy_toperator= (const ttg_data_copy_t &c)
     
    virtual ~ttg_data_copy_t ()=default
     
    bool is_mutable () const
     
    void mark_mutable ()
     
    template<bool Atomic = true>
    int increment_readers ()
     
    void reset_readers ()
     
    template<bool Atomic = true>
    int decrement_readers ()
     
    int num_readers () const
     
    parsec_task_t * get_next_task () const
     
    void set_next_task (parsec_task_t *task)
     
    int32_t add_ref ()
     
    int32_t drop_ref ()
     
    bool has_ref ()
     
    int32_t num_ref () const
     
    void inc_current_version ()
     
    void transfer_ownership (int access, int device=0)
     
    void add_device_data (ttg_parsec_data_wrapper_t *data)
     
    void remove_device_data (ttg_parsec_data_wrapper_t *data)
     
    int num_dev_data () const
     
    template<typename Fn >
    void foreach_wrapper (Fn &&fn)
     
    template<typename Fn >
    void foreach_parsec_data (Fn &&fn)
     
    iovec_iterator iovec_begin ()
     
    iovec_iterator iovec_end ()
     
    void iovec_reset ()
     
    void iovec_add (const ttg::iovec &iov)
     
    ttg::span< ttg::ioveciovec_span ()
     
    std::size_t iovec_count () const
     
    - Public Member Functions inherited from ttg_parsec::detail::ttg_data_copy_self_t
     ttg_data_copy_self_t (ttg_data_copy_t *dc)
     
    + + + + + + + + +

    +Public Attributes

    value_type m_value
     
    - Public Attributes inherited from ttg_parsec::detail::ttg_data_copy_self_t
    parsec_list_item_t super
     
    ttg_data_copy_tself
     
    + + + + + + + + + + + + + + + + + + + +

    +Additional Inherited Members

    - Static Public Attributes inherited from ttg_parsec::detail::ttg_data_copy_t
    static constexpr int mutable_tag = std::numeric_limits<int>::min()
     
    - Protected Attributes inherited from ttg_parsec::detail::ttg_data_copy_t
    parsec_task_t * m_next_task = nullptr
     
    int32_t m_readers = 1
     
    std::atomic< int32_t > m_refs = 1
     
    std::vector< ttg::iovecm_iovecs
     
    std::vector< ttg_parsec_data_wrapper_t * > m_dev_data
     
    ttg_parsec_data_wrapper_tm_single_dev_data
     
    int m_num_dev_data = 0
     
    +

    Member Typedef Documentation

    + +

    ◆ value_type

    + +
    +
    +
    +template<typename ValueT >
    + + + + +
    using ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::value_type = ValueT
    +
    + +

    Definition at line 451 of file ttg_data_copy.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ ttg_data_value_copy_t() [1/3]

    + +
    +
    +
    +template<typename ValueT >
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::ttg_data_value_copy_t (T && value)
    +
    +inline
    +
    + +

    Definition at line 455 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ttg_data_value_copy_t() [2/3]

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::ttg_data_value_copy_t (ttg_data_value_copy_t< ValueT > && c)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 464 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ttg_data_value_copy_t() [3/3]

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::ttg_data_value_copy_t (const ttg_data_value_copy_t< ValueT > & c)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 474 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ~ttg_data_value_copy_t()

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + +
    virtual ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::~ttg_data_value_copy_t ()
    +
    +virtualdefault
    +
    + +
    +
    +

    Member Function Documentation

    + +

    ◆ get_ptr()

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + +
    virtual void* ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::get_ptr ()
    +
    +inlinefinaloverridevirtual
    +
    + +

    Implements ttg_parsec::detail::ttg_data_copy_t.

    + +

    Definition at line 513 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ operator*()

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + +
    value_type& ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::operator* ()
    +
    +inline
    +
    + +

    Definition at line 506 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + + +
    ttg_data_value_copy_t& ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::operator= (const ttg_data_value_copy_t< ValueT > & c)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 495 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<typename ValueT >
    + + + + + +
    + + + + + + + + +
    ttg_data_value_copy_t& ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::operator= (ttg_data_value_copy_t< ValueT > && c)
    +
    +inlinenoexcept
    +
    + +

    Definition at line 484 of file ttg_data_copy.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_value

    + +
    +
    +
    +template<typename ValueT >
    + + + + +
    value_type ttg_parsec::detail::ttg_data_value_copy_t< ValueT >::m_value
    +
    + +

    Definition at line 452 of file ttg_data_copy.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.png b/dox-master/structttg__parsec_1_1detail_1_1ttg__data__value__copy__t.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f18916412d796b5f217c64170599bf6f1e868e GIT binary patch literal 2383 zcmcJRc~lcg9>>Em7%{NH12V`E?sfkzG1({!d2w4kf5CiSfoG1zme9!P4aC7Z_)_^b$55do5uORfBdShPMF~~u1)tg z#62}X8XQgj+c$O7hcqE&o6{|R>Q6Es^L*BZF!0@91(||iCYl zxA_((*^aFw@C<>KL1hCVXm0^a@)kvVFe;$Zo^_iO=}lcF`+uf@VyjPU1uuhkgLE|9 zrkIK9IxEZS{DsmOkLpj$J?rZ?hz4j{OyGSo#I;NN9UjTwQU!%Osnt=Y<}gE!MBlUGnC%nB%WC{zarj@Kdx z!h8RFr2agZ{|dgL&4b0pNOZ&nq>+JPYKJWBbOyoz@6fs_9f2Ji3Ye|g>1%v~6)elq z%LdWZC7aT}vqKppZ*O72`s29(dWpc?!o<+{)l$6}N5K4l#VuQllS=!6XJekIu8VNV z`-f043xd24WZnA0G6X%cgV{CnXWfFVPw8=9VNnjnI_VeXGNBlPe#wQ2&P@1kG%rYv zddyMW|KSuxIc7~|9z~>v{Z0baM;Zb3lK^khsQ2hI;!9W6Onf-MrX=>QEN1X7^NI2~X~t`N$xXn4CFFzrbeWV#S8OCI zAfYB_bu$?4NoD%Y_KRUP;EE-A897^GbY1v@1g~>=`DYdo7rM&jglhei*P4#8Q&^9- zsY1j}$m60PRf<+(Bis=D#1Gz$@x+?vhjnza%dlM1cD0VxAOu!954T;jcz^k!;-}B> z++yH&=#1T|a_$jwFu!w*rfbg^Mk@TP(j)}lJ5euK=3frU5~B+16d~QtSIY)Q%O`8q z@oo}#nbYMxVUh+_@`bdh#d&*D7i@5`?9-YEe#2El9;^x=uG#ipo{M?6t=?;Y^gL|w zEjHc+idQGLI?XS``#D2p*P+-f%|I`60}XF|1&S?l(dsfDwuBU?ErVCNxs{Qv?DL9U zNlAMg&=T6meQP!I0#yWmq_mF=6BP_uG1@XZZW$Tj z@TKX5*71=bw{dcQWWjXU*); zv-X8M0s2ml-l)}T=f}sxt~6=Lv3qeN5>t)iR$A4<2F-4J6mPweR&h(ZhC>(>E&OiJq6d zMjYTxCu%)adV%85q4i0IbKvJU<4*lb+#&QO&MV=z6lfqoYX9klW=+Sa$iK#;eOF6g zQk7U3QGYU8SKlJ!SxHSeMu#~z)Skor4Jex1zPY{l{E}#$;^(-~=$a4eym2v;@nf|a zzdJVW^6@vjZfOc8tqdr3a5naI?uf+5b3(25$_lzU6YbkdlZ;wi1S3HGKO(=_O9h^ zdwZ%)May%5$>RmDwg{g{!qvdg9+&0@q6#ze@?O5#+}9^9dx$UCe2F}Z;Z z8!I3`JmG%BplfGYA^VH7nyi)F`x8m=naAewUNSD)pTBd*ZPa~sag&%S6ST$VJ-@Gr zU2ENVUcXbnhL?LxNqf0VTO=^WiLrHihq%|r*cm-~GKEDlQC8=UFvhVdvM<&l#2)ph qk^T=5)@&CoEI(M1Z7^*&J!gWT-M!V{Ycu@!gV^R1M5x*vaq=G=eNN#3 literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t-members.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t-members.html new file mode 100644 index 000000000..e17369ddc --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t-members.html @@ -0,0 +1,155 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::detail::ttg_parsec_data_wrapper_t Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::detail::ttg_parsec_data_wrapper_t, including all inherited members.

    + + + + + + + + + + + + + + + + + + + +
    create_parsec_data(void *ptr, size_t size)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedstatic
    delete_null_parsec_data(parsec_data_t *)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedstatic
    delete_parsec_data(parsec_data_t *data)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedstatic
    m_datattg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    m_ttg_copyttg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    operator=(const ttg_parsec_data_wrapper_t &other)=deletettg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    operator=(ttg_parsec_data_wrapper_t &&other)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    parsec_data()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    parsec_data() constttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    parsec_data_ptr typedefttg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    remove_from_owner()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    reset_parsec_data(void *ptr, size_t size)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    set_owner(ttg_data_copy_t &new_copy)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    ttg_data_copy_tttg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    ttg_parsec_data_wrapper_t()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    ttg_parsec_data_wrapper_t(const ttg_parsec_data_wrapper_t &other)=deletettg_parsec::detail::ttg_parsec_data_wrapper_tprotected
    ttg_parsec_data_wrapper_t(ttg_parsec_data_wrapper_t &&other)ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotected
    ~ttg_parsec_data_wrapper_t()ttg_parsec::detail::ttg_parsec_data_wrapper_tinlineprotectedvirtual
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html b/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html new file mode 100644 index 000000000..a84a09e8a --- /dev/null +++ b/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.html @@ -0,0 +1,708 @@ + + + + + + + + + + + ttg: ttg_parsec::detail::ttg_parsec_data_wrapper_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::detail::ttg_parsec_data_wrapper_t Struct Reference
    +
    +
    +
    +Inheritance diagram for ttg_parsec::detail::ttg_parsec_data_wrapper_t:
    +
    +
    + + +ttg_parsec::Buffer< T, Allocator > + +
    +

    Documentation

    +
    +

    Definition at line 30 of file ttg_data_copy.h.

    +
    + + + +

    +Protected Types

    using parsec_data_ptr = std::unique_ptr< parsec_data_t, decltype(&parsec_data_destroy)>
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Protected Member Functions

    parsec_data_t * parsec_data ()
     
    const parsec_data_t * parsec_data () const
     
    void remove_from_owner ()
     
    void reset_parsec_data (void *ptr, size_t size)
     
     ttg_parsec_data_wrapper_t ()
     
     ttg_parsec_data_wrapper_t (const ttg_parsec_data_wrapper_t &other)=delete
     
     ttg_parsec_data_wrapper_t (ttg_parsec_data_wrapper_t &&other)
     
    ttg_parsec_data_wrapper_toperator= (const ttg_parsec_data_wrapper_t &other)=delete
     
    ttg_parsec_data_wrapper_toperator= (ttg_parsec_data_wrapper_t &&other)
     
    virtual ~ttg_parsec_data_wrapper_t ()
     
    void set_owner (ttg_data_copy_t &new_copy)
     
    + + + + + + + +

    +Static Protected Member Functions

    static parsec_data_t * create_parsec_data (void *ptr, size_t size)
     
    static void delete_parsec_data (parsec_data_t *data)
     
    static void delete_null_parsec_data (parsec_data_t *)
     
    + + + + + + + +

    +Protected Attributes

    ttg_data_copy_tm_ttg_copy = nullptr
     
    parsec_data_ptr m_data
     
    friend ttg_data_copy_t
     
    +

    Member Typedef Documentation

    + +

    ◆ parsec_data_ptr

    + +
    +
    + + + + + +
    + + + + +
    using ttg_parsec::detail::ttg_parsec_data_wrapper_t::parsec_data_ptr = std::unique_ptr<parsec_data_t, decltype(&parsec_data_destroy)>
    +
    +protected
    +
    + +

    Definition at line 33 of file ttg_data_copy.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ ttg_parsec_data_wrapper_t() [1/3]

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t ()
    +
    +inlineprotected
    +
    + +

    Definition at line 542 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ttg_parsec_data_wrapper_t() [2/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t (const ttg_parsec_data_wrapper_tother)
    +
    +protecteddelete
    +
    + +
    +
    + +

    ◆ ttg_parsec_data_wrapper_t() [3/3]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t (ttg_parsec_data_wrapper_t && other)
    +
    +inlineprotected
    +
    + +

    Definition at line 552 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ~ttg_parsec_data_wrapper_t()

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg_parsec::detail::ttg_parsec_data_wrapper_t::~ttg_parsec_data_wrapper_t ()
    +
    +inlineprotectedvirtual
    +
    + +

    Definition at line 588 of file ttg_data_copy.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ create_parsec_data()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    static parsec_data_t* ttg_parsec::detail::ttg_parsec_data_wrapper_t::create_parsec_data (void * ptr,
    size_t size 
    )
    +
    +inlinestaticprotected
    +
    + +

    Definition at line 40 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ delete_null_parsec_data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void ttg_parsec::detail::ttg_parsec_data_wrapper_t::delete_null_parsec_data (parsec_data_t * )
    +
    +inlinestaticprotected
    +
    + +

    Definition at line 77 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ delete_parsec_data()

    + +
    +
    + + + + + +
    + + + + + + + + +
    static void ttg_parsec::detail::ttg_parsec_data_wrapper_t::delete_parsec_data (parsec_data_t * data)
    +
    +inlinestaticprotected
    +
    + +

    Definition at line 57 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec_data_wrapper_t& ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator= (const ttg_parsec_data_wrapper_tother)
    +
    +protecteddelete
    +
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + +
    ttg_parsec_data_wrapper_t & ttg_parsec::detail::ttg_parsec_data_wrapper_t::operator= (ttg_parsec_data_wrapper_t && other)
    +
    +inlineprotected
    +
    + +

    Definition at line 571 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ parsec_data() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    parsec_data_t* ttg_parsec::detail::ttg_parsec_data_wrapper_t::parsec_data ()
    +
    +inlineprotected
    +
    + +

    Definition at line 49 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ parsec_data() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    const parsec_data_t* ttg_parsec::detail::ttg_parsec_data_wrapper_t::parsec_data () const
    +
    +inlineprotected
    +
    + +

    Definition at line 53 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ remove_from_owner()

    + +
    +
    + + + + + +
    + + + + + + + +
    void ttg_parsec::detail::ttg_parsec_data_wrapper_t::remove_from_owner ()
    +
    +inlineprotected
    +
    +

    definition of ttg_parsec_data_wrapper_t members that depend on ttg_data_copy_t

    + +

    Definition at line 523 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ reset_parsec_data()

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + +
    void ttg_parsec::detail::ttg_parsec_data_wrapper_t::reset_parsec_data (void * ptr,
    size_t size 
    )
    +
    +inlineprotected
    +
    + +

    Definition at line 531 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ set_owner()

    + +
    +
    + + + + + +
    + + + + + + + + +
    void ttg_parsec::detail::ttg_parsec_data_wrapper_t::set_owner (ttg_data_copy_tnew_copy)
    +
    +inlineprotected
    +
    + +

    Definition at line 102 of file ttg_data_copy.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ m_data

    + +
    +
    + + + + + +
    + + + + +
    parsec_data_ptr ttg_parsec::detail::ttg_parsec_data_wrapper_t::m_data
    +
    +protected
    +
    + +

    Definition at line 36 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ m_ttg_copy

    + +
    +
    + + + + + +
    + + + + +
    ttg_data_copy_t* ttg_parsec::detail::ttg_parsec_data_wrapper_t::m_ttg_copy = nullptr
    +
    +protected
    +
    + +

    Definition at line 35 of file ttg_data_copy.h.

    + +
    +
    + +

    ◆ ttg_data_copy_t

    + +
    +
    + + + + + +
    + + + + +
    friend ttg_parsec::detail::ttg_parsec_data_wrapper_t::ttg_data_copy_t
    +
    +protected
    +
    + +

    Definition at line 38 of file ttg_data_copy.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.png b/dox-master/structttg__parsec_1_1detail_1_1ttg__parsec__data__wrapper__t.png new file mode 100644 index 0000000000000000000000000000000000000000..953f6ebf20782cbe1b7be10f229bcc2873412f54 GIT binary patch literal 910 zcmeAS@N?(olHy`uVBq!ia0y~yVB`j}12~w0q~+EH4}g?JfKQ0)|NsAi%olIImi8Z- z0AzvjfddCvJMYK?xf~@ye!&btMIdnXREQA+1GB8Bi(^Oy#O7~83-Nf+0OY9`mfz=y#*v(shDc#`z zt<&B;Eny6DVa^}%mCe=x~1VZDFyt8Xvw-S~A&|LMjrdd|}`U!C9aPh8^Wrc2^i zbNJ+X_>))c5`F6WdGW2a-kRUq^S)hdpOx>Eb7y%k&rH$C$juT}lJDJ|cUPyRR%FP< z#qRmL{oa-I+Frry)e_rN6}skpejw64>E_aff1-!8F{a~hPk5lNC&_5 zfj*h;Q|m=$nD6}AG4YnP!iBugYTV|hekZBbgrBfWdh&7)!;h`tpwf<1;bvH0w$1ml z$=@=@nt1VskWCD2zl%I2fZ_O}ODPd3yCvCa5cYC&8zIC6?^9SmY5&8N5 zzo~y&8$A2bX`QSY>!hv+D{W`_a4%&)&qP`ABI$?}cJEi;?YOfOKd$}fa@q6JKEG$J zXJ7ArEBEN%u9}zqQfESEOWu)Z>|R)$a?y%0CKlU*0oU{ITMu zB*8Zm`=1>3+k4~2S#2@X^swrb<#9QiJ6<2n6iSbn;+*_hCi7}xZC?n(+rGADH&QxO_PWZu6k6#|6Zx}e w@uV+lwj114UhWS;3aZ%1GoNji=UtbN=(R}O(7o9Nn0XjHUHx3vIVCg!07L(*`~Uy| literal 0 HcmV?d00001 diff --git a/dox-master/structttg__parsec_1_1devicescratch-members.html b/dox-master/structttg__parsec_1_1devicescratch-members.html new file mode 100644 index 000000000..373f9b659 --- /dev/null +++ b/dox-master/structttg__parsec_1_1devicescratch-members.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::devicescratch< T > Member List
    +
    +
    + +

    This is the complete list of members for ttg_parsec::devicescratch< T >, including all inherited members.

    + + + + + + + + + + + + + + +
    detail::get_parsec_data(const ttg_parsec::devicescratch< T > &)ttg_parsec::devicescratch< T >friend
    device_ptr()ttg_parsec::devicescratch< T >inline
    device_ptr() constttg_parsec::devicescratch< T >inline
    devicescratch(element_type *ptr, ttg::scope scope=ttg::scope::SyncIn, std::size_t count=1)ttg_parsec::devicescratch< T >inline
    devicescratch(devicescratch &&)=deletettg_parsec::devicescratch< T >
    devicescratch(const devicescratch &db)=deletettg_parsec::devicescratch< T >
    element_type typedefttg_parsec::devicescratch< T >
    is_valid() constttg_parsec::devicescratch< T >inline
    operator=(devicescratch &&)=deletettg_parsec::devicescratch< T >
    operator=(const devicescratch &db)=deletettg_parsec::devicescratch< T >
    scope() constttg_parsec::devicescratch< T >inline
    size() constttg_parsec::devicescratch< T >inline
    ~devicescratch()ttg_parsec::devicescratch< T >inline
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1devicescratch.html b/dox-master/structttg__parsec_1_1devicescratch.html new file mode 100644 index 000000000..05f283964 --- /dev/null +++ b/dox-master/structttg__parsec_1_1devicescratch.html @@ -0,0 +1,568 @@ + + + + + + + + + + + ttg: ttg_parsec::devicescratch< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::devicescratch< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg_parsec::devicescratch< T >

    + +

    Scratch-space for task-local variables. TTG will allocate memory on the device and transfer data in and out based on the scope.

    + +

    Definition at line 29 of file devicescratch.h.

    +
    + + + +

    +Public Types

    using element_type = std::decay_t< T >
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Public Member Functions

     devicescratch (element_type *ptr, ttg::scope scope=ttg::scope::SyncIn, std::size_t count=1)
     
     devicescratch (devicescratch &&)=delete
     
     devicescratch (const devicescratch &db)=delete
     
    devicescratchoperator= (devicescratch &&)=delete
     
    devicescratchoperator= (const devicescratch &db)=delete
     
     ~devicescratch ()
     
    element_typedevice_ptr ()
     
    const element_typedevice_ptr () const
     
    bool is_valid () const
     
    ttg::scope scope () const
     
    std::size_t size () const
     
    + + + +

    +Friends

    parsec_data_t * detail::get_parsec_data (const ttg_parsec::devicescratch< T > &)
     
    +

    Member Typedef Documentation

    + +

    ◆ element_type

    + +
    +
    +
    +template<typename T >
    + + + + +
    using ttg_parsec::devicescratch< T >::element_type = std::decay_t<T>
    +
    + +

    Definition at line 31 of file devicescratch.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ devicescratch() [1/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::devicescratch< T >::devicescratch (element_typeptr,
    ttg::scope scope = ttg::scope::SyncIn,
    std::size_t count = 1 
    )
    +
    +inline
    +
    + +

    Definition at line 73 of file devicescratch.h.

    + +
    +
    + +

    ◆ devicescratch() [2/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::devicescratch< T >::devicescratch (devicescratch< T > && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ devicescratch() [3/3]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    ttg_parsec::devicescratch< T >::devicescratch (const devicescratch< T > & db)
    +
    +delete
    +
    + +
    +
    + +

    ◆ ~devicescratch()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    ttg_parsec::devicescratch< T >::~devicescratch ()
    +
    +inline
    +
    + +

    Definition at line 95 of file devicescratch.h.

    + +
    +
    +

    Member Function Documentation

    + +

    ◆ device_ptr() [1/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    element_type* ttg_parsec::devicescratch< T >::device_ptr ()
    +
    +inline
    +
    + +

    Definition at line 109 of file devicescratch.h.

    + +
    +
    + +

    ◆ device_ptr() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    const element_type* ttg_parsec::devicescratch< T >::device_ptr () const
    +
    +inline
    +
    + +

    Definition at line 115 of file devicescratch.h.

    + +
    +
    + +

    ◆ is_valid()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    bool ttg_parsec::devicescratch< T >::is_valid (void ) const
    +
    +inline
    +
    + +

    Definition at line 120 of file devicescratch.h.

    + +
    +
    + +

    ◆ operator=() [1/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    devicescratch& ttg_parsec::devicescratch< T >::operator= (const devicescratch< T > & db)
    +
    +delete
    +
    + +
    +
    + +

    ◆ operator=() [2/2]

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    devicescratch& ttg_parsec::devicescratch< T >::operator= (devicescratch< T > && )
    +
    +delete
    +
    + +
    +
    + +

    ◆ scope()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    ttg::scope ttg_parsec::devicescratch< T >::scope () const
    +
    +inline
    +
    + +

    Definition at line 126 of file devicescratch.h.

    + +
    +
    + +

    ◆ size()

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + +
    std::size_t ttg_parsec::devicescratch< T >::size () const
    +
    +inline
    +
    + +

    Definition at line 130 of file devicescratch.h.

    + +
    +
    +

    Friends And Related Function Documentation

    + +

    ◆ detail::get_parsec_data

    + +
    +
    +
    +template<typename T >
    + + + + + +
    + + + + + + + + +
    parsec_data_t* detail::get_parsec_data (const ttg_parsec::devicescratch< T > & )
    +
    +friend
    +
    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1msg__header__t-members.html b/dox-master/structttg__parsec_1_1msg__header__t-members.html new file mode 100644 index 000000000..82a2c9cac --- /dev/null +++ b/dox-master/structttg__parsec_1_1msg__header__t-members.html @@ -0,0 +1,155 @@ + + + + + + + + + + + ttg: Member List + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::msg_header_t Member List
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1msg__header__t.html b/dox-master/structttg__parsec_1_1msg__header__t.html new file mode 100644 index 000000000..71b3aea24 --- /dev/null +++ b/dox-master/structttg__parsec_1_1msg__header__t.html @@ -0,0 +1,461 @@ + + + + + + + + + + + ttg: ttg_parsec::msg_header_t Struct Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_parsec::msg_header_t Struct Reference
    +
    +
    +

    Documentation

    +
    +

    Definition at line 139 of file ttg.h.

    +
    + + + + + +

    +Public Types

    enum  fn_id : std::int8_t {
    +  MSG_INVALID = -1 +, MSG_SET_ARG = 0 +, MSG_SET_ARGSTREAM_SIZE = 1 +, MSG_FINALIZE_ARGSTREAM_SIZE = 2 +,
    +  MSG_GET_FROM_PULL = 3 +
    + }
     
    typedef enum ttg_parsec::msg_header_t::fn_id fn_id_t
     
    + + + + + +

    +Public Member Functions

     msg_header_t ()=default
     
     msg_header_t (fn_id_t fid, uint32_t tid, uint64_t oid, int32_t pid, int sender, int nk)
     
    + + + + + + + + + + + + + + + + + + + +

    +Public Attributes

    uint32_t taskpool_id = -1
     
    uint64_t op_id = -1
     
    std::size_t key_offset = 0
     
    fn_id_t fn_id = MSG_INVALID
     
    std::int8_t num_iovecs = 0
     
    bool inline_data = false
     
    int32_t param_id = -1
     
    int num_keys = 0
     
    int sender = -1
     
    +

    Member Typedef Documentation

    + +

    ◆ fn_id_t

    + + +

    Member Enumeration Documentation

    + +

    ◆ fn_id

    + +
    +
    + + + + +
    enum ttg_parsec::msg_header_t::fn_id : std::int8_t
    +
    + + + + + + +
    Enumerator
    MSG_INVALID 
    MSG_SET_ARG 
    MSG_SET_ARGSTREAM_SIZE 
    MSG_FINALIZE_ARGSTREAM_SIZE 
    MSG_GET_FROM_PULL 
    + +

    Definition at line 140 of file ttg.h.

    + +
    +
    +

    Constructor & Destructor Documentation

    + +

    ◆ msg_header_t() [1/2]

    + +
    +
    + + + + + +
    + + + + + + + +
    ttg_parsec::msg_header_t::msg_header_t ()
    +
    +default
    +
    + +
    +
    + +

    ◆ msg_header_t() [2/2]

    + +
    +
    + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ttg_parsec::msg_header_t::msg_header_t (fn_id_t fid,
    uint32_t tid,
    uint64_t oid,
    int32_t pid,
    int sender,
    int nk 
    )
    +
    +inline
    +
    + +

    Definition at line 158 of file ttg.h.

    + +
    +
    +

    Member Data Documentation

    + +

    ◆ fn_id

    + +
    +
    + +

    Definition at line 149 of file ttg.h.

    + +
    +
    + +

    ◆ inline_data

    + +
    +
    + + + + +
    bool ttg_parsec::msg_header_t::inline_data = false
    +
    + +

    Definition at line 151 of file ttg.h.

    + +
    +
    + +

    ◆ key_offset

    + +
    +
    + + + + +
    std::size_t ttg_parsec::msg_header_t::key_offset = 0
    +
    + +

    Definition at line 148 of file ttg.h.

    + +
    +
    + +

    ◆ num_iovecs

    + +
    +
    + + + + +
    std::int8_t ttg_parsec::msg_header_t::num_iovecs = 0
    +
    + +

    Definition at line 150 of file ttg.h.

    + +
    +
    + +

    ◆ num_keys

    + +
    +
    + + + + +
    int ttg_parsec::msg_header_t::num_keys = 0
    +
    + +

    Definition at line 153 of file ttg.h.

    + +
    +
    + +

    ◆ op_id

    + +
    +
    + + + + +
    uint64_t ttg_parsec::msg_header_t::op_id = -1
    +
    + +

    Definition at line 147 of file ttg.h.

    + +
    +
    + +

    ◆ param_id

    + +
    +
    + + + + +
    int32_t ttg_parsec::msg_header_t::param_id = -1
    +
    + +

    Definition at line 152 of file ttg.h.

    + +
    +
    + +

    ◆ sender

    + +
    +
    + + + + +
    int ttg_parsec::msg_header_t::sender = -1
    +
    + +

    Definition at line 154 of file ttg.h.

    + +
    +
    + +

    ◆ taskpool_id

    + +
    +
    + + + + +
    uint32_t ttg_parsec::msg_header_t::taskpool_id = -1
    +
    + +

    Definition at line 146 of file ttg.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/structttg__parsec_1_1ptr.html b/dox-master/structttg__parsec_1_1ptr.html new file mode 100644 index 000000000..a3bcf6fa5 --- /dev/null +++ b/dox-master/structttg__parsec_1_1ptr.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg_parsec::ptr< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_parsec::ptr< T > Struct Template Reference
    +
    +
    +

    Documentation

    +

    template<typename T>
    +struct ttg_parsec::ptr< T >

    + + +

    Definition at line 15 of file ptr.h.

    +

    The documentation for this struct was generated from the following file: +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/sync_off.png b/dox-master/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/dox-master/sync_on.png b/dox-master/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/dox-master/tab_a.png b/dox-master/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/dox-master/tab_b.png b/dox-master/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/dox-master/tabs.css b/dox-master/tabs.css new file mode 100644 index 000000000..720b1c6cf --- /dev/null +++ b/dox-master/tabs.css @@ -0,0 +1,61 @@ +.tabs, .tabs2, .tabs3 { + background-image: url('tab_b.png'); + width: 100%; + z-index: 101; + font-size: 13px; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +} + +.tabs2 { + font-size: 10px; +} +.tabs3 { + font-size: 9px; +} + +.tablist { + margin: 0; + padding: 0; + display: table; +} + +.tablist li { + float: left; + display: table-cell; + background-image: url('tab_b.png'); + line-height: 36px; + list-style: none; +} + +.tablist a { + display: block; + padding: 0 20px; + font-weight: bold; + background-image:url('tab_s.png'); + background-repeat:no-repeat; + background-position:right; + color: #283A5D; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; + outline: none; +} + +.tabs3 .tablist a { + padding: 0 10px; +} + +.tablist a:hover { + background-image: url('tab_h.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); + text-decoration: none; +} + +.tablist li.current a { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + diff --git a/dox-master/terminal_8h.html b/dox-master/terminal_8h.html new file mode 100644 index 000000000..b15d300ef --- /dev/null +++ b/dox-master/terminal_8h.html @@ -0,0 +1,228 @@ + + + + + + + + + + + ttg: ttg/ttg/terminal.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    terminal.h File Reference
    +
    +
    +
    #include <exception>
    +#include <stdexcept>
    +#include <type_traits>
    +#include "ttg/base/terminal.h"
    +#include "ttg/fwd.h"
    +#include "ttg/util/demangle.h"
    +#include "ttg/util/meta.h"
    +#include "ttg/util/trace.h"
    +#include "ttg/world.h"
    +#include "ttg/run.h"
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  ttg::detail::ContainerWrapper< keyT, valueT >
     
    struct  ttg::detail::ContainerWrapper< void, valueT >
     
    struct  ttg::detail::ContainerWrapper< keyT, void >
     
    struct  ttg::detail::ContainerWrapper< ttg::Void, valueT >
     
    struct  ttg::detail::ContainerWrapper< void, void >
     
    class  ttg::InTerminalBase< keyT >
     Base type for input terminals receiving messages annotated by task IDs of type keyT More...
     
    class  ttg::In< keyT, valueT >
     
    struct  ttg::detail::input_terminals_tuple< keyT, valuesT >
     
    struct  ttg::detail::input_terminals_tuple< keyT, std::tuple< valuesT... > >
     
    struct  ttg::meta::is_input_terminal< T >
     
    class  ttg::OutTerminalBase< keyT >
     
    class  ttg::Out< keyT, valueT >
     
    struct  ttg::meta::is_output_terminal< T >
     
    struct  ttg::meta::is_output_terminal_tuple< T >
     
    struct  ttg::meta::is_output_terminal_tuple< std::tuple< Ts... > >
     
    struct  ttg::meta::decays_to_output_terminal_tuple< T >
     
    struct  ttg::meta::is_nonconst_lvalue_reference_to_output_terminal_tuple< T >
     
    + + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
     ttg::meta
     
    + + + + +

    +Typedefs

    template<typename keyT , typename... valuesT>
    using ttg::detail::input_terminals_tuple_t = typename input_terminals_tuple< keyT, valuesT... >::type
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    template<typename T >
    constexpr bool ttg::meta::is_input_terminal_v = false
     detects whether a given type is an input terminal type More...
     
    template<typename keyT >
    constexpr bool ttg::meta::is_input_terminal_v< InTerminalBase< keyT > > = true
     
    template<typename keyT , typename valueT >
    constexpr bool ttg::meta::is_input_terminal_v< In< keyT, valueT > > = true
     
    template<typename T >
    constexpr bool ttg::meta::is_output_terminal_v = false
     detects whether a given type is an output terminal type More...
     
    template<typename keyT >
    constexpr bool ttg::meta::is_output_terminal_v< OutTerminalBase< keyT > > = true
     
    template<typename keyT , typename valueT >
    constexpr bool ttg::meta::is_output_terminal_v< Out< keyT, valueT > > = true
     
    template<typename... Ts>
    constexpr bool ttg::meta::is_output_terminal_tuple_v = is_output_terminal_tuple<Ts...>::value
     
    template<typename T >
    constexpr bool ttg::meta::decays_to_output_terminal_tuple_v = is_output_terminal_tuple_v<std::decay_t<T>>
     
    template<typename T >
    constexpr bool ttg::meta::is_nonconst_lvalue_reference_to_output_terminal_tuple_v
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/terminal_8h_source.html b/dox-master/terminal_8h_source.html new file mode 100644 index 000000000..18404156a --- /dev/null +++ b/dox-master/terminal_8h_source.html @@ -0,0 +1,841 @@ + + + + + + + + + + + ttg: ttg/ttg/terminal.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    terminal.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_TERMINALS_H
    +
    2 #define TTG_TERMINALS_H
    +
    3 
    +
    4 #include <exception>
    +
    5 #include <stdexcept>
    +
    6 #include <type_traits>
    +
    7 
    +
    8 #include "ttg/base/terminal.h"
    +
    9 #include "ttg/fwd.h"
    +
    10 #include "ttg/util/demangle.h"
    +
    11 #include "ttg/util/meta.h"
    +
    12 #include "ttg/util/trace.h"
    +
    13 #include "ttg/world.h"
    +
    14 #include "ttg/run.h"
    +
    15 
    +
    16 namespace ttg {
    +
    17  namespace detail {
    +
    18 
    +
    19  /* Wraps any key,value data structure.
    +
    20  * Elements of the data structure can be accessed using get method, which calls the at method of the Container.
    +
    21  * keyT - taskID
    +
    22  * valueT - Value type of the Container
    +
    23  */
    +
    24  template<typename keyT, typename valueT>
    + +
    26  std::function<valueT (keyT const& key)> get = nullptr;
    +
    27  std::function<size_t (keyT const& key)> owner = nullptr;
    +
    28 
    +
    29  ContainerWrapper() = default;
    +
    30  ContainerWrapper(const ContainerWrapper &) = default;
    + + +
    33 
    +
    34  template<typename T, typename mapperT, typename keymapT, std::enable_if_t<!std::is_same<std::decay_t<T>,
    +
    35  ContainerWrapper>{}, bool> = true>
    +
    36  //Store a pointer to the user's container in std::any, no copies
    +
    37  ContainerWrapper(T &t, mapperT &&mapper,
    +
    38  keymapT &&keymap) : get([&t, mapper = std::forward<mapperT>(mapper)](keyT const &key) {
    +
    39  if constexpr (!std::is_class_v<T> && std::is_invocable_v<T, keyT>) {
    +
    40  auto k = mapper(key);
    +
    41  return t(k); //Call the user-defined lambda function.
    +
    42  }
    +
    43  else
    +
    44  {
    +
    45  auto k = mapper(key);
    +
    46  //at method returns a const ref to the item.
    +
    47  return t.at(k);
    +
    48  }
    +
    49  }),
    +
    50  owner([&t, mapper = std::forward<mapperT>(mapper),
    +
    51  keymap = std::forward<keymapT>(keymap)](keyT const &key) {
    +
    52  auto idx = mapper(key); //Mapper to map task ID to index of the data structure.
    +
    53  return keymap(idx);
    +
    54  })
    +
    55  {}
    +
    56  };
    +
    57 
    +
    58  template <typename valueT> struct ContainerWrapper<void, valueT> {
    +
    59  std::function<valueT ()> get = nullptr;
    +
    60  std::function<size_t ()> owner = nullptr;
    +
    61  };
    +
    62 
    +
    63  template <typename keyT> struct ContainerWrapper<keyT, void> {
    +
    64  std::function<std::nullptr_t (keyT const& key)> get = nullptr;
    +
    65  std::function<size_t (keyT const& key)> owner = nullptr;
    +
    66  };
    +
    67 
    +
    68  template <typename valueT> struct ContainerWrapper<ttg::Void, valueT> {
    +
    69  std::function<valueT ()> get = nullptr;
    +
    70  std::function<size_t ()> owner = nullptr;
    +
    71  };
    +
    72 
    +
    73  template <> struct ContainerWrapper<void, void> {
    +
    74  std::function<std::nullptr_t ()> get = nullptr;
    +
    75  std::function<size_t ()> owner = nullptr;
    +
    76  };
    +
    77  } //namespace detail
    +
    78 
    +
    81  template <typename keyT = void>
    +
    82  class InTerminalBase : public TerminalBase {
    +
    83  public:
    +
    84  typedef keyT key_type;
    +
    85  static_assert(std::is_same_v<keyT, std::decay_t<keyT>>,
    +
    86  "InTerminalBase<keyT,valueT> assumes keyT is a non-decayable type");
    +
    87  using setsize_callback_type = meta::detail::setsize_callback_t<keyT>;
    +
    88  using finalize_callback_type = meta::detail::finalize_callback_t<keyT>;
    +
    89  static constexpr bool is_an_input_terminal = true;
    +
    90 
    +
    91  protected:
    + +
    93 
    + + +
    96 
    + + +
    99  this->setsize_callback = setsize_callback;
    +
    100  this->finalize_callback = finalize_callback;
    +
    101  }
    +
    102 
    +
    103  private:
    +
    104  // No moving, copying, assigning permitted
    +
    105  InTerminalBase(InTerminalBase &&other) = delete;
    +
    106  InTerminalBase(const InTerminalBase &other) = delete;
    +
    107  InTerminalBase &operator=(const InTerminalBase &other) = delete;
    +
    108  InTerminalBase &operator=(const InTerminalBase &&other) = delete;
    +
    109 
    +
    110  public:
    +
    111  template <typename Key = keyT>
    +
    112  std::enable_if_t<!meta::is_void_v<Key>, void> set_size(const Key &key, std::size_t size) {
    +
    113  if (!setsize_callback) throw std::runtime_error("set_size callback not initialized");
    +
    114  setsize_callback(key, size);
    +
    115  }
    +
    116 
    +
    117  template <typename Key = keyT>
    +
    118  std::enable_if_t<meta::is_void_v<Key>, void> set_size(std::size_t size) {
    +
    119  if (!setsize_callback) throw std::runtime_error("set_size callback not initialized");
    + +
    121  }
    +
    122 
    +
    123  template <typename Key = keyT>
    +
    124  std::enable_if_t<!meta::is_void_v<Key>, void> finalize(const Key &key) {
    +
    125  // std::cout << "In::finalize::\n";
    +
    126  if (!finalize_callback) throw std::runtime_error("finalize callback not initialized");
    +
    127  finalize_callback(key);
    +
    128  }
    +
    129 
    +
    130  template <typename Key = keyT>
    +
    131  std::enable_if_t<meta::is_void_v<Key>, void> finalize() {
    +
    132  if (!finalize_callback) throw std::runtime_error("finalize callback not initialized");
    + +
    134  }
    +
    135  };
    +
    136 
    +
    141 
    +
    142  template <typename keyT = void, typename valueT = void>
    +
    143  class In : public InTerminalBase<keyT> {
    +
    144  public:
    + +
    146  typedef valueT value_type;
    +
    147  typedef keyT key_type;
    +
    148  static_assert(std::is_same_v<keyT, std::decay_t<keyT>>, "In<keyT,valueT> assumes keyT is a non-decayable type");
    +
    149  // valueT can be T or const T
    +
    150  static_assert(std::is_same_v<std::remove_const_t<valueT>, std::decay_t<valueT>>,
    +
    151  "In<keyT,valueT> assumes std::remove_const<T> is a non-decayable type");
    + +
    153  using send_callback_type = meta::detail::send_callback_t<keyT, std::decay_t<valueT>>;
    +
    154  using move_callback_type = meta::detail::move_callback_t<keyT, std::decay_t<valueT>>;
    +
    155  using broadcast_callback_type = meta::detail::broadcast_callback_t<keyT, std::decay_t<valueT>>;
    + + +
    158  using prepare_send_callback_type = meta::detail::prepare_send_callback_t<keyT, std::decay_t<valueT>>;
    +
    159  static constexpr bool is_an_input_terminal = true;
    + +
    161 
    +
    162  private:
    +
    163  send_callback_type send_callback;
    +
    164  move_callback_type move_callback;
    +
    165  broadcast_callback_type broadcast_callback;
    +
    166  prepare_send_callback_type prepare_send_callback;
    +
    167 
    +
    168  // No moving, copying, assigning permitted
    +
    169  In(In &&other) = delete;
    +
    170  In(const In &other) = delete;
    +
    171  In &operator=(const In &other) = delete;
    +
    172  In &operator=(const In &&other) = delete;
    +
    173 
    +
    174  void connect(TerminalBase *p) override {
    +
    175  throw "Edge: to connect terminals use out->connect(in) rather than in->connect(out)";
    +
    176  }
    +
    177 
    +
    178  public:
    +
    180  In() : InTerminalBase<keyT>(std::is_const_v<valueT> ? TerminalBase::Type::Read : TerminalBase::Type::Consume){};
    +
    181 
    +
    192  void set_callback(const send_callback_type &send_callback, const move_callback_type &move_callback,
    +
    193  const broadcast_callback_type &bcast_callback = broadcast_callback_type{},
    + + +
    196  const prepare_send_callback_type &prepare_send_callback = prepare_send_callback_type{}) {
    +
    197  this->send_callback = send_callback;
    +
    198  this->move_callback = move_callback;
    +
    199  this->broadcast_callback = bcast_callback;
    +
    200  this->prepare_send_callback = prepare_send_callback;
    + +
    202  }
    +
    203 
    +
    204  template <typename Key = keyT, typename Value = valueT>
    +
    205  std::enable_if_t<meta::is_none_void_v<Key, Value>, void> send(const Key &key, const Value &value) {
    +
    206  if (!send_callback) throw std::runtime_error("send callback not initialized");
    +
    207  send_callback(key, value);
    +
    208  }
    +
    209 
    +
    210  template <typename Key = keyT, typename Value = valueT>
    +
    211  std::enable_if_t<meta::is_none_void_v<Key, Value> && std::is_same_v<Value, std::remove_reference_t<Value>>, void>
    +
    212  send(const Key &key, Value &&value) {
    +
    213  if (!move_callback) throw std::runtime_error("move callback not initialized");
    +
    214  move_callback(key, std::forward<valueT>(value));
    +
    215  }
    +
    216 
    +
    217  template <typename Key = keyT>
    +
    218  std::enable_if_t<!meta::is_void_v<Key>, void> sendk(const Key &key) {
    +
    219  if (!send_callback) throw std::runtime_error("send callback not initialized");
    +
    220  send_callback(key);
    +
    221  }
    +
    222 
    +
    223  template <typename Value = valueT>
    +
    224  std::enable_if_t<!meta::is_void_v<Value>, void> sendv(const Value &value) {
    +
    225  if (!send_callback) throw std::runtime_error("send callback not initialized");
    +
    226  send_callback(value);
    +
    227  }
    +
    228 
    +
    229  template <typename Value = valueT>
    +
    230  std::enable_if_t<!meta::is_void_v<Value> && std::is_same_v<Value, std::remove_reference_t<Value>>, void> sendv(
    +
    231  Value &&value) {
    +
    232  if (!move_callback) throw std::runtime_error("move callback not initialized");
    +
    233  move_callback(std::forward<valueT>(value));
    +
    234  }
    +
    235 
    +
    236  void send() {
    +
    237  if (!send_callback) throw std::runtime_error("send callback not initialized");
    +
    238  send_callback();
    +
    239  }
    +
    240 
    +
    241  // An optimized implementation will need a separate callback for broadcast
    +
    242  // with a specific value for rangeT
    +
    243  template <typename rangeT, typename Value>
    +
    244  std::enable_if_t<!meta::is_void_v<Value>, void> broadcast(const rangeT &keylist, const Value &value) {
    +
    245  if (broadcast_callback) {
    +
    246  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    247  broadcast_callback(ttg::span<const keyT>(&(*std::begin(keylist)), std::distance(std::begin(keylist), std::end(keylist))),
    +
    248  value);
    +
    249  } else {
    +
    250  /* got something we cannot iterate over (single element?) so put one element in the span */
    +
    251  broadcast_callback(ttg::span<const keyT>(&keylist, 1), value);
    +
    252  }
    +
    253  } else {
    +
    254  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    255  for (auto &&key : keylist) send(key, value);
    +
    256  } else {
    +
    257  /* single element */
    +
    258  send(keylist, value);
    +
    259  }
    +
    260  }
    +
    261  }
    +
    262 
    +
    263  template <typename rangeT, typename Value>
    +
    264  std::enable_if_t<!meta::is_void_v<Value>, void> broadcast(const rangeT &keylist, Value &&value) {
    +
    265  const Value &v = value;
    +
    266  if (broadcast_callback) {
    +
    267  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    268  broadcast_callback(
    +
    269  ttg::span<const keyT>(&(*std::begin(keylist)), std::distance(std::begin(keylist), std::end(keylist))), v);
    +
    270  } else {
    +
    271  /* got something we cannot iterate over (single element?) so put one element in the span */
    +
    272  broadcast_callback(ttg::span<const keyT>(&keylist, 1), v);
    +
    273  }
    +
    274  } else {
    +
    275  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    276  for (auto &&key : keylist) send(key, v);
    +
    277  } else {
    +
    278  /* got something we cannot iterate over (single element?) so put one element in the span */
    +
    279  send(ttg::span<const keyT>(&keylist, 1), v);
    +
    280  }
    +
    281  }
    +
    282  }
    +
    283 
    +
    284  template <typename rangeT, typename Value = valueT>
    +
    285  std::enable_if_t<meta::is_void_v<Value>, void> broadcast(const rangeT &keylist) {
    +
    286  if (broadcast_callback) {
    +
    287  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    288  broadcast_callback(
    +
    289  ttg::span<const keyT>(&(*std::begin(keylist)), std::distance(std::begin(keylist), std::end(keylist))));
    +
    290  } else {
    +
    291  /* got something we cannot iterate over (single element?) so put one element in the span */
    +
    292  broadcast_callback(ttg::span<const keyT>(&keylist, 1));
    +
    293  }
    +
    294  } else {
    +
    295  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    296  for (auto &&key : keylist) sendk(key);
    +
    297  } else {
    +
    298  /* got something we cannot iterate over (single element?) so put one element in the span */
    +
    299  sendk(ttg::span<const keyT>(&keylist, 1));
    +
    300  }
    +
    301  }
    +
    302  }
    +
    303 
    +
    304 
    +
    305  template <typename rangeT, typename Value>
    +
    306  void prepare_send(const rangeT &keylist, Value &&value) {
    +
    307  const Value &v = value;
    +
    308  if (prepare_send_callback) {
    +
    309  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    310  prepare_send_callback(ttg::span<const keyT>(&(*std::begin(keylist)),
    +
    311  std::distance(std::begin(keylist), std::end(keylist))),
    +
    312  v);
    +
    313  } else {
    +
    314  /* got something we cannot iterate over (single element?) so put one element in the span */
    +
    315  prepare_send_callback(ttg::span<const keyT>(&keylist, 1), v);
    +
    316  }
    +
    317  }
    +
    318  }
    +
    319 
    +
    320  template <typename rangeT, typename Value>
    +
    321  void prepare_send(Value &&value) {
    +
    322  const Value &v = value;
    +
    323  if (prepare_send_callback) {
    +
    324  if constexpr (ttg::meta::is_iterable_v<rangeT>) {
    +
    325  prepare_send_callback(v);
    +
    326  } else {
    +
    327  /* got something we cannot iterate over (single element?) so put one element in the span */
    +
    328  prepare_send_callback(v);
    +
    329  }
    +
    330  }
    +
    331  }
    +
    332  };
    +
    333 
    +
    334  namespace detail {
    +
    335  template <typename keyT, typename... valuesT>
    + +
    337  using type = std::tuple<ttg::In<keyT, valuesT>...>;
    +
    338  };
    +
    339 
    +
    340  template <typename keyT, typename... valuesT>
    +
    341  struct input_terminals_tuple<keyT, std::tuple<valuesT...>> {
    +
    342  using type = std::tuple<ttg::In<keyT, valuesT>...>;
    +
    343  };
    +
    344 
    +
    345  template <typename keyT, typename... valuesT>
    +
    346  using input_terminals_tuple_t = typename input_terminals_tuple<keyT, valuesT...>::type;
    +
    347  } // namespace detail
    +
    348 
    +
    349  namespace meta {
    +
    351  template <typename T>
    +
    352  inline constexpr bool is_input_terminal_v = false;
    +
    353  template <typename keyT>
    +
    354  inline constexpr bool is_input_terminal_v<InTerminalBase<keyT>> = true;
    +
    355  template <typename keyT, typename valueT>
    +
    356  inline constexpr bool is_input_terminal_v<In<keyT, valueT>> = true;
    +
    357 
    +
    358  template <typename T>
    +
    359  struct is_input_terminal : std::bool_constant<is_input_terminal_v<T>> {};
    +
    360  } // namespace meta
    +
    361 
    +
    364  template <typename keyT = void>
    +
    365  class OutTerminalBase : public TerminalBase {
    +
    366  public:
    +
    367  using key_type = keyT;
    +
    368  static_assert(std::is_same_v<keyT, std::decay_t<keyT>>, "Out<keyT,valueT> assumes keyT is a non-decayable type");
    +
    369  static constexpr bool is_an_output_terminal = true;
    +
    370 
    +
    371  private:
    +
    372  // No moving, copying, assigning permitted
    +
    373  OutTerminalBase(OutTerminalBase &&other) = delete;
    +
    374  OutTerminalBase(const OutTerminalBase &other) = delete;
    +
    375  OutTerminalBase &operator=(const OutTerminalBase &other) = delete;
    +
    376  OutTerminalBase &operator=(const OutTerminalBase &&other) = delete;
    +
    377 
    +
    378  public:
    + +
    380 
    +
    381  auto nsuccessors() const { return get_connections().size(); }
    +
    382  const auto &successors() const { return get_connections(); }
    +
    383 
    +
    384  template <typename Key = keyT>
    +
    385  std::enable_if_t<!meta::is_void_v<Key>, void> set_size(const Key &key, std::size_t size) {
    +
    386  for (auto &&successor : successors()) {
    +
    387  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    388  static_cast<InTerminalBase<keyT> *>(successor)->set_size(key, size);
    +
    389  }
    +
    390  }
    +
    391 
    +
    392  template <typename Key = keyT>
    +
    393  std::enable_if_t<meta::is_void_v<Key>, void> set_size(std::size_t size) {
    +
    394  for (auto &&successor : successors()) {
    +
    395  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    396  static_cast<InTerminalBase<keyT> *>(successor)->set_size(size);
    +
    397  }
    +
    398  }
    +
    399 
    +
    400  template <typename Key = keyT>
    +
    401  std::enable_if_t<!meta::is_void_v<Key>, void> finalize(const Key &key) {
    +
    402  for (auto &&successor : successors()) {
    +
    403  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    404  static_cast<InTerminalBase<keyT> *>(successor)->finalize(key);
    +
    405  }
    +
    406  }
    +
    407 
    +
    408  template <typename Key = keyT>
    +
    409  std::enable_if_t<meta::is_void_v<Key>, void> finalize() {
    +
    410  for (auto successor : successors()) {
    +
    411  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    412  static_cast<InTerminalBase<keyT> *>(successor)->finalize();
    +
    413  }
    +
    414  }
    +
    415  };
    +
    416 
    +
    420  template <typename keyT = void, typename valueT = void>
    +
    421  class Out : public OutTerminalBase<keyT> {
    +
    422  public:
    +
    423  using value_type = valueT;
    + +
    425  static_assert(std::is_same_v<valueT, std::decay_t<valueT>>,
    +
    426  "Out<keyT,valueT> assumes valueT is a non-decayable type");
    + +
    428  static constexpr bool is_an_output_terminal = true;
    +
    429 
    +
    430  private:
    +
    431  // No moving, copying, assigning permitted
    +
    432  Out(Out &&other) = delete;
    +
    433  Out(const Out &other) = delete;
    +
    434  Out &operator=(const Out &other) = delete;
    +
    435  Out &operator=(const Out &&other) = delete;
    +
    436 
    +
    437  public:
    +
    438  Out() = default;
    +
    439 
    +
    441  void connect(TerminalBase *in) override {
    +
    442 #ifndef NDEBUG
    +
    443  if (in->get_type() == TerminalBase::Type::Read) {
    +
    444  typedef In<keyT, std::add_const_t<valueT>> input_terminal_type;
    +
    445  if (!dynamic_cast<input_terminal_type *>(in))
    +
    446  throw std::invalid_argument(
    +
    447  std::string("you are trying to connect terminals with incompatible types:\ntype of this Terminal = ") +
    +
    448  detail::demangled_type_name(this) + "\ntype of other Terminal" + detail::demangled_type_name(in));
    +
    449  } else if (in->get_type() == TerminalBase::Type::Consume) {
    +
    450  typedef In<keyT, valueT> input_terminal_type;
    +
    451  if (!dynamic_cast<input_terminal_type *>(in))
    +
    452  throw std::invalid_argument(
    +
    453  std::string("you are trying to connect terminals with incompatible types:\ntype of this Terminal = ") +
    +
    454  detail::demangled_type_name(this) + "\ntype of other Terminal" + detail::demangled_type_name(in));
    +
    455  } else // successor->type() == TerminalBase::Type::Write
    +
    456  throw std::invalid_argument(std::string("you are trying to connect an Out terminal to another Out terminal"));
    +
    457  trace(rank(), ": connected Out<> ", this->get_name(), "(ptr=", this, ") to In<> ", in->get_name(), "(ptr=", in,
    +
    458  ")");
    +
    459 #endif
    +
    460  this->connect_base(in);
    +
    461  //If I am a pull terminal, add me as (in)'s predecessor
    +
    462  if (this->is_pull_terminal)
    +
    463  in->connect_pull(this);
    +
    464  }
    +
    465 
    +
    466  template<typename Key = keyT, typename Value = valueT>
    +
    467  std::enable_if_t<meta::is_none_void_v<Key,Value>,void> send(const Key &key, const Value &value) {
    +
    468  for (auto && successor : this->successors()) {
    +
    469  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    470  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    471  static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->send(key, value);
    +
    472  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    473  static_cast<In<keyT, valueT> *>(successor)->send(key, value);
    +
    474  }
    +
    475  }
    +
    476  }
    +
    477 
    +
    478  template <typename Key = keyT, typename Value = valueT>
    +
    479  std::enable_if_t<!meta::is_void_v<Key> && meta::is_void_v<Value>, void> sendk(const Key &key) {
    +
    480  for (auto &&successor : this->successors()) {
    +
    481  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    482  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    483  static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->sendk(key);
    +
    484  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    485  static_cast<In<keyT, valueT> *>(successor)->sendk(key);
    +
    486  }
    +
    487  }
    +
    488  }
    +
    489 
    +
    490  template <typename Key = keyT, typename Value = valueT>
    +
    491  std::enable_if_t<meta::is_void_v<Key> && !meta::is_void_v<Value>, void> sendv(const Value &value) {
    +
    492  for (auto &&successor : this->successors()) {
    +
    493  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    494  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    495  static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->sendv(value);
    +
    496  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    497  static_cast<In<keyT, valueT> *>(successor)->sendv(value);
    +
    498  }
    +
    499  }
    +
    500  }
    +
    501 
    +
    502  template <typename Key = keyT, typename Value = valueT>
    +
    503  std::enable_if_t<meta::is_all_void_v<Key, Value>, void> send() {
    +
    504  trace(rank(), ": in ", this->get_name(), "(ptr=", this, ") Out<>::send: #successors=", this->successors().size());
    +
    505  for (auto &&successor : this->successors()) {
    +
    506  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    507  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    508  static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->send();
    +
    509  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    510  static_cast<In<keyT, valueT> *>(successor)->send();
    +
    511  } else {
    +
    512  throw std::logic_error("Out<>: invalid successor type");
    +
    513  }
    +
    514  trace("Out<> ", this->get_name(), "(ptr=", this, ") send to In<> ", successor->get_name(), "(ptr=", successor,
    +
    515  ")");
    +
    516  }
    +
    517  }
    +
    518 
    +
    519  template <typename Key = keyT, typename Value = valueT>
    +
    520  std::enable_if_t<meta::is_none_void_v<Key, Value> && std::is_same_v<Value, std::remove_reference_t<Value>>, void>
    +
    521  send(const Key &key, Value &&value) {
    +
    522  const std::size_t N = this->nsuccessors();
    +
    523  TerminalBase *move_successor = nullptr;
    +
    524  // send copies to every terminal except the one we will move the results to
    +
    525  for (std::size_t i = 0; i != N; ++i) {
    +
    526  TerminalBase *successor = this->successors().at(i);
    +
    527  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    528  static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->send(key, value);
    +
    529  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    530  if (nullptr == move_successor) {
    +
    531  move_successor = successor;
    +
    532  } else {
    +
    533  static_cast<In<keyT, valueT> *>(successor)->send(key, value);
    +
    534  }
    +
    535  }
    +
    536  }
    +
    537  if (nullptr != move_successor) {
    +
    538  static_cast<In<keyT, valueT> *>(move_successor)->send(key, std::forward<Value>(value));
    +
    539  }
    +
    540  }
    +
    541 
    +
    542  // An optimized implementation will need a separate callback for broadcast
    +
    543  // with a specific value for rangeT
    +
    544  template <typename rangeT, typename Key = keyT, typename Value = valueT>
    +
    545  std::enable_if_t<meta::is_none_void_v<Key, Value>, void> broadcast(const rangeT &keylist,
    +
    546  const Value &value) { // NO MOVE YET
    +
    547  for (auto &&successor : this->successors()) {
    +
    548  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    549  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    550  static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->broadcast(keylist, value);
    +
    551  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    552  static_cast<In<keyT, valueT> *>(successor)->broadcast(keylist, value);
    +
    553  }
    +
    554  }
    +
    555  }
    +
    556 
    +
    557  template <typename rangeT, typename Key = keyT>
    +
    558  std::enable_if_t<meta::is_none_void_v<Key> && meta::is_void_v<valueT>, void> broadcast(const rangeT &keylist) {
    +
    559  for (auto &&successor : this->successors()) {
    +
    560  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    561  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    562  static_cast<In<keyT, void> *>(successor)->broadcast(keylist);
    +
    563  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    564  static_cast<In<keyT, void> *>(successor)->broadcast(keylist);
    +
    565  }
    +
    566  }
    +
    567  }
    +
    568 
    +
    569  template <typename rangeT, typename Key = keyT, typename Value = valueT>
    +
    570  std::enable_if_t<meta::is_none_void_v<Key> && !meta::is_void_v<valueT>, void>
    +
    571  prepare_send(const rangeT &keylist, const Value &value) {
    +
    572  for (auto &&successor : this->successors()) {
    +
    573  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    574  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    575  return static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->prepare_send(keylist, value);
    +
    576  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    577  return static_cast<In<keyT, valueT> *>(successor)->prepare_send(keylist, value);
    +
    578  }
    +
    579  }
    +
    580  }
    +
    581 
    +
    582  template <typename rangeT, typename Key = keyT, typename Value = valueT>
    +
    583  std::enable_if_t<meta::is_none_void_v<Key> && !meta::is_void_v<valueT>, void>
    +
    584  prepare_send(const Value &value) {
    +
    585  for (auto &&successor : this->successors()) {
    +
    586  assert(successor->get_type() != TerminalBase::Type::Write);
    +
    587  if (successor->get_type() == TerminalBase::Type::Read) {
    +
    588  return static_cast<In<keyT, std::add_const_t<valueT>> *>(successor)->prepare_send(value);
    +
    589  } else if (successor->get_type() == TerminalBase::Type::Consume) {
    +
    590  return static_cast<In<keyT, valueT> *>(successor)->prepare_send(value);
    +
    591  }
    +
    592  }
    +
    593  }
    +
    594  };
    +
    595 
    +
    596  namespace meta {
    +
    598  template <typename T>
    +
    599  inline constexpr bool is_output_terminal_v = false;
    +
    600  template <typename keyT>
    +
    601  inline constexpr bool is_output_terminal_v<OutTerminalBase<keyT>> = true;
    +
    602  template <typename keyT, typename valueT>
    +
    603  inline constexpr bool is_output_terminal_v<Out<keyT, valueT>> = true;
    +
    604 
    +
    605  template <typename T>
    +
    606  struct is_output_terminal : std::bool_constant<is_output_terminal_v<T>> {};
    +
    607 
    +
    608  template <typename T>
    +
    609  struct is_output_terminal_tuple : std::false_type {};
    +
    610  template <typename... Ts>
    +
    611  struct is_output_terminal_tuple<std::tuple<Ts...>> : probe_all<is_output_terminal, Ts...> {};
    +
    612  template <typename... Ts>
    +
    613  inline constexpr bool is_output_terminal_tuple_v = is_output_terminal_tuple<Ts...>::value;
    +
    614 
    +
    615  template <typename T>
    +
    616  inline constexpr bool decays_to_output_terminal_tuple_v = is_output_terminal_tuple_v<std::decay_t<T>>;
    +
    617  template <typename T>
    +
    618  struct decays_to_output_terminal_tuple : std::bool_constant<decays_to_output_terminal_tuple_v<T>> {};
    +
    619 
    +
    620  template <typename T>
    + +
    622  is_output_terminal_tuple_v<std::decay_t<T>> &&std::is_lvalue_reference_v<T> &&
    +
    623  !std::is_const_v<std::remove_reference_t<T>>;
    +
    624  template <typename T>
    + +
    626  : std::bool_constant<is_nonconst_lvalue_reference_to_output_terminal_tuple_v<T>> {};
    +
    627  } // namespace meta
    +
    628 
    +
    629 } // namespace ttg
    +
    630 
    +
    631 #endif // TTG_TERMINALS_H
    + +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    + +
    typename base_type::finalize_callback_type finalize_callback_type
    Definition: terminal.h:157
    +
    typename base_type::setsize_callback_type setsize_callback_type
    Definition: terminal.h:156
    +
    void set_callback(const send_callback_type &send_callback, const move_callback_type &move_callback, const broadcast_callback_type &bcast_callback=broadcast_callback_type{}, const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{}, const prepare_send_callback_type &prepare_send_callback=prepare_send_callback_type{})
    Definition: terminal.h:192
    +
    In()
    Default constructor of an Input Terminal.
    Definition: terminal.h:180
    +
    std::enable_if_t< meta::is_none_void_v< Key, Value >, void > send(const Key &key, const Value &value)
    Definition: terminal.h:205
    +
    static constexpr bool is_an_input_terminal
    Definition: terminal.h:159
    +
    void prepare_send(const rangeT &keylist, Value &&value)
    Definition: terminal.h:306
    +
    ttg::detail::ContainerWrapper< keyT, valueT > container
    Definition: terminal.h:160
    +
    valueT value_type
    Definition: terminal.h:146
    +
    void send()
    Definition: terminal.h:236
    +
    keyT key_type
    Definition: terminal.h:147
    +
    meta::detail::send_callback_t< keyT, std::decay_t< valueT > > send_callback_type
    Definition: terminal.h:153
    +
    std::enable_if_t<!meta::is_void_v< Value > &&std::is_same_v< Value, std::remove_reference_t< Value > >, void > sendv(Value &&value)
    Definition: terminal.h:230
    +
    std::enable_if_t<!meta::is_void_v< Value >, void > sendv(const Value &value)
    Definition: terminal.h:224
    +
    void prepare_send(Value &&value)
    Definition: terminal.h:321
    +
    meta::detail::broadcast_callback_t< keyT, std::decay_t< valueT > > broadcast_callback_type
    Definition: terminal.h:155
    +
    meta::detail::prepare_send_callback_t< keyT, std::decay_t< valueT > > prepare_send_callback_type
    Definition: terminal.h:158
    +
    std::enable_if_t<!meta::is_void_v< Key >, void > sendk(const Key &key)
    Definition: terminal.h:218
    +
    std::enable_if_t< meta::is_void_v< Value >, void > broadcast(const rangeT &keylist)
    Definition: terminal.h:285
    +
    std::enable_if_t<!meta::is_void_v< Value >, void > broadcast(const rangeT &keylist, const Value &value)
    Definition: terminal.h:244
    +
    meta::detail::move_callback_t< keyT, std::decay_t< valueT > > move_callback_type
    Definition: terminal.h:154
    +
    std::enable_if_t< meta::is_none_void_v< Key, Value > &&std::is_same_v< Value, std::remove_reference_t< Value > >, void > send(const Key &key, Value &&value)
    Definition: terminal.h:212
    +
    std::enable_if_t<!meta::is_void_v< Value >, void > broadcast(const rangeT &keylist, Value &&value)
    Definition: terminal.h:264
    +
    Base type for input terminals receiving messages annotated by task IDs of type keyT
    Definition: terminal.h:82
    +
    std::enable_if_t<!meta::is_void_v< Key >, void > finalize(const Key &key)
    Definition: terminal.h:124
    +
    std::enable_if_t< meta::is_void_v< Key >, void > set_size(std::size_t size)
    Definition: terminal.h:118
    +
    InTerminalBase(TerminalBase::Type t)
    Definition: terminal.h:92
    +
    finalize_callback_type finalize_callback
    Definition: terminal.h:95
    + +
    setsize_callback_type setsize_callback
    Definition: terminal.h:94
    +
    void set_callback(const setsize_callback_type &setsize_callback=setsize_callback_type{}, const finalize_callback_type &finalize_callback=finalize_callback_type{})
    Definition: terminal.h:97
    +
    meta::detail::setsize_callback_t< keyT > setsize_callback_type
    Definition: terminal.h:87
    +
    static constexpr bool is_an_input_terminal
    Definition: terminal.h:89
    +
    meta::detail::finalize_callback_t< keyT > finalize_callback_type
    Definition: terminal.h:88
    +
    std::enable_if_t<!meta::is_void_v< Key >, void > set_size(const Key &key, std::size_t size)
    Definition: terminal.h:112
    +
    std::enable_if_t< meta::is_void_v< Key >, void > finalize()
    Definition: terminal.h:131
    + +
    static constexpr bool is_an_output_terminal
    Definition: terminal.h:428
    +
    void connect(TerminalBase *in) override
    Definition: terminal.h:441
    +
    std::enable_if_t< meta::is_none_void_v< Key > &&!meta::is_void_v< valueT >, void > prepare_send(const Value &value)
    Definition: terminal.h:584
    +
    std::enable_if_t< meta::is_none_void_v< Key > &&!meta::is_void_v< valueT >, void > prepare_send(const rangeT &keylist, const Value &value)
    Definition: terminal.h:571
    +
    std::enable_if_t< meta::is_void_v< Key > &&!meta::is_void_v< Value >, void > sendv(const Value &value)
    Definition: terminal.h:491
    +
    std::enable_if_t< meta::is_all_void_v< Key, Value >, void > send()
    Definition: terminal.h:503
    +
    std::enable_if_t< meta::is_none_void_v< Key > &&meta::is_void_v< valueT >, void > broadcast(const rangeT &keylist)
    Definition: terminal.h:558
    +
    valueT value_type
    Definition: terminal.h:423
    +
    std::enable_if_t< meta::is_none_void_v< Key, Value >, void > send(const Key &key, const Value &value)
    Definition: terminal.h:467
    +
    typename OutTerminalBase< keyT >::key_type key_type
    Definition: terminal.h:424
    +
    std::enable_if_t< meta::is_none_void_v< Key, Value >, void > broadcast(const rangeT &keylist, const Value &value)
    Definition: terminal.h:545
    +
    Out()=default
    +
    std::enable_if_t<!meta::is_void_v< Key > &&meta::is_void_v< Value >, void > sendk(const Key &key)
    Definition: terminal.h:479
    +
    std::enable_if_t< meta::is_none_void_v< Key, Value > &&std::is_same_v< Value, std::remove_reference_t< Value > >, void > send(const Key &key, Value &&value)
    Definition: terminal.h:521
    + +
    static constexpr bool is_an_output_terminal
    Definition: terminal.h:369
    +
    auto nsuccessors() const
    Definition: terminal.h:381
    + +
    std::enable_if_t<!meta::is_void_v< Key >, void > finalize(const Key &key)
    Definition: terminal.h:401
    +
    std::enable_if_t< meta::is_void_v< Key >, void > set_size(std::size_t size)
    Definition: terminal.h:393
    +
    std::enable_if_t<!meta::is_void_v< Key >, void > set_size(const Key &key, std::size_t size)
    Definition: terminal.h:385
    +
    std::enable_if_t< meta::is_void_v< Key >, void > finalize()
    Definition: terminal.h:409
    +
    const auto & successors() const
    Definition: terminal.h:382
    + + +
    bool is_pull_terminal
    Definition: terminal.h:15
    +
    void connect_base(TerminalBase *successor)
    Definition: terminal.h:60
    +
    Type get_type() const
    Returns the terminal type.
    Definition: terminal.h:104
    +
    const std::string & get_name() const
    Returns name of terminal.
    Definition: terminal.h:86
    +
    const std::vector< TerminalBase * > & get_connections() const
    Get connections to successors.
    Definition: terminal.h:107
    +
    void connect_pull(TerminalBase *predecessor)
    Definition: terminal.h:66
    +
    Type
    describes the terminal type
    Definition: terminal.h:18
    +
    @ Write
    can only be written to
    +
    @ Read
    can only be used to read immutable data
    +
    @ Consume
    can only be used to read consumable data
    +
    A complete version of void.
    Definition: void.h:11
    + + + +
    typename input_terminals_tuple< keyT, valuesT... >::type input_terminals_tuple_t
    Definition: terminal.h:346
    +
    constexpr bool is_output_terminal_v
    detects whether a given type is an output terminal type
    Definition: terminal.h:599
    +
    constexpr bool decays_to_output_terminal_tuple_v
    Definition: terminal.h:616
    +
    constexpr bool is_input_terminal_v
    detects whether a given type is an input terminal type
    Definition: terminal.h:352
    +
    constexpr bool is_nonconst_lvalue_reference_to_output_terminal_tuple_v
    Definition: terminal.h:621
    +
    constexpr bool is_output_terminal_tuple_v
    Definition: terminal.h:613
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    int rank(World world=default_execution_context())
    Definition: run.h:85
    +
    void trace(const T &t, const Ts &... ts)
    Definition: trace.h:43
    + + + +
    std::function< size_t(keyT const &key)> owner
    Definition: terminal.h:27
    +
    ContainerWrapper(T &t, mapperT &&mapper, keymapT &&keymap)
    Definition: terminal.h:37
    +
    ContainerWrapper & operator=(const ContainerWrapper &)=default
    +
    ContainerWrapper(const ContainerWrapper &)=default
    +
    ContainerWrapper(ContainerWrapper &&)=default
    +
    std::function< valueT(keyT const &key)> get
    Definition: terminal.h:26
    + + +
    std::tuple< ttg::In< keyT, valuesT >... > type
    Definition: terminal.h:337
    + + + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/test_8cpp.html b/dox-master/test_8cpp.html new file mode 100644 index 000000000..c3fbe74fd --- /dev/null +++ b/dox-master/test_8cpp.html @@ -0,0 +1,166 @@ + + + + + + + + + + + ttg: doc/dox/dev/devsamp/main/test.cpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    test.cpp File Reference
    +
    +
    +
    #include <ttg.h>
    +
    + + + +

    +Functions

    int main (int argc, char *argv[])
     
    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int argc,
    char * argv[] 
    )
    +
    + +

    Definition at line 5 of file test.cpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/test_8cpp_source.html b/dox-master/test_8cpp_source.html new file mode 100644 index 000000000..56e4125d6 --- /dev/null +++ b/dox-master/test_8cpp_source.html @@ -0,0 +1,139 @@ + + + + + + + + + + + ttg: doc/dox/dev/devsamp/main/test.cpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    test.cpp
    +
    +
    +Go to the documentation of this file.
    1 #include <ttg.h>
    +
    2 
    +
    3 using namespace ttg;
    +
    4 
    +
    5 int main(int argc, char* argv[]) {
    +
    6  initialize(argc, argv);
    +
    7  ttg_finalize();
    +
    8 }
    +
    void ttg_finalize()
    Definition: ttg.h:131
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    int main(int argc, char *argv[])
    Definition: test.cpp:5
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/thread__local_8h.html b/dox-master/thread__local_8h.html new file mode 100644 index 000000000..0b0248998 --- /dev/null +++ b/dox-master/thread__local_8h.html @@ -0,0 +1,149 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/thread_local.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    thread_local.h File Reference
    +
    +
    + + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + +

    +Functions

    ttg_data_copy_t *& ttg_parsec::detail::ttg_data_copy_container ()
     
    + + + +

    +Variables

    thread_local parsec_ttg_task_base_t * ttg_parsec::detail::parsec_ttg_caller = nullptr
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/thread__local_8h_source.html b/dox-master/thread__local_8h_source.html new file mode 100644 index 000000000..9744ee493 --- /dev/null +++ b/dox-master/thread__local_8h_source.html @@ -0,0 +1,154 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/thread_local.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    thread_local.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_PARSEC_THREAD_LOCAL_H
    +
    2 #define TTG_PARSEC_THREAD_LOCAL_H
    +
    3 
    +
    4 namespace ttg_parsec {
    +
    5 
    +
    6 namespace detail {
    +
    7 
    +
    8  // fwd decls
    +
    9  struct parsec_ttg_task_base_t;
    +
    10  struct ttg_data_copy_t;
    +
    11 
    +
    12  inline thread_local parsec_ttg_task_base_t *parsec_ttg_caller = nullptr;
    +
    13 
    + +
    15  static thread_local ttg_data_copy_t *ptr = nullptr;
    +
    16  return ptr;
    +
    17  }
    +
    18 
    +
    19 } // namespace detail
    +
    20 } // namespace ttg_parsec
    +
    21 
    +
    22 #endif // TTG_PARSEC_THREAD_LOCAL_H
    +
    ttg_data_copy_t *& ttg_data_copy_container()
    Definition: thread_local.h:14
    +
    thread_local parsec_ttg_task_base_t * parsec_ttg_caller
    Definition: thread_local.h:12
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/trace_8h.html b/dox-master/trace_8h.html new file mode 100644 index 000000000..d0c654c56 --- /dev/null +++ b/dox-master/trace_8h.html @@ -0,0 +1,159 @@ + + + + + + + + + + + ttg: ttg/ttg/util/trace.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    trace.h File Reference
    +
    +
    +
    #include "ttg/util/print.h"
    +
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + + + + + + + + + + + + + +

    +Functions

    bool & ttg::detail::trace_accessor ()
     
    constexpr bool ttg::trace_enabled ()
     returns whether tracing was enabled at configure time More...
     
    bool ttg::tracing ()
     returns whether tracing is enabled More...
     
    void ttg::trace_on ()
     enables tracing; if trace_enabled()==true this has no effect More...
     
    void ttg::trace_off ()
     disables tracing; if trace_enabled()==true this has no effect More...
     
    template<typename T , typename... Ts>
    void ttg::trace (const T &t, const Ts &... ts)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/trace_8h_source.html b/dox-master/trace_8h_source.html new file mode 100644 index 000000000..88c9bfc6c --- /dev/null +++ b/dox-master/trace_8h_source.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: ttg/ttg/util/trace.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    trace.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_TRACE_H
    +
    2 #define TTG_TRACE_H
    +
    3 
    +
    4 #include "ttg/util/print.h"
    +
    5 
    +
    6 namespace ttg {
    +
    7  namespace detail {
    +
    8  inline bool &trace_accessor() {
    +
    9  static bool trace = false;
    +
    10  return trace;
    +
    11  }
    +
    12  } // namespace detail
    +
    13 
    +
    15  inline constexpr bool trace_enabled() {
    +
    16 #ifdef TTG_ENABLE_TRACE
    +
    17  return true;
    +
    18 #else
    +
    19  return false;
    +
    20 #endif
    +
    21  }
    +
    22 
    +
    24 
    +
    28  inline bool tracing() {
    +
    29  if constexpr (trace_enabled())
    +
    30  return detail::trace_accessor();
    +
    31  else
    +
    32  return false;
    +
    33  }
    +
    34 
    +
    36  inline void trace_on() { if constexpr (trace_enabled()) detail::trace_accessor() = true; }
    +
    38  inline void trace_off() { if constexpr (trace_enabled()) detail::trace_accessor() = false; }
    +
    39 
    +
    42  template <typename T, typename... Ts>
    +
    43  inline void trace(const T &t, const Ts &... ts) {
    +
    44  if constexpr (trace_enabled()) {
    +
    45  if (tracing()) {
    +
    46  log(t, ts...);
    +
    47  }
    +
    48  }
    +
    49  }
    +
    50 
    +
    51 } // namespace ttg
    +
    52 
    +
    53 #endif // TTG_TRACE_H
    +
    bool & trace_accessor()
    Definition: trace.h:8
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    void trace_off()
    disables tracing; if trace_enabled()==true this has no effect
    Definition: trace.h:38
    +
    void trace_on()
    enables tracing; if trace_enabled()==true this has no effect
    Definition: trace.h:36
    +
    void log(const T &t, const Ts &... ts)
    atomically prints to std::clog a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:146
    +
    bool tracing()
    returns whether tracing is enabled
    Definition: trace.h:28
    +
    void trace(const T &t, const Ts &... ts)
    Definition: trace.h:43
    +
    constexpr bool trace_enabled()
    returns whether tracing was enabled at configure time
    Definition: trace.h:15
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/traits_8h.html b/dox-master/traits_8h.html new file mode 100644 index 000000000..f7122a729 --- /dev/null +++ b/dox-master/traits_8h.html @@ -0,0 +1,246 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/traits.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    traits.h File Reference
    +
    +
    +
    #include "ttg/util/meta.h"
    +#include <type_traits>
    +#include <iostream>
    +#include "ttg/serialization/backends.h"
    +
    + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  boost::serialization::unsigned_int
     
    struct  ttg::detail::is_printable< class, class >
     
    struct  ttg::detail::is_printable< T, std::void_t< decltype(std::declval< std::ostream & >()<< std::declval< T >())> >
     
    struct  ttg::detail::printer_helper< T, Enabler >
     
    struct  ttg::detail::printer_helper< T, std::enable_if_t< is_printable< T >::value > >
     
    struct  ttg::detail::is_user_buffer_serializable< T, Enabler >
     is_user_buffer_serializable<T> evaluates to true if T can be serialized to a buffer using user-provided methods More...
     
    struct  ttg::detail::is_user_buffer_serializable< T, std::enable_if_t< is_madness_user_buffer_serializable_v< T >||is_boost_user_buffer_serializable_v< T > > >
     
    struct  ttg::detail::is_memcpyable< T >
     reports whether objects of type T are safe to std::memcpy More...
     
    + + + + + + + + + + + + +

    +Namespaces

     boost
     
     boost::archive
     
     boost::serialization
     
     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<typename T , typename Archive >
    using ttg::detail::has_member_serialize_t = decltype(std::declval< T & >().serialize(std::declval< Archive & >()))
     
    template<typename T , typename Archive >
    using ttg::detail::has_member_serialize_with_version_t = decltype(std::declval< T & >().serialize(std::declval< Archive & >(), 0u))
     
    template<typename T , typename Archive >
    using ttg::detail::has_member_load_t = decltype(std::declval< T & >().load(std::declval< Archive & >()))
     
    template<typename T , typename Archive >
    using ttg::detail::has_member_load_with_version_t = decltype(std::declval< T & >().load(std::declval< Archive & >(), 0u))
     
    template<typename T , typename Archive >
    using ttg::detail::has_member_save_t = decltype(std::declval< T & >().save(std::declval< Archive & >()))
     
    template<typename T , typename Archive >
    using ttg::detail::has_member_save_with_version_t = decltype(std::declval< T & >().save(std::declval< Archive & >(), 0u))
     
    template<typename T , typename Archive >
    using ttg::detail::has_freestanding_serialize_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >()))
     
    template<typename T , typename Archive >
    using ttg::detail::has_freestanding_serialize_with_version_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), 0u))
     
    template<typename T , typename Archive >
    using ttg::detail::has_freestanding_boost_serialize_with_version_t = decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), boost::serialization::version_as_adl_tag))
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Variables

    const unsigned_int boost::serialization::version_as_adl_tag = 0u
     
    template<typename T , typename Archive >
    constexpr bool ttg::detail::has_member_serialize_v = ttg::meta::is_detected_v<has_member_serialize_t, T, Archive>
     
    template<typename T , typename Archive >
    constexpr bool ttg::detail::has_member_serialize_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool ttg::detail::has_member_load_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool ttg::detail::has_member_save_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool ttg::detail::has_freestanding_serialize_v
     
    template<typename T , typename Archive >
    constexpr bool ttg::detail::has_freestanding_serialize_with_version_v
     
    template<typename T , typename Archive >
    constexpr bool ttg::detail::has_freestanding_boost_serialize_with_version_v
     
    template<typename T , typename Enabler = void>
    constexpr bool ttg::detail::is_archive_v = false
     
    template<typename T , typename Enabler >
    constexpr bool ttg::detail::is_input_archive_v = false
     
    template<typename T , typename Enabler = void>
    constexpr bool ttg::detail::is_output_archive_v = false
     
    template<typename T >
    constexpr bool ttg::detail::is_user_buffer_serializable_v = is_user_buffer_serializable<T>::value
     
    template<typename T >
    constexpr bool ttg::detail::is_memcpyable_override_v = std::is_trivially_copyable_v<T>
     can be used to override the default value of is_memcpyable<T>::value More...
     
    template<typename T >
    constexpr bool ttg::detail::is_memcpyable_v = is_memcpyable<T>::value
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/traits_8h_source.html b/dox-master/traits_8h_source.html new file mode 100644 index 000000000..76c404d78 --- /dev/null +++ b/dox-master/traits_8h_source.html @@ -0,0 +1,296 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/traits.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    traits.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_SERIALIZATION_TRAITS_H
    +
    2 #define TTG_SERIALIZATION_TRAITS_H
    +
    3 
    +
    4 #include "ttg/util/meta.h"
    +
    5 
    +
    6 #include <type_traits>
    +
    7 
    +
    8 #include <iostream>
    +
    9 
    +
    10 namespace boost {
    +
    11  namespace archive {}
    +
    12  namespace serialization {
    +
    13  struct unsigned_int {
    +
    14  unsigned int v;
    +
    15  unsigned_int(unsigned int v) : v(v) {}
    +
    16  operator unsigned int() const { return v; }
    +
    17  };
    + +
    19  } // namespace serialization
    +
    20 } // namespace boost
    +
    21 
    +
    22 namespace ttg::detail {
    +
    23 
    +
    27  template <typename T, typename Archive>
    +
    28  using has_member_serialize_t = decltype(std::declval<T&>().serialize(std::declval<Archive&>()));
    +
    29 
    +
    33  template <typename T, typename Archive>
    +
    34  using has_member_serialize_with_version_t = decltype(std::declval<T&>().serialize(std::declval<Archive&>(), 0u));
    +
    35 
    +
    39  template <typename T, typename Archive>
    +
    40  using has_member_load_t = decltype(std::declval<T&>().load(std::declval<Archive&>()));
    +
    41 
    +
    45  template <typename T, typename Archive>
    +
    46  using has_member_load_with_version_t = decltype(std::declval<T&>().load(std::declval<Archive&>(), 0u));
    +
    47 
    +
    51  template <typename T, typename Archive>
    +
    52  using has_member_save_t = decltype(std::declval<T&>().save(std::declval<Archive&>()));
    +
    53 
    +
    57  template <typename T, typename Archive>
    +
    58  using has_member_save_with_version_t = decltype(std::declval<T&>().save(std::declval<Archive&>(), 0u));
    +
    59 
    +
    62  template <typename T, typename Archive>
    +
    63  using has_freestanding_serialize_t = decltype(serialize(std::declval<Archive&>(), std::declval<T&>()));
    +
    64 
    +
    67  template <typename T, typename Archive>
    + +
    69  decltype(serialize(std::declval<Archive&>(), std::declval<T&>(), 0u));
    +
    70 
    +
    73  template <typename T, typename Archive>
    + +
    75  decltype(serialize(std::declval<Archive&>(), std::declval<T&>(), boost::serialization::version_as_adl_tag));
    +
    76 
    +
    82  template <typename T, typename Archive>
    +
    83  inline constexpr bool has_member_serialize_v = ttg::meta::is_detected_v<has_member_serialize_t, T, Archive>;
    +
    84 
    +
    90  template <typename T, typename Archive>
    +
    91  inline constexpr bool has_member_serialize_with_version_v =
    +
    92  ttg::meta::is_detected_v<has_member_serialize_with_version_t, T, Archive>;
    +
    93 
    +
    99  template <typename T, typename Archive>
    +
    100  inline constexpr bool has_member_load_with_version_v =
    +
    101  ttg::meta::is_detected_v<has_member_load_with_version_t, T, Archive>;
    +
    102 
    +
    108  template <typename T, typename Archive>
    +
    109  inline constexpr bool has_member_save_with_version_v =
    +
    110  ttg::meta::is_detected_v<has_member_save_with_version_t, T, Archive>;
    +
    111 
    +
    117  template <typename T, typename Archive>
    +
    118  inline constexpr bool has_freestanding_serialize_v =
    +
    119  ttg::meta::is_detected_v<has_freestanding_serialize_t, T, Archive>;
    +
    120 
    +
    126  template <typename T, typename Archive>
    + +
    128  ttg::meta::is_detected_v<has_freestanding_serialize_with_version_t, T, Archive>;
    +
    129 
    +
    135  template <typename T, typename Archive>
    + +
    137  ttg::meta::is_detected_v<has_freestanding_boost_serialize_with_version_t, T, Archive>;
    +
    138 
    +
    140 
    +
    141  template <typename T, typename Enabler = void>
    +
    142  inline constexpr bool is_archive_v = false;
    +
    143 
    +
    144  template <typename T, typename Enabler>
    +
    145  inline constexpr bool is_input_archive_v = false;
    +
    146 
    +
    147  template <typename T, typename Enabler = void>
    +
    148  inline constexpr bool is_output_archive_v = false;
    +
    149 
    +
    151 
    +
    152  template <class, class = void>
    +
    153  struct is_printable : std::false_type {};
    +
    154 
    +
    155  template <class T>
    +
    156  struct is_printable<T, std::void_t<decltype(std::declval<std::ostream&>() << std::declval<T>())>> : std::true_type {};
    +
    157 
    +
    158  template <typename T, typename Enabler = void>
    +
    159  struct printer_helper {
    +
    160  static void print(const void* object) { std::cout << "[unprintable object]" << std::endl; }
    +
    161  };
    +
    162 
    +
    163  template <typename T>
    +
    164  struct printer_helper<T, std::enable_if_t<is_printable<T>::value>> {
    +
    165  static void print(const void* object) { std::cout << *(static_cast<const T*>(object)) << std::endl; }
    +
    166  };
    +
    167 
    +
    168 } // namespace ttg::detail
    +
    169 
    +
    170 #include "ttg/serialization/backends.h"
    +
    171 
    +
    172 namespace ttg::detail {
    +
    174  template <typename T, typename Enabler = void>
    +
    175  struct is_user_buffer_serializable : std::false_type {};
    +
    176 
    +
    177  // template <typename T>
    +
    178  // struct is_user_buffer_serializable<T, std::enable_if_t<is_madness_user_buffer_serializable_v<T> ||
    +
    179  // is_boost_user_buffer_serializable_v<T>>> : std::true_type {};
    +
    180  template <typename T>
    +
    181  struct is_user_buffer_serializable<
    +
    182  T, std::enable_if_t<is_madness_user_buffer_serializable_v<T> || is_boost_user_buffer_serializable_v<T>>> : std::true_type {};
    +
    183 
    +
    184  template <typename T>
    +
    185  inline constexpr bool is_user_buffer_serializable_v = is_user_buffer_serializable<T>::value;
    +
    186 
    +
    188 
    +
    193  template <typename T>
    +
    194  inline constexpr bool is_memcpyable_override_v = std::is_trivially_copyable_v<T>;
    +
    195 
    +
    196  // std::pair of trivially-copyable types is trivially copyable
    +
    197  template <typename T1, typename T2>
    +
    198  inline constexpr bool is_memcpyable_override_v<std::pair<T1,T2>> = std::is_trivially_copyable_v<T1> && std::is_trivially_copyable_v<T2>;
    +
    199 
    +
    201 
    +
    203  template <typename T>
    +
    204  struct is_memcpyable : std::bool_constant<std::is_trivially_copyable_v<T> || is_memcpyable_override_v<T>> {};
    +
    205 
    +
    206  template <typename T>
    +
    207  inline constexpr bool is_memcpyable_v = is_memcpyable<T>::value;
    +
    208 
    +
    209 } // namespace ttg::detail
    +
    210 
    +
    211 #endif // TTG_SERIALIZATION_TRAITS_H
    + +
    const unsigned_int version_as_adl_tag
    Definition: traits.h:18
    + + +
    decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), boost::serialization::version_as_adl_tag)) has_freestanding_boost_serialize_with_version_t
    Definition: traits.h:75
    +
    decltype(serialize(std::declval< Archive & >(), std::declval< T & >())) has_freestanding_serialize_t
    Definition: traits.h:63
    +
    decltype(std::declval< T & >().save(std::declval< Archive & >())) has_member_save_t
    Definition: traits.h:52
    +
    constexpr bool has_member_serialize_with_version_v
    Definition: traits.h:91
    +
    decltype(std::declval< T & >().serialize(std::declval< Archive & >())) has_member_serialize_t
    Definition: traits.h:28
    +
    decltype(std::declval< T & >().load(std::declval< Archive & >())) has_member_load_t
    Definition: traits.h:40
    +
    constexpr bool is_input_archive_v
    Definition: traits.h:145
    +
    decltype(std::declval< T & >().save(std::declval< Archive & >(), 0u)) has_member_save_with_version_t
    Definition: traits.h:58
    +
    constexpr bool is_output_archive_v
    Definition: traits.h:148
    +
    constexpr bool has_member_load_with_version_v
    Definition: traits.h:100
    +
    constexpr bool has_member_serialize_v
    Definition: traits.h:83
    +
    constexpr bool has_freestanding_serialize_with_version_v
    Definition: traits.h:127
    +
    decltype(std::declval< T & >().serialize(std::declval< Archive & >(), 0u)) has_member_serialize_with_version_t
    Definition: traits.h:34
    +
    constexpr bool has_freestanding_boost_serialize_with_version_v
    Definition: traits.h:136
    +
    constexpr bool is_archive_v
    Definition: traits.h:142
    +
    constexpr bool has_member_save_with_version_v
    Definition: traits.h:109
    +
    decltype(serialize(std::declval< Archive & >(), std::declval< T & >(), 0u)) has_freestanding_serialize_with_version_t
    Definition: traits.h:69
    +
    decltype(std::declval< T & >().load(std::declval< Archive & >(), 0u)) has_member_load_with_version_t
    Definition: traits.h:46
    +
    constexpr bool has_freestanding_serialize_v
    Definition: traits.h:118
    +
    void void_t
    Definition: meta.h:23
    + +
    unsigned_int(unsigned int v)
    Definition: traits.h:15
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/traits_8hpp.html b/dox-master/traits_8hpp.html new file mode 100644 index 000000000..2c0f2c1e3 --- /dev/null +++ b/dox-master/traits_8hpp.html @@ -0,0 +1,147 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/traits.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    traits.hpp File Reference
    +
    +
    + + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::detail::traits = typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/traits_8hpp_source.html b/dox-master/traits_8hpp_source.html new file mode 100644 index 000000000..fea009a6f --- /dev/null +++ b/dox-master/traits_8hpp_source.html @@ -0,0 +1,166 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/traits.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    traits.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_DETAIL_TRAITS_HPP
    +
    10 #define BOOST_CLBL_TRTS_DETAIL_TRAITS_HPP
    +
    11 
    + + +
    14 
    +
    15 namespace boost { namespace callable_traits { namespace detail {
    +
    16 
    +
    17  // Here is where the magic happens
    +
    18  template<typename T>
    + + + +
    22  pmf<T>,
    +
    23  pmd<T>,
    + +
    25  )::traits;
    +
    26 
    +
    27 }}} // namespace boost::callable_traits::detail
    +
    28 
    +
    29 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_TRAITS_HPP
    +
    #define BOOST_CLBL_TRTS_DISJUNCTION(...)
    Definition: config.hpp:69
    + +
    typename BOOST_CLBL_TRTS_DISJUNCTION(function_object< unwrap_reference< T > >, function< T >, pmf< T >, pmd< T >, default_callable_traits< T >)::traits traits
    Definition: traits.hpp:25
    +
    typename unwrap_reference_t< T >::type unwrap_reference
    Definition: utility.hpp:107
    + + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/traverse_8h.html b/dox-master/traverse_8h.html new file mode 100644 index 000000000..2d08c987e --- /dev/null +++ b/dox-master/traverse_8h.html @@ -0,0 +1,160 @@ + + + + + + + + + + + ttg: ttg/ttg/traverse.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    traverse.h File Reference
    +
    +
    +
    #include <iostream>
    +#include <set>
    +#include "ttg/tt.h"
    +#include "ttg/util/meta.h"
    +
    + + + + + + + + + +

    +Classes

    class  ttg::detail::Traverse
     Traverses a graph of TTs in depth-first manner following out edges. More...
     
    struct  ttg::detail::Traverse::null_visitor< Visitable >
     
    class  ttg::Traverse< TTVisitor, InVisitor, OutVisitor >
     Traverses a graph of ops in depth-first manner following out edges. More...
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + +

    +Functions

    template<typename TTVisitor = decltype(trivial_1param_lambda)&, typename InVisitor = decltype(trivial_1param_lambda)&, typename OutVisitor = decltype(trivial_1param_lambda)&>
    auto ttg::make_traverse (TTVisitor &&tt_v=trivial_1param_lambda, InVisitor &&in_v=trivial_1param_lambda, OutVisitor &&out_v=trivial_1param_lambda)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/traverse_8h_source.html b/dox-master/traverse_8h_source.html new file mode 100644 index 000000000..aa09b4058 --- /dev/null +++ b/dox-master/traverse_8h_source.html @@ -0,0 +1,376 @@ + + + + + + + + + + + ttg: ttg/ttg/traverse.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    traverse.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_TRAVERSE_H
    +
    2 #define TTG_TRAVERSE_H
    +
    3 
    +
    4 #include <iostream>
    +
    5 #include <set>
    +
    6 
    +
    7 #include "ttg/tt.h"
    +
    8 #include "ttg/util/meta.h"
    +
    9 
    +
    10 namespace ttg {
    +
    11 
    +
    12  namespace detail {
    +
    14  class Traverse {
    +
    15  std::set<TTBase *> seen;
    +
    16 
    +
    17  bool visited(TTBase *p) { return !seen.insert(p).second; }
    +
    18 
    +
    19  public:
    +
    20  virtual void ttfunc(TTBase *tt) = 0;
    +
    21 
    +
    22  virtual void infunc(TerminalBase *in) = 0;
    +
    23 
    +
    24  virtual void outfunc(TerminalBase *out) = 0;
    +
    25 
    +
    26  void reset() { seen.clear(); }
    +
    27 
    +
    28  // Returns true if no null pointers encountered (i.e., if all
    +
    29  // encountered terminals/operations are connected)
    +
    30  bool traverse(TTBase *tt) {
    +
    31  if (!tt) {
    +
    32  std::cout << "ttg::Traverse: got a null op!\n";
    +
    33  return false;
    +
    34  }
    +
    35 
    +
    36  if (visited(tt)) return true;
    +
    37 
    +
    38  bool status = true;
    +
    39 
    +
    40  ttfunc(tt);
    +
    41 
    +
    42  int count = 0;
    +
    43  for (auto in : tt->get_inputs()) {
    +
    44  if (!in) {
    +
    45  std::cout << "ttg::Traverse: got a null in!\n";
    +
    46  status = false;
    +
    47  } else {
    +
    48  infunc(in);
    +
    49  if (!in->is_connected()) {
    +
    50  std::cout << "ttg::Traverse: " << tt->get_name() << " input terminal #" << count << " " << in->get_name()
    +
    51  << " is not connected\n";
    +
    52  status = false;
    +
    53  }
    +
    54  }
    +
    55  count++;
    +
    56  }
    +
    57 
    +
    58  for (auto in : tt->get_inputs()) {
    +
    59  if (in) {
    +
    60  for (auto predecessor : in->get_predecessors()) {
    +
    61  if (!predecessor) {
    +
    62  std::cout << "ttg::Traverse: got a null predecessor!\n";
    +
    63  status = false;
    +
    64  } else {
    +
    65  status &= traverse(predecessor->get_tt());
    +
    66  }
    +
    67  }
    +
    68  }
    +
    69  }
    +
    70 
    +
    71  count = 0;
    +
    72  for (auto out : tt->get_outputs()) {
    +
    73  if (!out) {
    +
    74  std::cout << "ttg::Traverse: got a null out!\n";
    +
    75  status = false;
    +
    76  } else {
    +
    77  outfunc(out);
    +
    78  if (!out->is_connected()) {
    +
    79  std::cout << "ttg::Traverse: " << tt->get_name() << " output terminal #" << count << " "
    +
    80  << out->get_name() << " is not connected\n";
    +
    81  status = false;
    +
    82  }
    +
    83  }
    +
    84  count++;
    +
    85  }
    +
    86 
    +
    87  for (auto out : tt->get_outputs()) {
    +
    88  if (out) {
    +
    89  for (auto successor : out->get_connections()) {
    +
    90  if (!successor) {
    +
    91  std::cout << "ttg::Traverse: got a null successor!\n";
    +
    92  status = false;
    +
    93  } else {
    +
    94  status &= traverse(successor->get_tt());
    +
    95  }
    +
    96  }
    +
    97  }
    +
    98  }
    +
    99 
    +
    100  return status;
    +
    101  }
    +
    102 
    +
    103  template <typename TT>
    +
    104  std::enable_if_t<std::is_base_of_v<TTBase, TT> && !std::is_same_v<TT, TTBase>,
    +
    105  bool>
    +
    106  traverse(TT* tt) {
    +
    107  return traverse(static_cast<TTBase*>(tt));
    +
    108  }
    +
    109 
    +
    110  template <typename TT>
    +
    111  std::enable_if_t<std::is_base_of_v<TTBase, TT>,
    +
    112  bool>
    +
    113  traverse(const std::shared_ptr<TTBase>& tt) {
    +
    114  return traverse(tt.get());
    +
    115  }
    +
    116 
    +
    117  template <typename TT, typename Deleter>
    +
    118  std::enable_if_t<std::is_base_of_v<TTBase, TT>,
    +
    119  bool>
    +
    120  traverse(const std::unique_ptr<TT, Deleter>& tt) {
    +
    121  return traverse(tt.get());
    +
    122  }
    +
    123 
    +
    126  template <typename Visitable>
    +
    127  struct null_visitor {
    +
    129  void operator()(Visitable*) {};
    +
    131  void operator()(const Visitable*) {};
    +
    132  };
    +
    133 
    +
    134  };
    +
    135  } // namespace detail
    +
    136 
    +
    141  template <typename TTVisitor = detail::Traverse::null_visitor<TTBase>,
    +
    142  typename InVisitor = detail::Traverse::null_visitor<TerminalBase>,
    +
    143  typename OutVisitor = detail::Traverse::null_visitor<TerminalBase>>
    +
    144  class Traverse : private detail::Traverse {
    +
    145  public:
    +
    146  static_assert(
    +
    147  std::is_void_v<meta::void_t<decltype(std::declval<TTVisitor>()(std::declval<TTBase *>()))>>,
    +
    148  "Traverse<TTVisitor,...>: TTVisitor(TTBase *op) must be a valid expression");
    +
    149  static_assert(
    +
    150  std::is_void_v<meta::void_t<decltype(std::declval<InVisitor>()(std::declval<TerminalBase *>()))>>,
    +
    151  "Traverse<,InVisitor,>: InVisitor(TerminalBase *op) must be a valid expression");
    +
    152  static_assert(
    +
    153  std::is_void_v<meta::void_t<decltype(std::declval<OutVisitor>()(std::declval<TerminalBase *>()))>>,
    +
    154  "Traverse<...,OutVisitor>: OutVisitor(TerminalBase *op) must be a valid expression");
    +
    155 
    +
    156  template <typename TTVisitor_ = detail::Traverse::null_visitor<TTBase>,
    +
    157  typename InVisitor_ = detail::Traverse::null_visitor<TerminalBase>,
    +
    158  typename OutVisitor_ = detail::Traverse::null_visitor<TerminalBase>>
    +
    159  Traverse(TTVisitor_ &&tt_v = TTVisitor_{}, InVisitor_ &&in_v = InVisitor_{}, OutVisitor_ &&out_v = OutVisitor_{})
    +
    160  : tt_visitor_(std::forward<TTVisitor_>(tt_v))
    +
    161  , in_visitor_(std::forward<InVisitor_>(in_v))
    +
    162  , out_visitor_(std::forward<OutVisitor_>(out_v)){};
    +
    163 
    +
    164  const TTVisitor &tt_visitor() const { return tt_visitor_; }
    +
    165  const InVisitor &in_visitor() const { return in_visitor_; }
    +
    166  const OutVisitor &out_visitor() const { return out_visitor_; }
    +
    167 
    +
    169  template <typename TTBasePtr, typename ... TTBasePtrs>
    +
    170  std::enable_if_t<std::is_base_of_v<TTBase, std::decay_t<decltype(*(std::declval<TTBasePtr>()))>> && (std::is_base_of_v<TTBase, std::decay_t<decltype(*(std::declval<TTBasePtrs>()))>> && ...),
    +
    171  bool>
    + +
    173  TTBasePtr&& op, TTBasePtrs && ... ops) {
    +
    174  reset();
    +
    175  bool result = traverse_all(std::forward<TTBasePtr>(op), std::forward<TTBasePtrs>(ops)...);
    +
    176  reset();
    +
    177  return result;
    +
    178  }
    +
    179 
    +
    180  private:
    +
    181  TTVisitor tt_visitor_;
    +
    182  InVisitor in_visitor_;
    +
    183  OutVisitor out_visitor_;
    +
    184 
    +
    185  template <typename TTBasePtr, typename ... TTBasePtrs>
    +
    186  bool traverse_all(TTBasePtr&& op, TTBasePtrs && ... ops) {
    +
    187  bool result = traverse(op);
    +
    188  if constexpr(sizeof...(ops) > 0) {
    +
    189  result &= traverse_all(std::forward<TTBasePtrs>(ops)...);
    +
    190  }
    +
    191  return result;
    +
    192  }
    +
    193 
    +
    194  void ttfunc(TTBase *tt) { tt_visitor_(tt); }
    +
    195 
    +
    196  void infunc(TerminalBase *in) { in_visitor_(in); }
    +
    197 
    +
    198  void outfunc(TerminalBase *out) { out_visitor_(out); }
    +
    199  };
    +
    200 
    +
    201  namespace {
    +
    202  auto trivial_1param_lambda = [](auto &&op) {};
    +
    203  }
    +
    204  template <typename TTVisitor = decltype(trivial_1param_lambda)&, typename InVisitor = decltype(trivial_1param_lambda)&, typename OutVisitor = decltype(trivial_1param_lambda)&>
    +
    205  auto make_traverse(TTVisitor &&tt_v = trivial_1param_lambda, InVisitor &&in_v = trivial_1param_lambda, OutVisitor &&out_v = trivial_1param_lambda) {
    +
    206  return Traverse<std::remove_reference_t<TTVisitor>, std::remove_reference_t<InVisitor>,
    +
    207  std::remove_reference_t<OutVisitor>>{std::forward<TTVisitor>(tt_v), std::forward<InVisitor>(in_v),
    +
    208  std::forward<OutVisitor>(out_v)};
    +
    209  };
    +
    210 
    +
    212  static Traverse<> verify{};
    +
    213 
    +
    215  static auto print_ttg = make_traverse(
    +
    216  [](auto *tt) {
    +
    217  std::cout << "tt: " << (void *)tt << " " << tt->get_name() << " numin " << tt->get_inputs().size() << " numout "
    +
    218  << tt->get_outputs().size() << std::endl;
    +
    219  },
    +
    220  [](auto *in) {
    +
    221  std::cout << " in: " << in->get_index() << " " << in->get_name() << " " << in->get_key_type_str() << " "
    +
    222  << in->get_value_type_str() << std::endl;
    +
    223  },
    +
    224  [](auto *out) {
    +
    225  std::cout << " out: " << out->get_index() << " " << out->get_name() << " " << out->get_key_type_str() << " "
    +
    226  << out->get_value_type_str() << std::endl;
    +
    227  });
    +
    228 
    +
    229 
    +
    230 } // namespace ttg
    +
    231 
    +
    232 #endif // TTG_TRAVERSE_H
    +
    A base class for all template tasks.
    Definition: tt.h:30
    +
    const std::vector< TerminalBase * > & get_inputs() const
    Returns the vector of input terminals.
    Definition: tt.h:223
    +
    const std::vector< TerminalBase * > & get_outputs() const
    Returns the vector of output terminals.
    Definition: tt.h:226
    +
    const std::string & get_name() const
    Gets the name of this operation.
    Definition: tt.h:217
    + +
    Traverses a graph of ops in depth-first manner following out edges.
    Definition: traverse.h:144
    +
    const InVisitor & in_visitor() const
    Definition: traverse.h:165
    +
    const OutVisitor & out_visitor() const
    Definition: traverse.h:166
    +
    const TTVisitor & tt_visitor() const
    Definition: traverse.h:164
    +
    Traverse(TTVisitor_ &&tt_v=TTVisitor_{}, InVisitor_ &&in_v=InVisitor_{}, OutVisitor_ &&out_v=OutVisitor_{})
    Definition: traverse.h:159
    +
    std::enable_if_t< std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtr >)))> > &&(std::is_base_of_v< TTBase, std::decay_t< decltype(*(std::declval< TTBasePtrs >)))> bool operator()(TTBasePtr &&op, TTBasePtrs &&... ops)
    Definition: traverse.h:172
    +
    Traverses a graph of TTs in depth-first manner following out edges.
    Definition: traverse.h:14
    +
    std::enable_if_t< std::is_base_of_v< TTBase, TT >, bool > traverse(const std::unique_ptr< TT, Deleter > &tt)
    Definition: traverse.h:120
    + +
    virtual void ttfunc(TTBase *tt)=0
    +
    std::enable_if_t< std::is_base_of_v< TTBase, TT >, bool > traverse(const std::shared_ptr< TTBase > &tt)
    Definition: traverse.h:113
    +
    virtual void infunc(TerminalBase *in)=0
    +
    std::enable_if_t< std::is_base_of_v< TTBase, TT > &&!std::is_same_v< TT, TTBase >, bool > traverse(TT *tt)
    Definition: traverse.h:106
    +
    bool traverse(TTBase *tt)
    Definition: traverse.h:30
    +
    virtual void outfunc(TerminalBase *out)=0
    + + +
    void void_t
    Definition: meta.h:23
    +
    constexpr bool is_void_v
    Definition: meta.h:209
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    auto make_traverse(TTVisitor &&tt_v=trivial_1param_lambda, InVisitor &&in_v=trivial_1param_lambda, OutVisitor &&out_v=trivial_1param_lambda)
    Definition: traverse.h:205
    + +
    void operator()(Visitable *)
    visits a non-const Visitable object
    Definition: traverse.h:129
    +
    void operator()(const Visitable *)
    visits a const Visitable object
    Definition: traverse.h:131
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/tree_8h.html b/dox-master/tree_8h.html new file mode 100644 index 000000000..d81f08c22 --- /dev/null +++ b/dox-master/tree_8h.html @@ -0,0 +1,144 @@ + + + + + + + + + + + ttg: ttg/ttg/util/tree.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    tree.h File Reference
    +
    +
    +
    #include <cassert>
    +#include <utility>
    +
    + + + + +

    +Classes

    class  ttg::BinarySpanningTree
     a binary spanning tree of integers in the [0,size) interval More...
     
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/tree_8h_source.html b/dox-master/tree_8h_source.html new file mode 100644 index 000000000..84e30057c --- /dev/null +++ b/dox-master/tree_8h_source.html @@ -0,0 +1,188 @@ + + + + + + + + + + + ttg: ttg/ttg/util/tree.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    tree.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 12/29/17.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_TREE_H
    +
    6 #define TTG_TREE_H
    +
    7 
    +
    8 #include <cassert>
    +
    9 #include <utility>
    +
    10 
    +
    11 namespace ttg {
    +
    12 
    + +
    18  public:
    +
    19  BinarySpanningTree(int size, int root) : size_(size), root_(root) {
    +
    20  assert(root >= 0 && root < size);
    +
    21  assert(size >= 0);
    +
    22  }
    +
    23  ~BinarySpanningTree() = default;
    +
    24 
    +
    26  const auto size() const { return size_; }
    +
    28  const auto root() const { return root_; }
    +
    29 
    +
    32  int parent_key(const int child_key) const {
    +
    33  const auto child_rank = (child_key + size_ - root_) % size_; // cyclically shifted key such that root's key is 0
    +
    34  const auto parent_key =
    +
    35  (child_rank == 0 ? -1 : (((child_rank - 1) >> 1) + root_) % size_); // Parent's key in binary tree
    +
    36  return parent_key;
    +
    37  }
    +
    40  std::pair<int, int> child_keys(const int parent_key) const {
    +
    41  const auto parent_rank =
    +
    42  (parent_key + size_ - root_) % size_; // cyclically shifted key such that root's key is 0
    +
    43  int child0 = (parent_rank << 1) + 1 + root_; // Left child
    +
    44  int child1 = child0 + 1; // Right child
    +
    45  const int size_plus_root = size_ + root_;
    +
    46  if (child0 < size_plus_root)
    +
    47  child0 %= size_;
    +
    48  else
    +
    49  child0 = -1;
    +
    50  if (child1 < size_plus_root)
    +
    51  child1 %= size_;
    +
    52  else
    +
    53  child1 = -1;
    +
    54  return std::make_pair(child0, child1);
    +
    55  }
    +
    56 
    +
    57  private:
    +
    58  int size_;
    +
    59  int root_;
    +
    60  };
    +
    61 
    +
    62 } // namespace ttg
    +
    63 
    +
    64 #endif // TTG_TREE_H
    +
    a binary spanning tree of integers in the [0,size) interval
    Definition: tree.h:17
    +
    int parent_key(const int child_key) const
    Definition: tree.h:32
    +
    const auto size() const
    Definition: tree.h:26
    +
    const auto root() const
    Definition: tree.h:28
    + +
    BinarySpanningTree(int size, int root)
    Definition: tree.h:19
    +
    std::pair< int, int > child_keys(const int parent_key) const
    Definition: tree.h:40
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/tt_8h.html b/dox-master/tt_8h.html new file mode 100644 index 000000000..133c3a9aa --- /dev/null +++ b/dox-master/tt_8h.html @@ -0,0 +1,230 @@ + + + + + + + + + + + ttg: ttg/ttg/tt.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    tt.h File Reference
    +
    +
    +
    #include "ttg/config.h"
    +#include "ttg/fwd.h"
    +#include "ttg/base/tt.h"
    +#include "ttg/edge.h"
    +#include "ttg/coroutine.h"
    +#include <cassert>
    +#include <memory>
    +#include <vector>
    +
    + + + + + + + +

    +Classes

    class  ttg::TTG< input_terminalsT, output_terminalsT >
     a template task graph implementation More...
     
    class  ttg::SinkTT< keyT, input_valueT >
     A data sink for one input. More...
     
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + +

    +Macros

    #define TTG_PROCESS_TT_OP_RETURN(result, id, invoke)
     
    + + + + +

    +Functions

    template<typename ttseqT , typename input_terminalsT , typename output_terminalsT >
    auto ttg::make_ttg (ttseqT &&tts, const input_terminalsT &ins, const output_terminalsT &outs, const std::string &name="ttg")
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_PROCESS_TT_OP_RETURN

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    #define TTG_PROCESS_TT_OP_RETURN( result,
     id,
     invoke 
    )
    +
    +Value:
    { \
    +
    using return_type = decltype(invoke); \
    +
    if constexpr (std::is_same_v<return_type, void>) { \
    +
    invoke; \
    + +
    } else { \
    +
    auto coro_return = invoke; \
    +
    static_assert(std::is_same_v<return_type, void> || \
    +
    std::is_base_of_v<ttg::coroutine_handle<ttg::resumable_task_state>, decltype(coro_return)>|| \
    + +
    decltype(coro_return)>); \
    +
    if constexpr (std::is_base_of_v<ttg::coroutine_handle<ttg::resumable_task_state>, decltype(coro_return)>) \
    + +
    else if constexpr (std::is_base_of_v< \
    + +
    decltype(coro_return)>) \
    + + + +
    result = coro_return.address(); \
    +
    } \
    +
    }
    +
    void abort()
    Aborts the TTG program using the default backend's ttg_abort method.
    Definition: run.h:62
    +
    TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise > coroutine_handle
    Definition: coroutine.h:24
    +
    @ ResumableTask
    -> ttg::resumable_task
    +
    @ Invalid
    not a coroutine, i.e. a standard task function, -> void
    +
    @ DeviceTask
    -> ttg::device::Task
    +
    +

    Definition at line 181 of file tt.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/tt_8h_source.html b/dox-master/tt_8h_source.html new file mode 100644 index 000000000..267f78826 --- /dev/null +++ b/dox-master/tt_8h_source.html @@ -0,0 +1,361 @@ + + + + + + + + + + + ttg: ttg/ttg/tt.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    tt.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_TT_H
    +
    2 #define TTG_TT_H
    +
    3 
    +
    4 #include "ttg/config.h"
    +
    5 #include "ttg/fwd.h"
    +
    6 
    +
    7 #include "ttg/base/tt.h"
    +
    8 #include "ttg/edge.h"
    +
    9 
    +
    10 #ifdef TTG_HAVE_COROUTINE
    +
    11 #include "ttg/coroutine.h"
    +
    12 #endif
    +
    13 
    +
    14 #include <cassert>
    +
    15 #include <memory>
    +
    16 #include <vector>
    +
    17 
    +
    18 namespace ttg {
    +
    19 
    +
    20  // TODO describe TT concept (preferably as a C++20 concept)
    +
    21  // N.B. TT::op returns void or ttg::coroutine_handle<>
    +
    22  // see TTG_PROCESS_TT_OP_RETURN below
    +
    23 
    +
    25 
    +
    30  template <typename input_terminalsT, typename output_terminalsT>
    +
    31  class TTG : public TTBase {
    +
    32  public:
    +
    33  static constexpr int numins = std::tuple_size_v<input_terminalsT>; // number of input arguments
    +
    34  static constexpr int numouts = std::tuple_size_v<output_terminalsT>; // number of outputs or results
    +
    35 
    +
    36  using input_terminals_type = input_terminalsT;
    +
    37  using output_terminals_type = output_terminalsT;
    +
    38 
    +
    39  private:
    +
    40  std::vector<std::unique_ptr<TTBase>> tts;
    + + +
    43 
    +
    44  // not copyable
    +
    45  TTG(const TTG &) = delete;
    +
    46  TTG &operator=(const TTG &) = delete;
    +
    47  // movable
    +
    48  TTG(TTG &&other)
    +
    49  : TTBase(static_cast<TTBase &&>(other))
    +
    50  , tts(other.tts)
    +
    51  , ins(std::move(other.ins))
    +
    52  , outs(std::move(other.outs)) {
    +
    53  is_ttg_ = true;
    +
    54  own_my_tts();
    +
    55  }
    +
    56  TTG &operator=(TTG &&other) {
    +
    57  static_cast<TTBase &>(*this) = static_cast<TTBase &&>(other);
    +
    58  is_ttg_ = true;
    +
    59  tts = std::move(other.tts);
    +
    60  ins = std::move(other.ins);
    +
    61  outs = std::move(other.outs);
    +
    62  own_my_tts();
    +
    63  return *this;
    +
    64  };
    +
    65 
    +
    66  public:
    +
    68  template <typename ttseqT>
    +
    69  TTG(ttseqT &&tts,
    +
    70  const input_terminals_type &ins, // tuple of pointers to input terminals
    +
    71  const output_terminals_type &outs, // tuple of pointers to output terminals
    +
    72  const std::string &name = "ttg")
    +
    73  : TTBase(name, numins, numouts), tts(std::forward<ttseqT>(tts)), ins(ins), outs(outs) {
    +
    74  if (this->tts.size() == 0) throw name + ":TTG: need to wrap at least one TT"; // see fence
    +
    75 
    + + +
    78  is_ttg_ = true;
    +
    79  own_my_tts();
    +
    80 
    +
    81  // traversal is still broken ... need to add checking for composite
    +
    82  }
    +
    83 
    +
    85  template <std::size_t i>
    +
    86  auto in() {
    +
    87  return std::get<i>(ins);
    +
    88  }
    +
    89 
    +
    91  template <std::size_t i>
    +
    92  auto out() {
    +
    93  return std::get<i>(outs);
    +
    94  }
    +
    95 
    +
    96  TTBase *get_op(std::size_t i) { return tts.at(i).get(); }
    +
    97 
    +
    98  ttg::World get_world() const override final { return tts[0]->get_world(); }
    +
    99 
    +
    100  void fence() override { tts[0]->fence(); }
    +
    101 
    +
    102  void make_executable() override {
    +
    103  for (auto &op : tts) op->make_executable();
    +
    104  }
    +
    105 
    +
    106  private:
    +
    107  void own_my_tts() const {
    +
    108  for (auto &op : tts) op->owning_ttg = this;
    +
    109  }
    +
    110  };
    +
    111 
    +
    112  template <typename ttseqT, typename input_terminalsT, typename output_terminalsT>
    +
    113  auto make_ttg(ttseqT &&tts, const input_terminalsT &ins, const output_terminalsT &outs,
    +
    114  const std::string &name = "ttg") {
    +
    115  return std::make_unique<TTG<input_terminalsT, output_terminalsT>>(std::forward<ttseqT>(tts), ins, outs, name);
    +
    116  }
    +
    117 
    +
    119  template <typename keyT, typename input_valueT>
    +
    120  class SinkTT : public TTBase {
    +
    121  static constexpr int numins = 1;
    +
    122  static constexpr int numouts = 0;
    +
    123 
    +
    124  using input_terminals_type = std::tuple<ttg::In<keyT, input_valueT>>;
    +
    125  using input_edges_type = std::tuple<ttg::Edge<keyT, std::decay_t<input_valueT>>>;
    +
    126  using output_terminals_type = std::tuple<>;
    +
    127 
    +
    128  private:
    +
    129  input_terminals_type input_terminals;
    +
    130  output_terminals_type output_terminals;
    +
    131 
    +
    132  SinkTT(const SinkTT &other) = delete;
    +
    133  SinkTT &operator=(const SinkTT &other) = delete;
    +
    134  SinkTT(SinkTT &&other) = delete;
    +
    135  SinkTT &operator=(SinkTT &&other) = delete;
    +
    136 
    +
    137  template <typename terminalT>
    +
    138  void register_input_callback(terminalT &input) {
    +
    139  using valueT = std::decay_t<typename terminalT::value_type>;
    +
    140  auto move_callback = [](const keyT &key, valueT &&value) {};
    +
    141  auto send_callback = [](const keyT &key, const valueT &value) {};
    +
    142  auto broadcast_callback = [](const ttg::span<const keyT> &key, const valueT &value) {};
    +
    143  auto setsize_callback = [](const keyT &key, std::size_t size) {};
    +
    144  auto finalize_callback = [](const keyT &key) {};
    +
    145 
    +
    146  input.set_callback(send_callback, move_callback, broadcast_callback, setsize_callback, finalize_callback);
    +
    147  }
    +
    148 
    +
    149  public:
    +
    150  SinkTT(const std::string &inname = "junk") : TTBase("sink", numins, numouts) {
    +
    151  register_input_terminals(input_terminals, std::vector<std::string>{inname});
    +
    152  register_input_callback(std::get<0>(input_terminals));
    +
    153  }
    +
    154 
    +
    155  SinkTT(const input_edges_type &inedges, const std::string &inname = "junk") : TTBase("sink", numins, numouts) {
    +
    156  register_input_terminals(input_terminals, std::vector<std::string>{inname});
    +
    157  register_input_callback(std::get<0>(input_terminals));
    +
    158  std::get<0>(inedges).set_out(&std::get<0>(input_terminals));
    +
    159  }
    +
    160 
    +
    161  virtual ~SinkTT() {}
    +
    162 
    +
    163  void fence() override final {}
    +
    164 
    +
    165  void make_executable() override final { TTBase::make_executable(); }
    +
    166 
    +
    167  World get_world() const override final { return get_default_world(); }
    +
    168 
    +
    170  template <std::size_t i>
    +
    171  std::tuple_element_t<i, input_terminals_type> *in() {
    +
    172  static_assert(i == 0);
    +
    173  return &std::get<i>(input_terminals);
    +
    174  }
    +
    175  };
    +
    176 
    +
    177 } // namespace ttg
    +
    178 
    +
    179 #ifndef TTG_PROCESS_TT_OP_RETURN
    +
    180 #ifdef TTG_HAVE_COROUTINE
    +
    181 #define TTG_PROCESS_TT_OP_RETURN(result, id, invoke) \
    +
    182  { \
    +
    183  using return_type = decltype(invoke); \
    +
    184  if constexpr (std::is_same_v<return_type, void>) { \
    +
    185  invoke; \
    +
    186  id = ttg::TaskCoroutineID::Invalid; \
    +
    187  } else { \
    +
    188  auto coro_return = invoke; \
    +
    189  static_assert(std::is_same_v<return_type, void> || \
    +
    190  std::is_base_of_v<ttg::coroutine_handle<ttg::resumable_task_state>, decltype(coro_return)>|| \
    +
    191  std::is_base_of_v<ttg::coroutine_handle<ttg::device::detail::device_task_promise_type>, \
    +
    192  decltype(coro_return)>); \
    +
    193  if constexpr (std::is_base_of_v<ttg::coroutine_handle<ttg::resumable_task_state>, decltype(coro_return)>) \
    +
    194  id = ttg::TaskCoroutineID::ResumableTask; \
    +
    195  else if constexpr (std::is_base_of_v< \
    +
    196  ttg::coroutine_handle<ttg::device::detail::device_task_promise_type>, \
    +
    197  decltype(coro_return)>) \
    +
    198  id = ttg::TaskCoroutineID::DeviceTask; \
    +
    199  else \
    +
    200  std::abort(); \
    +
    201  result = coro_return.address(); \
    +
    202  } \
    +
    203  }
    +
    204 #else
    +
    205 #define TTG_PROCESS_TT_OP_RETURN(result, id, invoke) invoke
    +
    206 #endif
    +
    207 #else
    +
    208 #error "TTG_PROCESS_TT_OP_RETURN already defined in ttg/tt.h, check your header guards"
    +
    209 #endif // !defined(TTG_PROCESS_TT_OP_RETURN)
    +
    210 
    +
    211 #endif // TTG_TT_H
    + +
    A data sink for one input.
    Definition: tt.h:120
    +
    SinkTT(const std::string &inname="junk")
    Definition: tt.h:150
    +
    void fence() override final
    Definition: tt.h:163
    +
    std::tuple_element_t< i, input_terminals_type > * in()
    Returns pointer to input terminal i to facilitate connection — terminal cannot be copied,...
    Definition: tt.h:171
    +
    virtual ~SinkTT()
    Definition: tt.h:161
    +
    World get_world() const override final
    Definition: tt.h:167
    +
    SinkTT(const input_edges_type &inedges, const std::string &inname="junk")
    Definition: tt.h:155
    +
    void make_executable() override final
    Marks this executable.
    Definition: tt.h:165
    +
    A base class for all template tasks.
    Definition: tt.h:30
    +
    void set_terminals(std::index_sequence< IS... >, terminalsT &terms, const setfuncT setfunc)
    Definition: tt.h:98
    +
    virtual void make_executable()=0
    Marks this executable.
    Definition: tt.h:286
    +
    void register_input_terminals(terminalsT &terms, const namesT &names)
    Definition: tt.h:84
    +
    friend class TTG
    Definition: tt.h:40
    +
    a template task graph implementation
    Definition: tt.h:31
    +
    auto in()
    Return a pointer to i'th input terminal.
    Definition: tt.h:86
    +
    auto out()
    Return a pointer to i'th output terminal.
    Definition: tt.h:92
    +
    void fence() override
    Definition: tt.h:100
    +
    input_terminalsT input_terminals_type
    Definition: tt.h:36
    +
    ttg::World get_world() const override final
    Definition: tt.h:98
    +
    static constexpr int numins
    Definition: tt.h:33
    +
    TTBase * get_op(std::size_t i)
    Definition: tt.h:96
    +
    void make_executable() override
    Marks this executable.
    Definition: tt.h:102
    +
    static constexpr int numouts
    Definition: tt.h:34
    +
    output_terminalsT output_terminals_type
    Definition: tt.h:37
    +
    TTG(ttseqT &&tts, const input_terminals_type &ins, const output_terminals_type &outs, const std::string &name="ttg")
    Definition: tt.h:69
    + + + + +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    auto make_ttg(ttseqT &&tts, const input_terminalsT &ins, const output_terminalsT &outs, const std::string &name="ttg")
    Definition: tt.h:113
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg_2madness_2ttg_8h.html b/dox-master/ttg_2madness_2ttg_8h.html new file mode 100644 index 000000000..55c83992d --- /dev/null +++ b/dox-master/ttg_2madness_2ttg_8h.html @@ -0,0 +1,239 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/ttg.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg.h File Reference
    +
    +
    +
    #include "ttg/impl_selector.h"
    +#include "../../ttg.h"
    +#include "ttg/base/keymap.h"
    +#include "ttg/base/tt.h"
    +#include "ttg/func.h"
    +#include "ttg/madness/device.h"
    +#include "ttg/runtimes.h"
    +#include "ttg/tt.h"
    +#include "ttg/util/bug.h"
    +#include "ttg/util/env.h"
    +#include "ttg/util/hash.h"
    +#include "ttg/util/macro.h"
    +#include "ttg/util/meta.h"
    +#include "ttg/util/meta/callable.h"
    +#include "ttg/util/void.h"
    +#include "ttg/world.h"
    +#include "ttg/coroutine.h"
    +#include <array>
    +#include <cassert>
    +#include <functional>
    +#include <future>
    +#include <iostream>
    +#include <map>
    +#include <memory>
    +#include <string>
    +#include <tuple>
    +#include <vector>
    +#include <madness/world/MADworld.h>
    +#include <madness/world/world_object.h>
    +#include <madness/world/worldhashmap.h>
    +#include <madness/world/worldtypes.h>
    +#include <madness/world/world_task_queue.h>
    +#include "ttg/make_tt.h"
    +#include "ttg/madness/watch.h"
    +#include "ttg/madness/buffer.h"
    +#include "ttg/madness/ttvalue.h"
    +
    + + + + + +

    +Classes

    class  ttg_madness::WorldImpl
     
    class  ttg_madness::TT< keyT, output_terminalsT, derivedT, input_valueTs >
     
    + + + + +

    +Namespaces

     ttg_madness
     this contains MADNESS-based TTG functionality
     
    + + + +

    +Macros

    #define TTG_USE_MADNESS   1
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void ttg_madness::make_executable_hook (ttg::World &)
     
    void ttg_madness::ttg_initialize (int argc, char **argv, int num_threads=-1)
     
    void ttg_madness::ttg_finalize ()
     
    ttg::World ttg_madness::ttg_default_execution_context ()
     
    void ttg_madness::ttg_abort ()
     
    void ttg_madness::ttg_execute (ttg::World world)
     
    void ttg_madness::ttg_fence (ttg::World world)
     
    template<typename T >
    void ttg_madness::ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr)
     
    template<typename T >
    void ttg_madness::ttg_register_ptr (ttg::World world, std::unique_ptr< T > &&ptr)
     
    void ttg_madness::ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
     
    template<typename Callback >
    void ttg_madness::ttg_register_callback (ttg::World world, Callback &&callback)
     
    ttg::Edgettg_madness::ttg_ctl_edge (ttg::World world)
     
    template<typename T >
    void ttg_madness::ttg_sum (ttg::World world, T &value)
     
    template<typename T >
    void ttg_madness::ttg_broadcast (ttg::World world, T &data, int source_rank)
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_USE_MADNESS

    + +
    +
    + + + + +
    #define TTG_USE_MADNESS   1
    +
    + +

    Definition at line 6 of file ttg.h.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg_2madness_2ttg_8h_source.html b/dox-master/ttg_2madness_2ttg_8h_source.html new file mode 100644 index 000000000..7e820a5d6 --- /dev/null +++ b/dox-master/ttg_2madness_2ttg_8h_source.html @@ -0,0 +1,1545 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/ttg.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef MADNESS_TTG_H_INCLUDED
    +
    2 #define MADNESS_TTG_H_INCLUDED
    +
    3 
    +
    4 /* set up env if this header was included directly */
    +
    5 #if !defined(TTG_IMPL_NAME)
    +
    6 #define TTG_USE_MADNESS 1
    +
    7 #endif // !defined(TTG_IMPL_NAME)
    +
    8 
    +
    9 #include "ttg/impl_selector.h"
    +
    10 
    +
    11 /* include ttg header to make symbols available in case this header is included directly */
    +
    12 #include "../../ttg.h"
    +
    13 #include "ttg/base/keymap.h"
    +
    14 #include "ttg/base/tt.h"
    +
    15 #include "ttg/func.h"
    +
    16 #include "ttg/madness/device.h"
    +
    17 #include "ttg/runtimes.h"
    +
    18 #include "ttg/tt.h"
    +
    19 #include "ttg/util/bug.h"
    +
    20 #include "ttg/util/env.h"
    +
    21 #include "ttg/util/hash.h"
    +
    22 #include "ttg/util/macro.h"
    +
    23 #include "ttg/util/meta.h"
    +
    24 #include "ttg/util/meta/callable.h"
    +
    25 #include "ttg/util/void.h"
    +
    26 #include "ttg/world.h"
    +
    27 #include "ttg/coroutine.h"
    +
    28 
    +
    29 #include <array>
    +
    30 #include <cassert>
    +
    31 #include <functional>
    +
    32 #include <future>
    +
    33 #include <iostream>
    +
    34 #include <map>
    +
    35 #include <memory>
    +
    36 #include <string>
    +
    37 #include <tuple>
    +
    38 #include <vector>
    +
    39 
    +
    40 #include <madness/world/MADworld.h>
    +
    41 #include <madness/world/world_object.h>
    +
    42 #include <madness/world/worldhashmap.h>
    +
    43 #include <madness/world/worldtypes.h>
    +
    44 
    +
    45 #include <madness/world/world_task_queue.h>
    +
    46 
    +
    47 namespace ttg_madness {
    +
    48 
    +
    49 #if 0
    +
    50  class Control;
    +
    51  class Graph;
    +
    53  class Graph {
    +
    54  public:
    +
    55  Graph() {
    +
    56  world_ = default_execution_context();
    +
    57  }
    +
    58  Graph(World& w) : world_(w) {}
    +
    59 
    +
    60 
    +
    61  private:
    +
    62  World& world_;
    +
    63  };
    +
    64 #endif
    +
    65 
    +
    66  class WorldImpl final : public ttg::base::WorldImplBase {
    +
    67  private:
    +
    68  ::madness::World &m_impl;
    +
    69  bool m_allocated = false;
    +
    70 
    +
    71  ttg::Edge<> m_ctl_edge;
    +
    72 
    +
    73  public:
    +
    74  WorldImpl(::madness::World &world) : WorldImplBase(world.size(), world.rank()), m_impl(world) {}
    +
    75 
    +
    76  WorldImpl(const SafeMPI::Intracomm &comm)
    +
    77  : WorldImplBase(comm.Get_size(), comm.Get_rank()), m_impl(*new ::madness::World(comm)), m_allocated(true) {}
    +
    78 
    +
    79  /* Deleted copy ctor */
    +
    80  WorldImpl(const WorldImpl &other) = delete;
    +
    81 
    +
    82  /* Deleted move ctor */
    +
    83  WorldImpl(WorldImpl &&other) = delete;
    +
    84 
    +
    85  virtual ~WorldImpl() override { destroy(); }
    +
    86 
    +
    87  /* Deleted copy assignment */
    +
    88  WorldImpl &operator=(const WorldImpl &other) = delete;
    +
    89 
    +
    90  /* Deleted move assignment */
    +
    91  WorldImpl &operator=(WorldImpl &&other) = delete;
    +
    92 
    +
    93  virtual void fence_impl(void) override { m_impl.gop.fence(); }
    +
    94 
    +
    95  ttg::Edge<> &ctl_edge() { return m_ctl_edge; }
    +
    96 
    +
    97  const ttg::Edge<> &ctl_edge() const { return m_ctl_edge; }
    +
    98 
    +
    99  virtual void destroy(void) override {
    +
    100  if (is_valid()) {
    +
    101  release_ops();
    + +
    103  if (m_allocated) {
    +
    104  delete &m_impl;
    +
    105  m_allocated = false;
    +
    106  }
    +
    107  mark_invalid();
    +
    108  }
    +
    109  }
    +
    110 
    +
    111  /* Return an unmanaged reference to the implementation object */
    +
    112  ::madness::World &impl() { return m_impl; }
    +
    113 
    +
    114  const ::madness::World &impl() const { return m_impl; }
    +
    115 
    +
    116 #ifdef ENABLE_PARSEC
    +
    117  parsec_context_t *context() { return ::madness::ThreadPool::instance()->parsec; }
    +
    118 #endif
    +
    119  };
    +
    120 
    +
    121  inline void make_executable_hook(ttg::World& world) { }
    +
    122 
    +
    123  inline void ttg_initialize(int argc, char **argv, int num_threads) {
    + +
    125  ::madness::World &madworld = ::madness::initialize(argc, argv, num_threads, /* quiet = */ true);
    +
    126  auto *world_ptr = new ttg_madness::WorldImpl{madworld};
    +
    127  std::shared_ptr<ttg::base::WorldImplBase> world_sptr{static_cast<ttg::base::WorldImplBase *>(world_ptr)};
    +
    128  ttg::World world{std::move(world_sptr)};
    +
    129  ttg::detail::set_default_world(std::move(world));
    +
    130  }
    +
    131  inline void ttg_finalize() {
    +
    132  ttg::detail::set_default_world(ttg::World{}); // reset the default world
    +
    133  ttg::detail::destroy_worlds<ttg_madness::WorldImpl>();
    + +
    135  }
    + +
    137  inline void ttg_abort() {
    +
    138  MPI_Abort(ttg_default_execution_context().impl().impl().mpi.Get_mpi_comm(), 1);
    +
    139  assert(0); // make sure we abort
    +
    140  }
    +
    141  inline void ttg_execute(ttg::World world) {
    +
    142  // World executes tasks eagerly
    +
    143  }
    +
    144  inline void ttg_fence(ttg::World world) { world.impl().fence(); }
    +
    145 
    +
    146  template <typename T>
    +
    147  inline void ttg_register_ptr(ttg::World world, const std::shared_ptr<T> &ptr) {
    +
    148  world.impl().register_ptr(ptr);
    +
    149  }
    +
    150 
    +
    151  template <typename T>
    +
    152  inline void ttg_register_ptr(ttg::World world, std::unique_ptr<T> &&ptr) {
    +
    153  world.impl().register_ptr(std::move(ptr));
    +
    154  }
    +
    155 
    +
    156  inline void ttg_register_status(ttg::World world, const std::shared_ptr<std::promise<void>> &status_ptr) {
    +
    157  world.impl().register_status(status_ptr);
    +
    158  }
    +
    159 
    +
    160  template <typename Callback>
    +
    161  inline void ttg_register_callback(ttg::World world, Callback &&callback) {
    +
    162  world.impl().register_callback(std::forward<Callback>(callback));
    +
    163  }
    +
    164 
    +
    165  inline ttg::Edge<> &ttg_ctl_edge(ttg::World world) { return world.impl().ctl_edge(); }
    +
    166 
    +
    167  template <typename T>
    +
    168  inline void ttg_sum(ttg::World world, T &value) {
    +
    169  world.impl().impl().gop.sum(value);
    +
    170  }
    +
    173  template <typename T>
    +
    174  inline void ttg_broadcast(ttg::World world, T &data, int source_rank) {
    +
    175  world.impl().impl().gop.broadcast_serializable(data, source_rank);
    +
    176  }
    +
    177 
    +
    186  template <typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs>
    +
    187  class TT : public ttg::TTBase, public ::madness::WorldObject<TT<keyT, output_terminalsT, derivedT, input_valueTs>> {
    +
    188  static_assert(ttg::meta::is_typelist_v<input_valueTs>,
    +
    189  "The fourth template for ttg::TT must be a ttg::typelist containing the input types");
    +
    190  using input_tuple_type = ttg::meta::typelist_to_tuple_t<input_valueTs>;
    +
    191  // create a virtual control input if the input list is empty, to be used in invoke()
    +
    192  using actual_input_tuple_type = std::conditional_t<!ttg::meta::typelist_is_empty_v<input_valueTs>,
    + +
    194 
    +
    195  public:
    +
    196  using ttT = TT;
    +
    197  using key_type = keyT;
    +
    199  static_assert((ttg::meta::none_has_reference_v<input_valueTs>), "input_valueTs cannot contain reference types");
    +
    200 
    +
    201  private:
    +
    202  ttg::World world;
    +
    203  ttg::meta::detail::keymap_t<keyT> keymap;
    +
    204  ttg::meta::detail::keymap_t<keyT> priomap;
    +
    205  // For now use same type for unary/streaming input terminals, and stream reducers assigned at runtime
    +
    206  ttg::meta::detail::input_reducers_t<actual_input_tuple_type>
    +
    207  input_reducers;
    +
    208  int num_pullins = 0;
    +
    209 
    +
    210  std::array<std::size_t, std::tuple_size_v<actual_input_tuple_type>> static_streamsize;
    +
    211 
    +
    212  public:
    +
    213  ttg::World get_world() const override final { return world; }
    +
    214 
    +
    216  static constexpr bool derived_has_cuda_op() {
    +
    217  return false;
    +
    218  }
    +
    219 
    +
    221  static constexpr bool derived_has_hip_op() {
    +
    222  return false;
    +
    223  }
    +
    224 
    +
    226  static constexpr bool derived_has_level_zero_op() {
    +
    227  return false;
    +
    228  }
    +
    229 
    +
    231  static constexpr bool derived_has_device_op() {
    +
    232  return false;
    +
    233  }
    +
    234 
    +
    235  protected:
    +
    236  using worldobjT = ::madness::WorldObject<ttT>;
    +
    237 
    +
    238  static constexpr int numinedges = std::tuple_size_v<input_tuple_type>; // number of input edges
    +
    239  static constexpr int numins = std::tuple_size_v<actual_input_tuple_type>; // number of input arguments
    +
    240  static constexpr int numouts = std::tuple_size_v<output_terminalsT>; // number of outputs
    +
    241 
    +
    242  // This to support tt fusion
    +
    243  inline static __thread struct {
    +
    244  uint64_t key_hash = 0; // hash of current key
    +
    245  size_t call_depth = 0; // how deep calls are nested
    + +
    247 
    +
    248  public:
    + + +
    251  static_assert(ttg::meta::is_none_Void_v<input_valueTs>, "ttg::Void is for internal use only, do not use it");
    +
    252  static_assert(ttg::meta::is_none_void_v<input_valueTs> || ttg::meta::is_last_void_v<input_valueTs>,
    +
    253  "at most one void input can be handled, and it must come last");
    +
    254  // if have data inputs and (always last) control input, convert last input to Void to make logic easier
    + +
    256  ttg::meta::void_to_Void_tuple_t<ttg::meta::decayed_typelist_t<actual_input_tuple_type>>;
    + +
    258  ttg::meta::add_glvalue_reference_tuple_t<ttg::meta::void_to_Void_tuple_t<actual_input_tuple_type>>;
    +
    259 
    +
    260  using input_args_type = actual_input_tuple_type;
    +
    261 
    +
    262  using input_values_tuple_type = ttg::meta::drop_void_t<ttg::meta::decayed_typelist_t<input_tuple_type>>;
    +
    263  using input_refs_tuple_type = ttg::meta::drop_void_t<ttg::meta::add_glvalue_reference_tuple_t<input_tuple_type>>;
    +
    264  static_assert(!ttg::meta::is_any_void_v<input_values_tuple_type>);
    +
    265 
    +
    266  using output_terminals_type = output_terminalsT;
    + +
    268 
    +
    269  protected:
    +
    270  template <std::size_t i, typename resultT, typename InTuple>
    +
    271  static resultT get(InTuple &&intuple) {
    +
    272  return static_cast<resultT>(std::get<i>(std::forward<InTuple>(intuple)));
    +
    273  };
    +
    274  template <std::size_t i, typename InTuple>
    +
    275  static auto &get(InTuple &&intuple) {
    +
    276  return std::get<i>(std::forward<InTuple>(intuple));
    +
    277  };
    +
    278 
    +
    279  private:
    +
    280  input_terminals_type input_terminals;
    +
    281  output_terminalsT output_terminals;
    +
    282 
    +
    283  protected:
    +
    284  const auto &get_output_terminals() const { return output_terminals; }
    +
    285 
    +
    286  private:
    +
    287  struct TTArgs : ::madness::TaskInterface {
    +
    288  private:
    +
    289  using TaskInterface = ::madness::TaskInterface;
    +
    290 
    +
    291  public:
    +
    292  int counter; // Tracks the number of arguments finalized
    +
    293  std::array<std::int64_t, numins>
    +
    294  nargs; // Tracks the number of expected values minus the number of received values
    +
    295  // 0 = finalized
    +
    296  // for a streaming input initialized to std::numeric_limits<std::int64_t>::max()
    +
    297  // which indicates that the value needs to be initialized
    +
    298  std::array<std::size_t, numins> stream_size; // Expected number of values to receive, to be used for streaming
    +
    299  // inputs (0 = unbounded stream, >0 = bounded stream)
    +
    300  input_values_tuple_type input_values; // The input values (does not include control)
    +
    301  derivedT *derived; // Pointer to derived class instance
    +
    302  bool pull_terminals_invoked = false;
    +
    303  std::conditional_t<ttg::meta::is_void_v<keyT>, ttg::Void, keyT> key; // Task key
    +
    304 #ifdef TTG_HAVE_COROUTINE
    +
    305  void *suspended_task_address = nullptr; // if not null the function is suspended
    + +
    307 #endif // TTG_HAVE_COROUTINE
    +
    308 
    +
    310  template <typename Tuple, std::size_t... Is>
    +
    311  static input_refs_tuple_type make_input_refs_impl(Tuple &&inputs, std::index_sequence<Is...>) {
    +
    312  return input_refs_tuple_type{
    +
    313  get<Is, std::tuple_element_t<Is, input_refs_tuple_type>>(std::forward<Tuple>(inputs))...};
    +
    314  }
    +
    315 
    +
    317  input_refs_tuple_type make_input_refs() {
    +
    318  return make_input_refs_impl(this->input_values,
    +
    319  std::make_index_sequence<std::tuple_size_v<input_values_tuple_type>>{});
    +
    320  }
    +
    321 
    +
    322  TTArgs(int prio = 0)
    +
    323  : TaskInterface(TaskAttributes(prio ? TaskAttributes::HIGHPRIORITY : 0))
    +
    324  , counter(numins)
    +
    325  , nargs()
    +
    326  , stream_size()
    +
    327  , input_values() {
    +
    328  std::fill(nargs.begin(), nargs.end(), std::numeric_limits<std::int64_t>::max());
    +
    329  }
    +
    330 
    +
    331  virtual void run(::madness::World &world) override {
    +
    332  using ttg::hash;
    +
    333  ttT::threaddata.key_hash = hash<decltype(key)>{}(key);
    +
    334  ttT::threaddata.call_depth++;
    +
    335 
    +
    336  void *suspended_task_address =
    +
    337 #ifdef TTG_HAVE_COROUTINE
    +
    338  this->suspended_task_address; // non-null = need to resume the task
    +
    339 #else // TTG_HAVE_COROUTINE
    +
    340  nullptr;
    +
    341 #endif // TTG_HAVE_COROUTINE
    +
    342  if (suspended_task_address == nullptr) { // task is a coroutine that has not started or an ordinary function
    +
    343  // ttg::print("starting task");
    +
    344  if constexpr (!ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    + +
    346  suspended_task_address,
    +
    347  coroutine_id,
    +
    348  derived->op(key, this->make_input_refs(),
    +
    349  derived->output_terminals)); // !!! NOTE converting input values to refs
    +
    350  } else if constexpr (!ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    351  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, coroutine_id, derived->op(key, derived->output_terminals));
    +
    352  } else if constexpr (ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    + +
    354  suspended_task_address,
    +
    355  coroutine_id,
    +
    356  derived->op(this->make_input_refs(),
    +
    357  derived->output_terminals)); // !!! NOTE converting input values to refs
    +
    358  } else if constexpr (ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    359  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, coroutine_id, derived->op(derived->output_terminals));
    +
    360  } else // unreachable
    +
    361  ttg::abort();
    +
    362  } else { // resume suspended coroutine
    +
    363 #ifdef TTG_HAVE_COROUTINE
    +
    364  auto ret = static_cast<ttg::resumable_task>(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address));
    +
    365  assert(ret.ready());
    +
    366  ret.resume();
    +
    367  if (ret.completed()) {
    +
    368  ret.destroy();
    +
    369  suspended_task_address = nullptr;
    +
    370  } else { // not yet completed
    +
    371  // leave suspended_task_address as is
    +
    372  }
    +
    373  this->suspended_task_address = suspended_task_address;
    +
    374 #else // TTG_HAVE_COROUTINE
    +
    375  ttg::abort(); // should not happen
    +
    376 #endif // TTG_HAVE_COROUTINE
    +
    377  }
    +
    378 
    +
    379  ttT::threaddata.call_depth--;
    +
    380 
    +
    381  // if (suspended_task_address == nullptr) {
    +
    382  // ttg::print("finishing task",ttT::threaddata.call_depth);
    +
    383  // }
    +
    384 
    +
    385 #ifdef TTG_HAVE_COROUTINE
    +
    386  if (suspended_task_address) {
    +
    387  // TODO implement handling of suspended coroutines properly
    +
    388 
    +
    389  // only resumable_task is recognized at the moment
    +
    390  assert(coroutine_id == ttg::TaskCoroutineID::ResumableTask);
    +
    391 
    +
    392  // right now can events are not properly implemented, we are only testing the workflow with dummy events
    +
    393  // so mark the events finished manually
    +
    394  // proper thing to do is to process event queue and resubmit this task again
    +
    395  auto events =
    +
    396  static_cast<ttg::resumable_task>(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address)).events();
    +
    397  for (auto &event_ptr : events) {
    +
    398  event_ptr->finish();
    +
    399  }
    +
    400  assert(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address).promise().ready());
    +
    401 
    +
    402  // resume the coroutine
    +
    403  auto ret = static_cast<ttg::resumable_task>(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address));
    +
    404  assert(ret.ready());
    +
    405  ret.resume();
    +
    406  if (ret.completed()) {
    +
    407  ret.destroy();
    +
    408  suspended_task_address = nullptr;
    +
    409  } else { // not yet completed
    +
    410  ttg::abort();
    +
    411  }
    +
    412  }
    +
    413 #endif // TTG_HAVE_COROUTINE
    +
    414  }
    +
    415 
    +
    416  virtual ~TTArgs() {} // Will be deleted via TaskInterface*
    +
    417 
    +
    418  private:
    +
    419  ::madness::Spinlock lock_; // synchronizes access to data
    +
    420  public:
    +
    421  void lock() { lock_.lock(); }
    +
    422  void unlock() { lock_.unlock(); }
    +
    423  };
    +
    424 
    +
    425  using hashable_keyT = std::conditional_t<ttg::meta::is_void_v<keyT>, int, keyT>;
    +
    426  using cacheT = ::madness::ConcurrentHashMap<hashable_keyT, TTArgs *, ttg::hash<hashable_keyT>>;
    +
    427  using accessorT = typename cacheT::accessor;
    +
    428  cacheT cache;
    +
    429 
    +
    430  protected:
    +
    431  template <typename terminalT, std::size_t i, typename Key>
    +
    432  void invoke_pull_terminal(terminalT &in, const Key &key, TTArgs *args) {
    +
    433  if (in.is_pull_terminal) {
    +
    434  int owner;
    +
    435  if constexpr (!ttg::meta::is_void_v<Key>) {
    +
    436  owner = in.container.owner(key);
    +
    437  } else {
    +
    438  owner = in.container.owner();
    +
    439  }
    +
    440 
    +
    441  if (owner != world.rank()) {
    +
    442  get_terminal_data<i, Key>(owner, key);
    +
    443  } else {
    +
    444  if constexpr (!ttg::meta::is_void_v<Key>) {
    +
    445  auto value = (in.container).get(key);
    +
    446  if (args->nargs[i] == 0) {
    +
    447  ::ttg::print_error(world.rank(), ":", get_name(), " : ", key,
    +
    448  ": error argument is already finalized : ", i);
    +
    449  throw std::runtime_error("Op::set_arg called for a finalized stream");
    +
    450  }
    +
    451 
    +
    452  if (typeid(value) != typeid(std::nullptr_t) && i < std::tuple_size_v<input_values_tuple_type>) {
    +
    453  this->get<i, std::decay_t<decltype(value)> &>(args->input_values) = std::forward<decltype(value)>(value);
    +
    454  args->nargs[i] = 0;
    +
    455  args->counter--;
    +
    456  }
    +
    457  } else {
    +
    458  auto value = (in.container).get();
    +
    459  if (args->nargs[i] == 0) {
    +
    460  ::ttg::print_error(world.rank(), ":", get_name(), " : ", key,
    +
    461  ": error argument is already finalized : ", i);
    +
    462  throw std::runtime_error("Op::set_arg called for a finalized stream");
    +
    463  }
    +
    464 
    +
    465  if (typeid(value) != typeid(std::nullptr_t) && i < std::tuple_size_v<input_values_tuple_type>) {
    +
    466  this->get<i, std::decay_t<decltype(value)> &>(args->input_values) = std::forward<decltype(value)>(value);
    +
    467  args->nargs[i] = 0;
    +
    468  args->counter--;
    +
    469  }
    +
    470  }
    +
    471  }
    +
    472  }
    +
    473  }
    +
    474 
    +
    475  template <std::size_t i, typename Key>
    +
    476  void get_terminal_data(const int owner, const Key &key) {
    +
    477  if (owner != world.rank()) {
    +
    478  worldobjT::send(owner, &ttT::template get_terminal_data<i, Key>, owner, key);
    +
    479  } else {
    +
    480  auto &in = std::get<i>(input_terminals);
    +
    481  if constexpr (!ttg::meta::is_void_v<Key>) {
    +
    482  auto value = (in.container).get(key);
    +
    483  worldobjT::send(keymap(key), &ttT::template set_arg<i, Key, const std::remove_reference_t<decltype(value)> &>,
    +
    484  key, value);
    +
    485  } else {
    +
    486  auto value = (in.container).get();
    +
    487  worldobjT::send(keymap(), &ttT::template set_arg<i, void, const std::remove_reference_t<decltype(value)> &>,
    +
    488  value);
    +
    489  }
    +
    490  }
    +
    491  }
    +
    492 
    +
    493  template <std::size_t... IS, typename Key = keyT>
    +
    494  void invoke_pull_terminals(std::index_sequence<IS...>, const Key &key, TTArgs *args) {
    +
    495  int junk[] = {0, (invoke_pull_terminal<typename std::tuple_element<IS, input_terminals_type>::type, IS>(
    +
    496  std::get<IS>(input_terminals), key, args),
    +
    497  0)...};
    +
    498  junk[0]++;
    +
    499  }
    +
    500 
    +
    501  // there are 6 types of set_arg:
    +
    502  // - case 1: nonvoid Key, complete Value type
    +
    503  // - case 2: nonvoid Key, void Value, mixed (data+control) inputs
    +
    504  // - case 3: nonvoid Key, void Value, no inputs
    +
    505  // - case 4: void Key, complete Value type
    +
    506  // - case 5: void Key, void Value, mixed (data+control) inputs
    +
    507  // - case 6: void Key, void Value, no inputs
    +
    508  // cases 2 and 5 will be implemented by passing dummy ttg::Void object to reduce the number of code branches
    +
    509 
    +
    510  // case 1:
    +
    511  template <std::size_t i, typename Key, typename Value>
    +
    512  void set_arg(const Key &key, Value &&value) {
    +
    513  using valueT = std::tuple_element_t<i, input_values_full_tuple_type>; // Should be T or const T
    +
    514  static_assert(std::is_same_v<std::decay_t<Value>, std::decay_t<valueT>>,
    +
    515  "TT::set_arg(key,value) given value of type incompatible with TT");
    +
    516 
    +
    517  int owner;
    +
    518  if constexpr (!ttg::meta::is_void_v<Key>) {
    +
    519  owner = keymap(key);
    +
    520  } else {
    +
    521  owner = keymap();
    +
    522  }
    +
    523 
    +
    524  if (owner != world.rank()) {
    +
    525  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": forwarding setting argument : ", i);
    +
    526  // should be able on the other end to consume value (since it is just a temporary byproduct of serialization)
    +
    527  // BUT compiler vomits when const std::remove_reference_t<Value>& -> std::decay_t<Value>
    +
    528  // this exposes bad design in MemFuncWrapper (probably similar bugs elsewhere?) whose generic operator()
    +
    529  // should use memfun's argument types (since that's what will be called) rather than misautodeduce in a
    +
    530  // particular context P.S. another issue is in send_am which can execute both remotely (where one can always
    +
    531  // move arguments) and locally
    +
    532  // here we know that this will be a remove execution, so we prepare to take rvalues;
    +
    533  // send_am will need to separate local and remote paths to deal with this
    +
    534  if constexpr (!ttg::meta::is_void_v<Key>) {
    +
    535  if constexpr (!ttg::meta::is_void_v<Value>) {
    +
    536  worldobjT::send(owner, &ttT::template set_arg<i, Key, const std::remove_reference_t<Value> &>, key, value);
    +
    537  } else {
    +
    538  worldobjT::send(owner, &ttT::template set_arg<i, Key, void>, key);
    +
    539  }
    +
    540  } else {
    +
    541  if constexpr (!ttg::meta::is_void_v<Value>) {
    +
    542  worldobjT::send(owner, &ttT::template set_arg<i, void, const std::remove_reference_t<Value> &>, value);
    +
    543  } else {
    +
    544  worldobjT::send(owner, &ttT::template set_arg<i, void, void>);
    +
    545  }
    +
    546  }
    +
    547  } else {
    +
    548  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": received value for argument : ", i);
    +
    549 
    +
    550  bool pullT_invoked = false;
    +
    551  accessorT acc;
    +
    552 
    +
    553  int prio;
    +
    554  if constexpr (!ttg::meta::is_void_v<Key>) {
    +
    555  prio = this->priomap(key);
    +
    556  if (cache.insert(acc, key)) {
    +
    557  acc->second = new TTArgs(prio); // It will be deleted by the task q
    +
    558  if (!is_lazy_pull()) {
    +
    559  // Invoke pull terminals for only the terminals with non-void values.
    +
    560  invoke_pull_terminals(std::make_index_sequence<std::tuple_size_v<input_values_tuple_type>>{}, key,
    +
    561  acc->second);
    +
    562  pullT_invoked = true;
    +
    563  }
    +
    564  }
    +
    565  } else {
    +
    566  prio = this->priomap();
    +
    567  if (cache.insert(acc, 0)) acc->second = new TTArgs(prio); // It will be deleted by the task q
    +
    568  }
    +
    569 
    +
    570  TTArgs *args = acc->second;
    +
    571  if (!is_lazy_pull() && pullT_invoked) args->pull_terminals_invoked = true;
    +
    572 
    +
    573  if (args->nargs[i] == 0) {
    +
    574  ttg::print_error(world.rank(), ":", get_name(), " : ", key, ": error argument is already finalized : ", i);
    +
    575  throw std::runtime_error("TT::set_arg called for a finalized stream");
    +
    576  }
    +
    577 
    +
    578  const auto &reducer = std::get<i>(input_reducers);
    +
    579  if (reducer) { // is this a streaming input? reduce the received value
    +
    580  // N.B. Right now reductions are done eagerly, without spawning tasks
    +
    581  // this means we must lock
    +
    582  args->lock();
    +
    583 
    +
    584  bool initialize_not_reduce = false;
    +
    585  if (args->nargs[i] == std::numeric_limits<std::int64_t>::max()) {
    +
    586  // upon first datum initialize, if needed
    +
    587  if constexpr (!ttg::meta::is_void_v<valueT>) {
    +
    588  initialize_not_reduce = true;
    +
    589  }
    +
    590 
    +
    591  // initialize nargs
    +
    592  // if we have a stream size for the op, use it first
    +
    593  if (args->stream_size[i] != 0) {
    +
    594  assert(args->stream_size[i] <= static_cast<std::size_t>(std::numeric_limits<std::int64_t>::max()));
    +
    595  args->nargs[i] = args->stream_size[i];
    +
    596  } else if (static_streamsize[i] != 0) {
    +
    597  assert(static_streamsize[i] <= static_cast<std::size_t>(std::numeric_limits<std::int64_t>::max()));
    +
    598  args->stream_size[i] = static_streamsize[i];
    +
    599  args->nargs[i] = static_streamsize[i];
    +
    600  } else {
    +
    601  args->nargs[i] = 0;
    +
    602  }
    +
    603  }
    +
    604 
    +
    605  if constexpr (!ttg::meta::is_void_v<valueT>) { // for data values
    +
    606  if (initialize_not_reduce)
    +
    607  this->get<i, std::decay_t<valueT> &>(args->input_values) = std::forward<Value>(value);
    +
    608  else
    +
    609  reducer(this->get<i, std::decay_t<valueT> &>(args->input_values), value);
    +
    610  } else {
    +
    611  reducer(); // even if this was a control input, must execute the reducer for possible side effects
    +
    612  }
    +
    613 
    +
    614  // update the counter
    +
    615  args->nargs[i]--;
    +
    616 
    +
    617  // is this the last message?
    +
    618  if (args->nargs[i] == 0) args->counter--;
    +
    619 
    +
    620  args->unlock();
    +
    621  } else { // this is a nonstreaming input => set the value
    +
    622  if constexpr (!ttg::meta::is_void_v<valueT>) { // for data values
    +
    623  this->get<i, std::decay_t<valueT> &>(args->input_values) = std::forward<Value>(value);
    +
    624  }
    +
    625  args->nargs[i] = 0;
    +
    626  args->counter--;
    +
    627  }
    +
    628 
    +
    629  // If lazy pulling in enabled, check it here.
    +
    630  if (numins - args->counter == num_pullins) {
    +
    631  if (is_lazy_pull() && !args->pull_terminals_invoked) {
    +
    632  // Invoke pull terminals for only the terminals with non-void values.
    +
    633  invoke_pull_terminals(std::make_index_sequence<std::tuple_size_v<input_values_tuple_type>>{}, key, args);
    +
    634  }
    +
    635  }
    +
    636 
    +
    637  // ready to run the task?
    +
    638  if (args->counter == 0) {
    +
    639  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": submitting task for op ");
    +
    640  args->derived = static_cast<derivedT *>(this);
    +
    641  args->key = key;
    +
    642 
    +
    643  using ttg::hash;
    +
    644  auto curhash = hash<keyT>{}(key);
    +
    645 
    +
    646  if (curhash == threaddata.key_hash && threaddata.call_depth < 6) { // Needs to be externally configurable
    +
    647 
    +
    648  // ttg::print("directly invoking:", get_name(), key, curhash, threaddata.key_hash, threaddata.call_depth);
    +
    649  ttT::threaddata.call_depth++;
    +
    650  if constexpr (!ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    651  static_cast<derivedT *>(this)->op(key, args->make_input_refs(), output_terminals); // Runs immediately
    +
    652  } else if constexpr (!ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    653  static_cast<derivedT *>(this)->op(key, output_terminals); // Runs immediately
    +
    654  } else if constexpr (ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    655  static_cast<derivedT *>(this)->op(args->make_input_refs(), output_terminals); // Runs immediately
    +
    656  } else if constexpr (ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    657  static_cast<derivedT *>(this)->op(output_terminals); // Runs immediately
    +
    658  } else
    +
    659  ttg::abort();
    +
    660  ttT::threaddata.call_depth--;
    +
    661 
    +
    662  } else {
    +
    663  // ttg::print("enqueuing task", get_name(), key, curhash, threaddata.key_hash, threaddata.call_depth);
    +
    664  world.impl().impl().taskq.add(args);
    +
    665  }
    +
    666 
    +
    667  cache.erase(acc);
    +
    668  }
    +
    669  }
    +
    670  }
    +
    671 
    +
    672  // case 2 and 3
    +
    673  template <std::size_t i, typename Key, typename Value>
    +
    674  std::enable_if_t<!ttg::meta::is_void_v<Key> && std::is_void_v<Value>, void> set_arg(const Key &key) {
    +
    675  set_arg<i>(key, ttg::Void{});
    +
    676  }
    +
    677 
    +
    678  // case 4
    +
    679  template <std::size_t i, typename Key = keyT, typename Value>
    +
    680  std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg(Value &&value) {
    +
    681  return set_arg<i>(ttg::Void{}, std::forward<Value>(value));
    +
    682  }
    +
    683 
    +
    684  // case 5 and 6
    +
    685  template <std::size_t i, typename Key = keyT, typename Value>
    +
    686  std::enable_if_t<ttg::meta::is_void_v<Key> && std::is_void_v<Value>, void> set_arg() {
    +
    687  set_arg<i, ttg::Void, ttg::Void>(ttg::Void{}, ttg::Void{});
    +
    688  }
    +
    689 
    +
    690  // Used by invoke to set all arguments associated with a task
    +
    691  // Is: index sequence of elements in args
    +
    692  // Js: index sequence of input terminals to set
    +
    693  template <typename Key, typename... Ts, size_t... Is, size_t... Js>
    +
    694  std::enable_if_t<!ttg::meta::is_void_v<Key>, void> set_args(std::index_sequence<Is...>, std::index_sequence<Js...>,
    +
    695  const Key &key, const std::tuple<Ts...> &args) {
    +
    696  static_assert(sizeof...(Js) == sizeof...(Is));
    +
    697  constexpr std::size_t js[] = {Js...};
    +
    698  int junk[] = {0, (set_arg<js[Is]>(key, TT::get<Is>(args)), 0)...};
    +
    699  junk[0]++;
    +
    700  }
    +
    701 
    +
    702  // Used by invoke to set all arguments associated with a task
    +
    703  // Is: index sequence of input terminals to set
    +
    704  template <typename Key, typename... Ts, size_t... Is>
    +
    705  std::enable_if_t<!ttg::meta::is_void_v<Key>, void> set_args(std::index_sequence<Is...> is, const Key &key,
    +
    706  const std::tuple<Ts...> &args) {
    +
    707  set_args(std::index_sequence_for<Ts...>{}, is, key, args);
    +
    708  }
    +
    709 
    +
    710  // Used by invoke to set all arguments associated with a task
    +
    711  // Is: index sequence of elements in args
    +
    712  // Js: index sequence of input terminals to set
    +
    713  template <typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
    +
    714  std::enable_if_t<ttg::meta::is_void_v<Key>, void> set_args(std::index_sequence<Is...>, std::index_sequence<Js...>,
    +
    715  const std::tuple<Ts...> &args) {
    +
    716  static_assert(sizeof...(Js) == sizeof...(Is));
    +
    717  constexpr std::size_t js[] = {Js...};
    +
    718  int junk[] = {0, (set_arg<js[Is], void>(TT::get<Is>(args)), 0)...};
    +
    719  junk[0]++;
    +
    720  }
    +
    721 
    +
    722  // Used by invoke to set all arguments associated with a task
    +
    723  // Is: index sequence of input terminals to set
    +
    724  template <typename Key = keyT, typename... Ts, size_t... Is>
    +
    725  std::enable_if_t<ttg::meta::is_void_v<Key>, void> set_args(std::index_sequence<Is...> is,
    +
    726  const std::tuple<Ts...> &args) {
    +
    727  set_args(std::index_sequence_for<Ts...>{}, is, args);
    +
    728  }
    +
    729 
    +
    730  public:
    +
    733  template <std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
    +
    734  std::enable_if_t<key_is_void, void> set_argstream_size(std::size_t size) {
    +
    735  // preconditions
    +
    736  assert(std::get<i>(input_reducers) && "TT::set_argstream_size called on nonstreaming input terminal");
    +
    737  assert(size > 0 && "TT::set_argstream_size(size) called with size=0");
    +
    738 
    +
    739  // body
    +
    740  const auto owner = keymap();
    +
    741  if (owner != world.rank()) {
    +
    742  ttg::trace(world.rank(), ":", get_name(), " : forwarding stream size for terminal ", i);
    +
    743  worldobjT::send(owner, &ttT::template set_argstream_size<i, true>, size);
    +
    744  } else {
    +
    745  ttg::trace(world.rank(), ":", get_name(), " : setting stream size to ", size, " for terminal ", i);
    +
    746 
    +
    747  accessorT acc;
    +
    748  if (cache.insert(acc, 0)) acc->second = new TTArgs(); // It will be deleted by the task q
    +
    749  TTArgs *args = acc->second;
    +
    750 
    +
    751  args->lock();
    +
    752 
    +
    753  // check if stream is already bounded
    +
    754  if (args->stream_size[i] > 0) {
    +
    755  ttg::print_error(world.rank(), ":", get_name(), " : error stream is already bounded : ", i);
    +
    756  throw std::runtime_error("TT::set_argstream_size called for a bounded stream");
    +
    757  }
    +
    758 
    +
    759  // check if stream is already finalized
    +
    760  if (args->nargs[i] == 0) {
    +
    761  ttg::print_error(world.rank(), ":", get_name(), " : error stream is already finalized : ", i);
    +
    762  throw std::runtime_error("TT::set_argstream_size called for a finalized stream");
    +
    763  }
    +
    764 
    +
    765  // commit changes
    +
    766  args->stream_size[i] = size;
    +
    767  // if messages already received for this key update the expected-received counter
    +
    768  const auto messages_received_already = args->nargs[i] != std::numeric_limits<std::int64_t>::max();
    +
    769  if (messages_received_already) {
    +
    770  // cannot have received more messages than expected
    +
    771  if (-(args->nargs[i]) > size) {
    +
    772  ttg::print_error(world.rank(), ":", get_name(),
    +
    773  " : error stream received more messages than specified via set_argstream_size : ", i);
    +
    774  throw std::runtime_error("TT::set_argstream_size(n): n less than the number of messages already received");
    +
    775  }
    +
    776  args->nargs[i] += size;
    +
    777  }
    +
    778  // if done, update the counter
    +
    779  if (args->nargs[i] == 0) args->counter--;
    +
    780  args->unlock();
    +
    781 
    +
    782  // ready to run the task?
    +
    783  if (args->counter == 0) {
    +
    784  ttg::trace(world.rank(), ":", get_name(), " : submitting task for op ");
    +
    785  args->derived = static_cast<derivedT *>(this);
    +
    786 
    +
    787  world.impl().impl().taskq.add(args);
    +
    788 
    +
    789  cache.erase(acc);
    +
    790  }
    +
    791  }
    +
    792  }
    +
    793 
    +
    794  template <std::size_t i>
    +
    795  void set_static_argstream_size(std::size_t size) {
    +
    796  assert(std::get<i>(input_reducers) && "TT::set_argstream_size called on nonstreaming input terminal");
    +
    797  assert(size > 0 && "TT::set_static_argstream_size(key,size) called with size=0");
    +
    798 
    +
    799  ttg::trace(world.rank(), ":", get_name(), ": setting global stream size for terminal ", i);
    +
    800 
    +
    801  // Check if stream is already bounded
    +
    802  if (static_streamsize[i] > 0) {
    +
    803  ttg::print_error(world.rank(), ":", get_name(), " : error stream is already bounded : ", i);
    +
    804  throw std::runtime_error("TT::set_static_argstream_size called for a bounded stream");
    +
    805  }
    +
    806 
    +
    807  // commit changes
    +
    808  static_streamsize[i] = size;
    +
    809  }
    +
    810 
    +
    815  template <std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
    +
    816  std::enable_if_t<!key_is_void, void> set_argstream_size(const Key &key, std::size_t size) {
    +
    817  // preconditions
    +
    818  assert(std::get<i>(input_reducers) && "TT::set_argstream_size called on nonstreaming input terminal");
    +
    819  assert(size > 0 && "TT::set_argstream_size(key,size) called with size=0");
    +
    820 
    +
    821  // body
    +
    822  const auto owner = keymap(key);
    +
    823  if (owner != world.rank()) {
    +
    824  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": forwarding stream size for terminal ", i);
    +
    825  worldobjT::send(owner, &ttT::template set_argstream_size<i>, key, size);
    +
    826  } else {
    +
    827  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": setting stream size for terminal ", i);
    +
    828 
    +
    829  accessorT acc;
    +
    830  if (cache.insert(acc, key)) acc->second = new TTArgs(this->priomap(key)); // It will be deleted by the task q
    +
    831  TTArgs *args = acc->second;
    +
    832 
    +
    833  args->lock();
    +
    834 
    +
    835  // check if stream is already bounded
    +
    836  if (args->stream_size[i] > 0) {
    +
    837  ttg::print_error(world.rank(), ":", get_name(), " : ", key, ": error stream is already bounded : ", i);
    +
    838  throw std::runtime_error("TT::set_argstream_size called for a bounded stream");
    +
    839  }
    +
    840 
    +
    841  // check if stream is already finalized
    +
    842  if (args->nargs[i] == 0) {
    +
    843  ttg::print_error(world.rank(), ":", get_name(), " : ", key, ": error stream is already finalized : ", i);
    +
    844  throw std::runtime_error("TT::set_argstream_size called for a finalized stream");
    +
    845  }
    +
    846 
    +
    847  // commit changes
    +
    848  args->stream_size[i] = size;
    +
    849  // if messages already received for this key update the expected-received counter
    +
    850  const auto messages_received_already = args->nargs[i] != std::numeric_limits<std::int64_t>::max();
    +
    851  if (messages_received_already) args->nargs[i] += size;
    +
    852  // if done, update the counter
    +
    853  if (args->nargs[i] == 0) args->counter--;
    +
    854 
    +
    855  args->unlock();
    +
    856 
    +
    857  // ready to run the task?
    +
    858  if (args->counter == 0) {
    +
    859  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": submitting task for op ");
    +
    860  args->derived = static_cast<derivedT *>(this);
    +
    861  args->key = key;
    +
    862 
    +
    863  world.impl().impl().taskq.add(args);
    +
    864 
    +
    865  cache.erase(acc);
    +
    866  }
    +
    867  }
    +
    868  }
    +
    869 
    +
    871  template <std::size_t i, typename Key = keyT, bool key_is_void = ttg::meta::is_void_v<Key>>
    +
    872  std::enable_if_t<!key_is_void, void> finalize_argstream(const Key &key) {
    +
    873  // preconditions
    +
    874  assert(std::get<i>(input_reducers) && "TT::finalize_argstream called on nonstreaming input terminal");
    +
    875 
    +
    876  // body
    +
    877  const auto owner = keymap(key);
    +
    878  if (owner != world.rank()) {
    +
    879  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": forwarding stream finalize for terminal ", i);
    +
    880  worldobjT::send(owner, &ttT::template finalize_argstream<i>, key);
    +
    881  } else {
    +
    882  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": finalizing stream for terminal ", i);
    +
    883 
    +
    884  accessorT acc;
    +
    885  const auto found = cache.find(acc, key);
    +
    886  assert(found && "TT::finalize_argstream called but no values had been received yet for this key");
    +
    887  TTGUNUSED(found);
    +
    888  TTArgs *args = acc->second;
    +
    889 
    +
    890  // check if stream is already bounded
    +
    891  if (args->stream_size[i] > 0) {
    +
    892  ttg::print_error(world.rank(), ":", get_name(), " : ", key, ": error finalize called on bounded stream: ", i);
    +
    893  throw std::runtime_error("TT::finalize called for a bounded stream");
    +
    894  }
    +
    895 
    +
    896  // check if stream is already finalized
    +
    897  if (args->nargs[i] == 0) {
    +
    898  ttg::print_error(world.rank(), ":", get_name(), " : ", key, ": error stream is already finalized : ", i);
    +
    899  throw std::runtime_error("TT::finalize called for a finalized stream");
    +
    900  }
    +
    901 
    +
    902  // commit changes
    +
    903  args->nargs[i] = 0;
    +
    904  args->counter--;
    +
    905  // ready to run the task?
    +
    906  if (args->counter == 0) {
    +
    907  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": submitting task for op ");
    +
    908  args->derived = static_cast<derivedT *>(this);
    +
    909  args->key = key;
    +
    910 
    +
    911  world.impl().impl().taskq.add(args);
    +
    912  // static_cast<derivedT*>(this)->op(key, std::move(args->t), output_terminals); // Runs immediately
    +
    913 
    +
    914  cache.erase(acc);
    +
    915  }
    +
    916  }
    +
    917  }
    +
    918 
    +
    920  template <std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
    +
    921  std::enable_if_t<key_is_void, void> finalize_argstream() {
    +
    922  // preconditions
    +
    923  assert(std::get<i>(input_reducers) && "TT::finalize_argstream called on nonstreaming input terminal");
    +
    924 
    +
    925  // body
    +
    926  const int owner = keymap();
    +
    927  if (owner != world.rank()) {
    +
    928  ttg::trace(world.rank(), ":", get_name(), " : forwarding stream finalize for terminal ", i);
    +
    929  worldobjT::send(owner, &ttT::template finalize_argstream<i, true>);
    +
    930  } else {
    +
    931  ttg::trace(world.rank(), ":", get_name(), " : finalizing stream for terminal ", i);
    +
    932 
    +
    933  accessorT acc;
    +
    934  const auto found = cache.find(acc, 0);
    +
    935  assert(found && "TT::finalize_argstream called but no values had been received yet for this key");
    +
    936  TTGUNUSED(found);
    +
    937  TTArgs *args = acc->second;
    +
    938 
    +
    939  // check if stream is already bounded
    +
    940  if (args->stream_size[i] > 0) {
    +
    941  ttg::print_error(world.rank(), ":", get_name(), " : error finalize called on bounded stream: ", i);
    +
    942  throw std::runtime_error("TT::finalize called for a bounded stream");
    +
    943  }
    +
    944 
    +
    945  // check if stream is already finalized
    +
    946  if (args->nargs[i] == 0) {
    +
    947  ttg::print_error(world.rank(), ":", get_name(), " : error stream is already finalized : ", i);
    +
    948  throw std::runtime_error("TT::finalize called for a finalized stream");
    +
    949  }
    +
    950 
    +
    951  // commit changes
    +
    952  args->nargs[i] = 0;
    +
    953  args->counter--;
    +
    954  // ready to run the task?
    +
    955  if (args->counter == 0) {
    +
    956  ttg::trace(world.rank(), ":", get_name(), " : submitting task for op ");
    +
    957  args->derived = static_cast<derivedT *>(this);
    +
    958 
    +
    959  world.impl().impl().taskq.add(args);
    +
    960  // static_cast<derivedT*>(this)->op(key, std::move(args->t), output_terminals); // Runs immediately
    +
    961 
    +
    962  cache.erase(acc);
    +
    963  }
    +
    964  }
    +
    965  }
    +
    966 
    +
    967  private:
    +
    968  // Copy/assign/move forbidden ... we could make it work using
    +
    969  // PIMPL for this base class. However, this instance of the base
    +
    970  // class is tied to a specific instance of a derived class a
    +
    971  // pointer to which is captured for invoking derived class
    +
    972  // functions. Thus, not only does the derived class have to be
    +
    973  // involved but we would have to do it in a thread safe way
    +
    974  // including for possibly already running tasks and remote
    +
    975  // references. This is not worth the effort ... wherever you are
    +
    976  // wanting to move/assign an TT you should be using a pointer.
    +
    977  TT(const TT &other) = delete;
    +
    978  TT &operator=(const TT &other) = delete;
    +
    979  TT(TT &&other) = delete;
    +
    980  TT &operator=(TT &&other) = delete;
    +
    981 
    +
    982  // Registers the callback for the i'th input terminal
    +
    983  template <typename terminalT, std::size_t i>
    +
    984  void register_input_callback(terminalT &input) {
    +
    985  static_assert(std::is_same_v<keyT, typename terminalT::key_type>,
    +
    986  "TT::register_input_callback(terminalT) -- incompatible terminalT");
    +
    987  using valueT = std::decay_t<typename terminalT::value_type>;
    +
    988 
    +
    989  if (input.is_pull_terminal) {
    +
    990  num_pullins++;
    +
    991  }
    +
    992 
    +
    994  // case 1: nonvoid key, nonvoid value
    +
    996  if constexpr (!ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type> &&
    +
    997  !std::is_void_v<valueT>) {
    +
    998  auto move_callback = [this](const keyT &key, valueT &&value) {
    +
    999  set_arg<i, keyT, valueT>(key, std::forward<valueT>(value));
    +
    1000  };
    +
    1001  auto send_callback = [this](const keyT &key, const valueT &value) {
    +
    1002  set_arg<i, keyT, const valueT &>(key, value);
    +
    1003  };
    +
    1004  auto setsize_callback = [this](const keyT &key, std::size_t size) { set_argstream_size<i>(key, size); };
    +
    1005  auto finalize_callback = [this](const keyT &key) { finalize_argstream<i>(key); };
    +
    1006  input.set_callback(send_callback, move_callback, {}, setsize_callback, finalize_callback);
    +
    1007  }
    +
    1009  // case 4: void key, nonvoid value
    +
    1011  else if constexpr (ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type> &&
    +
    1012  !std::is_void_v<valueT>) {
    +
    1013  auto move_callback = [this](valueT &&value) { set_arg<i, keyT, valueT>(std::forward<valueT>(value)); };
    +
    1014  auto send_callback = [this](const valueT &value) { set_arg<i, keyT, const valueT &>(value); };
    +
    1015  auto setsize_callback = [this](std::size_t size) { set_argstream_size<i>(size); };
    +
    1016  auto finalize_callback = [this]() { finalize_argstream<i>(); };
    +
    1017  input.set_callback(send_callback, move_callback, {}, setsize_callback, finalize_callback);
    +
    1018  }
    +
    1020  // case 2: nonvoid key, void value, mixed inputs
    +
    1021  // case 3: nonvoid key, void value, no inputs
    +
    1023  else if constexpr (!ttg::meta::is_void_v<keyT> && std::is_void_v<valueT>) {
    +
    1024  auto send_callback = [this](const keyT &key) { set_arg<i, keyT, void>(key); };
    +
    1025  auto setsize_callback = [this](const keyT &key, std::size_t size) { set_argstream_size<i>(key, size); };
    +
    1026  auto finalize_callback = [this](const keyT &key) { finalize_argstream<i>(key); };
    +
    1027  input.set_callback(send_callback, send_callback, {}, setsize_callback, finalize_callback);
    +
    1028  }
    +
    1030  // case 5: void key, void value, mixed inputs
    +
    1031  // case 6: void key, void value, no inputs
    +
    1033  else if constexpr (ttg::meta::is_all_void_v<keyT, valueT> && std::is_void_v<valueT>) {
    +
    1034  auto send_callback = [this]() { set_arg<i, keyT, void>(); };
    +
    1035  auto setsize_callback = [this](std::size_t size) { set_argstream_size<i>(size); };
    +
    1036  auto finalize_callback = [this]() { finalize_argstream<i>(); };
    +
    1037  input.set_callback(send_callback, send_callback, {}, setsize_callback, finalize_callback);
    +
    1038  } else
    +
    1039  ttg::abort();
    +
    1040  }
    +
    1041 
    +
    1042  template <std::size_t... IS>
    +
    1043  void register_input_callbacks(std::index_sequence<IS...>) {
    +
    1044  int junk[] = {
    +
    1045  0,
    +
    1046  (register_input_callback<std::tuple_element_t<IS, input_terminals_type>, IS>(std::get<IS>(input_terminals)),
    +
    1047  0)...};
    +
    1048  junk[0]++;
    +
    1049  }
    +
    1050 
    +
    1051  template <std::size_t... IS, typename inedgesT>
    +
    1052  void connect_my_inputs_to_incoming_edge_outputs(std::index_sequence<IS...>, inedgesT &inedges) {
    +
    1053  static_assert(sizeof...(IS) == std::tuple_size_v<input_terminals_type>);
    +
    1054  static_assert(std::tuple_size_v<inedgesT> == std::tuple_size_v<input_terminals_type>);
    +
    1055  int junk[] = {0, (std::get<IS>(inedges).set_out(&std::get<IS>(input_terminals)), 0)...};
    +
    1056  junk[0]++;
    +
    1057  ttg::trace(world.rank(), ":", get_name(), " : connected ", sizeof...(IS), " TT inputs to ", sizeof...(IS),
    +
    1058  " Edges");
    +
    1059  }
    +
    1060 
    +
    1061  template <std::size_t... IS, typename outedgesT>
    +
    1062  void connect_my_outputs_to_outgoing_edge_inputs(std::index_sequence<IS...>, outedgesT &outedges) {
    +
    1063  static_assert(sizeof...(IS) == numouts);
    +
    1064  static_assert(std::tuple_size_v<outedgesT> == numouts);
    +
    1065  int junk[] = {0, (std::get<IS>(outedges).set_in(&std::get<IS>(output_terminals)), 0)...};
    +
    1066  junk[0]++;
    +
    1067  ttg::trace(world.rank(), ":", get_name(), " : connected ", sizeof...(IS), " TT outputs to ", sizeof...(IS),
    +
    1068  " Edges");
    +
    1069  }
    +
    1070 
    +
    1071  public:
    +
    1072  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    1073  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    1074  TT(const std::string &name, const std::vector<std::string> &innames, const std::vector<std::string> &outnames,
    +
    1075  ttg::World world, keymapT &&keymap_ = keymapT(), priomapT &&priomap_ = priomapT())
    +
    1076  : ttg::TTBase(name, numinedges, numouts)
    +
    1077  , static_streamsize()
    +
    1078  , worldobjT(world.impl().impl())
    +
    1079  , world(world)
    +
    1080  // if using default keymap, rebind to the given world
    +
    1081  , keymap(std::is_same_v<keymapT, ttg::detail::default_keymap<keyT>>
    +
    1082  ? decltype(keymap)(ttg::detail::default_keymap<keyT>(world))
    +
    1083  : decltype(keymap)(std::forward<keymapT>(keymap_)))
    +
    1084  , priomap(decltype(keymap)(std::forward<priomapT>(priomap_))) {
    +
    1085  // Cannot call these in base constructor since terminals not yet constructed
    +
    1086  if (innames.size() != numinedges) {
    +
    1087  ttg::print_error(world.rank(), ":", get_name(), "#input_names", innames.size(), "!= #input_terminals",
    +
    1088  numinedges);
    +
    1089  throw this->get_name() + ":madness::ttg::TT: #input names != #input terminals";
    +
    1090  }
    +
    1091  if (outnames.size() != numouts) throw this->get_name() + ":madness::ttg::TT: #output names != #output terminals";
    +
    1092 
    +
    1093  register_input_terminals(input_terminals, innames);
    +
    1094  register_output_terminals(output_terminals, outnames);
    +
    1095 
    +
    1096  register_input_callbacks(std::make_index_sequence<numinedges>{});
    +
    1097  }
    +
    1098 
    +
    1099  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    1100  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    1101  TT(const std::string &name, const std::vector<std::string> &innames, const std::vector<std::string> &outnames,
    +
    1102  keymapT &&keymap = keymapT(ttg::default_execution_context()), priomapT &&priomap = priomapT())
    +
    1103  : TT(name, innames, outnames, ttg::default_execution_context(), std::forward<keymapT>(keymap),
    +
    1104  std::forward<priomapT>(priomap)) {}
    +
    1105 
    +
    1106  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    1107  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    1108  TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name,
    +
    1109  const std::vector<std::string> &innames, const std::vector<std::string> &outnames, ttg::World world,
    +
    1110  keymapT &&keymap_ = keymapT(), priomapT &&priomap_ = priomapT())
    +
    1111  : ttg::TTBase(name, numinedges, numouts)
    +
    1112  , static_streamsize()
    +
    1113  , worldobjT(ttg::default_execution_context().impl().impl())
    +
    1114  , world(ttg::default_execution_context())
    +
    1115  // if using default keymap, rebind to the given world
    +
    1116  , keymap(std::is_same_v<keymapT, ttg::detail::default_keymap<keyT>>
    +
    1117  ? decltype(keymap)(ttg::detail::default_keymap<keyT>(world))
    +
    1118  : decltype(keymap)(std::forward<keymapT>(keymap_)))
    +
    1119  , priomap(decltype(keymap)(std::forward<priomapT>(priomap_))) {
    +
    1120  // Cannot call in base constructor since terminals not yet constructed
    +
    1121  if (innames.size() != numinedges) {
    +
    1122  ttg::print_error(world.rank(), ":", get_name(), "#input_names", innames.size(), "!= #input_terminals",
    +
    1123  numinedges);
    +
    1124  throw this->get_name() + ":madness::ttg::TT: #input names != #input terminals";
    +
    1125  }
    +
    1126  if (outnames.size() != numouts) throw this->get_name() + ":madness::ttg::T: #output names != #output terminals";
    +
    1127 
    +
    1128  register_input_terminals(input_terminals, innames);
    +
    1129  register_output_terminals(output_terminals, outnames);
    +
    1130 
    +
    1131  connect_my_inputs_to_incoming_edge_outputs(std::make_index_sequence<numinedges>{}, inedges);
    +
    1132  connect_my_outputs_to_outgoing_edge_inputs(std::make_index_sequence<numouts>{}, outedges);
    +
    1133  // DO NOT MOVE THIS - information about the number of pull terminals is only available after connecting the edges.
    +
    1134  register_input_callbacks(std::make_index_sequence<numinedges>{});
    +
    1135  }
    +
    1136 
    +
    1137  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    1138  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    1139  TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name,
    +
    1140  const std::vector<std::string> &innames, const std::vector<std::string> &outnames,
    +
    1141  keymapT &&keymap = keymapT(ttg::default_execution_context()), priomapT &&priomap = priomapT())
    +
    1142  : TT(inedges, outedges, name, innames, outnames, ttg::default_execution_context(),
    +
    1143  std::forward<keymapT>(keymap), std::forward<priomapT>(priomap)) {}
    +
    1144 
    +
    1145  // Destructor checks for unexecuted tasks
    +
    1146  virtual ~TT() {
    +
    1147  if (cache.size() != 0) {
    +
    1148  std::cerr << world.rank() << ":"
    +
    1149  << "warning: unprocessed tasks in destructor of operation '" << get_name()
    +
    1150  << "' (class name = " << get_class_name() << ")" << std::endl;
    +
    1151  std::cerr << world.rank() << ":"
    +
    1152  << " T => argument assigned F => argument unassigned" << std::endl;
    +
    1153  int nprint = 0;
    +
    1154  for (auto item : cache) {
    +
    1155  if (nprint++ > 10) {
    +
    1156  std::cerr << " etc." << std::endl;
    +
    1157  break;
    +
    1158  }
    +
    1159  using ::madness::operators::operator<<;
    +
    1160  std::cerr << world.rank() << ":"
    +
    1161  << " unused: " << item.first << " : ( ";
    +
    1162  for (std::size_t i = 0; i < numins; i++) std::cerr << (item.second->nargs[i] == 0 ? "T" : "F") << " ";
    +
    1163  std::cerr << ")" << std::endl;
    +
    1164  }
    +
    1165  ttg::abort();
    +
    1166  }
    +
    1167  }
    +
    1168 
    +
    1174  template <std::size_t i, typename Reducer>
    +
    1175  void set_input_reducer(Reducer &&reducer) {
    +
    1176  ttg::trace(world.rank(), ":", get_name(), " : setting reducer for terminal ", i);
    +
    1177  std::get<i>(input_reducers) = reducer;
    +
    1178  }
    +
    1179 
    +
    1187  template <std::size_t i, typename Reducer>
    +
    1188  void set_input_reducer(Reducer &&reducer, std::size_t size) {
    +
    1189  set_input_reducer<i>(std::forward<Reducer>(reducer));
    +
    1190  set_static_argstream_size<i>(size);
    +
    1191  }
    +
    1192 
    +
    1193  template <typename Keymap>
    +
    1194  void set_keymap(Keymap &&km) {
    +
    1195  keymap = km;
    +
    1196  }
    +
    1197 
    +
    1198  auto get_priomap(void) const { return priomap; }
    +
    1199 
    +
    1203  template <typename Priomap>
    +
    1204  void set_priomap(Priomap &&pm) {
    +
    1205  priomap = std::forward<Priomap>(pm);
    +
    1206  }
    +
    1207 
    +
    1209  void make_executable() override {
    +
    1210  TTBase::make_executable();
    +
    1211  this->process_pending();
    +
    1212  }
    +
    1213 
    +
    1215 
    +
    1220  void fence() override { ttg_fence(world); }
    +
    1221 
    +
    1223  template <std::size_t i>
    +
    1224  std::tuple_element_t<i, input_terminals_type> *in() {
    +
    1225  return &std::get<i>(input_terminals);
    +
    1226  }
    +
    1227 
    +
    1229  template <std::size_t i>
    +
    1230  std::tuple_element_t<i, output_terminalsT> *out() {
    +
    1231  return &std::get<i>(output_terminals);
    +
    1232  }
    +
    1233 
    +
    1235  template <typename Key = keyT>
    +
    1236  std::enable_if_t<!ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke(
    +
    1237  const Key &key, const input_values_tuple_type &args) {
    + +
    1239  if constexpr(!std::is_same_v<Key, key_type>) {
    +
    1240  key_type k = key; /* cast that type into the key type we know */
    +
    1241  invoke(k, args);
    +
    1242  } else {
    +
    1243  /* trigger non-void inputs */
    +
    1244  set_args(ttg::meta::nonvoid_index_seq<actual_input_tuple_type>{}, key, args);
    +
    1245  /* trigger void inputs */
    +
    1246  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    1247  set_args(void_index_seq{}, key, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    1248  }
    +
    1249  }
    +
    1250 
    +
    1252  template <typename Key = keyT>
    +
    1253  std::enable_if_t<ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke(
    +
    1254  const input_values_tuple_type &args) {
    + +
    1256  /* trigger non-void inputs */
    +
    1257  set_args(ttg::meta::nonvoid_index_seq<actual_input_tuple_type>{}, args);
    +
    1258  /* trigger void inputs */
    +
    1259  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    1260  set_args(void_index_seq{}, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    1261  }
    +
    1262 
    +
    1264  template <typename Key = keyT>
    +
    1265  std::enable_if_t<!ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke(
    +
    1266  const Key &key) {
    + +
    1268  if constexpr(!std::is_same_v<Key, key_type>) {
    +
    1269  key_type k = key; /* cast that type into the key type we know */
    +
    1270  invoke(k);
    +
    1271  } else {
    +
    1272  /* trigger void inputs */
    +
    1273  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    1274  set_args(void_index_seq{}, key, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    1275  }
    +
    1276  }
    +
    1277 
    +
    1279  template <typename Key = keyT>
    +
    1280  std::enable_if_t<ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke() {
    + +
    1282  /* trigger void inputs */
    +
    1283  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    1284  set_args(void_index_seq{}, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    1285  }
    +
    1286 
    +
    1287  void invoke() override {
    +
    1288  if constexpr (ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>)
    +
    1289  invoke<keyT>();
    +
    1290  else
    +
    1291  TTBase::invoke();
    +
    1292  }
    +
    1293 
    +
    1294  void set_defer_writer(bool _) {}
    +
    1295 
    +
    1296  bool get_defer_writer(bool _) { return false; }
    +
    1297 
    +
    1300  const decltype(keymap) &get_keymap() const { return keymap; }
    +
    1301 
    +
    1305  template <typename Key>
    +
    1306  std::enable_if_t<!ttg::meta::is_void_v<Key>, int> owner(const Key &key) const {
    +
    1307  return keymap(key);
    +
    1308  }
    +
    1309 
    +
    1312  template <typename Key>
    +
    1313  std::enable_if_t<ttg::meta::is_void_v<Key>, int> owner() const {
    +
    1314  return keymap();
    +
    1315  }
    +
    1316  };
    +
    1317 
    +
    1318 #include "ttg/make_tt.h"
    +
    1319 
    +
    1320 } // namespace ttg_madness
    +
    1321 
    +
    1322 #include "ttg/madness/watch.h"
    +
    1323 #include "ttg/madness/buffer.h"
    +
    1324 #include "ttg/madness/ttvalue.h"
    +
    1325 
    +
    1326 #endif // MADNESS_TTG_H_INCLUDED
    + +
    #define TTG_OP_ASSERT_EXECUTABLE()
    Definition: tt.h:276
    + + +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    +
    A base class for all template tasks.
    Definition: tt.h:30
    +
    std::string get_class_name() const
    Gets the demangled class name (uses RTTI)
    Definition: tt.h:220
    +
    const std::string & get_name() const
    Gets the name of this operation.
    Definition: tt.h:217
    +
    TTBase(TTBase &&other)
    Definition: tt.h:115
    +
    void register_input_terminals(terminalsT &terms, const namesT &names)
    Definition: tt.h:84
    +
    bool is_lazy_pull()
    Definition: tt.h:199
    +
    void register_output_terminals(terminalsT &terms, const namesT &names)
    Definition: tt.h:91
    +
    A complete version of void.
    Definition: void.h:11
    + +
    WorldImplT & impl(void)
    Definition: world.h:216
    +
    int rank() const
    Definition: world.h:204
    +
    Base class for implementation-specific Worlds.
    Definition: world.h:33
    +
    void release_ops(void)
    Definition: world.h:54
    + +
    WorldImplBase(int size, int rank)
    Definition: world.h:61
    + +
    bool is_valid(void) const
    Definition: world.h:154
    + + +
    TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
    Definition: ttg.h:1108
    +
    void set_arg(const Key &key, Value &&value)
    Definition: ttg.h:512
    +
    std::enable_if_t< key_is_void, void > set_argstream_size(std::size_t size)
    Definition: ttg.h:734
    +
    std::tuple_element_t< i, input_terminals_type > * in()
    Returns pointer to input terminal i to facilitate connection — terminal cannot be copied,...
    Definition: ttg.h:1224
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg(Value &&value)
    Definition: ttg.h:680
    +
    ttg::meta::void_to_Void_tuple_t< ttg::meta::decayed_typelist_t< actual_input_tuple_type > > input_values_full_tuple_type
    Definition: ttg.h:256
    +
    void get_terminal_data(const int owner, const Key &key)
    Definition: ttg.h:476
    +
    void invoke_pull_terminal(terminalT &in, const Key &key, TTArgs *args)
    Definition: ttg.h:432
    +
    void set_input_reducer(Reducer &&reducer, std::size_t size)
    Definition: ttg.h:1188
    +
    void fence() override
    Waits for the entire TTG associated with this TT to be completed (collective)
    Definition: ttg.h:1220
    +
    void invoke() override
    Definition: ttg.h:1287
    +
    static auto & get(InTuple &&intuple)
    Definition: ttg.h:275
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > set_arg(const Key &key)
    Definition: ttg.h:674
    +
    static constexpr bool derived_has_hip_op()
    Definition: ttg.h:221
    +
    std::enable_if_t<!key_is_void, void > finalize_argstream(const Key &key)
    finalizes stream for input i
    Definition: ttg.h:872
    +
    std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)
    Definition: ttg.h:714
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key >, int > owner(const Key &key) const
    Definition: ttg.h:1306
    +
    actual_input_tuple_type input_args_type
    Definition: ttg.h:260
    +
    static __thread struct ttg_madness::TT::@0 threaddata
    +
    std::tuple_element_t< i, output_terminalsT > * out()
    Returns pointer to output terminal for purpose of connection — terminal cannot be copied,...
    Definition: ttg.h:1230
    +
    static constexpr bool derived_has_device_op()
    Definition: ttg.h:231
    +
    static constexpr bool derived_has_level_zero_op()
    Definition: ttg.h:226
    +
    static constexpr bool derived_has_cuda_op()
    Definition: ttg.h:216
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&std::is_void_v< Value >, void > set_arg()
    Definition: ttg.h:686
    +
    ttg::meta::drop_void_t< ttg::meta::add_glvalue_reference_tuple_t< input_tuple_type > > input_refs_tuple_type
    Definition: ttg.h:263
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const Key &key, const input_values_tuple_type &args)
    Manual injection of a task with all input arguments specified as a tuple.
    Definition: ttg.h:1236
    +
    virtual ~TT()
    Definition: ttg.h:1146
    +
    TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
    Definition: ttg.h:1139
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)
    Definition: ttg.h:694
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)
    Definition: ttg.h:705
    +
    void set_static_argstream_size(std::size_t size)
    Definition: ttg.h:795
    +
    decltype(keymap) const & get_keymap() const
    Definition: ttg.h:1300
    +
    std::enable_if_t< ttg::meta::is_void_v< Key >, int > owner() const
    Definition: ttg.h:1313
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const Key &key)
    Manual injection of a task that has no arguments.
    Definition: ttg.h:1265
    +
    std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)
    Definition: ttg.h:725
    +
    std::enable_if_t<!key_is_void, void > set_argstream_size(const Key &key, std::size_t size)
    Definition: ttg.h:816
    +
    static resultT get(InTuple &&intuple)
    Definition: ttg.h:271
    +
    static constexpr int numinedges
    Definition: ttg.h:238
    +
    std::enable_if_t< key_is_void, void > finalize_argstream()
    finalizes stream for input i
    Definition: ttg.h:921
    +
    void set_keymap(Keymap &&km)
    Definition: ttg.h:1194
    +
    void set_input_reducer(Reducer &&reducer)
    Definition: ttg.h:1175
    +
    const auto & get_output_terminals() const
    Definition: ttg.h:284
    +
    ttg::meta::add_glvalue_reference_tuple_t< ttg::meta::void_to_Void_tuple_t< actual_input_tuple_type > > input_refs_full_tuple_type
    Definition: ttg.h:258
    +
    void set_defer_writer(bool _)
    Definition: ttg.h:1294
    +
    static constexpr int numins
    Definition: ttg.h:239
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const input_values_tuple_type &args)
    Manual injection of a key-free task with all input arguments specified as a tuple.
    Definition: ttg.h:1253
    +
    bool get_defer_writer(bool _)
    Definition: ttg.h:1296
    +
    TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
    Definition: ttg.h:1074
    +
    uint64_t key_hash
    Definition: ttg.h:244
    +
    void invoke_pull_terminals(std::index_sequence< IS... >, const Key &key, TTArgs *args)
    Definition: ttg.h:494
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke()
    Manual injection of a task that has no key or arguments.
    Definition: ttg.h:1280
    +
    ttg::detail::edges_tuple_t< keyT, ttg::meta::decayed_typelist_t< input_tuple_type > > input_edges_type
    Definition: ttg.h:250
    +
    ::madness::WorldObject< ttT > worldobjT
    Definition: ttg.h:236
    +
    void set_priomap(Priomap &&pm)
    Definition: ttg.h:1204
    +
    void make_executable() override
    implementation of TTBase::make_executable()
    Definition: ttg.h:1209
    +
    ttg::meta::drop_void_t< ttg::meta::decayed_typelist_t< input_tuple_type > > input_values_tuple_type
    Definition: ttg.h:262
    +
    auto get_priomap(void) const
    Definition: ttg.h:1198
    +
    ttg::World get_world() const override final
    Definition: ttg.h:213
    +
    output_terminalsT output_terminals_type
    Definition: ttg.h:266
    +
    static constexpr int numouts
    Definition: ttg.h:240
    +
    TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
    Definition: ttg.h:1101
    +
    typename ttg::terminals_to_edges< output_terminalsT >::type output_edges_type
    Definition: ttg.h:267
    +
    size_t call_depth
    Definition: ttg.h:245
    +
    ttg::detail::input_terminals_tuple_t< keyT, input_tuple_type > input_terminals_type
    Definition: ttg.h:249
    +
    keyT key_type
    Definition: ttg.h:197
    + +
    WorldImpl & operator=(const WorldImpl &other)=delete
    +
    WorldImpl(const WorldImpl &other)=delete
    +
    virtual void fence_impl(void) override
    Definition: ttg.h:93
    +
    const ttg::Edge & ctl_edge() const
    Definition: ttg.h:97
    +
    virtual ~WorldImpl() override
    Definition: ttg.h:85
    +
    WorldImpl(WorldImpl &&other)=delete
    +
    WorldImpl(::madness::World &world)
    Definition: ttg.h:74
    +
    ttg::Edge & ctl_edge()
    Definition: ttg.h:95
    +
    ::madness::World & impl()
    Definition: ttg.h:112
    +
    virtual void destroy(void) override
    Definition: ttg.h:99
    +
    WorldImpl & operator=(WorldImpl &&other)=delete
    +
    WorldImpl(const SafeMPI::Intracomm &comm)
    Definition: ttg.h:76
    +
    const ::madness::World & impl() const
    Definition: ttg.h:114
    + + + + + + + +
    #define TTGUNUSED(x)
    Definition: macro.h:6
    + + + + + +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    +
    typename make_index_sequence_t< I... >::type make_index_sequence
    +
    void set_default_world(WorldT &world)
    Definition: world.h:29
    +
    void deregister_world(ttg::base::WorldImplBase &world)
    +
    typename input_terminals_tuple< keyT, valuesT... >::type input_terminals_tuple_t
    Definition: terminal.h:346
    +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    typename edges_tuple< keyT, valuesT >::type edges_tuple_t
    Definition: edge.h:191
    +
    typename typelist_to_tuple< T >::type typelist_to_tuple_t
    Definition: typelist.h:52
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    +
    void ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)
    Definition: ttg.h:147
    +
    void ttg_initialize(int argc, char **argv, int num_threads=-1)
    Definition: ttg.h:123
    +
    void ttg_execute(ttg::World world)
    Definition: ttg.h:141
    +
    ttg::Edge & ttg_ctl_edge(ttg::World world)
    Definition: ttg.h:165
    +
    void ttg_sum(ttg::World world, T &value)
    Definition: ttg.h:168
    +
    void ttg_fence(ttg::World world)
    Definition: ttg.h:144
    +
    void ttg_finalize()
    Definition: ttg.h:131
    +
    void make_executable_hook(ttg::World &)
    Definition: ttg.h:121
    +
    void ttg_register_callback(ttg::World world, Callback &&callback)
    Definition: ttg.h:161
    +
    void ttg_broadcast(ttg::World world, T &data, int source_rank)
    Definition: ttg.h:174
    +
    void ttg_abort()
    Definition: ttg.h:137
    +
    void ttg_register_status(ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
    Definition: ttg.h:156
    +
    ttg::World ttg_default_execution_context()
    Definition: ttg.h:136
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    void abort()
    Aborts the TTG program using the default backend's ttg_abort method.
    Definition: run.h:62
    +
    World default_execution_context()
    Accesses the default backend's default execution context.
    Definition: run.h:68
    +
    TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise > coroutine_handle
    Definition: coroutine.h:24
    +
    void print_error(const T &t, const Ts &... ts)
    atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:138
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    void trace(const T &t, const Ts &... ts)
    Definition: trace.h:43
    +
    TaskCoroutineID
    Definition: coroutine.h:222
    +
    @ ResumableTask
    -> ttg::resumable_task
    +
    @ Invalid
    not a coroutine, i.e. a standard task function, -> void
    + +
    Computes hash values for objects of type T.
    Definition: hash.h:81
    +
    task that can be resumed after some events occur
    Definition: coroutine.h:53
    + + +
    #define TTG_PROCESS_TT_OP_RETURN(result, id, invoke)
    Definition: tt.h:181
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg_2parsec_2ttg_8h.html b/dox-master/ttg_2parsec_2ttg_8h.html new file mode 100644 index 000000000..7d01f9cab --- /dev/null +++ b/dox-master/ttg_2parsec_2ttg_8h.html @@ -0,0 +1,420 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ttg.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg.h File Reference
    +
    +
    +
    #include "ttg/config.h"
    +#include "ttg/impl_selector.h"
    +#include "../../ttg.h"
    +#include "ttg/base/keymap.h"
    +#include "ttg/base/tt.h"
    +#include "ttg/base/world.h"
    +#include "ttg/edge.h"
    +#include "ttg/execution.h"
    +#include "ttg/func.h"
    +#include "ttg/runtimes.h"
    +#include "ttg/terminal.h"
    +#include "ttg/tt.h"
    +#include "ttg/util/env.h"
    +#include "ttg/util/hash.h"
    +#include "ttg/util/meta.h"
    +#include "ttg/util/meta/callable.h"
    +#include "ttg/util/print.h"
    +#include "ttg/util/trace.h"
    +#include "ttg/util/typelist.h"
    +#include "ttg/serialization/data_descriptor.h"
    +#include "ttg/parsec/fwd.h"
    +#include "ttg/parsec/buffer.h"
    +#include "ttg/parsec/devicescratch.h"
    +#include "ttg/parsec/thread_local.h"
    +#include "ttg/parsec/devicefunc.h"
    +#include "ttg/parsec/ttvalue.h"
    +#include <algorithm>
    +#include <array>
    +#include <cassert>
    +#include <cstring>
    +#include <experimental/type_traits>
    +#include <functional>
    +#include <future>
    +#include <iostream>
    +#include <list>
    +#include <map>
    +#include <memory>
    +#include <mutex>
    +#include <numeric>
    +#include <sstream>
    +#include <string>
    +#include <tuple>
    +#include <vector>
    +#include <mpi.h>
    +#include <parsec.h>
    +#include <parsec/class/parsec_hash_table.h>
    +#include <parsec/data_internal.h>
    +#include <parsec/execution_stream.h>
    +#include <parsec/interfaces/interface.h>
    +#include <parsec/mca/device/device.h>
    +#include <parsec/parsec_comm_engine.h>
    +#include <parsec/parsec_internal.h>
    +#include <parsec/scheduling.h>
    +#include <parsec/remote_dep.h>
    +#include <parsec/mca/device/device_gpu.h>
    +#include <cstdlib>
    +#include "ttg/parsec/ttg_data_copy.h"
    +#include "ttg/parsec/ptr.h"
    +#include "ttg/parsec/task.h"
    +#include "ttg/parsec/parsec-ext.h"
    +#include "ttg/device/device.h"
    +#include "ttg/make_tt.h"
    +
    + + + + + + + + + + + + + + + +

    +Classes

    struct  ttg_parsec::msg_header_t
     
    struct  ttg_parsec::detail::msg_t
     
    class  ttg_parsec::WorldImpl
     
    class  ttg_parsec::detail::rma_delayed_activate< KeyT, ActivationCallbackT >
     
    struct  ttg_parsec::detail::ParsecTTBase
     
    class  ttg_parsec::TT< keyT, output_terminalsT, derivedT, input_valueTs >
     
    struct  ttg::detail::value_copy_handler< ttg::Runtime::PaRSEC >
     
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    + + + + + +

    +Macros

    #define TTG_USE_PARSEC   1
     
    #define TTG_PARSEC_DEFER_WRITER   false
     
    + + + + + + + +

    +Typedefs

    typedef void(* ttg_parsec::static_set_arg_fct_type) (void *, size_t, ttg::TTBase *)
     
    typedef std::pair< static_set_arg_fct_type, ttg::TTBase * > ttg_parsec::static_set_arg_fct_call_t
     
    typedef std::tuple< int, void *, size_t > ttg_parsec::static_set_arg_fct_arg_t
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    void parsec_taskpool_termination_detected (parsec_taskpool_t *tp)
     
    int parsec_add_fetch_runtime_task (parsec_taskpool_t *tp, int tasks)
     
    bool & ttg_parsec::detail::initialized_mpi ()
     
    ttg_data_copy_t * ttg_parsec::detail::find_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
     
    int ttg_parsec::detail::find_index_of_copy_in_task (parsec_ttg_task_base_t *task, const void *ptr)
     
    bool ttg_parsec::detail::add_copy_to_task (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
     
    void ttg_parsec::detail::remove_data_copy (ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
     
    template<typename Value >
    ttg_data_copy_t * ttg_parsec::detail::create_new_datacopy (Value &&value)
     
    template<typename TT , std::size_t I>
    void ttg_parsec::detail::transfer_ownership_impl (ttg_data_copy_t *copy, int device)
     
    template<typename TT , std::size_t... Is>
    void ttg_parsec::detail::transfer_ownership (parsec_ttg_task_t< TT > *me, int device, std::index_sequence< Is... >)
     
    template<typename TT >
    parsec_hook_return_t ttg_parsec::detail::hook (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t ttg_parsec::detail::hook_cuda (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t ttg_parsec::detail::hook_hip (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t ttg_parsec::detail::hook_level_zero (struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t ttg_parsec::detail::evaluate_cuda (const parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t ttg_parsec::detail::evaluate_hip (const parsec_task_t *parsec_task)
     
    template<typename TT >
    parsec_hook_return_t ttg_parsec::detail::evaluate_level_zero (const parsec_task_t *parsec_task)
     
    void ttg_parsec::detail::release_data_copy (ttg_data_copy_t *copy)
     
    template<typename Value >
    ttg_data_copy_t * ttg_parsec::detail::register_data_copy (ttg_data_copy_t *copy_in, parsec_ttg_task_base_t *task, bool readonly)
     
    void ttg_parsec::ttg_initialize (int argc, char **argv, int num_threads, parsec_context_t *ctx)
     
    void ttg_parsec::ttg_finalize ()
     
    ttg::World ttg_parsec::ttg_default_execution_context ()
     
    void ttg_parsec::ttg_execute (ttg::World world)
     
    void ttg_parsec::ttg_fence (ttg::World world)
     
    template<typename T >
    void ttg_parsec::ttg_register_ptr (ttg::World world, const std::shared_ptr< T > &ptr)
     
    template<typename T >
    void ttg_parsec::ttg_register_ptr (ttg::World world, std::unique_ptr< T > &&ptr)
     
    void ttg_parsec::ttg_register_status (ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
     
    template<typename Callback >
    void ttg_parsec::ttg_register_callback (ttg::World world, Callback &&callback)
     
    ttg::Edgettg_parsec::ttg_ctl_edge (ttg::World world)
     
    void ttg_parsec::ttg_sum (ttg::World world, double &value)
     
    void ttg_parsec::make_executable_hook (ttg::World &)
     
    template<typename T >
    void ttg_parsec::ttg_broadcast (::ttg::World world, T &data, int source_rank)
     
    + + + + + + + + + + + + + + + + + + + +

    +Variables

    std::map< uint64_t, static_set_arg_fct_call_t > ttg_parsec::static_id_to_op_map
     
    std::mutex ttg_parsec::static_map_mutex
     
    std::multimap< uint64_t, static_set_arg_fct_arg_t > ttg_parsec::delayed_unpack_actions
     
    constexpr const int ttg_parsec::detail::PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024
     
    std::size_t ttg_parsec::detail::max_inline_size = msg_t::max_payload_size
     
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param0
     
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param1
     
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param2
     
    const parsec_symbol_t ttg_parsec::detail::parsec_taskclass_param3
     
    +

    Macro Definition Documentation

    + +

    ◆ TTG_PARSEC_DEFER_WRITER

    + +
    +
    + + + + +
    #define TTG_PARSEC_DEFER_WRITER   false
    +
    + +

    Definition at line 13 of file ttg.h.

    + +
    +
    + +

    ◆ TTG_USE_PARSEC

    + +
    +
    + + + + +
    #define TTG_USE_PARSEC   1
    +
    + +

    Definition at line 7 of file ttg.h.

    + +
    +
    +

    Function Documentation

    + +

    ◆ parsec_add_fetch_runtime_task()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int parsec_add_fetch_runtime_task (parsec_taskpool_t * tp,
    int tasks 
    )
    +
    + +
    +
    + +

    ◆ parsec_taskpool_termination_detected()

    + +
    +
    + + + + + + + + +
    void parsec_taskpool_termination_detected (parsec_taskpool_t * tp)
    +
    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg_2parsec_2ttg_8h_source.html b/dox-master/ttg_2parsec_2ttg_8h_source.html new file mode 100644 index 000000000..d71c754a2 --- /dev/null +++ b/dox-master/ttg_2parsec_2ttg_8h_source.html @@ -0,0 +1,4828 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ttg.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg.h
    +
    +
    +Go to the documentation of this file.
    1 // clang-format off
    +
    2 #ifndef PARSEC_TTG_H_INCLUDED
    +
    3 #define PARSEC_TTG_H_INCLUDED
    +
    4 
    +
    5 /* set up env if this header was included directly */
    +
    6 #if !defined(TTG_IMPL_NAME)
    +
    7 #define TTG_USE_PARSEC 1
    +
    8 #endif // !defined(TTG_IMPL_NAME)
    +
    9 
    +
    10 /* Whether to defer a potential writer if there are readers.
    +
    11  * This may avoid extra copies in exchange for concurrency.
    +
    12  * This may cause deadlocks, so use with caution. */
    +
    13 #define TTG_PARSEC_DEFER_WRITER false
    +
    14 
    +
    15 #include "ttg/config.h"
    +
    16 
    +
    17 #include "ttg/impl_selector.h"
    +
    18 
    +
    19 /* include ttg header to make symbols available in case this header is included directly */
    +
    20 #include "../../ttg.h"
    +
    21 
    +
    22 #include "ttg/base/keymap.h"
    +
    23 #include "ttg/base/tt.h"
    +
    24 #include "ttg/base/world.h"
    +
    25 #include "ttg/edge.h"
    +
    26 #include "ttg/execution.h"
    +
    27 #include "ttg/func.h"
    +
    28 #include "ttg/runtimes.h"
    +
    29 #include "ttg/terminal.h"
    +
    30 #include "ttg/tt.h"
    +
    31 #include "ttg/util/env.h"
    +
    32 #include "ttg/util/hash.h"
    +
    33 #include "ttg/util/meta.h"
    +
    34 #include "ttg/util/meta/callable.h"
    +
    35 #include "ttg/util/print.h"
    +
    36 #include "ttg/util/trace.h"
    +
    37 #include "ttg/util/typelist.h"
    +
    38 #ifdef TTG_HAVE_DEVICE
    +
    39 #include "ttg/device/task.h"
    +
    40 #endif // TTG_HAVE_DEVICE
    +
    41 
    + +
    43 
    +
    44 #include "ttg/parsec/fwd.h"
    +
    45 
    +
    46 #include "ttg/parsec/buffer.h"
    + + +
    49 #include "ttg/parsec/devicefunc.h"
    +
    50 #include "ttg/parsec/ttvalue.h"
    +
    51 
    +
    52 #include <algorithm>
    +
    53 #include <array>
    +
    54 #include <cassert>
    +
    55 #include <cstring>
    +
    56 #include <experimental/type_traits>
    +
    57 #include <functional>
    +
    58 #include <future>
    +
    59 #include <iostream>
    +
    60 #include <list>
    +
    61 #include <map>
    +
    62 #include <memory>
    +
    63 #include <mutex>
    +
    64 #include <numeric>
    +
    65 #include <sstream>
    +
    66 #include <string>
    +
    67 #include <tuple>
    +
    68 #include <vector>
    +
    69 
    +
    70 // needed for MPIX_CUDA_AWARE_SUPPORT
    +
    71 #if defined(TTG_HAVE_MPI)
    +
    72 #include <mpi.h>
    +
    73 #if defined(TTG_HAVE_MPIEXT)
    +
    74 #include <mpi-ext.h>
    +
    75 #endif // TTG_HAVE_MPIEXT
    +
    76 #endif // TTG_HAVE_MPI
    +
    77 
    +
    78 
    +
    79 #include <parsec.h>
    +
    80 #include <parsec/class/parsec_hash_table.h>
    +
    81 #include <parsec/data_internal.h>
    +
    82 #include <parsec/execution_stream.h>
    +
    83 #include <parsec/interfaces/interface.h>
    +
    84 #include <parsec/mca/device/device.h>
    +
    85 #include <parsec/parsec_comm_engine.h>
    +
    86 #include <parsec/parsec_internal.h>
    +
    87 #include <parsec/scheduling.h>
    +
    88 #include <parsec/remote_dep.h>
    +
    89 
    +
    90 #ifdef PARSEC_HAVE_DEV_CUDA_SUPPORT
    +
    91 #include <parsec/mca/device/cuda/device_cuda.h>
    +
    92 #endif // PARSEC_HAVE_DEV_CUDA_SUPPORT
    +
    93 #ifdef PARSEC_HAVE_DEV_HIP_SUPPORT
    +
    94 #include <parsec/mca/device/hip/device_hip.h>
    +
    95 #endif // PARSEC_HAVE_DEV_HIP_SUPPORT
    +
    96 #ifdef PARSEC_HAVE_DEV_LEVEL_ZERO_SUPPORT
    +
    97 #include <parsec/mca/device/level_zero/device_level_zero.h>
    +
    98 #endif //PARSEC_HAVE_DEV_LEVEL_ZERO_SUPPORT
    +
    99 
    +
    100 #include <parsec/mca/device/device_gpu.h>
    +
    101 #if defined(PARSEC_PROF_TRACE)
    +
    102 #include <parsec/profiling.h>
    +
    103 #undef PARSEC_TTG_PROFILE_BACKEND
    +
    104 #if defined(PARSEC_PROF_GRAPHER)
    +
    105 #include <parsec/parsec_prof_grapher.h>
    +
    106 #endif
    +
    107 #endif
    +
    108 #include <cstdlib>
    +
    109 #include <cstring>
    +
    110 
    +
    111 #if defined(TTG_PARSEC_DEBUG_TRACK_DATA_COPIES)
    +
    112 #include <unordered_set>
    +
    113 #endif
    +
    114 
    + +
    116 #include "ttg/parsec/thread_local.h"
    +
    117 #include "ttg/parsec/ptr.h"
    +
    118 #include "ttg/parsec/task.h"
    +
    119 #include "ttg/parsec/parsec-ext.h"
    +
    120 
    +
    121 #include "ttg/device/device.h"
    +
    122 
    +
    123 #undef TTG_PARSEC_DEBUG_TRACK_DATA_COPIES
    +
    124 
    +
    125 /* PaRSEC function declarations */
    +
    126 extern "C" {
    +
    127 void parsec_taskpool_termination_detected(parsec_taskpool_t *tp);
    +
    128 int parsec_add_fetch_runtime_task(parsec_taskpool_t *tp, int tasks);
    +
    129 }
    +
    130 
    +
    131 namespace ttg_parsec {
    +
    132  typedef void (*static_set_arg_fct_type)(void *, size_t, ttg::TTBase *);
    +
    133  typedef std::pair<static_set_arg_fct_type, ttg::TTBase *> static_set_arg_fct_call_t;
    +
    134  inline std::map<uint64_t, static_set_arg_fct_call_t> static_id_to_op_map;
    +
    135  inline std::mutex static_map_mutex;
    +
    136  typedef std::tuple<int, void *, size_t> static_set_arg_fct_arg_t;
    +
    137  inline std::multimap<uint64_t, static_set_arg_fct_arg_t> delayed_unpack_actions;
    +
    138 
    +
    139  struct msg_header_t {
    +
    140  typedef enum fn_id : std::int8_t {
    + + + + + +
    146  uint32_t taskpool_id = -1;
    +
    147  uint64_t op_id = -1;
    +
    148  std::size_t key_offset = 0;
    + +
    150  std::int8_t num_iovecs = 0;
    +
    151  bool inline_data = false;
    +
    152  int32_t param_id = -1;
    +
    153  int num_keys = 0;
    +
    154  int sender = -1;
    +
    155 
    +
    156  msg_header_t() = default;
    +
    157 
    +
    158  msg_header_t(fn_id_t fid, uint32_t tid, uint64_t oid, int32_t pid, int sender, int nk)
    +
    159  : fn_id(fid)
    +
    160  , taskpool_id(tid)
    +
    161  , op_id(oid)
    +
    162  , param_id(pid)
    +
    163  , num_keys(nk)
    +
    164  , sender(sender)
    +
    165  { }
    +
    166  };
    +
    167 
    +
    168  static void unregister_parsec_tags(void *_);
    +
    169 
    +
    170  namespace detail {
    +
    171 
    +
    172  constexpr const int PARSEC_TTG_MAX_AM_SIZE = 1 * 1024*1024;
    +
    173 
    +
    174  struct msg_t {
    + +
    176  static constexpr std::size_t max_payload_size = PARSEC_TTG_MAX_AM_SIZE - sizeof(msg_header_t);
    +
    177  unsigned char bytes[max_payload_size];
    +
    178 
    +
    179  msg_t() = default;
    +
    180  msg_t(uint64_t tt_id,
    +
    181  uint32_t taskpool_id,
    +
    182  msg_header_t::fn_id_t fn_id,
    +
    183  int32_t param_id,
    +
    184  int sender,
    +
    185  int num_keys = 1)
    +
    186  : tt_id(fn_id, taskpool_id, tt_id, param_id, sender, num_keys)
    +
    187  {}
    +
    188  };
    +
    189 
    + +
    191 
    +
    192  static int static_unpack_msg(parsec_comm_engine_t *ce, uint64_t tag, void *data, long unsigned int size,
    +
    193  int src_rank, void *obj) {
    +
    194  static_set_arg_fct_type static_set_arg_fct;
    +
    195  parsec_taskpool_t *tp = NULL;
    +
    196  msg_header_t *msg = static_cast<msg_header_t *>(data);
    +
    197  uint64_t op_id = msg->op_id;
    +
    198  tp = parsec_taskpool_lookup(msg->taskpool_id);
    +
    199  assert(NULL != tp);
    +
    200  static_map_mutex.lock();
    +
    201  try {
    +
    202  auto op_pair = static_id_to_op_map.at(op_id);
    +
    203  static_map_mutex.unlock();
    +
    204  tp->tdm.module->incoming_message_start(tp, src_rank, NULL, NULL, 0, NULL);
    +
    205  static_set_arg_fct = op_pair.first;
    +
    206  static_set_arg_fct(data, size, op_pair.second);
    +
    207  tp->tdm.module->incoming_message_end(tp, NULL);
    +
    208  return 0;
    +
    209  } catch (const std::out_of_range &e) {
    +
    210  void *data_cpy = malloc(size);
    +
    211  assert(data_cpy != 0);
    +
    212  memcpy(data_cpy, data, size);
    +
    213  ttg::trace("ttg_parsec(", ttg_default_execution_context().rank(), ") Delaying delivery of message (", src_rank,
    +
    214  ", ", op_id, ", ", data_cpy, ", ", size, ")");
    +
    215  delayed_unpack_actions.insert(std::make_pair(op_id, std::make_tuple(src_rank, data_cpy, size)));
    +
    216  static_map_mutex.unlock();
    +
    217  return 1;
    +
    218  }
    +
    219  }
    +
    220 
    +
    221  static int get_remote_complete_cb(parsec_comm_engine_t *ce, parsec_ce_tag_t tag, void *msg, size_t msg_size,
    +
    222  int src, void *cb_data);
    +
    223 
    +
    224  inline bool &initialized_mpi() {
    +
    225  static bool im = false;
    +
    226  return im;
    +
    227  }
    +
    228 
    +
    229  } // namespace detail
    +
    230 
    + +
    232  ttg::Edge<> m_ctl_edge;
    +
    233  bool _dag_profiling;
    +
    234  bool _task_profiling;
    +
    235  std::array<bool, static_cast<std::size_t>(ttg::ExecutionSpace::Invalid)>
    +
    236  mpi_space_support = {true, false, false};
    +
    237 
    +
    238  int query_comm_size() {
    +
    239  int comm_size;
    +
    240  MPI_Comm_size(MPI_COMM_WORLD, &comm_size);
    +
    241  return comm_size;
    +
    242  }
    +
    243 
    +
    244  int query_comm_rank() {
    +
    245  int comm_rank;
    +
    246  MPI_Comm_rank(MPI_COMM_WORLD, &comm_rank);
    +
    247  return comm_rank;
    +
    248  }
    +
    249 
    +
    250  static void ttg_parsec_ce_up(parsec_comm_engine_t *comm_engine, void *user_data)
    +
    251  {
    +
    252  parsec_ce.tag_register(WorldImpl::parsec_ttg_tag(), &detail::static_unpack_msg, user_data, detail::PARSEC_TTG_MAX_AM_SIZE);
    +
    253  parsec_ce.tag_register(WorldImpl::parsec_ttg_rma_tag(), &detail::get_remote_complete_cb, user_data, 128);
    +
    254  }
    +
    255 
    +
    256  static void ttg_parsec_ce_down(parsec_comm_engine_t *comm_engine, void *user_data)
    +
    257  {
    +
    258  parsec_ce.tag_unregister(WorldImpl::parsec_ttg_tag());
    +
    259  parsec_ce.tag_unregister(WorldImpl::parsec_ttg_rma_tag());
    +
    260  }
    +
    261 
    +
    262  public:
    +
    263 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    264  int parsec_ttg_profile_backend_set_arg_start, parsec_ttg_profile_backend_set_arg_end;
    +
    265  int parsec_ttg_profile_backend_bcast_arg_start, parsec_ttg_profile_backend_bcast_arg_end;
    +
    266  int parsec_ttg_profile_backend_allocate_datacopy, parsec_ttg_profile_backend_free_datacopy;
    +
    267 #endif
    +
    268 
    +
    269  WorldImpl(int *argc, char **argv[], int ncores, parsec_context_t *c = nullptr)
    +
    270  : WorldImplBase(query_comm_size(), query_comm_rank())
    +
    271  , ctx(c)
    +
    272  , own_ctx(c == nullptr)
    +
    273 #if defined(PARSEC_PROF_TRACE)
    +
    274  , profiling_array(nullptr)
    +
    275  , profiling_array_size(0)
    +
    276 #endif
    +
    277  , _dag_profiling(false)
    +
    278  , _task_profiling(false)
    +
    279  {
    + +
    281  if (own_ctx) ctx = parsec_init(ncores, argc, argv);
    +
    282 
    +
    283  /* query MPI device support */
    + +
    285 #if defined(MPIX_CUDA_AWARE_SUPPORT) && MPIX_CUDA_AWARE_SUPPORT
    +
    286  || MPIX_Query_cuda_support()
    +
    287 #endif // MPIX_CUDA_AWARE_SUPPORT
    +
    288  ) {
    +
    289  mpi_space_support[static_cast<std::size_t>(ttg::ExecutionSpace::CUDA)] = true;
    +
    290  }
    +
    291 
    + +
    293 #if defined(MPIX_HIP_AWARE_SUPPORT) && MPIX_HIP_AWARE_SUPPORT
    +
    294  || MPIX_Query_hip_support()
    +
    295 #endif // MPIX_HIP_AWARE_SUPPORT
    +
    296  ) {
    +
    297  mpi_space_support[static_cast<std::size_t>(ttg::ExecutionSpace::HIP)] = true;
    +
    298  }
    +
    299 
    +
    300 #if defined(PARSEC_PROF_TRACE)
    +
    301  if(parsec_profile_enabled) {
    +
    302  profile_on();
    +
    303 #if defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    304  parsec_profiling_add_dictionary_keyword("PARSEC_TTG_SET_ARG_IMPL", "fill:000000", 0, NULL,
    +
    305  (int*)&parsec_ttg_profile_backend_set_arg_start,
    +
    306  (int*)&parsec_ttg_profile_backend_set_arg_end);
    +
    307  parsec_profiling_add_dictionary_keyword("PARSEC_TTG_BCAST_ARG_IMPL", "fill:000000", 0, NULL,
    +
    308  (int*)&parsec_ttg_profile_backend_bcast_arg_start,
    +
    309  (int*)&parsec_ttg_profile_backend_bcast_arg_end);
    +
    310  parsec_profiling_add_dictionary_keyword("PARSEC_TTG_DATACOPY", "fill:000000",
    +
    311  sizeof(size_t), "size{int64_t}",
    +
    312  (int*)&parsec_ttg_profile_backend_allocate_datacopy,
    +
    313  (int*)&parsec_ttg_profile_backend_free_datacopy);
    +
    314 #endif
    +
    315  }
    +
    316 #endif
    +
    317 
    +
    318  if( NULL != parsec_ce.tag_register) {
    +
    319  parsec_ce.tag_register(WorldImpl::parsec_ttg_tag(), &detail::static_unpack_msg, this, detail::PARSEC_TTG_MAX_AM_SIZE);
    +
    320  parsec_ce.tag_register(WorldImpl::parsec_ttg_rma_tag(), &detail::get_remote_complete_cb, this, 128);
    +
    321  }
    +
    322 
    +
    323  create_tpool();
    +
    324  }
    +
    325 
    +
    326 
    +
    327  auto *context() { return ctx; }
    +
    328  auto *execution_stream() { return parsec_my_execution_stream(); }
    +
    329  auto *taskpool() { return tpool; }
    +
    330 
    +
    331  void create_tpool() {
    +
    332  assert(nullptr == tpool);
    +
    333  tpool = PARSEC_OBJ_NEW(parsec_taskpool_t);
    +
    334  tpool->taskpool_id = -1;
    +
    335  tpool->update_nb_runtime_task = parsec_add_fetch_runtime_task;
    +
    336  tpool->taskpool_type = PARSEC_TASKPOOL_TYPE_TTG;
    +
    337  tpool->taskpool_name = strdup("TTG Taskpool");
    +
    338  parsec_taskpool_reserve_id(tpool);
    +
    339 
    +
    340  tpool->devices_index_mask = 0;
    +
    341  for(int i = 0; i < (int)parsec_nb_devices; i++) {
    +
    342  parsec_device_module_t *device = parsec_mca_device_get(i);
    +
    343  if( NULL == device ) continue;
    +
    344  tpool->devices_index_mask |= (1 << device->device_index);
    +
    345  }
    +
    346 
    +
    347 #ifdef TTG_USE_USER_TERMDET
    +
    348  parsec_termdet_open_module(tpool, "user_trigger");
    +
    349 #else // TTG_USE_USER_TERMDET
    +
    350  parsec_termdet_open_dyn_module(tpool);
    +
    351 #endif // TTG_USE_USER_TERMDET
    +
    352  tpool->tdm.module->monitor_taskpool(tpool, parsec_taskpool_termination_detected);
    +
    353  // In TTG, we use the pending actions to denote that the
    +
    354  // taskpool is not ready, i.e. some local tasks could still
    +
    355  // be added by the main thread. It should then be initialized
    +
    356  // to 0, execute will set it to 1 and mark the tpool as ready,
    +
    357  // and the fence() will decrease it back to 0.
    +
    358  tpool->tdm.module->taskpool_set_runtime_actions(tpool, 0);
    +
    359  parsec_taskpool_enable(tpool, NULL, NULL, execution_stream(), size() > 1);
    +
    360 
    +
    361 #if defined(PARSEC_PROF_TRACE)
    +
    362  tpool->profiling_array = profiling_array;
    +
    363 #endif
    +
    364 
    +
    365  // Termination detection in PaRSEC requires to synchronize the
    +
    366  // taskpool enabling, to avoid a race condition that would keep
    +
    367  // termination detection-related messages in a waiting queue
    +
    368  // forever
    +
    369  MPI_Barrier(comm());
    +
    370 
    +
    371  parsec_taskpool_started = false;
    +
    372  }
    +
    373 
    +
    374  /* Deleted copy ctor */
    +
    375  WorldImpl(const WorldImpl &other) = delete;
    +
    376 
    +
    377  /* Deleted move ctor */
    +
    378  WorldImpl(WorldImpl &&other) = delete;
    +
    379 
    +
    380  /* Deleted copy assignment */
    +
    381  WorldImpl &operator=(const WorldImpl &other) = delete;
    +
    382 
    +
    383  /* Deleted move assignment */
    +
    384  WorldImpl &operator=(WorldImpl &&other) = delete;
    +
    385 
    + +
    387 
    +
    388  static constexpr int parsec_ttg_tag() { return PARSEC_DSL_TTG_TAG; }
    +
    389  static constexpr int parsec_ttg_rma_tag() { return PARSEC_DSL_TTG_RMA_TAG; }
    +
    390 
    +
    391  MPI_Comm comm() const { return MPI_COMM_WORLD; }
    +
    392 
    +
    393  virtual void execute() override {
    +
    394  if (!parsec_taskpool_started) {
    +
    395  parsec_enqueue(ctx, tpool);
    +
    396  tpool->tdm.module->taskpool_addto_runtime_actions(tpool, 1);
    +
    397  tpool->tdm.module->taskpool_ready(tpool);
    +
    398  [[maybe_unused]] auto ret = parsec_context_start(ctx);
    +
    399  // ignore ret since all of its nonzero values are OK (e.g. -1 due to ctx already being active)
    +
    400  parsec_taskpool_started = true;
    +
    401  }
    +
    402  }
    +
    403 
    +
    404  void destroy_tpool() {
    +
    405 #if defined(PARSEC_PROF_TRACE)
    +
    406  // We don't want to release the profiling array, as it should be persistent
    +
    407  // between fences() to allow defining a TT/TTG before a fence() and schedule
    +
    408  // it / complete it after a fence()
    +
    409  tpool->profiling_array = nullptr;
    +
    410 #endif
    +
    411  assert(NULL != tpool->tdm.monitor);
    +
    412  tpool->tdm.module->unmonitor_taskpool(tpool);
    +
    413  parsec_taskpool_free(tpool);
    +
    414  tpool = nullptr;
    +
    415  }
    +
    416 
    +
    417  virtual void destroy() override {
    +
    418  if (is_valid()) {
    +
    419  if (parsec_taskpool_started) {
    +
    420  // We are locally ready (i.e. we won't add new tasks)
    +
    421  tpool->tdm.module->taskpool_addto_runtime_actions(tpool, -1);
    +
    422  ttg::trace("ttg_parsec(", this->rank(), "): final waiting for completion");
    +
    423  if (own_ctx)
    +
    424  parsec_context_wait(ctx);
    +
    425  else
    +
    426  parsec_taskpool_wait(tpool);
    +
    427  }
    +
    428  release_ops();
    + +
    430  destroy_tpool();
    +
    431  if (own_ctx) {
    +
    432  unregister_parsec_tags(nullptr);
    +
    433  } else {
    +
    434  parsec_context_at_fini(unregister_parsec_tags, nullptr);
    +
    435  }
    +
    436 #if defined(PARSEC_PROF_TRACE)
    +
    437  if(nullptr != profiling_array) {
    +
    438  free(profiling_array);
    +
    439  profiling_array = nullptr;
    +
    440  profiling_array_size = 0;
    +
    441  }
    +
    442 #endif
    +
    443  if (own_ctx) parsec_fini(&ctx);
    +
    444  mark_invalid();
    +
    445  }
    +
    446  }
    +
    447 
    +
    448  ttg::Edge<> &ctl_edge() { return m_ctl_edge; }
    +
    449 
    +
    450  const ttg::Edge<> &ctl_edge() const { return m_ctl_edge; }
    +
    451 
    +
    452  void increment_created() { taskpool()->tdm.module->taskpool_addto_nb_tasks(taskpool(), 1); }
    +
    453 
    +
    454  void increment_inflight_msg() { taskpool()->tdm.module->taskpool_addto_runtime_actions(taskpool(), 1); }
    +
    455  void decrement_inflight_msg() { taskpool()->tdm.module->taskpool_addto_runtime_actions(taskpool(), -1); }
    +
    456 
    +
    457  bool dag_profiling() override { return _dag_profiling; }
    +
    458 
    +
    459  virtual void dag_on(const std::string &filename) override {
    +
    460 #if defined(PARSEC_PROF_GRAPHER)
    +
    461  if(!_dag_profiling) {
    +
    462  profile_on();
    +
    463  size_t len = strlen(filename.c_str())+32;
    +
    464  char ext_filename[len];
    +
    465  snprintf(ext_filename, len, "%s-%d.dot", filename.c_str(), rank());
    +
    466  parsec_prof_grapher_init(ctx, ext_filename);
    +
    467  _dag_profiling = true;
    +
    468  }
    +
    469 #else
    +
    470  ttg::print("Error: requested to create '", filename, "' to create a DAG of tasks,\n"
    +
    471  "but PaRSEC does not support graphing options. Reconfigure with PARSEC_PROF_GRAPHER=ON\n");
    +
    472 #endif
    +
    473  }
    +
    474 
    +
    475  virtual void dag_off() override {
    +
    476 #if defined(PARSEC_PROF_GRAPHER)
    +
    477  if(_dag_profiling) {
    +
    478  parsec_prof_grapher_fini();
    +
    479  _dag_profiling = false;
    +
    480  }
    +
    481 #endif
    +
    482  }
    +
    483 
    +
    484  virtual void profile_off() override {
    +
    485 #if defined(PARSEC_PROF_TRACE)
    +
    486  _task_profiling = false;
    +
    487 #endif
    +
    488  }
    +
    489 
    +
    490  virtual void profile_on() override {
    +
    491 #if defined(PARSEC_PROF_TRACE)
    +
    492  _task_profiling = true;
    +
    493 #endif
    +
    494  }
    +
    495 
    +
    496  virtual bool profiling() override { return _task_profiling; }
    +
    497 
    + +
    499  return mpi_space_support[static_cast<std::size_t>(space)];
    +
    500  }
    +
    501 
    +
    502  virtual void final_task() override {
    +
    503 #ifdef TTG_USE_USER_TERMDET
    +
    504  if(parsec_taskpool_started) {
    +
    505  taskpool()->tdm.module->taskpool_set_nb_tasks(taskpool(), 0);
    +
    506  parsec_taskpool_started = false;
    +
    507  }
    +
    508 #endif // TTG_USE_USER_TERMDET
    +
    509  }
    +
    510 
    +
    511  template <typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs = ttg::typelist<>>
    + +
    513 #if defined(PARSEC_PROF_TRACE)
    +
    514  std::stringstream ss;
    +
    515  build_composite_name_rec(t->ttg_ptr(), ss);
    +
    516  ss << t->get_name();
    +
    517  register_new_profiling_event(ss.str().c_str(), t->get_instance_id());
    +
    518 #endif
    +
    519  }
    +
    520 
    +
    521  protected:
    +
    522 #if defined(PARSEC_PROF_TRACE)
    +
    523  void build_composite_name_rec(const ttg::TTBase *t, std::stringstream &ss) {
    +
    524  if(nullptr == t)
    +
    525  return;
    +
    526  build_composite_name_rec(t->ttg_ptr(), ss);
    +
    527  ss << t->get_name() << "::";
    +
    528  }
    +
    529 
    +
    530  void register_new_profiling_event(const char *name, int position) {
    +
    531  if(2*position >= profiling_array_size) {
    +
    532  size_t new_profiling_array_size = 64 * ((2*position + 63)/64 + 1);
    +
    533  profiling_array = (int*)realloc((void*)profiling_array,
    +
    534  new_profiling_array_size * sizeof(int));
    +
    535  memset((void*)&profiling_array[profiling_array_size], 0, sizeof(int)*(new_profiling_array_size - profiling_array_size));
    +
    536  profiling_array_size = new_profiling_array_size;
    +
    537  tpool->profiling_array = profiling_array;
    +
    538  }
    +
    539 
    +
    540  assert(0 == tpool->profiling_array[2*position]);
    +
    541  assert(0 == tpool->profiling_array[2*position+1]);
    +
    542  // TODO PROFILING: 0 and NULL should be replaced with something that depends on the key human-readable serialization...
    +
    543  // Typically, we would put something like 3*sizeof(int32_t), "m{int32_t};n{int32_t};k{int32_t}" to say
    +
    544  // there are three fields, named m, n and k, stored in this order, and each of size int32_t
    +
    545  parsec_profiling_add_dictionary_keyword(name, "fill:000000", 64, "key{char[64]}",
    +
    546  (int*)&tpool->profiling_array[2*position],
    +
    547  (int*)&tpool->profiling_array[2*position+1]);
    +
    548  }
    +
    549 #endif
    +
    550 
    +
    551  virtual void fence_impl(void) override {
    +
    552  int rank = this->rank();
    +
    553  if (!parsec_taskpool_started) {
    +
    554  ttg::trace("ttg_parsec::(", rank, "): parsec taskpool has not been started, fence is a simple MPI_Barrier");
    +
    555  MPI_Barrier(comm());
    +
    556  return;
    +
    557  }
    +
    558  ttg::trace("ttg_parsec::(", rank, "): parsec taskpool is ready for completion");
    +
    559  // We are locally ready (i.e. we won't add new tasks)
    +
    560  tpool->tdm.module->taskpool_addto_runtime_actions(tpool, -1);
    +
    561  ttg::trace("ttg_parsec(", rank, "): waiting for completion");
    +
    562  parsec_taskpool_wait(tpool);
    +
    563 
    +
    564  // We need the synchronization between the end of the context and the restart of the taskpool
    +
    565  // until we use parsec_taskpool_wait and implement an epoch in the PaRSEC taskpool
    +
    566  // see Issue #118 (TTG)
    +
    567  MPI_Barrier(comm());
    +
    568 
    +
    569  destroy_tpool();
    +
    570  create_tpool();
    +
    571  execute();
    +
    572  }
    +
    573 
    +
    574  private:
    +
    575  parsec_context_t *ctx = nullptr;
    +
    576  bool own_ctx = false; //< whether I own the context
    +
    577  parsec_taskpool_t *tpool = nullptr;
    +
    578  bool parsec_taskpool_started = false;
    +
    579 #if defined(PARSEC_PROF_TRACE)
    +
    580  int *profiling_array;
    +
    581  std::size_t profiling_array_size;
    +
    582 #endif
    +
    583  };
    +
    584 
    +
    585  static void unregister_parsec_tags(void *_pidx)
    +
    586  {
    +
    587  if(NULL != parsec_ce.tag_unregister) {
    +
    588  parsec_ce.tag_unregister(WorldImpl::parsec_ttg_tag());
    +
    589  parsec_ce.tag_unregister(WorldImpl::parsec_ttg_rma_tag());
    +
    590  }
    +
    591  }
    +
    592 
    +
    593  namespace detail {
    +
    594 
    +
    595  const parsec_symbol_t parsec_taskclass_param0 = {
    +
    596  .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    597  .name = "HASH0",
    +
    598  .context_index = 0,
    +
    599  .min = nullptr,
    +
    600  .max = nullptr,
    +
    601  .expr_inc = nullptr,
    +
    602  .cst_inc = 0 };
    +
    603  const parsec_symbol_t parsec_taskclass_param1 = {
    +
    604  .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    605  .name = "HASH1",
    +
    606  .context_index = 1,
    +
    607  .min = nullptr,
    +
    608  .max = nullptr,
    +
    609  .expr_inc = nullptr,
    +
    610  .cst_inc = 0 };
    +
    611  const parsec_symbol_t parsec_taskclass_param2 = {
    +
    612  .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    613  .name = "KEY0",
    +
    614  .context_index = 2,
    +
    615  .min = nullptr,
    +
    616  .max = nullptr,
    +
    617  .expr_inc = nullptr,
    +
    618  .cst_inc = 0 };
    +
    619  const parsec_symbol_t parsec_taskclass_param3 = {
    +
    620  .flags = PARSEC_SYMBOL_IS_STANDALONE|PARSEC_SYMBOL_IS_GLOBAL,
    +
    621  .name = "KEY1",
    +
    622  .context_index = 3,
    +
    623  .min = nullptr,
    +
    624  .max = nullptr,
    +
    625  .expr_inc = nullptr,
    +
    626  .cst_inc = 0 };
    +
    627 
    + +
    629  ttg_data_copy_t *res = nullptr;
    +
    630  if (task == nullptr || ptr == nullptr) {
    +
    631  return res;
    +
    632  }
    +
    633  for (int i = 0; i < task->data_count; ++i) {
    +
    634  auto copy = static_cast<ttg_data_copy_t *>(task->copies[i]);
    +
    635  if (NULL != copy && copy->get_ptr() == ptr) {
    +
    636  res = copy;
    +
    637  break;
    +
    638  }
    +
    639  }
    +
    640  return res;
    +
    641  }
    +
    642 
    +
    643  inline int find_index_of_copy_in_task(parsec_ttg_task_base_t *task, const void *ptr) {
    +
    644  int i = -1;
    +
    645  if (task == nullptr || ptr == nullptr) {
    +
    646  return i;
    +
    647  }
    +
    648  for (i = 0; i < task->data_count; ++i) {
    +
    649  auto copy = static_cast<ttg_data_copy_t *>(task->copies[i]);
    +
    650  if (NULL != copy && copy->get_ptr() == ptr) {
    +
    651  return i;
    +
    652  }
    +
    653  }
    +
    654  return -1;
    +
    655  }
    +
    656 
    + +
    658  if (task == nullptr || copy == nullptr) {
    +
    659  return false;
    +
    660  }
    +
    661 
    +
    662  if (MAX_PARAM_COUNT < task->data_count) {
    +
    663  throw std::logic_error("Too many data copies, check MAX_PARAM_COUNT!");
    +
    664  }
    +
    665 
    +
    666  task->copies[task->data_count] = copy;
    +
    667  task->data_count++;
    +
    668  return true;
    +
    669  }
    +
    670 
    + +
    672  int i;
    +
    673  /* find and remove entry; copies are usually appended and removed, so start from back */
    +
    674  for (i = task->data_count-1; i >= 0; --i) {
    +
    675  if (copy == task->copies[i]) {
    +
    676  break;
    +
    677  }
    +
    678  }
    +
    679  if (i < 0) return;
    +
    680  /* move all following elements one up */
    +
    681  for (; i < task->data_count - 1; ++i) {
    +
    682  task->copies[i] = task->copies[i + 1];
    +
    683  }
    +
    684  /* null last element */
    +
    685  task->copies[i] = nullptr;
    +
    686  task->data_count--;
    +
    687  }
    +
    688 
    +
    689 #if defined(TTG_PARSEC_DEBUG_TRACK_DATA_COPIES)
    +
    690 #warning "ttg::PaRSEC enables data copy tracking"
    +
    691  static std::unordered_set<ttg_data_copy_t *> pending_copies;
    +
    692  static std::mutex pending_copies_mutex;
    +
    693 #endif
    +
    694 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    695  static int64_t parsec_ttg_data_copy_uid = 0;
    +
    696 #endif
    +
    697 
    +
    698  template <typename Value>
    +
    699  inline ttg_data_copy_t *create_new_datacopy(Value &&value) {
    +
    700  using value_type = std::decay_t<Value>;
    +
    701  ttg_data_copy_t *copy;
    +
    702  if constexpr (std::is_base_of_v<ttg::TTValue<value_type>, value_type>) {
    +
    703  copy = new value_type(std::forward<Value>(value));
    +
    704  } else if constexpr (std::is_rvalue_reference_v<decltype(value)> ||
    +
    705  std::is_copy_constructible_v<std::decay_t<Value>>) {
    +
    706  copy = new ttg_data_value_copy_t<value_type>(std::forward<Value>(value));
    +
    707  } else {
    +
    708  throw std::logic_error("Trying to copy-construct data that is not copy-constructible!");
    +
    709  }
    +
    710 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    711  // Keep track of additional memory usage
    +
    712  if(ttg::default_execution_context().impl().profiling()) {
    +
    713  copy->size = sizeof(Value);
    +
    714  copy->uid = parsec_atomic_fetch_inc_int64(&parsec_ttg_data_copy_uid);
    +
    715  parsec_profiling_ts_trace_flags(ttg::default_execution_context().impl().parsec_ttg_profile_backend_allocate_datacopy,
    +
    716  static_cast<uint64_t>(copy->uid),
    +
    717  PROFILE_OBJECT_ID_NULL, &copy->size,
    +
    718  PARSEC_PROFILING_EVENT_COUNTER|PARSEC_PROFILING_EVENT_HAS_INFO);
    +
    719  }
    +
    720 #endif
    +
    721 #if defined(TTG_PARSEC_DEBUG_TRACK_DATA_COPIES)
    +
    722  {
    +
    723  const std::lock_guard<std::mutex> lock(pending_copies_mutex);
    +
    724  auto rc = pending_copies.insert(copy);
    +
    725  assert(std::get<1>(rc));
    +
    726  }
    +
    727 #endif
    +
    728  return copy;
    +
    729  }
    +
    730 
    +
    731 #if 0
    +
    732  template <std::size_t... IS, typename Key = keyT>
    +
    733  void invoke_pull_terminals(std::index_sequence<IS...>, const Key &key, detail::parsec_ttg_task_base_t *task) {
    +
    734  int junk[] = {0, (invoke_pull_terminal<IS>(
    +
    735  std::get<IS>(input_terminals), key, task),
    +
    736  0)...};
    +
    737  junk[0]++;
    +
    738  }
    +
    739 #endif // 0
    +
    740 
    +
    741  template<typename TT, std::size_t I>
    +
    742  inline void transfer_ownership_impl(ttg_data_copy_t *copy, int device) {
    +
    743  if constexpr(!std::is_const_v<std::tuple_element_t<I, typename TT::input_values_tuple_type>>) {
    +
    744  copy->transfer_ownership(PARSEC_FLOW_ACCESS_RW, device);
    +
    745  copy->inc_current_version();
    +
    746  }
    +
    747  }
    +
    748 
    +
    749  template<typename TT, std::size_t... Is>
    +
    750  inline void transfer_ownership(parsec_ttg_task_t<TT> *me, int device, std::index_sequence<Is...>) {
    +
    751  /* transfer ownership of each data */
    +
    752  int junk[] = {0, (transfer_ownership_impl<TT, Is>(me->copies[Is], device), 0)...};
    +
    753  junk[0]++;
    +
    754  }
    +
    755 
    +
    756  template<typename TT>
    +
    757  inline parsec_hook_return_t hook(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) {
    +
    758  parsec_ttg_task_t<TT> *me = (parsec_ttg_task_t<TT> *)parsec_task;
    +
    759  if constexpr(std::tuple_size_v<typename TT::input_values_tuple_type> > 0) {
    +
    760  transfer_ownership<TT>(me, 0, std::make_index_sequence<std::tuple_size_v<typename TT::input_values_tuple_type>>{});
    +
    761  }
    +
    762  return me->template invoke_op<ttg::ExecutionSpace::Host>();
    +
    763  }
    +
    764 
    +
    765  template<typename TT>
    +
    766  inline parsec_hook_return_t hook_cuda(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) {
    +
    767  if constexpr(TT::derived_has_cuda_op()) {
    +
    768  parsec_ttg_task_t<TT> *me = (parsec_ttg_task_t<TT> *)parsec_task;
    +
    769  return me->template invoke_op<ttg::ExecutionSpace::CUDA>();
    +
    770  } else {
    +
    771  std::cerr << "CUDA hook called without having a CUDA op!" << std::endl;
    +
    772  return PARSEC_HOOK_RETURN_ERROR;
    +
    773  }
    +
    774  }
    +
    775 
    +
    776  template<typename TT>
    +
    777  inline parsec_hook_return_t hook_hip(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) {
    +
    778  if constexpr(TT::derived_has_hip_op()) {
    +
    779  parsec_ttg_task_t<TT> *me = (parsec_ttg_task_t<TT> *)parsec_task;
    +
    780  return me->template invoke_op<ttg::ExecutionSpace::HIP>();
    +
    781  } else {
    +
    782  std::cerr << "HIP hook called without having a HIP op!" << std::endl;
    +
    783  return PARSEC_HOOK_RETURN_ERROR;
    +
    784  }
    +
    785  }
    +
    786 
    +
    787  template<typename TT>
    +
    788  inline parsec_hook_return_t hook_level_zero(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task) {
    +
    789  if constexpr(TT::derived_has_level_zero_op()) {
    +
    790  parsec_ttg_task_t<TT> *me = (parsec_ttg_task_t<TT> *)parsec_task;
    +
    791  return me->template invoke_op<ttg::ExecutionSpace::L0>();
    +
    792  } else {
    +
    793  std::cerr << "L0 hook called without having a L0 op!" << std::endl;
    +
    794  return PARSEC_HOOK_RETURN_ERROR;
    +
    795  }
    +
    796  }
    +
    797 
    +
    798 
    +
    799  template<typename TT>
    +
    800  inline parsec_hook_return_t evaluate_cuda(const parsec_task_t *parsec_task) {
    +
    801  if constexpr(TT::derived_has_cuda_op()) {
    +
    802  parsec_ttg_task_t<TT> *me = (parsec_ttg_task_t<TT> *)parsec_task;
    +
    803  return me->template invoke_evaluate<ttg::ExecutionSpace::CUDA>();
    +
    804  } else {
    +
    805  return PARSEC_HOOK_RETURN_NEXT;
    +
    806  }
    +
    807  }
    +
    808 
    +
    809  template<typename TT>
    +
    810  inline parsec_hook_return_t evaluate_hip(const parsec_task_t *parsec_task) {
    +
    811  if constexpr(TT::derived_has_hip_op()) {
    +
    812  parsec_ttg_task_t<TT> *me = (parsec_ttg_task_t<TT> *)parsec_task;
    +
    813  return me->template invoke_evaluate<ttg::ExecutionSpace::HIP>();
    +
    814  } else {
    +
    815  return PARSEC_HOOK_RETURN_NEXT;
    +
    816  }
    +
    817  }
    +
    818 
    +
    819  template<typename TT>
    +
    820  inline parsec_hook_return_t evaluate_level_zero(const parsec_task_t *parsec_task) {
    +
    821  if constexpr(TT::derived_has_level_zero_op()) {
    +
    822  parsec_ttg_task_t<TT> *me = (parsec_ttg_task_t<TT> *)parsec_task;
    +
    823  return me->template invoke_evaluate<ttg::ExecutionSpace::L0>();
    +
    824  } else {
    +
    825  return PARSEC_HOOK_RETURN_NEXT;
    +
    826  }
    +
    827  }
    +
    828 
    +
    829 
    +
    830  template <typename KeyT, typename ActivationCallbackT>
    + +
    832  std::vector<KeyT> _keylist;
    +
    833  std::atomic<int> _outstanding_transfers;
    +
    834  ActivationCallbackT _cb;
    + +
    836 
    +
    837  public:
    +
    838  rma_delayed_activate(std::vector<KeyT> &&key, detail::ttg_data_copy_t *copy, int num_transfers, ActivationCallbackT cb)
    +
    839  : _keylist(std::move(key)), _outstanding_transfers(num_transfers), _cb(cb), _copy(copy) {}
    +
    840 
    +
    841  bool complete_transfer(void) {
    +
    842  int left = --_outstanding_transfers;
    +
    843  if (0 == left) {
    +
    844  _cb(std::move(_keylist), _copy);
    +
    845  return true;
    +
    846  }
    +
    847  return false;
    +
    848  }
    +
    849  };
    +
    850 
    +
    851  template <typename ActivationT>
    +
    852  static int get_complete_cb(parsec_comm_engine_t *comm_engine, parsec_ce_mem_reg_handle_t lreg, ptrdiff_t ldispl,
    +
    853  parsec_ce_mem_reg_handle_t rreg, ptrdiff_t rdispl, size_t size, int remote,
    +
    854  void *cb_data) {
    +
    855  parsec_ce.mem_unregister(&lreg);
    +
    856  ActivationT *activation = static_cast<ActivationT *>(cb_data);
    +
    857  if (activation->complete_transfer()) {
    +
    858  delete activation;
    +
    859  }
    +
    860  return PARSEC_SUCCESS;
    +
    861  }
    +
    862 
    +
    863  static int get_remote_complete_cb(parsec_comm_engine_t *ce, parsec_ce_tag_t tag, void *msg, size_t msg_size,
    +
    864  int src, void *cb_data) {
    +
    865  std::intptr_t *fn_ptr = static_cast<std::intptr_t *>(msg);
    +
    866  std::function<void(void)> *fn = reinterpret_cast<std::function<void(void)> *>(*fn_ptr);
    +
    867  (*fn)();
    +
    868  delete fn;
    +
    869  return PARSEC_SUCCESS;
    +
    870  }
    +
    871 
    +
    872  template <typename FuncT>
    +
    873  static int invoke_get_remote_complete_cb(parsec_comm_engine_t *ce, parsec_ce_tag_t tag, void *msg, size_t msg_size,
    +
    874  int src, void *cb_data) {
    +
    875  std::intptr_t *iptr = static_cast<std::intptr_t *>(msg);
    +
    876  FuncT *fn_ptr = reinterpret_cast<FuncT *>(*iptr);
    +
    877  (*fn_ptr)();
    +
    878  delete fn_ptr;
    +
    879  return PARSEC_SUCCESS;
    +
    880  }
    +
    881 
    +
    882  inline void release_data_copy(ttg_data_copy_t *copy) {
    +
    883  if (copy->is_mutable() && nullptr == copy->get_next_task()) {
    +
    884  /* current task mutated the data but there are no consumers so prepare
    +
    885  * the copy to be freed below */
    +
    886  copy->reset_readers();
    +
    887  }
    +
    888 
    +
    889  int32_t readers = copy->num_readers();
    +
    890  if (readers > 1) {
    +
    891  /* potentially more than one reader, decrement atomically */
    +
    892  readers = copy->decrement_readers();
    +
    893  } else if (readers == 1) {
    +
    894  /* make sure readers drop to zero */
    +
    895  readers = copy->decrement_readers<false>();
    +
    896  }
    +
    897  /* if there was only one reader (the current task) or
    +
    898  * a mutable copy and a successor, we release the copy */
    +
    899  if (1 == readers || readers == copy->mutable_tag) {
    +
    900  std::atomic_thread_fence(std::memory_order_acquire);
    +
    901  if (nullptr != copy->get_next_task()) {
    +
    902  /* Release the deferred task.
    +
    903  * The copy was mutable and will be mutated by the released task,
    +
    904  * so simply transfer ownership.
    +
    905  */
    +
    906  parsec_task_t *next_task = copy->get_next_task();
    +
    907  copy->set_next_task(nullptr);
    +
    908  parsec_ttg_task_base_t *deferred_op = (parsec_ttg_task_base_t *)next_task;
    +
    909  copy->mark_mutable();
    +
    910  deferred_op->release_task();
    +
    911  } else if ((1 == copy->num_ref()) || (1 == copy->drop_ref())) {
    +
    912  /* we are the last reference, delete the copy */
    +
    913 #if defined(TTG_PARSEC_DEBUG_TRACK_DATA_COPIES)
    +
    914  {
    +
    915  const std::lock_guard<std::mutex> lock(pending_copies_mutex);
    +
    916  size_t rc = pending_copies.erase(copy);
    +
    917  assert(1 == rc);
    +
    918  }
    +
    919 #endif
    +
    920 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    921  // Keep track of additional memory usage
    +
    922  if(ttg::default_execution_context().impl().profiling()) {
    +
    923  parsec_profiling_ts_trace_flags(ttg::default_execution_context().impl().parsec_ttg_profile_backend_free_datacopy,
    +
    924  static_cast<uint64_t>(copy->uid),
    +
    925  PROFILE_OBJECT_ID_NULL, &copy->size,
    +
    926  PARSEC_PROFILING_EVENT_COUNTER|PARSEC_PROFILING_EVENT_HAS_INFO);
    +
    927  }
    +
    928 #endif
    +
    929  delete copy;
    +
    930  }
    +
    931  }
    +
    932  }
    +
    933 
    +
    934  template <typename Value>
    + +
    936  ttg_data_copy_t *copy_res = copy_in;
    +
    937  bool replace = false;
    +
    938  int32_t readers = copy_in->num_readers();
    +
    939 
    +
    940  assert(readers != 0);
    +
    941 
    +
    942  if (readonly && !copy_in->is_mutable()) {
    +
    943  /* simply increment the number of readers */
    +
    944  readers = copy_in->increment_readers();
    +
    945  }
    +
    946 
    +
    947  if (readers == copy_in->mutable_tag) {
    +
    948  if (copy_res->get_next_task() != nullptr) {
    +
    949  if (readonly) {
    +
    950  parsec_ttg_task_base_t *next_task = reinterpret_cast<parsec_ttg_task_base_t *>(copy_res->get_next_task());
    +
    951  if (next_task->defer_writer) {
    +
    952  /* there is a writer but it signalled that it wants to wait for readers to complete */
    +
    953  return copy_res;
    +
    954  }
    +
    955  }
    +
    956  }
    +
    957  /* someone is going to write into this copy -> we need to make a copy */
    +
    958  copy_res = NULL;
    +
    959  if (readonly) {
    +
    960  /* we replace the copy in a deferred task if the copy will be mutated by
    +
    961  * the deferred task and we are readonly.
    +
    962  * That way, we can share the copy with other readonly tasks and release
    +
    963  * the deferred task. */
    +
    964  replace = true;
    +
    965  }
    +
    966  } else if (!readonly) {
    +
    967  /* this task will mutate the data
    +
    968  * check whether there are other readers already and potentially
    +
    969  * defer the release of this task to give following readers a
    +
    970  * chance to make a copy of the data before this task mutates it
    +
    971  *
    +
    972  * Try to replace the readers with a negative value that indicates
    +
    973  * the value is mutable. If that fails we know that there are other
    +
    974  * readers or writers already.
    +
    975  *
    +
    976  * NOTE: this check is not atomic: either there is a single reader
    +
    977  * (current task) or there are others, in which we case won't
    +
    978  * touch it.
    +
    979  */
    +
    980  if (1 == copy_in->num_readers() && !task->defer_writer) {
    +
    985  assert(nullptr == copy_in->get_next_task());
    +
    986  copy_in->set_next_task(&task->parsec_task);
    +
    987  std::atomic_thread_fence(std::memory_order_release);
    +
    988  copy_in->mark_mutable();
    +
    989  } else {
    +
    990  if (task->defer_writer && nullptr == copy_in->get_next_task()) {
    +
    991  /* we're the first writer and want to wait for all readers to complete */
    +
    992  copy_res->set_next_task(&task->parsec_task);
    +
    993  } else {
    +
    994  /* there are writers and/or waiting already of this copy already, make a copy that we can mutate */
    +
    995  copy_res = NULL;
    +
    996  }
    +
    997  }
    +
    998  }
    +
    999 
    +
    1000  if (NULL == copy_res) {
    +
    1001  ttg_data_copy_t *new_copy = detail::create_new_datacopy(*static_cast<Value *>(copy_in->get_ptr()));
    +
    1002  if (replace && nullptr != copy_in->get_next_task()) {
    +
    1003  /* replace the task that was deferred */
    +
    1004  parsec_ttg_task_base_t *deferred_op = (parsec_ttg_task_base_t *)copy_in->get_next_task();
    +
    1005  new_copy->mark_mutable();
    +
    1006  /* replace the copy in the deferred task */
    +
    1007  for (int i = 0; i < deferred_op->data_count; ++i) {
    +
    1008  if (deferred_op->copies[i] == copy_in) {
    +
    1009  deferred_op->copies[i] = new_copy;
    +
    1010  break;
    +
    1011  }
    +
    1012  }
    +
    1013  copy_in->set_next_task(nullptr);
    +
    1014  deferred_op->release_task();
    +
    1015  copy_in->reset_readers(); // set the copy back to being read-only
    +
    1016  copy_in->increment_readers<false>(); // register as reader
    +
    1017  copy_res = copy_in; // return the copy we were passed
    +
    1018  } else {
    +
    1019  if (!readonly) {
    +
    1020  new_copy->mark_mutable();
    +
    1021  }
    +
    1022  copy_res = new_copy; // return the new copy
    +
    1023  }
    +
    1024  }
    +
    1025  return copy_res;
    +
    1026  }
    +
    1027 
    +
    1028  } // namespace detail
    +
    1029 
    +
    1030  inline void ttg_initialize(int argc, char **argv, int num_threads, parsec_context_t *ctx) {
    +
    1031  if (detail::initialized_mpi()) throw std::runtime_error("ttg_parsec::ttg_initialize: can only be called once");
    +
    1032 
    +
    1033  // make sure it's not already initialized
    +
    1034  int mpi_initialized;
    +
    1035  MPI_Initialized(&mpi_initialized);
    +
    1036  if (!mpi_initialized) { // MPI not initialized? do it, remember that we did it
    +
    1037  int provided;
    +
    1038  MPI_Init_thread(&argc, &argv, MPI_THREAD_MULTIPLE, &provided);
    +
    1039  if (!provided)
    +
    1040  throw std::runtime_error("ttg_parsec::ttg_initialize: MPI_Init_thread did not provide MPI_THREAD_MULTIPLE");
    +
    1041  detail::initialized_mpi() = true;
    +
    1042  } else { // no way to test that MPI was initialized with MPI_THREAD_MULTIPLE, cross fingers and proceed
    +
    1043  }
    +
    1044 
    + +
    1046  auto world_ptr = new ttg_parsec::WorldImpl{&argc, &argv, num_threads, ctx};
    +
    1047  std::shared_ptr<ttg::base::WorldImplBase> world_sptr{static_cast<ttg::base::WorldImplBase *>(world_ptr)};
    +
    1048  ttg::World world{std::move(world_sptr)};
    +
    1049  ttg::detail::set_default_world(std::move(world));
    +
    1050 
    +
    1051  // query the first device ID
    + +
    1053  for (int i = 0; i < parsec_nb_devices; ++i) {
    +
    1054  bool is_gpu = parsec_mca_device_is_gpu(i);
    +
    1055  if (detail::first_device_id == -1 && is_gpu) {
    + +
    1057  } else if (detail::first_device_id > -1 && !is_gpu) {
    +
    1058  throw std::runtime_error("PaRSEC: Found non-GPU device in GPU ID range!");
    +
    1059  }
    +
    1060  }
    +
    1061 
    +
    1062  /* parse the maximum inline size */
    +
    1063  const char* ttg_max_inline_cstr = std::getenv("TTG_MAX_INLINE");
    +
    1064  if (nullptr != ttg_max_inline_cstr) {
    +
    1065  std::size_t inline_size = std::atol(ttg_max_inline_cstr);
    +
    1066  if (inline_size < detail::max_inline_size) {
    +
    1067  detail::max_inline_size = inline_size;
    +
    1068  }
    +
    1069  }
    +
    1070  }
    +
    1071  inline void ttg_finalize() {
    +
    1072  // We need to notify the current taskpool of termination if we are in user termination detection mode
    +
    1073  // or the parsec_context_wait() in destroy_worlds() will never complete
    + +
    1075  ttg::default_execution_context().impl().final_task();
    +
    1076  ttg::detail::set_default_world(ttg::World{}); // reset the default world
    + +
    1078  ttg::detail::destroy_worlds<ttg_parsec::WorldImpl>();
    +
    1079  if (detail::initialized_mpi()) MPI_Finalize();
    +
    1080  }
    + +
    1082  [[noreturn]]
    +
    1083  inline void ttg_abort() { MPI_Abort(ttg_default_execution_context().impl().comm(), 1); std::abort(); }
    +
    1084  inline void ttg_execute(ttg::World world) { world.impl().execute(); }
    +
    1085  inline void ttg_fence(ttg::World world) { world.impl().fence(); }
    +
    1086 
    +
    1087  template <typename T>
    +
    1088  inline void ttg_register_ptr(ttg::World world, const std::shared_ptr<T> &ptr) {
    +
    1089  world.impl().register_ptr(ptr);
    +
    1090  }
    +
    1091 
    +
    1092  template <typename T>
    +
    1093  inline void ttg_register_ptr(ttg::World world, std::unique_ptr<T> &&ptr) {
    +
    1094  world.impl().register_ptr(std::move(ptr));
    +
    1095  }
    +
    1096 
    +
    1097  inline void ttg_register_status(ttg::World world, const std::shared_ptr<std::promise<void>> &status_ptr) {
    +
    1098  world.impl().register_status(status_ptr);
    +
    1099  }
    +
    1100 
    +
    1101  template <typename Callback>
    +
    1102  inline void ttg_register_callback(ttg::World world, Callback &&callback) {
    +
    1103  world.impl().register_callback(std::forward<Callback>(callback));
    +
    1104  }
    +
    1105 
    +
    1106  inline ttg::Edge<> &ttg_ctl_edge(ttg::World world) { return world.impl().ctl_edge(); }
    +
    1107 
    +
    1108  inline void ttg_sum(ttg::World world, double &value) {
    +
    1109  double result = 0.0;
    +
    1110  MPI_Allreduce(&value, &result, 1, MPI_DOUBLE, MPI_SUM, world.impl().comm());
    +
    1111  value = result;
    +
    1112  }
    +
    1113 
    +
    1114  inline void make_executable_hook(ttg::World& world) {
    +
    1115  MPI_Barrier(world.impl().comm());
    +
    1116  }
    +
    1117 
    +
    1120  template <typename T>
    +
    1121  void ttg_broadcast(::ttg::World world, T &data, int source_rank) {
    +
    1122  int64_t BUFLEN;
    +
    1123  if (world.rank() == source_rank) {
    + +
    1125  }
    +
    1126  MPI_Bcast(&BUFLEN, 1, MPI_INT64_T, source_rank, world.impl().comm());
    +
    1127 
    +
    1128  unsigned char *buf = new unsigned char[BUFLEN];
    +
    1129  if (world.rank() == source_rank) {
    + +
    1131  }
    +
    1132  MPI_Bcast(buf, BUFLEN, MPI_UNSIGNED_CHAR, source_rank, world.impl().comm());
    +
    1133  if (world.rank() != source_rank) {
    + +
    1135  }
    +
    1136  delete[] buf;
    +
    1137  }
    +
    1138 
    +
    1139  namespace detail {
    +
    1140 
    +
    1141  struct ParsecTTBase {
    +
    1142  protected:
    +
    1143  // static std::map<int, ParsecBaseTT*> function_id_to_instance;
    +
    1144  parsec_hash_table_t tasks_table;
    +
    1145  parsec_task_class_t self;
    +
    1146  };
    +
    1147 
    +
    1148  } // namespace detail
    +
    1149 
    +
    1150  template <typename keyT, typename output_terminalsT, typename derivedT, typename input_valueTs>
    + +
    1152  private:
    +
    1154  static_assert(ttg::meta::is_typelist_v<input_valueTs>,
    +
    1155  "The fourth template for ttg::TT must be a ttg::typelist containing the input types");
    +
    1156  // create a virtual control input if the input list is empty, to be used in invoke()
    +
    1157  using actual_input_tuple_type = std::conditional_t<!ttg::meta::typelist_is_empty_v<input_valueTs>,
    + +
    1159  using input_tuple_type = ttg::meta::typelist_to_tuple_t<input_valueTs>;
    +
    1160  static_assert(ttg::meta::is_tuple_v<output_terminalsT>,
    +
    1161  "Second template argument for ttg::TT must be std::tuple containing the output terminal types");
    +
    1162  static_assert((ttg::meta::none_has_reference_v<input_valueTs>), "Input typelist cannot contain reference types");
    +
    1163  static_assert(ttg::meta::is_none_Void_v<input_valueTs>, "ttg::Void is for internal use only, do not use it");
    +
    1164 
    +
    1165  parsec_mempool_t mempools;
    +
    1166 
    +
    1167  // check for a non-type member named have_cuda_op
    +
    1168  template <typename T>
    +
    1169  using have_cuda_op_non_type_t = decltype(T::have_cuda_op);
    +
    1170 
    +
    1171  template <typename T>
    +
    1172  using have_hip_op_non_type_t = decltype(T::have_hip_op);
    +
    1173 
    +
    1174  template <typename T>
    +
    1175  using have_level_zero_op_non_type_t = decltype(T::have_level_zero_op);
    +
    1176 
    +
    1177  bool alive = true;
    +
    1178 
    +
    1179  static constexpr int numinedges = std::tuple_size_v<input_tuple_type>; // number of input edges
    +
    1180  static constexpr int numins = std::tuple_size_v<actual_input_tuple_type>; // number of input arguments
    +
    1181  static constexpr int numouts = std::tuple_size_v<output_terminalsT>; // number of outputs
    +
    1182  static constexpr int numflows = std::max(numins, numouts); // max number of flows
    +
    1183 
    +
    1184  public:
    +
    1186  static constexpr bool derived_has_cuda_op() {
    +
    1187  if constexpr (ttg::meta::is_detected_v<have_cuda_op_non_type_t, derivedT>) {
    +
    1188  return derivedT::have_cuda_op;
    +
    1189  } else {
    +
    1190  return false;
    +
    1191  }
    +
    1192  }
    +
    1193 
    +
    1195  static constexpr bool derived_has_hip_op() {
    +
    1196  if constexpr (ttg::meta::is_detected_v<have_hip_op_non_type_t, derivedT>) {
    +
    1197  return derivedT::have_hip_op;
    +
    1198  } else {
    +
    1199  return false;
    +
    1200  }
    +
    1201  }
    +
    1202 
    +
    1204  static constexpr bool derived_has_level_zero_op() {
    +
    1205  if constexpr (ttg::meta::is_detected_v<have_level_zero_op_non_type_t, derivedT>) {
    +
    1206  return derivedT::have_level_zero_op;
    +
    1207  } else {
    +
    1208  return false;
    +
    1209  }
    +
    1210  }
    +
    1211 
    +
    1213  static constexpr bool derived_has_device_op() {
    + +
    1215  }
    +
    1216 
    +
    1217  using ttT = TT;
    +
    1218  using key_type = keyT;
    + +
    1220  using input_args_type = actual_input_tuple_type;
    + +
    1222  // if have data inputs and (always last) control input, convert last input to Void to make logic easier
    + +
    1224  ttg::meta::void_to_Void_tuple_t<ttg::meta::decayed_typelist_t<actual_input_tuple_type>>;
    + +
    1226  ttg::meta::add_glvalue_reference_tuple_t<ttg::meta::void_to_Void_tuple_t<actual_input_tuple_type>>;
    +
    1227  using input_values_tuple_type = ttg::meta::drop_void_t<ttg::meta::decayed_typelist_t<input_tuple_type>>;
    +
    1228  using input_refs_tuple_type = ttg::meta::drop_void_t<ttg::meta::add_glvalue_reference_tuple_t<input_tuple_type>>;
    +
    1229 
    +
    1230  static constexpr int numinvals =
    +
    1231  std::tuple_size_v<input_refs_tuple_type>; // number of input arguments with values (i.e. omitting the control
    +
    1232  // input, if any)
    +
    1233 
    +
    1234  using output_terminals_type = output_terminalsT;
    + +
    1236 
    +
    1237  template <std::size_t i, typename resultT, typename InTuple>
    +
    1238  static resultT get(InTuple &&intuple) {
    +
    1239  return static_cast<resultT>(std::get<i>(std::forward<InTuple>(intuple)));
    +
    1240  };
    +
    1241  template <std::size_t i, typename InTuple>
    +
    1242  static auto &get(InTuple &&intuple) {
    +
    1243  return std::get<i>(std::forward<InTuple>(intuple));
    +
    1244  };
    +
    1245 
    +
    1246  private:
    +
    1247  using task_t = detail::parsec_ttg_task_t<ttT>;
    +
    1248 
    + +
    1250  friend task_t;
    +
    1251 
    +
    1252  /* the offset of the key placed after the task structure in the memory from mempool */
    +
    1253  constexpr static const size_t task_key_offset = sizeof(task_t);
    +
    1254 
    +
    1255  input_terminals_type input_terminals;
    +
    1256  output_terminalsT output_terminals;
    +
    1257 
    +
    1258  protected:
    +
    1259  const auto &get_output_terminals() const { return output_terminals; }
    +
    1260 
    +
    1261  private:
    +
    1262  template <std::size_t... IS>
    +
    1263  static constexpr auto make_set_args_fcts(std::index_sequence<IS...>) {
    +
    1264  using resultT = decltype(set_arg_from_msg_fcts);
    +
    1265  return resultT{{&TT::set_arg_from_msg<IS>...}};
    +
    1266  }
    +
    1267  constexpr static std::array<void (TT::*)(void *, std::size_t), numins> set_arg_from_msg_fcts =
    +
    1268  make_set_args_fcts(std::make_index_sequence<numins>{});
    +
    1269 
    +
    1270  template <std::size_t... IS>
    +
    1271  static constexpr auto make_set_size_fcts(std::index_sequence<IS...>) {
    +
    1272  using resultT = decltype(set_argstream_size_from_msg_fcts);
    +
    1273  return resultT{{&TT::argstream_set_size_from_msg<IS>...}};
    +
    1274  }
    +
    1275  constexpr static std::array<void (TT::*)(void *, std::size_t), numins> set_argstream_size_from_msg_fcts =
    +
    1276  make_set_size_fcts(std::make_index_sequence<numins>{});
    +
    1277 
    +
    1278  template <std::size_t... IS>
    +
    1279  static constexpr auto make_finalize_argstream_fcts(std::index_sequence<IS...>) {
    +
    1280  using resultT = decltype(finalize_argstream_from_msg_fcts);
    +
    1281  return resultT{{&TT::finalize_argstream_from_msg<IS>...}};
    +
    1282  }
    +
    1283  constexpr static std::array<void (TT::*)(void *, std::size_t), numins> finalize_argstream_from_msg_fcts =
    +
    1284  make_finalize_argstream_fcts(std::make_index_sequence<numins>{});
    +
    1285 
    +
    1286  template <std::size_t... IS>
    +
    1287  static constexpr auto make_get_from_pull_fcts(std::index_sequence<IS...>) {
    +
    1288  using resultT = decltype(get_from_pull_msg_fcts);
    +
    1289  return resultT{{&TT::get_from_pull_msg<IS>...}};
    +
    1290  }
    +
    1291  constexpr static std::array<void (TT::*)(void *, std::size_t), numinedges> get_from_pull_msg_fcts =
    +
    1292  make_get_from_pull_fcts(std::make_index_sequence<numinedges>{});
    +
    1293 
    +
    1294  template<std::size_t... IS>
    +
    1295  constexpr static auto make_input_is_const(std::index_sequence<IS...>) {
    +
    1296  using resultT = decltype(input_is_const);
    +
    1297  return resultT{{std::is_const_v<std::tuple_element_t<IS, input_args_type>>...}};
    +
    1298  }
    +
    1299  constexpr static std::array<bool, numins> input_is_const = make_input_is_const(std::make_index_sequence<numins>{});
    +
    1300 
    +
    1301  ttg::World world;
    +
    1302  ttg::meta::detail::keymap_t<keyT> keymap;
    +
    1303  ttg::meta::detail::keymap_t<keyT> priomap;
    +
    1304  ttg::meta::detail::keymap_t<keyT, ttg::device::Device> devicemap;
    +
    1305  // For now use same type for unary/streaming input terminals, and stream reducers assigned at runtime
    +
    1306  ttg::meta::detail::input_reducers_t<actual_input_tuple_type>
    +
    1307  input_reducers;
    +
    1308  std::array<parsec_task_class_t*, numins> inpute_reducers_taskclass = { nullptr };
    +
    1309  std::array<std::size_t, numins> static_stream_goal = { std::numeric_limits<std::size_t>::max() };
    +
    1310  int num_pullins = 0;
    +
    1311 
    +
    1312  bool m_defer_writer = TTG_PARSEC_DEFER_WRITER;
    +
    1313 
    +
    1314  public:
    +
    1315  ttg::World get_world() const override final { return world; }
    +
    1316 
    +
    1317  private:
    +
    1321  template <ttg::ExecutionSpace Space, typename... Args>
    +
    1322  auto op(Args &&...args) {
    +
    1323  derivedT *derived = static_cast<derivedT *>(this);
    +
    1324  //if constexpr (Space == ttg::ExecutionSpace::Host) {
    +
    1325  using return_type = decltype(derived->op(std::forward<Args>(args)...));
    +
    1326  if constexpr (std::is_same_v<return_type,void>) {
    +
    1327  derived->op(std::forward<Args>(args)...);
    +
    1328  return;
    +
    1329  }
    +
    1330  else {
    +
    1331  return derived->op(std::forward<Args>(args)...);
    +
    1332  }
    +
    1333  }
    +
    1334 
    +
    1335  template <std::size_t i, typename terminalT, typename Key>
    +
    1336  void invoke_pull_terminal(terminalT &in, const Key &key, detail::parsec_ttg_task_base_t *task) {
    +
    1337  if (in.is_pull_terminal) {
    +
    1338  auto owner = in.container.owner(key);
    +
    1339  if (owner != world.rank()) {
    +
    1340  get_pull_terminal_data_from<i>(owner, key);
    +
    1341  } else {
    +
    1342  // push the data to the task
    +
    1343  set_arg<i>(key, (in.container).get(key));
    +
    1344  }
    +
    1345  }
    +
    1346  }
    +
    1347 
    +
    1348  template <std::size_t i, typename Key>
    +
    1349  void get_pull_terminal_data_from(const int owner,
    +
    1350  const Key &key) {
    +
    1351  using msg_t = detail::msg_t;
    +
    1352  auto &world_impl = world.impl();
    +
    1353  parsec_taskpool_t *tp = world_impl.taskpool();
    +
    1354  std::unique_ptr<msg_t> msg = std::make_unique<msg_t>(get_instance_id(), tp->taskpool_id,
    + +
    1356  world.rank(), 1);
    +
    1357  /* pack the key */
    +
    1358  size_t pos = 0;
    +
    1359  pos = pack(key, msg->bytes, pos);
    +
    1360  tp->tdm.module->outgoing_message_start(tp, owner, NULL);
    +
    1361  tp->tdm.module->outgoing_message_pack(tp, owner, NULL, NULL, 0);
    +
    1362  parsec_ce.send_am(&parsec_ce, world_impl.parsec_ttg_tag(), owner, static_cast<void *>(msg.get()),
    +
    1363  sizeof(msg_header_t) + pos);
    +
    1364  }
    +
    1365 
    +
    1366  template <std::size_t... IS, typename Key = keyT>
    +
    1367  void invoke_pull_terminals(std::index_sequence<IS...>, const Key &key, detail::parsec_ttg_task_base_t *task) {
    +
    1368  int junk[] = {0, (invoke_pull_terminal<IS>(
    +
    1369  std::get<IS>(input_terminals), key, task),
    +
    1370  0)...};
    +
    1371  junk[0]++;
    +
    1372  }
    +
    1373 
    +
    1374  template <std::size_t... IS>
    +
    1375  static input_refs_tuple_type make_tuple_of_ref_from_array(task_t *task, std::index_sequence<IS...>) {
    +
    1376  return input_refs_tuple_type{static_cast<std::tuple_element_t<IS, input_refs_tuple_type>>(
    +
    1377  *reinterpret_cast<std::remove_reference_t<std::tuple_element_t<IS, input_refs_tuple_type>> *>(
    +
    1378  task->copies[IS]->get_ptr()))...};
    +
    1379  }
    +
    1380 
    +
    1381 #ifdef TTG_HAVE_DEVICE
    +
    1385  template <ttg::ExecutionSpace Space>
    +
    1386  static int device_static_submit(parsec_device_gpu_module_t *gpu_device,
    +
    1387  parsec_gpu_task_t *gpu_task,
    +
    1388  parsec_gpu_exec_stream_t *gpu_stream) {
    +
    1389 
    +
    1390  task_t *task = (task_t*)gpu_task->ec;
    +
    1391  // get the device task from the coroutine handle
    +
    1392  ttg::device::Task dev_task = ttg::device::detail::device_task_handle_type::from_address(task->suspended_task_address);
    +
    1393 
    +
    1394  task->dev_ptr->stream = gpu_stream;
    +
    1395 
    +
    1396  //std::cout << "device_static_submit task " << task << std::endl;
    +
    1397 
    +
    1398  // get the promise which contains the views
    +
    1399  auto dev_data = dev_task.promise();
    +
    1400 
    +
    1401  /* we should still be waiting for the transfer to complete */
    +
    1402  assert(dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_WAIT_TRANSFER ||
    +
    1403  dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_WAIT_KERNEL);
    +
    1404 
    +
    1405 #if defined(PARSEC_HAVE_DEV_CUDA_SUPPORT) && defined(TTG_HAVE_CUDA)
    +
    1406  {
    +
    1407  parsec_cuda_exec_stream_t *cuda_stream = (parsec_cuda_exec_stream_t *)gpu_stream;
    +
    1408  int device = detail::parsec_device_to_ttg_device(gpu_device->super.device_index);
    +
    1409  ttg::device::detail::set_current(device, cuda_stream->cuda_stream);
    +
    1410  }
    +
    1411 #endif // defined(PARSEC_HAVE_DEV_CUDA_SUPPORT) && defined(TTG_HAVE_CUDA)
    +
    1412 
    +
    1413 #if defined(PARSEC_HAVE_DEV_HIP_SUPPORT) && defined(TTG_HAVE_HIP)
    +
    1414  {
    +
    1415  parsec_hip_exec_stream_t *hip_stream = (parsec_hip_exec_stream_t *)gpu_stream;
    +
    1416  int device = detail::parsec_device_to_ttg_device(gpu_device->super.device_index);
    +
    1417  ttg::device::detail::set_current(device, hip_stream->hip_stream);
    +
    1418  }
    +
    1419 #endif // defined(PARSEC_HAVE_DEV_CUDA_SUPPORT) && defined(TTG_HAVE_CUDA)
    +
    1420 
    +
    1421 #if defined(PARSEC_HAVE_DEV_LEVEL_ZERO_SUPPORT) && defined(TTG_HAVE_LEVEL_ZERO)
    +
    1422  {
    +
    1423  parsec_level_zero_exec_stream_t *stream;
    +
    1424  stream = (parsec_level_zero_exec_stream_t *)gpu_stream;
    +
    1425  int device = detail::parsec_device_to_ttg_device(gpu_device->super.device_index);
    +
    1426  ttg::device::detail::set_current(device, stream->swq->queue);
    +
    1427  }
    +
    1428 #endif // defined(PARSEC_HAVE_DEV_CUDA_SUPPORT) && defined(TTG_HAVE_CUDA)
    +
    1429 
    +
    1430  /* Here we call back into the coroutine again after the transfers have completed */
    +
    1431  static_op<Space>(&task->parsec_task);
    +
    1432 
    +
    1433  ttg::device::detail::reset_current();
    +
    1434 
    +
    1435  /* we will come back into this function once the kernel and transfers are done */
    +
    1436  int rc = PARSEC_HOOK_RETURN_DONE;
    +
    1437  if (nullptr != task->suspended_task_address) {
    +
    1438  /* Get a new handle for the promise*/
    +
    1439  dev_task = ttg::device::detail::device_task_handle_type::from_address(task->suspended_task_address);
    +
    1440  dev_data = dev_task.promise();
    +
    1441 
    +
    1442  assert(dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_WAIT_KERNEL ||
    +
    1443  dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_SENDOUT ||
    +
    1444  dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_COMPLETE);
    +
    1445 
    +
    1446  if (ttg::device::detail::TTG_DEVICE_CORO_SENDOUT == dev_data.state() ||
    +
    1447  ttg::device::detail::TTG_DEVICE_CORO_COMPLETE == dev_data.state()) {
    +
    1448  /* the task started sending so we won't come back here */
    +
    1449  //std::cout << "device_static_submit task " << task << " complete" << std::endl;
    +
    1450  } else {
    +
    1451  //std::cout << "device_static_submit task " << task << " return-again" << std::endl;
    +
    1452  rc = PARSEC_HOOK_RETURN_AGAIN;
    +
    1453  }
    +
    1454  } else {
    +
    1455  /* the task is done so we won't come back here */
    +
    1456  //std::cout << "device_static_submit task " << task << " complete" << std::endl;
    +
    1457  }
    +
    1458  return rc;
    +
    1459  }
    +
    1460 
    +
    1461  static void
    +
    1462  static_device_stage_in(parsec_gpu_task_t *gtask,
    +
    1463  uint32_t flow_mask,
    +
    1464  parsec_gpu_exec_stream_t *gpu_stream) {
    +
    1465  /* register any memory that hasn't been registered yet */
    +
    1466  for (int i = 0; i < MAX_PARAM_COUNT; ++i) {
    +
    1467  if (flow_mask & (1<<i)) {
    +
    1468  task_t *task = (task_t*)gtask->ec;
    +
    1469  parsec_data_copy_t *copy = task->parsec_task.data[i].data_in;
    +
    1470  if (0 == (copy->flags & TTG_PARSEC_DATA_FLAG_REGISTERED)) {
    +
    1471 #if defined(PARSEC_HAVE_DEV_CUDA_SUPPORT)
    +
    1472  // register host memory for faster device access
    +
    1473  cudaError_t status;
    +
    1474  //status = cudaHostRegister(copy->device_private, gtask->flow_nb_elts[i], cudaHostRegisterPortable);
    +
    1475  //assert(cudaSuccess == status);
    +
    1476 #endif // PARSEC_HAVE_DEV_CUDA_SUPPORT
    +
    1477  //copy->flags |= TTG_PARSEC_DATA_FLAG_REGISTERED;
    +
    1478  }
    +
    1479  }
    +
    1480  }
    +
    1481  }
    +
    1482 
    +
    1483  static int
    +
    1484  static_device_stage_in_hook(parsec_gpu_task_t *gtask,
    +
    1485  uint32_t flow_mask,
    +
    1486  parsec_gpu_exec_stream_t *gpu_stream) {
    +
    1487  static_device_stage_in(gtask, flow_mask, gpu_stream);
    +
    1488  return parsec_default_gpu_stage_in(gtask, flow_mask, gpu_stream);
    +
    1489  }
    +
    1490 
    +
    1491  template <ttg::ExecutionSpace Space>
    +
    1492  static parsec_hook_return_t device_static_evaluate(parsec_task_t* parsec_task) {
    +
    1493 
    +
    1494  task_t *task = (task_t*)parsec_task;
    +
    1495  if (task->dev_ptr->gpu_task == nullptr) {
    +
    1496 
    +
    1497  /* set up a device task */
    +
    1498  parsec_gpu_task_t *gpu_task;
    +
    1499  /* PaRSEC wants to free the gpu_task, because F***K ownerships */
    +
    1500  gpu_task = static_cast<parsec_gpu_task_t*>(std::calloc(1, sizeof(*gpu_task)));
    +
    1501  PARSEC_OBJ_CONSTRUCT(gpu_task, parsec_list_item_t);
    +
    1502  gpu_task->ec = parsec_task;
    +
    1503  gpu_task->task_type = 0; // user task
    +
    1504  gpu_task->last_data_check_epoch = -1; // used internally
    +
    1505  gpu_task->pushout = 0;
    +
    1506  gpu_task->submit = &TT::device_static_submit<Space>;
    +
    1507 
    +
    1508  // one way to force the task device
    +
    1509  // currently this will probably break all of PaRSEC if this hint
    +
    1510  // does not match where the data is located, not really useful for us
    +
    1511  // instead we set a hint on the data if there is no hint set yet
    +
    1512  //parsec_task->selected_device = ...;
    +
    1513 
    +
    1514  /* set the gpu_task so it's available in register_device_memory */
    +
    1515  task->dev_ptr->gpu_task = gpu_task;
    +
    1516 
    +
    1517  /* TODO: is this the right place to set the mask? */
    +
    1518  task->parsec_task.chore_mask = PARSEC_DEV_ALL;
    +
    1519 
    +
    1520  /* copy over the task class, because that's what we need */
    +
    1521  task->dev_ptr->task_class = *task->parsec_task.task_class;
    +
    1522 
    +
    1523  // first invocation of the coroutine to get the coroutine handle
    +
    1524  static_op<Space>(parsec_task);
    +
    1525 
    +
    1526  /* when we come back here, the flows in gpu_task are set (see register_device_memory) */
    +
    1527 
    +
    1528  parsec_task_class_t& tc = task->dev_ptr->task_class;
    +
    1529 
    +
    1530  // input flows are set up during register_device_memory as part of the first invocation above
    +
    1531  for (int i = 0; i < MAX_PARAM_COUNT; ++i) {
    +
    1532  tc.in[i] = gpu_task->flow[i];
    +
    1533  tc.out[i] = gpu_task->flow[i];
    +
    1534  }
    +
    1535  tc.nb_flows = MAX_PARAM_COUNT;
    +
    1536 
    +
    1537  /* set the device hint on the data */
    +
    1538  TT *tt = task->tt;
    +
    1539  if (tt->devicemap) {
    +
    1540  int parsec_dev;
    +
    1541  if constexpr (std::is_void_v<keyT>) {
    +
    1542  parsec_dev = detail::ttg_device_to_parsec_device(tt->devicemap());
    +
    1543  } else {
    +
    1544  parsec_dev = detail::ttg_device_to_parsec_device(tt->devicemap(task->key));
    +
    1545  }
    +
    1546  for (int i = 0; i < MAX_PARAM_COUNT; ++i) {
    +
    1547  /* only set on mutable data since we have exclusive access */
    +
    1548  if (tc.in[i]->flow_flags & PARSEC_FLOW_ACCESS_WRITE) {
    +
    1549  parsec_data_t *data = parsec_task->data[i].data_in->original;
    +
    1550  /* only set the preferred device if the host has the latest copy
    +
    1551  * as otherwise we may end up with the wrong data if there is a newer
    +
    1552  * version on a different device. Also, keep fingers crossed. */
    +
    1553  if (data->owner_device == 0) {
    +
    1554  parsec_advise_data_on_device(data, parsec_dev, PARSEC_DEV_DATA_ADVICE_PREFERRED_DEVICE);
    +
    1555  }
    +
    1556  }
    +
    1557  }
    +
    1558  }
    +
    1559 
    +
    1560  /* set the new task class that contains the flows */
    +
    1561  task->parsec_task.task_class = &task->dev_ptr->task_class;
    +
    1562 
    +
    1563  /* select this one */
    +
    1564  return PARSEC_HOOK_RETURN_DONE;
    +
    1565  }
    +
    1566 
    +
    1567  std::cerr << "EVALUATE called on task with assigned GPU task!" << std::endl;
    +
    1568 
    +
    1569  /* not sure if this might happen*/
    +
    1570  return PARSEC_HOOK_RETURN_ERROR;
    +
    1571 
    +
    1572  }
    +
    1573 
    +
    1574  template <ttg::ExecutionSpace Space>
    +
    1575  static parsec_hook_return_t device_static_op(parsec_task_t* parsec_task) {
    +
    1576  static_assert(derived_has_device_op());
    +
    1577 
    +
    1578  /* when we come in here we have a device assigned and are ready to go */
    +
    1579 
    +
    1580  task_t *task = (task_t*)parsec_task;
    +
    1581 
    +
    1582  if (nullptr == task->suspended_task_address) {
    +
    1583  /* short-cut in case the task returned immediately */
    +
    1584  return PARSEC_HOOK_RETURN_DONE;
    +
    1585  }
    +
    1586 
    +
    1587  // get the device task from the coroutine handle
    +
    1588  auto dev_task = ttg::device::detail::device_task_handle_type::from_address(task->suspended_task_address);
    +
    1589 
    +
    1590  // get the promise which contains the views
    +
    1591  ttg::device::detail::device_task_promise_type& dev_data = dev_task.promise();
    +
    1592 
    +
    1593  /* for now make sure we're waiting for transfers and the coro hasn't skipped this step */
    +
    1594  assert(dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_WAIT_TRANSFER);
    +
    1595 
    +
    1596  parsec_device_gpu_module_t *device = (parsec_device_gpu_module_t*)task->parsec_task.selected_device;
    +
    1597  assert(NULL != device);
    +
    1598 
    +
    1599  task->dev_ptr->device = device;
    +
    1600  parsec_gpu_task_t *gpu_task = task->dev_ptr->gpu_task;
    +
    1601  parsec_execution_stream_s *es = task->tt->world.impl().execution_stream();
    +
    1602 
    +
    1603  switch(device->super.type) {
    +
    1604 
    +
    1605 #if defined(PARSEC_HAVE_DEV_CUDA_SUPPORT)
    +
    1606  case PARSEC_DEV_CUDA:
    +
    1607  if constexpr (Space == ttg::ExecutionSpace::CUDA) {
    +
    1608  /* TODO: we need custom staging functions because PaRSEC looks at the
    +
    1609  * task-class to determine the number of flows. */
    +
    1610  gpu_task->stage_in = static_device_stage_in_hook;
    +
    1611  gpu_task->stage_out = parsec_default_gpu_stage_out;
    +
    1612  return parsec_device_kernel_scheduler(&device->super, es, gpu_task);
    +
    1613  }
    +
    1614  break;
    +
    1615 #endif
    +
    1616 #if defined(PARSEC_HAVE_DEV_HIP_SUPPORT)
    +
    1617  case PARSEC_DEV_HIP:
    +
    1618  if constexpr (Space == ttg::ExecutionSpace::HIP) {
    +
    1619  gpu_task->stage_in = static_device_stage_in_hook;
    +
    1620  gpu_task->stage_out = parsec_default_gpu_stage_out;
    +
    1621  return parsec_device_kernel_scheduler(&device->super, es, gpu_task);
    +
    1622  }
    +
    1623  break;
    +
    1624 #endif // PARSEC_HAVE_DEV_HIP_SUPPORT
    +
    1625 #if defined(PARSEC_HAVE_DEV_LEVEL_ZERO_SUPPORT)
    +
    1626  case PARSEC_DEV_LEVEL_ZERO:
    +
    1627  if constexpr (Space == ttg::ExecutionSpace::L0) {
    +
    1628  gpu_task->stage_in = static_device_stage_in_hook;
    +
    1629  gpu_task->stage_out = parsec_default_gpu_stage_out;
    +
    1630  return parsec_device_kernel_scheduler(&device->super, es, gpu_task);
    +
    1631  }
    +
    1632  break;
    +
    1633 #endif // PARSEC_HAVE_DEV_LEVEL_ZERO_SUPPORT
    +
    1634  default:
    +
    1635  break;
    +
    1636  }
    +
    1637  ttg::print_error(task->tt->get_name(), " : received mismatching device type ", (int)device->super.type, " from PaRSEC");
    +
    1638  ttg::abort();
    +
    1639  return PARSEC_HOOK_RETURN_DONE; // will not be reacehed
    +
    1640  }
    +
    1641 #endif // TTG_HAVE_DEVICE
    +
    1642 
    +
    1643  template <ttg::ExecutionSpace Space>
    +
    1644  static parsec_hook_return_t static_op(parsec_task_t *parsec_task) {
    +
    1645 
    +
    1646  task_t *task = (task_t*)parsec_task;
    +
    1647  void* suspended_task_address =
    +
    1648 #ifdef TTG_HAVE_COROUTINE
    +
    1649  task->suspended_task_address; // non-null = need to resume the task
    +
    1650 #else // TTG_HAVE_COROUTINE
    +
    1651  nullptr;
    +
    1652 #endif // TTG_HAVE_COROUTINE
    +
    1653  //std::cout << "static_op: suspended_task_address " << suspended_task_address << std::endl;
    +
    1654  if (suspended_task_address == nullptr) { // task is a coroutine that has not started or an ordinary function
    +
    1655 
    +
    1656  ttT *baseobj = task->tt;
    +
    1657  derivedT *obj = static_cast<derivedT *>(baseobj);
    +
    1658  assert(detail::parsec_ttg_caller == nullptr);
    +
    1659  detail::parsec_ttg_caller = static_cast<detail::parsec_ttg_task_base_t*>(task);
    +
    1660  if (obj->tracing()) {
    +
    1661  if constexpr (!ttg::meta::is_void_v<keyT>)
    +
    1662  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : ", task->key, ": executing");
    +
    1663  else
    +
    1664  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : executing");
    +
    1665  }
    +
    1666 
    +
    1667  if constexpr (!ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    1668  auto input = make_tuple_of_ref_from_array(task, std::make_index_sequence<numinvals>{});
    +
    1669  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, task->coroutine_id, baseobj->template op<Space>(task->key, std::move(input), obj->output_terminals));
    +
    1670  } else if constexpr (!ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    1671  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, task->coroutine_id, baseobj->template op<Space>(task->key, obj->output_terminals));
    +
    1672  } else if constexpr (ttg::meta::is_void_v<keyT> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    1673  auto input = make_tuple_of_ref_from_array(task, std::make_index_sequence<numinvals>{});
    +
    1674  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, task->coroutine_id, baseobj->template op<Space>(std::move(input), obj->output_terminals));
    +
    1675  } else if constexpr (ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>) {
    +
    1676  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, task->coroutine_id, baseobj->template op<Space>(obj->output_terminals));
    +
    1677  } else {
    +
    1678  ttg::abort();
    +
    1679  }
    +
    1680  detail::parsec_ttg_caller = nullptr;
    +
    1681  }
    +
    1682  else { // resume the suspended coroutine
    +
    1683 
    +
    1684 #ifdef TTG_HAVE_COROUTINE
    +
    1685  assert(task->coroutine_id != ttg::TaskCoroutineID::Invalid);
    +
    1686 
    +
    1687 #ifdef TTG_HAVE_DEVICE
    +
    1688  if (task->coroutine_id == ttg::TaskCoroutineID::DeviceTask) {
    +
    1689  ttg::device::Task coro = ttg::device::detail::device_task_handle_type::from_address(suspended_task_address);
    +
    1690  assert(detail::parsec_ttg_caller == nullptr);
    +
    1691  detail::parsec_ttg_caller = static_cast<detail::parsec_ttg_task_base_t*>(task);
    +
    1692  // TODO: unify the outputs tls handling
    +
    1693  auto old_output_tls_ptr = task->tt->outputs_tls_ptr_accessor();
    +
    1694  task->tt->set_outputs_tls_ptr();
    +
    1695  coro.resume();
    +
    1696  if (coro.completed()) {
    +
    1697  coro.destroy();
    +
    1698  suspended_task_address = nullptr;
    +
    1699  }
    +
    1700  task->tt->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    1701  detail::parsec_ttg_caller = nullptr;
    +
    1702  } else
    +
    1703 #endif // TTG_HAVE_DEVICE
    +
    1704  if (task->coroutine_id == ttg::TaskCoroutineID::ResumableTask) {
    +
    1705  auto ret = static_cast<ttg::resumable_task>(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address));
    +
    1706  assert(ret.ready());
    +
    1707  auto old_output_tls_ptr = task->tt->outputs_tls_ptr_accessor();
    +
    1708  task->tt->set_outputs_tls_ptr();
    +
    1709  ret.resume();
    +
    1710  if (ret.completed()) {
    +
    1711  ret.destroy();
    +
    1712  suspended_task_address = nullptr;
    +
    1713  }
    +
    1714  else { // not yet completed
    +
    1715  // leave suspended_task_address as is
    +
    1716 
    +
    1717  // right now can events are not properly implemented, we are only testing the workflow with dummy events
    +
    1718  // so mark the events finished manually, parsec will rerun this task again and it should complete the second time
    +
    1719  auto events = static_cast<ttg::resumable_task>(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address)).events();
    +
    1720  for (auto &event_ptr : events) {
    +
    1721  event_ptr->finish();
    +
    1722  }
    +
    1723  assert(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address).promise().ready());
    +
    1724  }
    +
    1725  task->tt->set_outputs_tls_ptr(old_output_tls_ptr);
    +
    1726  detail::parsec_ttg_caller = nullptr;
    +
    1727  task->suspended_task_address = suspended_task_address;
    +
    1728  }
    +
    1729  else
    +
    1730  ttg::abort(); // unrecognized task id
    +
    1731 #else // TTG_HAVE_COROUTINE
    +
    1732  ttg::abort(); // should not happen
    +
    1733 #endif // TTG_HAVE_COROUTINE
    +
    1734  }
    +
    1735 #ifdef TTG_HAVE_COROUTINE
    +
    1736  task->suspended_task_address = suspended_task_address;
    +
    1737 #endif // TTG_HAVE_COROUTINE
    +
    1738  if (suspended_task_address == nullptr) {
    +
    1739  ttT *baseobj = task->tt;
    +
    1740  derivedT *obj = static_cast<derivedT *>(baseobj);
    +
    1741  if (obj->tracing()) {
    +
    1742  if constexpr (!ttg::meta::is_void_v<keyT>)
    +
    1743  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : ", task->key, ": done executing");
    +
    1744  else
    +
    1745  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : done executing");
    +
    1746  }
    +
    1747  }
    +
    1748 
    +
    1749  return PARSEC_HOOK_RETURN_DONE;
    +
    1750  }
    +
    1751 
    +
    1752  template <ttg::ExecutionSpace Space>
    +
    1753  static parsec_hook_return_t static_op_noarg(parsec_task_t *parsec_task) {
    +
    1754  task_t *task = static_cast<task_t*>(parsec_task);
    +
    1755 
    +
    1756  void* suspended_task_address =
    +
    1757 #ifdef TTG_HAVE_COROUTINE
    +
    1758  task->suspended_task_address; // non-null = need to resume the task
    +
    1759 #else // TTG_HAVE_COROUTINE
    +
    1760  nullptr;
    +
    1761 #endif // TTG_HAVE_COROUTINE
    +
    1762  if (suspended_task_address == nullptr) { // task is a coroutine that has not started or an ordinary function
    +
    1763  ttT *baseobj = (ttT *)task->object_ptr;
    +
    1764  derivedT *obj = (derivedT *)task->object_ptr;
    +
    1765  assert(detail::parsec_ttg_caller == NULL);
    + +
    1767  if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    1768  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, task->coroutine_id, baseobj->template op<Space>(task->key, obj->output_terminals));
    +
    1769  } else if constexpr (ttg::meta::is_void_v<keyT>) {
    +
    1770  TTG_PROCESS_TT_OP_RETURN(suspended_task_address, task->coroutine_id, baseobj->template op<Space>(obj->output_terminals));
    +
    1771  } else // unreachable
    +
    1772  ttg:: abort();
    + +
    1774  }
    +
    1775  else {
    +
    1776 #ifdef TTG_HAVE_COROUTINE
    +
    1777  auto ret = static_cast<ttg::resumable_task>(ttg::coroutine_handle<ttg::resumable_task_state>::from_address(suspended_task_address));
    +
    1778  assert(ret.ready());
    +
    1779  ret.resume();
    +
    1780  if (ret.completed()) {
    +
    1781  ret.destroy();
    +
    1782  suspended_task_address = nullptr;
    +
    1783  }
    +
    1784  else { // not yet completed
    +
    1785  // leave suspended_task_address as is
    +
    1786  }
    +
    1787 #else // TTG_HAVE_COROUTINE
    +
    1788  ttg::abort(); // should not happen
    +
    1789 #endif // TTG_HAVE_COROUTINE
    +
    1790  }
    +
    1791  task->suspended_task_address = suspended_task_address;
    +
    1792 
    +
    1793  if (suspended_task_address) {
    +
    1794  ttg::abort(); // not yet implemented
    +
    1795  // see comments in static_op()
    +
    1796  return PARSEC_HOOK_RETURN_AGAIN;
    +
    1797  }
    +
    1798  else
    +
    1799  return PARSEC_HOOK_RETURN_DONE;
    +
    1800  }
    +
    1801 
    +
    1802  template <std::size_t i>
    +
    1803  static parsec_hook_return_t static_reducer_op(parsec_execution_stream_s *es, parsec_task_t *parsec_task) {
    +
    1804  using rtask_t = detail::reducer_task_t;
    +
    1805  using value_t = std::tuple_element_t<i, actual_input_tuple_type>;
    +
    1806  constexpr const bool val_is_void = ttg::meta::is_void_v<value_t>;
    +
    1807  constexpr const bool input_is_const = std::is_const_v<value_t>;
    +
    1808  rtask_t *rtask = (rtask_t*)parsec_task;
    +
    1809  task_t *parent_task = static_cast<task_t*>(rtask->parent_task);
    +
    1810  ttT *baseobj = parent_task->tt;
    +
    1811  derivedT *obj = static_cast<derivedT *>(baseobj);
    +
    1812 
    +
    1813  auto& reducer = std::get<i>(baseobj->input_reducers);
    +
    1814 
    +
    1815  //std::cout << "static_reducer_op " << parent_task->key << std::endl;
    +
    1816 
    +
    1817  if (obj->tracing()) {
    +
    1818  if constexpr (!ttg::meta::is_void_v<keyT>)
    +
    1819  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : ", parent_task->key, ": reducer executing");
    +
    1820  else
    +
    1821  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : reducer executing");
    +
    1822  }
    +
    1823 
    +
    1824  /* the copy to reduce into */
    +
    1825  detail::ttg_data_copy_t *target_copy;
    +
    1826  target_copy = parent_task->copies[i];
    +
    1827  assert(val_is_void || nullptr != target_copy);
    +
    1828  /* once we hit 0 we have to stop since another thread might enqueue a new reduction task */
    +
    1829  std::size_t c = 0;
    +
    1830  std::size_t size = 0;
    +
    1831  assert(parent_task->streams[i].reduce_count > 0);
    +
    1832  if (rtask->is_first) {
    +
    1833  if (0 == (parent_task->streams[i].reduce_count.fetch_sub(1, std::memory_order_acq_rel)-1)) {
    +
    1834  /* we were the first and there is nothing to be done */
    +
    1835  if (obj->tracing()) {
    +
    1836  if constexpr (!ttg::meta::is_void_v<keyT>)
    +
    1837  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : ", parent_task->key, ": first reducer empty");
    +
    1838  else
    +
    1839  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : first reducer empty");
    +
    1840  }
    +
    1841 
    +
    1842  return PARSEC_HOOK_RETURN_DONE;
    +
    1843  }
    +
    1844  }
    +
    1845 
    +
    1846  assert(detail::parsec_ttg_caller == NULL);
    +
    1847  detail::parsec_ttg_caller = rtask->parent_task;
    +
    1848 
    +
    1849  do {
    +
    1850  if constexpr(!val_is_void) {
    +
    1851  /* the copies to reduce out of */
    +
    1852  detail::ttg_data_copy_t *source_copy;
    +
    1853  parsec_list_item_t *item;
    +
    1854  item = parsec_lifo_pop(&parent_task->streams[i].reduce_copies);
    +
    1855  if (nullptr == item) {
    +
    1856  // maybe someone is changing the goal right now
    +
    1857  break;
    +
    1858  }
    +
    1859  source_copy = ((detail::ttg_data_copy_self_t *)(item))->self;
    +
    1860  assert(target_copy->num_readers() == target_copy->mutable_tag);
    +
    1861  assert(source_copy->num_readers() > 0);
    +
    1862  reducer(*reinterpret_cast<std::decay_t<value_t> *>(target_copy->get_ptr()),
    +
    1863  *reinterpret_cast<std::decay_t<value_t> *>(source_copy->get_ptr()));
    +
    1864  detail::release_data_copy(source_copy);
    +
    1865  } else if constexpr(val_is_void) {
    +
    1866  reducer(); // invoke control reducer
    +
    1867  }
    +
    1868  // there is only one task working on this stream, so no need to be atomic here
    +
    1869  size = ++parent_task->streams[i].size;
    +
    1870  //std::cout << "static_reducer_op size " << size << " of " << parent_task->streams[i].goal << std::endl;
    +
    1871  } while ((c = (parent_task->streams[i].reduce_count.fetch_sub(1, std::memory_order_acq_rel)-1)) > 0);
    +
    1872  //} while ((c = (--task->streams[i].reduce_count)) > 0);
    +
    1873 
    +
    1874  /* finalize_argstream sets goal to 1, so size may be larger than goal */
    +
    1875  bool complete = (size >= parent_task->streams[i].goal);
    +
    1876 
    +
    1877  //std::cout << "static_reducer_op size " << size
    +
    1878  // << " of " << parent_task->streams[i].goal << " complete " << complete
    +
    1879  // << " c " << c << std::endl;
    +
    1880  if (complete && c == 0) {
    +
    1881  if constexpr(input_is_const) {
    +
    1882  /* make the consumer task a reader if its input is const */
    +
    1883  target_copy->reset_readers();
    +
    1884  }
    +
    1885  /* task may not be runnable yet because other inputs are missing, have release_task decide */
    +
    1886  parent_task->remove_from_hash = true;
    +
    1887  parent_task->release_task(parent_task);
    +
    1888  }
    +
    1889 
    + +
    1891 
    +
    1892  if (obj->tracing()) {
    +
    1893  if constexpr (!ttg::meta::is_void_v<keyT>)
    +
    1894  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : ", parent_task->key, ": done executing");
    +
    1895  else
    +
    1896  ttg::trace(obj->get_world().rank(), ":", obj->get_name(), " : done executing");
    +
    1897  }
    +
    1898 
    +
    1899  return PARSEC_HOOK_RETURN_DONE;
    +
    1900  }
    +
    1901 
    +
    1902 
    +
    1903  protected:
    +
    1904  template <typename T>
    +
    1905  uint64_t unpack(T &obj, void *_bytes, uint64_t pos) {
    + +
    1907  uint64_t payload_size;
    +
    1908  if constexpr (!dd_t::serialize_size_is_const) {
    +
    1909  pos = ttg::default_data_descriptor<uint64_t>::unpack_payload(&payload_size, sizeof(uint64_t), pos, _bytes);
    +
    1910  } else {
    +
    1911  payload_size = dd_t::payload_size(&obj);
    +
    1912  }
    +
    1913  pos = dd_t::unpack_payload(&obj, payload_size, pos, _bytes);
    +
    1914  return pos;
    +
    1915  }
    +
    1916 
    +
    1917  template <typename T>
    +
    1918  uint64_t pack(T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy = nullptr) {
    + +
    1920  uint64_t payload_size = dd_t::payload_size(&obj);
    +
    1921  if (copy) {
    +
    1922  /* reset any tracked data, we don't care about the packing from the payload size */
    +
    1923  copy->iovec_reset();
    +
    1924  }
    +
    1925 
    +
    1926  if constexpr (!dd_t::serialize_size_is_const) {
    +
    1927  pos = ttg::default_data_descriptor<uint64_t>::pack_payload(&payload_size, sizeof(uint64_t), pos, bytes);
    +
    1928  }
    +
    1929  pos = dd_t::pack_payload(&obj, payload_size, pos, bytes);
    +
    1930  return pos;
    +
    1931  }
    +
    1932 
    +
    1933  static void static_set_arg(void *data, std::size_t size, ttg::TTBase *bop) {
    +
    1934  assert(size >= sizeof(msg_header_t) &&
    +
    1935  "Trying to unpack as message that does not hold enough bytes to represent a single header");
    +
    1936  msg_header_t *hd = static_cast<msg_header_t *>(data);
    +
    1937  derivedT *obj = reinterpret_cast<derivedT *>(bop);
    +
    1938  switch (hd->fn_id) {
    + +
    1940  if (0 <= hd->param_id) {
    +
    1941  assert(hd->param_id >= 0);
    +
    1942  assert(hd->param_id < obj->set_arg_from_msg_fcts.size());
    +
    1943  auto member = obj->set_arg_from_msg_fcts[hd->param_id];
    +
    1944  (obj->*member)(data, size);
    +
    1945  } else {
    +
    1946  // there is no good reason to have negative param ids
    +
    1947  ttg::abort();
    +
    1948  }
    +
    1949  break;
    +
    1950  }
    + +
    1952  assert(hd->param_id >= 0);
    +
    1953  assert(hd->param_id < obj->set_argstream_size_from_msg_fcts.size());
    +
    1954  auto member = obj->set_argstream_size_from_msg_fcts[hd->param_id];
    +
    1955  (obj->*member)(data, size);
    +
    1956  break;
    +
    1957  }
    + +
    1959  assert(hd->param_id >= 0);
    +
    1960  assert(hd->param_id < obj->finalize_argstream_from_msg_fcts.size());
    +
    1961  auto member = obj->finalize_argstream_from_msg_fcts[hd->param_id];
    +
    1962  (obj->*member)(data, size);
    +
    1963  break;
    +
    1964  }
    + +
    1966  assert(hd->param_id >= 0);
    +
    1967  assert(hd->param_id < obj->get_from_pull_msg_fcts.size());
    +
    1968  auto member = obj->get_from_pull_msg_fcts[hd->param_id];
    +
    1969  (obj->*member)(data, size);
    +
    1970  break;
    +
    1971  }
    +
    1972  default:
    +
    1973  ttg::abort();
    +
    1974  }
    +
    1975  }
    +
    1976 
    +
    1978  inline parsec_thread_mempool_t *get_task_mempool(void) {
    +
    1979  auto &world_impl = world.impl();
    +
    1980  parsec_execution_stream_s *es = world_impl.execution_stream();
    +
    1981  int index = (es->virtual_process->vp_id * es->virtual_process->nb_cores + es->th_id);
    +
    1982  return &mempools.thread_mempools[index];
    +
    1983  }
    +
    1984 
    +
    1985  template <size_t i, typename valueT>
    +
    1986  void set_arg_from_msg_keylist(ttg::span<keyT> &&keylist, detail::ttg_data_copy_t *copy) {
    +
    1987  /* create a dummy task that holds the copy, which can be reused by others */
    +
    1988  task_t *dummy;
    +
    1989  parsec_execution_stream_s *es = world.impl().execution_stream();
    +
    1990  parsec_thread_mempool_t *mempool = get_task_mempool();
    +
    1991  dummy = new (parsec_thread_mempool_allocate(mempool)) task_t(mempool, &this->self);
    +
    1992  dummy->set_dummy(true);
    +
    1993  // TODO: do we need to copy static_stream_goal in dummy?
    +
    1994 
    +
    1995  /* set the received value as the dummy's only data */
    +
    1996  dummy->copies[0] = copy;
    +
    1997 
    +
    1998  /* We received the task on this world, so it's using the same taskpool */
    +
    1999  dummy->parsec_task.taskpool = world.impl().taskpool();
    +
    2000 
    +
    2001  /* save the current task and set the dummy task */
    +
    2002  auto parsec_ttg_caller_save = detail::parsec_ttg_caller;
    +
    2003  detail::parsec_ttg_caller = dummy;
    +
    2004 
    +
    2005  /* iterate over the keys and have them use the copy we made */
    +
    2006  parsec_task_t *task_ring = nullptr;
    +
    2007  for (auto &&key : keylist) {
    +
    2008  set_arg_local_impl<i>(key, *reinterpret_cast<valueT *>(copy->get_ptr()), copy, &task_ring);
    +
    2009  }
    +
    2010 
    +
    2011  if (nullptr != task_ring) {
    +
    2012  auto &world_impl = world.impl();
    +
    2013  parsec_task_t *vp_task_ring[1] = { task_ring };
    +
    2014  __parsec_schedule_vp(world_impl.execution_stream(), vp_task_ring, 0);
    +
    2015  }
    +
    2016 
    +
    2017  /* restore the previous task */
    +
    2018  detail::parsec_ttg_caller = parsec_ttg_caller_save;
    +
    2019 
    +
    2020  /* release the dummy task */
    +
    2021  complete_task_and_release(es, &dummy->parsec_task);
    +
    2022  parsec_thread_mempool_free(mempool, &dummy->parsec_task);
    +
    2023  }
    +
    2024 
    +
    2025  // there are 6 types of set_arg:
    +
    2026  // - case 1: nonvoid Key, complete Value type
    +
    2027  // - case 2: nonvoid Key, void Value, mixed (data+control) inputs
    +
    2028  // - case 3: nonvoid Key, void Value, no inputs
    +
    2029  // - case 4: void Key, complete Value type
    +
    2030  // - case 5: void Key, void Value, mixed (data+control) inputs
    +
    2031  // - case 6: void Key, void Value, no inputs
    +
    2032  // implementation of these will be further split into "local-only" and global+local
    +
    2033 
    +
    2034  template <std::size_t i>
    +
    2035  void set_arg_from_msg(void *data, std::size_t size) {
    +
    2036  using valueT = std::tuple_element_t<i, actual_input_tuple_type>;
    +
    2037  using msg_t = detail::msg_t;
    +
    2038  msg_t *msg = static_cast<msg_t *>(data);
    +
    2039  if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    2040  /* unpack the keys */
    +
    2041  /* TODO: can we avoid copying all the keys?! */
    +
    2042  uint64_t pos = msg->tt_id.key_offset;
    +
    2043  uint64_t key_end_pos;
    +
    2044  std::vector<keyT> keylist;
    +
    2045  int num_keys = msg->tt_id.num_keys;
    +
    2046  keylist.reserve(num_keys);
    +
    2047  auto rank = world.rank();
    +
    2048  for (int k = 0; k < num_keys; ++k) {
    +
    2049  keyT key;
    +
    2050  pos = unpack(key, msg->bytes, pos);
    +
    2051  assert(keymap(key) == rank);
    +
    2052  keylist.push_back(std::move(key));
    +
    2053  }
    +
    2054  key_end_pos = pos;
    +
    2055  /* jump back to the beginning of the message to get the value */
    +
    2056  pos = 0;
    +
    2057  // case 1
    +
    2058  if constexpr (!ttg::meta::is_void_v<valueT>) {
    +
    2059  using decvalueT = std::decay_t<valueT>;
    +
    2060  int32_t num_iovecs = msg->tt_id.num_iovecs;
    +
    2061  //bool inline_data = msg->inline_data;
    + + + +
    2065  using metadata_t = decltype(descr.get_metadata(std::declval<decvalueT>()));
    +
    2066 
    +
    2067  /* unpack the metadata */
    +
    2068  metadata_t metadata;
    +
    2069  pos = unpack(metadata, msg->bytes, pos);
    +
    2070 
    +
    2071  //std::cout << "set_arg_from_msg splitmd num_iovecs " << num_iovecs << std::endl;
    +
    2072 
    +
    2073  copy = detail::create_new_datacopy(descr.create_from_metadata(metadata));
    +
    2074  } else if constexpr (!ttg::has_split_metadata<decvalueT>::value) {
    +
    2075  copy = detail::create_new_datacopy(decvalueT{});
    +
    2076 #if 0
    +
    2077  // TODO: first attempt at sending directly to the device
    +
    2078  parsec_gpu_data_copy_t* gpu_elem;
    +
    2079  gpu_elem = PARSEC_DATA_GET_COPY(master, gpu_device->super.device_index);
    +
    2080  int i = detail::first_device_id;
    +
    2081  int devid = detail::first_device_id;
    +
    2082  while (i < parsec_nb_devices) {
    +
    2083  if (nullptr == gpu_elem) {
    +
    2084  gpu_elem = PARSEC_OBJ_NEW(parsec_data_copy_t);
    +
    2085  gpu_elem->flags = PARSEC_DATA_FLAG_PARSEC_OWNED | PARSEC_DATA_FLAG_PARSEC_MANAGED;
    +
    2086  gpu_elem->coherency_state = PARSEC_DATA_COHERENCY_INVALID;
    +
    2087  gpu_elem->version = 0;
    +
    2088  gpu_elem->coherency_state = PARSEC_DATA_COHERENCY_OWNED;
    +
    2089  }
    +
    2090  if (nullptr == gpu_elem->device_private) {
    +
    2091  gpu_elem->device_private = zone_malloc(gpu_device->memory, gpu_task->flow_nb_elts[i]);
    +
    2092  if (nullptr == gpu_elem->device_private) {
    +
    2093  devid++;
    +
    2094  continue;
    +
    2095  }
    +
    2096  break;
    +
    2097  }
    +
    2098  }
    +
    2099 #endif // 0
    +
    2100  /* unpack the object, potentially discovering iovecs */
    +
    2101  pos = unpack(*static_cast<decvalueT *>(copy->get_ptr()), msg->bytes, pos);
    +
    2102  //std::cout << "set_arg_from_msg iovec_begin num_iovecs " << num_iovecs << " distance " << std::distance(copy->iovec_begin(), copy->iovec_end()) << std::endl;
    +
    2103  assert(std::distance(copy->iovec_begin(), copy->iovec_end()) == num_iovecs);
    +
    2104  }
    +
    2105 
    +
    2106  if (num_iovecs == 0) {
    +
    2107  set_arg_from_msg_keylist<i, decvalueT>(ttg::span<keyT>(&keylist[0], num_keys), copy);
    +
    2108  } else {
    +
    2109  /* unpack the header and start the RMA transfers */
    +
    2110 
    +
    2111  /* get the remote rank */
    +
    2112  int remote = msg->tt_id.sender;
    +
    2113  assert(remote < world.size());
    +
    2114 
    +
    2115  auto &val = *static_cast<decvalueT *>(copy->get_ptr());
    +
    2116 
    +
    2117  bool inline_data = msg->tt_id.inline_data;
    +
    2118 
    +
    2119  int nv = 0;
    +
    2120  /* start the RMA transfers */
    +
    2121  auto handle_iovecs_fn =
    +
    2122  [&](auto&& iovecs) {
    +
    2123 
    +
    2124  if (inline_data) {
    +
    2125  /* unpack the data from the message */
    +
    2126  for (auto &&iov : iovecs) {
    +
    2127  ++nv;
    +
    2128  std::memcpy(iov.data, msg->bytes + pos, iov.num_bytes);
    +
    2129  pos += iov.num_bytes;
    +
    2130  }
    +
    2131  } else {
    +
    2132  /* extract the callback tag */
    +
    2133  parsec_ce_tag_t cbtag;
    +
    2134  std::memcpy(&cbtag, msg->bytes + pos, sizeof(cbtag));
    +
    2135  pos += sizeof(cbtag);
    +
    2136 
    +
    2137  /* create the value from the metadata */
    +
    2138  auto activation = new detail::rma_delayed_activate(
    +
    2139  std::move(keylist), copy, num_iovecs, [this](std::vector<keyT> &&keylist, detail::ttg_data_copy_t *copy) {
    +
    2140  set_arg_from_msg_keylist<i, decvalueT>(keylist, copy);
    +
    2141  this->world.impl().decrement_inflight_msg();
    +
    2142  });
    +
    2143 
    +
    2144  using ActivationT = std::decay_t<decltype(*activation)>;
    +
    2145 
    +
    2146  for (auto &&iov : iovecs) {
    +
    2147  ++nv;
    +
    2148  parsec_ce_mem_reg_handle_t rreg;
    +
    2149  int32_t rreg_size_i;
    +
    2150  std::memcpy(&rreg_size_i, msg->bytes + pos, sizeof(rreg_size_i));
    +
    2151  pos += sizeof(rreg_size_i);
    +
    2152  rreg = static_cast<parsec_ce_mem_reg_handle_t>(msg->bytes + pos);
    +
    2153  pos += rreg_size_i;
    +
    2154  // std::intptr_t *fn_ptr = reinterpret_cast<std::intptr_t *>(msg->bytes + pos);
    +
    2155  // pos += sizeof(*fn_ptr);
    +
    2156  std::intptr_t fn_ptr;
    +
    2157  std::memcpy(&fn_ptr, msg->bytes + pos, sizeof(fn_ptr));
    +
    2158  pos += sizeof(fn_ptr);
    +
    2159 
    +
    2160  /* register the local memory */
    +
    2161  parsec_ce_mem_reg_handle_t lreg;
    +
    2162  size_t lreg_size;
    +
    2163  parsec_ce.mem_register(iov.data, PARSEC_MEM_TYPE_NONCONTIGUOUS, iov.num_bytes, parsec_datatype_int8_t,
    +
    2164  iov.num_bytes, &lreg, &lreg_size);
    +
    2165  world.impl().increment_inflight_msg();
    +
    2166  /* TODO: PaRSEC should treat the remote callback as a tag, not a function pointer! */
    +
    2167  //std::cout << "set_arg_from_msg: get rreg " << rreg << " remote " << remote << std::endl;
    +
    2168  parsec_ce.get(&parsec_ce, lreg, 0, rreg, 0, iov.num_bytes, remote,
    +
    2169  &detail::get_complete_cb<ActivationT>, activation,
    +
    2170  /*world.impl().parsec_ttg_rma_tag()*/
    +
    2171  cbtag, &fn_ptr, sizeof(std::intptr_t));
    +
    2172  }
    +
    2173  }
    +
    2174  };
    + + +
    2177  handle_iovecs_fn(descr.get_data(val));
    +
    2178  } else if constexpr (!ttg::has_split_metadata<decvalueT>::value) {
    +
    2179  handle_iovecs_fn(copy->iovec_span());
    +
    2180  copy->iovec_reset();
    +
    2181  }
    +
    2182 
    +
    2183  assert(num_iovecs == nv);
    +
    2184  assert(size == (key_end_pos + sizeof(msg_header_t)));
    +
    2185 
    +
    2186  if (inline_data) {
    +
    2187  set_arg_from_msg_keylist<i, decvalueT>(ttg::span<keyT>(&keylist[0], num_keys), copy);
    +
    2188  }
    +
    2189  }
    +
    2190  // case 2 and 3
    +
    2191  } else if constexpr (!ttg::meta::is_void_v<keyT> && std::is_void_v<valueT>) {
    +
    2192  for (auto &&key : keylist) {
    +
    2193  set_arg<i, keyT, ttg::Void>(key, ttg::Void{});
    +
    2194  }
    +
    2195  }
    +
    2196  // case 4
    +
    2197  } else if constexpr (ttg::meta::is_void_v<keyT> && !std::is_void_v<valueT>) {
    +
    2198  using decvalueT = std::decay_t<valueT>;
    +
    2199  decvalueT val;
    +
    2200  /* TODO: handle split-metadata case as with non-void keys */
    +
    2201  unpack(val, msg->bytes, 0);
    +
    2202  set_arg<i, keyT, valueT>(std::move(val));
    +
    2203  // case 5 and 6
    +
    2204  } else if constexpr (ttg::meta::is_void_v<keyT> && std::is_void_v<valueT>) {
    +
    2205  set_arg<i, keyT, ttg::Void>(ttg::Void{});
    +
    2206  } else { // unreachable
    +
    2207  ttg::abort();
    +
    2208  }
    +
    2209  }
    +
    2210 
    +
    2211  template <std::size_t i>
    +
    2212  void finalize_argstream_from_msg(void *data, std::size_t size) {
    +
    2213  using msg_t = detail::msg_t;
    +
    2214  msg_t *msg = static_cast<msg_t *>(data);
    +
    2215  if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    2216  /* unpack the key */
    +
    2217  uint64_t pos = 0;
    +
    2218  auto rank = world.rank();
    +
    2219  keyT key;
    +
    2220  pos = unpack(key, msg->bytes, pos);
    +
    2221  assert(keymap(key) == rank);
    +
    2222  finalize_argstream<i>(key);
    +
    2223  } else {
    +
    2224  auto rank = world.rank();
    +
    2225  assert(keymap() == rank);
    +
    2226  finalize_argstream<i>();
    +
    2227  }
    +
    2228  }
    +
    2229 
    +
    2230  template <std::size_t i>
    +
    2231  void argstream_set_size_from_msg(void *data, std::size_t size) {
    +
    2232  using msg_t = detail::msg_t;
    +
    2233  auto msg = static_cast<msg_t *>(data);
    +
    2234  uint64_t pos = 0;
    +
    2235  if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    2236  /* unpack the key */
    +
    2237  auto rank = world.rank();
    +
    2238  keyT key;
    +
    2239  pos = unpack(key, msg->bytes, pos);
    +
    2240  assert(keymap(key) == rank);
    +
    2241  std::size_t argstream_size;
    +
    2242  pos = unpack(argstream_size, msg->bytes, pos);
    +
    2243  set_argstream_size<i>(key, argstream_size);
    +
    2244  } else {
    +
    2245  auto rank = world.rank();
    +
    2246  assert(keymap() == rank);
    +
    2247  std::size_t argstream_size;
    +
    2248  pos = unpack(argstream_size, msg->bytes, pos);
    +
    2249  set_argstream_size<i>(argstream_size);
    +
    2250  }
    +
    2251  }
    +
    2252 
    +
    2253  template <std::size_t i>
    +
    2254  void get_from_pull_msg(void *data, std::size_t size) {
    +
    2255  using msg_t = detail::msg_t;
    +
    2256  msg_t *msg = static_cast<msg_t *>(data);
    +
    2257  auto &in = std::get<i>(input_terminals);
    +
    2258  if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    2259  /* unpack the key */
    +
    2260  uint64_t pos = 0;
    +
    2261  keyT key;
    +
    2262  pos = unpack(key, msg->bytes, pos);
    +
    2263  set_arg<i>(key, (in.container).get(key));
    +
    2264  }
    +
    2265  }
    +
    2266 
    +
    2267  template <std::size_t i, typename Key, typename Value>
    +
    2268  std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg_local(
    +
    2269  const Key &key, Value &&value) {
    +
    2270  set_arg_local_impl<i>(key, std::forward<Value>(value));
    +
    2271  }
    +
    2272 
    +
    2273  template <std::size_t i, typename Key = keyT, typename Value>
    +
    2274  std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg_local(
    +
    2275  Value &&value) {
    +
    2276  set_arg_local_impl<i>(ttg::Void{}, std::forward<Value>(value));
    +
    2277  }
    +
    2278 
    +
    2279  template <std::size_t i, typename Key, typename Value>
    +
    2280  std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg_local(
    +
    2281  const Key &key, const Value &value) {
    +
    2282  set_arg_local_impl<i>(key, value);
    +
    2283  }
    +
    2284 
    +
    2285  template <std::size_t i, typename Key = keyT, typename Value>
    +
    2286  std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg_local(
    +
    2287  const Value &value) {
    +
    2288  set_arg_local_impl<i>(ttg::Void{}, value);
    +
    2289  }
    +
    2290 
    +
    2291  template <std::size_t i, typename Key = keyT, typename Value>
    +
    2292  std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg_local(
    +
    2293  std::shared_ptr<const Value> &valueptr) {
    +
    2294  set_arg_local_impl<i>(ttg::Void{}, *valueptr);
    +
    2295  }
    +
    2296 
    +
    2297  template <typename Key>
    +
    2298  task_t *create_new_task(const Key &key) {
    +
    2299  constexpr const bool keyT_is_Void = ttg::meta::is_void_v<keyT>;
    +
    2300  auto &world_impl = world.impl();
    +
    2301  task_t *newtask;
    +
    2302  parsec_thread_mempool_t *mempool = get_task_mempool();
    +
    2303  char *taskobj = (char *)parsec_thread_mempool_allocate(mempool);
    +
    2304  int32_t priority = 0;
    +
    2305  if constexpr (!keyT_is_Void) {
    +
    2306  priority = priomap(key);
    +
    2307  /* placement-new the task */
    +
    2308  newtask = new (taskobj) task_t(key, mempool, &this->self, world_impl.taskpool(), this, priority);
    +
    2309  } else {
    +
    2310  priority = priomap();
    +
    2311  /* placement-new the task */
    +
    2312  newtask = new (taskobj) task_t(mempool, &this->self, world_impl.taskpool(), this, priority);
    +
    2313  }
    +
    2314 
    +
    2315  for (int i = 0; i < static_stream_goal.size(); ++i) {
    +
    2316  newtask->streams[i].goal = static_stream_goal[i];
    +
    2317  }
    +
    2318 
    +
    2319  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": creating task");
    +
    2320  return newtask;
    +
    2321  }
    +
    2322 
    +
    2323 
    +
    2324  template <std::size_t i>
    + +
    2326  /* make sure we can reuse the existing memory pool and don't have to create a new one */
    +
    2327  static_assert(sizeof(task_t) >= sizeof(detail::reducer_task_t));
    +
    2328  constexpr const bool keyT_is_Void = ttg::meta::is_void_v<keyT>;
    +
    2329  auto &world_impl = world.impl();
    +
    2330  detail::reducer_task_t *newtask;
    +
    2331  parsec_thread_mempool_t *mempool = get_task_mempool();
    +
    2332  char *taskobj = (char *)parsec_thread_mempool_allocate(mempool);
    +
    2333  // use the priority of the task we stream into
    +
    2334  int32_t priority = 0;
    +
    2335  if constexpr (!keyT_is_Void) {
    +
    2336  priority = priomap(task->key);
    +
    2337  ttg::trace(world.rank(), ":", get_name(), " : ", task->key, ": creating reducer task");
    +
    2338  } else {
    +
    2339  priority = priomap();
    +
    2340  ttg::trace(world.rank(), ":", get_name(), ": creating reducer task");
    +
    2341  }
    +
    2342  /* placement-new the task */
    +
    2343  newtask = new (taskobj) detail::reducer_task_t(task, mempool, inpute_reducers_taskclass[i],
    +
    2344  world_impl.taskpool(), priority, is_first);
    +
    2345 
    +
    2346  return newtask;
    +
    2347  }
    +
    2348 
    +
    2349 
    +
    2350  // Used to set the i'th argument
    +
    2351  template <std::size_t i, typename Key, typename Value>
    +
    2352  void set_arg_local_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in = nullptr,
    +
    2353  parsec_task_t **task_ring = nullptr) {
    +
    2354  using valueT = std::tuple_element_t<i, input_values_full_tuple_type>;
    +
    2355  constexpr const bool input_is_const = std::is_const_v<std::tuple_element_t<i, input_args_type>>;
    +
    2356  constexpr const bool valueT_is_Void = ttg::meta::is_void_v<valueT>;
    +
    2357  constexpr const bool keyT_is_Void = ttg::meta::is_void_v<Key>;
    +
    2358 
    +
    2359 
    +
    2360  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": received value for argument : ", i);
    +
    2361 
    +
    2362  parsec_key_t hk = 0;
    +
    2363  if constexpr (!keyT_is_Void) {
    +
    2364  hk = reinterpret_cast<parsec_key_t>(&key);
    +
    2365  assert(keymap(key) == world.rank());
    +
    2366  }
    +
    2367 
    +
    2368  task_t *task;
    +
    2369  auto &world_impl = world.impl();
    +
    2370  auto &reducer = std::get<i>(input_reducers);
    +
    2371  bool release = false;
    +
    2372  bool remove_from_hash = true;
    +
    2373  bool discover_task = true;
    +
    2374  bool get_pull_data = false;
    +
    2375  bool has_lock = false;
    +
    2376  /* If we have only one input and no reducer on that input we can skip the hash table */
    +
    2377  if (numins > 1 || reducer) {
    +
    2378  has_lock = true;
    +
    2379  parsec_hash_table_lock_bucket(&tasks_table, hk);
    +
    2380  if (nullptr == (task = (task_t *)parsec_hash_table_nolock_find(&tasks_table, hk))) {
    +
    2381  task = create_new_task(key);
    +
    2382  world_impl.increment_created();
    +
    2383  parsec_hash_table_nolock_insert(&tasks_table, &task->tt_ht_item);
    +
    2384  get_pull_data = !is_lazy_pull();
    +
    2385  if( world_impl.dag_profiling() ) {
    +
    2386 #if defined(PARSEC_PROF_GRAPHER)
    +
    2387  parsec_prof_grapher_task(&task->parsec_task, world_impl.execution_stream()->th_id, 0,
    +
    2388  key_hash(make_key(task->parsec_task.taskpool, task->parsec_task.locals), nullptr));
    +
    2389 #endif
    +
    2390  }
    +
    2391  } else if (!reducer && numins == (task->in_data_count + 1)) {
    +
    2392  /* remove while we have the lock */
    +
    2393  parsec_hash_table_nolock_remove(&tasks_table, hk);
    +
    2394  remove_from_hash = false;
    +
    2395  }
    +
    2396  /* if we have a reducer, we need to hold on to the lock for just a little longer */
    +
    2397  if (!reducer) {
    +
    2398  parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    2399  has_lock = false;
    +
    2400  }
    +
    2401  } else {
    +
    2402  task = create_new_task(key);
    +
    2403  world_impl.increment_created();
    +
    2404  remove_from_hash = false;
    +
    2405  if( world_impl.dag_profiling() ) {
    +
    2406 #if defined(PARSEC_PROF_GRAPHER)
    +
    2407  parsec_prof_grapher_task(&task->parsec_task, world_impl.execution_stream()->th_id, 0,
    +
    2408  key_hash(make_key(task->parsec_task.taskpool, task->parsec_task.locals), nullptr));
    +
    2409 #endif
    +
    2410  }
    +
    2411  }
    +
    2412 
    +
    2413  if( world_impl.dag_profiling() ) {
    +
    2414 #if defined(PARSEC_PROF_GRAPHER)
    +
    2415  if(NULL != detail::parsec_ttg_caller && !detail::parsec_ttg_caller->is_dummy()) {
    + +
    2417  char orig_str[32];
    +
    2418  char dest_str[32];
    +
    2419  if(orig_index >= 0) {
    +
    2420  snprintf(orig_str, 32, "%d", orig_index);
    +
    2421  } else {
    +
    2422  strncpy(orig_str, "_", 32);
    +
    2423  }
    +
    2424  snprintf(dest_str, 32, "%lu", i);
    +
    2425  parsec_flow_t orig{ .name = orig_str, .sym_type = PARSEC_SYM_INOUT, .flow_flags = PARSEC_FLOW_ACCESS_RW,
    +
    2426  .flow_index = 0, .flow_datatype_mask = ~0 };
    +
    2427  parsec_flow_t dest{ .name = dest_str, .sym_type = PARSEC_SYM_INOUT, .flow_flags = PARSEC_FLOW_ACCESS_RW,
    +
    2428  .flow_index = 0, .flow_datatype_mask = ~0 };
    +
    2429  parsec_prof_grapher_dep(&detail::parsec_ttg_caller->parsec_task, &task->parsec_task, discover_task ? 1 : 0, &orig, &dest);
    +
    2430  }
    +
    2431 #endif
    +
    2432  }
    +
    2433 
    +
    2434  auto get_copy_fn = [&](detail::parsec_ttg_task_base_t *task, auto&& value, bool is_const){
    +
    2435  detail::ttg_data_copy_t *copy = copy_in;
    +
    2436  if (nullptr == copy && nullptr != detail::parsec_ttg_caller) {
    + +
    2438  }
    +
    2439  if (nullptr != copy) {
    +
    2440  /* retain the data copy */
    +
    2441  copy = detail::register_data_copy<valueT>(copy, task, is_const);
    +
    2442  } else {
    +
    2443  /* create a new copy */
    +
    2444  copy = detail::create_new_datacopy(std::forward<Value>(value));
    +
    2445  if (!is_const) {
    +
    2446  copy->mark_mutable();
    +
    2447  }
    +
    2448  }
    +
    2449  return copy;
    +
    2450  };
    +
    2451 
    +
    2452  if (reducer && 1 != task->streams[i].goal) { // is this a streaming input? reduce the received value
    +
    2453  auto submit_reducer_task = [&](auto *parent_task){
    +
    2454  /* check if we need to create a task */
    +
    2455  std::size_t c = parent_task->streams[i].reduce_count.fetch_add(1, std::memory_order_acquire);
    +
    2456  //std::cout << "submit_reducer_task " << key << " c " << c << std::endl;
    +
    2457  if (0 == c) {
    +
    2458  /* we are responsible for creating the reduction task */
    +
    2459  detail::reducer_task_t *reduce_task;
    +
    2460  reduce_task = create_new_reducer_task<i>(parent_task, false);
    +
    2461  reduce_task->release_task(reduce_task); // release immediately
    +
    2462  }
    +
    2463  };
    +
    2464 
    +
    2465  if constexpr (!ttg::meta::is_void_v<valueT>) { // for data values
    +
    2466  // have a value already? if not, set, otherwise reduce
    +
    2467  detail::ttg_data_copy_t *copy = nullptr;
    +
    2468  if (nullptr == (copy = task->copies[i])) {
    +
    2469  using decay_valueT = std::decay_t<valueT>;
    +
    2470 
    +
    2471  /* first input value, create a task and bind it to the copy */
    +
    2472  //std::cout << "Creating new reducer task for " << key << std::endl;
    +
    2473  detail::reducer_task_t *reduce_task;
    +
    2474  reduce_task = create_new_reducer_task<i>(task, true);
    +
    2475 
    +
    2476  /* protected by the bucket lock */
    +
    2477  task->streams[i].size = 1;
    +
    2478  task->streams[i].reduce_count.store(1, std::memory_order_relaxed);
    +
    2479 
    +
    2480  /* get the copy to use as input for this task */
    +
    2481  detail::ttg_data_copy_t *copy = get_copy_fn(reduce_task, std::forward<Value>(value), false);
    +
    2482 
    +
    2483  /* put the copy into the task */
    +
    2484  task->copies[i] = copy;
    +
    2485 
    +
    2486  /* release the task if we're not deferred
    +
    2487  * TODO: can we delay that until we get the second value?
    +
    2488  */
    +
    2489  if (copy->get_next_task() != &reduce_task->parsec_task) {
    +
    2490  reduce_task->release_task(reduce_task);
    +
    2491  }
    +
    2492 
    +
    2493  /* now we can unlock the bucket */
    +
    2494  parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    2495  } else {
    +
    2496  /* unlock the bucket, the lock is not needed anymore */
    +
    2497  parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    2498 
    +
    2499  /* get the copy to use as input for this task */
    +
    2500  detail::ttg_data_copy_t *copy = get_copy_fn(task, std::forward<Value>(value), true);
    +
    2501 
    +
    2502  /* enqueue the data copy to be reduced */
    +
    2503  parsec_lifo_push(&task->streams[i].reduce_copies, &copy->super);
    +
    2504  submit_reducer_task(task);
    +
    2505  }
    +
    2506  } else {
    +
    2507  /* unlock the bucket, the lock is not needed anymore */
    +
    2508  parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    2509  /* submit reducer for void values to handle side effects */
    +
    2510  submit_reducer_task(task);
    +
    2511  }
    +
    2512  //if (release) {
    +
    2513  // parsec_hash_table_nolock_remove(&tasks_table, hk);
    +
    2514  // remove_from_hash = false;
    +
    2515  //}
    +
    2516  //parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    2517  } else {
    +
    2518  /* unlock the bucket, the lock is not needed anymore */
    +
    2519  if (has_lock) {
    +
    2520  parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    2521  }
    +
    2522  /* whether the task needs to be deferred or not */
    +
    2523  if constexpr (!valueT_is_Void) {
    +
    2524  if (nullptr != task->copies[i]) {
    +
    2525  ttg::print_error(get_name(), " : ", key, ": error argument is already set : ", i);
    +
    2526  throw std::logic_error("bad set arg");
    +
    2527  }
    +
    2528 
    +
    2529  /* get the copy to use as input for this task */
    +
    2530  detail::ttg_data_copy_t *copy = get_copy_fn(task, std::forward<Value>(value), input_is_const);
    +
    2531 
    +
    2532  /* if we registered as a writer and were the first to register with this copy
    +
    2533  * we need to defer the release of this task to give other tasks a chance to
    +
    2534  * make a copy of the original data */
    +
    2535  release = (copy->get_next_task() != &task->parsec_task);
    +
    2536  task->copies[i] = copy;
    +
    2537  } else {
    +
    2538  release = true;
    +
    2539  }
    +
    2540  }
    +
    2541  task->remove_from_hash = remove_from_hash;
    +
    2542  if (release) {
    +
    2543  release_task(task, task_ring);
    +
    2544  }
    +
    2545  /* if not pulling lazily, pull the data here */
    +
    2546  if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    2547  if (get_pull_data) {
    +
    2548  invoke_pull_terminals(std::make_index_sequence<std::tuple_size_v<input_values_tuple_type>>{}, task->key, task);
    +
    2549  }
    +
    2550  }
    +
    2551  }
    +
    2552 
    +
    2553  void release_task(task_t *task,
    +
    2554  parsec_task_t **task_ring = nullptr) {
    +
    2555  constexpr const bool keyT_is_Void = ttg::meta::is_void_v<keyT>;
    +
    2556 
    +
    2557  /* if remove_from_hash == false, someone has already removed the task from the hash table
    +
    2558  * so we know that the task is ready, no need to do atomic increments here */
    +
    2559  bool is_ready = !task->remove_from_hash;
    +
    2560  int32_t count;
    +
    2561  if (is_ready) {
    +
    2562  count = numins;
    +
    2563  } else {
    +
    2564  count = parsec_atomic_fetch_inc_int32(&task->in_data_count) + 1;
    +
    2565  assert(count <= self.dependencies_goal);
    +
    2566  }
    +
    2567 
    +
    2568  auto &world_impl = world.impl();
    +
    2569  ttT *baseobj = task->tt;
    +
    2570 
    +
    2571  if (count == numins) {
    +
    2572  parsec_execution_stream_t *es = world_impl.execution_stream();
    +
    2573  parsec_key_t hk = task->pkey();
    +
    2574  if (tracing()) {
    +
    2575  if constexpr (!keyT_is_Void) {
    +
    2576  ttg::trace(world.rank(), ":", get_name(), " : ", task->key, ": submitting task for op ");
    +
    2577  } else {
    +
    2578  ttg::trace(world.rank(), ":", get_name(), ": submitting task for op ");
    +
    2579  }
    +
    2580  }
    +
    2581  if (task->remove_from_hash) parsec_hash_table_remove(&tasks_table, hk);
    +
    2582  if (nullptr == task_ring) {
    +
    2583  parsec_task_t *vp_task_rings[1] = { &task->parsec_task };
    +
    2584  __parsec_schedule_vp(es, vp_task_rings, 0);
    +
    2585  } else if (*task_ring == nullptr) {
    +
    2586  /* the first task is set directly */
    +
    2587  *task_ring = &task->parsec_task;
    +
    2588  } else {
    +
    2589  /* push into the ring */
    +
    2590  parsec_list_item_ring_push_sorted(&(*task_ring)->super, &task->parsec_task.super,
    +
    2591  offsetof(parsec_task_t, priority));
    +
    2592  }
    +
    2593  } else if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    2594  if ((baseobj->num_pullins + count == numins) && baseobj->is_lazy_pull()) {
    +
    2595  /* lazily pull the pull terminal data */
    +
    2596  baseobj->invoke_pull_terminals(std::make_index_sequence<std::tuple_size_v<input_values_tuple_type>>{}, task->key, task);
    +
    2597  }
    +
    2598  }
    +
    2599  }
    +
    2600 
    +
    2601  // cases 1+2
    +
    2602  template <std::size_t i, typename Key, typename Value>
    +
    2603  std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg(const Key &key,
    +
    2604  Value &&value) {
    +
    2605  set_arg_impl<i>(key, std::forward<Value>(value));
    +
    2606  }
    +
    2607 
    +
    2608  // cases 4+5+6
    +
    2609  template <std::size_t i, typename Key, typename Value>
    +
    2610  std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>, void> set_arg(Value &&value) {
    +
    2611  set_arg_impl<i>(ttg::Void{}, std::forward<Value>(value));
    +
    2612  }
    +
    2613 
    +
    2614  template <std::size_t i, typename Key = keyT>
    +
    2615  std::enable_if_t<ttg::meta::is_void_v<Key>, void> set_arg() {
    +
    2616  set_arg_impl<i>(ttg::Void{}, ttg::Void{});
    +
    2617  }
    +
    2618 
    +
    2619  // case 3
    +
    2620  template <std::size_t i, typename Key>
    +
    2621  std::enable_if_t<!ttg::meta::is_void_v<Key>, void> set_arg(const Key &key) {
    +
    2622  set_arg_impl<i>(key, ttg::Void{});
    +
    2623  }
    +
    2624 
    +
    2625  template<typename Value, typename Key>
    +
    2626  bool can_inline_data(Value* value_ptr, detail::ttg_data_copy_t *copy, const Key& key, std::size_t num_keys) {
    +
    2627  using decvalueT = std::decay_t<Value>;
    +
    2628  bool inline_data = false;
    +
    2629  /* check whether to send data in inline */
    +
    2630  std::size_t iov_size = 0;
    +
    2631  std::size_t metadata_size = 0;
    +
    2632  if constexpr (ttg::has_split_metadata<std::decay_t<Value>>::value) {
    + +
    2634  auto iovs = descr.get_data(*const_cast<decvalueT *>(value_ptr));
    +
    2635  iov_size = std::accumulate(iovs.begin(), iovs.end(), 0,
    +
    2636  [](std::size_t s, auto& iov){ return s + iov.num_bytes; });
    +
    2637  auto metadata = descr.get_metadata(*const_cast<decvalueT *>(value_ptr));
    +
    2638  metadata_size = ttg::default_data_descriptor<decltype(metadata)>::payload_size(&metadata);
    +
    2639  } else {
    +
    2640  /* TODO: how can we query the iovecs of the buffers here without actually packing the data? */
    +
    2641  metadata_size = ttg::default_data_descriptor<ttg::meta::remove_cvr_t<Value>>::payload_size(value_ptr);
    +
    2642  iov_size = std::accumulate(copy->iovec_begin(), copy->iovec_end(), 0,
    +
    2643  [](std::size_t s, auto& iov){ return s + iov.num_bytes; });
    +
    2644  }
    +
    2645  /* key is packed at the end */
    +
    2646  std::size_t key_pack_size = ttg::default_data_descriptor<Key>::payload_size(&key);
    +
    2647  std::size_t pack_size = key_pack_size + metadata_size + iov_size;
    +
    2648  if (pack_size < detail::max_inline_size) {
    +
    2649  inline_data = true;
    +
    2650  }
    +
    2651  return inline_data;
    +
    2652  }
    +
    2653 
    +
    2654  // Used to set the i'th argument
    +
    2655  template <std::size_t i, typename Key, typename Value>
    +
    2656  void set_arg_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in = nullptr) {
    +
    2657  int owner;
    +
    2658  using decvalueT = std::decay_t<Value>;
    +
    2659  using norefvalueT = std::remove_reference_t<Value>;
    +
    2660  norefvalueT *value_ptr = &value;
    +
    2661 
    +
    2662 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    2663  if(world.impl().profiling()) {
    +
    2664  parsec_profiling_ts_trace(world.impl().parsec_ttg_profile_backend_set_arg_start, 0, 0, NULL);
    +
    2665  }
    +
    2666 #endif
    +
    2667 
    +
    2668  if constexpr (!ttg::meta::is_void_v<Key>)
    +
    2669  owner = keymap(key);
    +
    2670  else
    +
    2671  owner = keymap();
    +
    2672  if (owner == world.rank()) {
    +
    2673  if constexpr (!ttg::meta::is_void_v<keyT>)
    +
    2674  set_arg_local_impl<i>(key, std::forward<Value>(value), copy_in);
    +
    2675  else
    +
    2676  set_arg_local_impl<i>(ttg::Void{}, std::forward<Value>(value), copy_in);
    +
    2677 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    2678  if(world.impl().profiling()) {
    +
    2679  parsec_profiling_ts_trace(world.impl().parsec_ttg_profile_backend_set_arg_end, 0, 0, NULL);
    +
    2680  }
    +
    2681 #endif
    +
    2682  return;
    +
    2683  }
    +
    2684  // the target task is remote. Pack the information and send it to
    +
    2685  // the corresponding peer.
    +
    2686  // TODO do we need to copy value?
    +
    2687  using msg_t = detail::msg_t;
    +
    2688  auto &world_impl = world.impl();
    +
    2689  uint64_t pos = 0;
    +
    2690  int num_iovecs = 0;
    +
    2691  std::unique_ptr<msg_t> msg = std::make_unique<msg_t>(get_instance_id(), world_impl.taskpool()->taskpool_id,
    +
    2692  msg_header_t::MSG_SET_ARG, i, world_impl.rank(), 1);
    +
    2693 
    +
    2694  if constexpr (!ttg::meta::is_void_v<decvalueT>) {
    +
    2695 
    +
    2696  detail::ttg_data_copy_t *copy = copy_in;
    +
    2697  /* make sure we have a data copy to register with */
    +
    2698  if (nullptr == copy) {
    + +
    2700  if (nullptr == copy) {
    +
    2701  // We need to create a copy for this data, as it does not exist yet.
    +
    2702  copy = detail::create_new_datacopy(std::forward<Value>(value));
    +
    2703  // use the new value from here on out
    +
    2704  value_ptr = static_cast<norefvalueT*>(copy->get_ptr());
    +
    2705  }
    +
    2706  }
    +
    2707 
    +
    2708  bool inline_data = can_inline_data(value_ptr, copy, key, 1);
    +
    2709  msg->tt_id.inline_data = inline_data;
    +
    2710 
    +
    2711  auto handle_iovec_fn = [&](auto&& iovecs){
    +
    2712 
    +
    2713  if (inline_data) {
    +
    2714  /* inline data is packed right after the tt_id in the message */
    +
    2715  for (auto &&iov : iovecs) {
    +
    2716  std::memcpy(msg->bytes + pos, iov.data, iov.num_bytes);
    +
    2717  pos += iov.num_bytes;
    +
    2718  }
    +
    2719  } else {
    +
    2720 
    +
    2721  /* TODO: at the moment, the tag argument to parsec_ce.get() is treated as a
    +
    2722  * raw function pointer instead of a preregistered AM tag, so play that game.
    +
    2723  * Once this is fixed in PaRSEC we need to use parsec_ttg_rma_tag instead! */
    +
    2724  parsec_ce_tag_t cbtag = reinterpret_cast<parsec_ce_tag_t>(&detail::get_remote_complete_cb);
    +
    2725  std::memcpy(msg->bytes + pos, &cbtag, sizeof(cbtag));
    +
    2726  pos += sizeof(cbtag);
    +
    2727 
    +
    2732  for (auto &&iov : iovecs) {
    +
    2733  copy = detail::register_data_copy<decvalueT>(copy, nullptr, true);
    +
    2734  parsec_ce_mem_reg_handle_t lreg;
    +
    2735  size_t lreg_size;
    +
    2736  /* TODO: only register once when we can broadcast the data! */
    +
    2737  parsec_ce.mem_register(iov.data, PARSEC_MEM_TYPE_NONCONTIGUOUS, iov.num_bytes, parsec_datatype_int8_t,
    +
    2738  iov.num_bytes, &lreg, &lreg_size);
    +
    2739  auto lreg_ptr = std::shared_ptr<void>{lreg, [](void *ptr) {
    +
    2740  parsec_ce_mem_reg_handle_t memreg = (parsec_ce_mem_reg_handle_t)ptr;
    +
    2741  parsec_ce.mem_unregister(&memreg);
    +
    2742  }};
    +
    2743  int32_t lreg_size_i = lreg_size;
    +
    2744  std::memcpy(msg->bytes + pos, &lreg_size_i, sizeof(lreg_size_i));
    +
    2745  pos += sizeof(lreg_size_i);
    +
    2746  std::memcpy(msg->bytes + pos, lreg, lreg_size);
    +
    2747  pos += lreg_size;
    +
    2748  //std::cout << "set_arg_impl lreg " << lreg << std::endl;
    +
    2749  /* TODO: can we avoid the extra indirection of going through std::function? */
    +
    2750  std::function<void(void)> *fn = new std::function<void(void)>([=]() mutable {
    +
    2751  /* shared_ptr of value and registration captured by value so resetting
    +
    2752  * them here will eventually release the memory/registration */
    + +
    2754  lreg_ptr.reset();
    +
    2755  });
    +
    2756  std::intptr_t fn_ptr{reinterpret_cast<std::intptr_t>(fn)};
    +
    2757  std::memcpy(msg->bytes + pos, &fn_ptr, sizeof(fn_ptr));
    +
    2758  pos += sizeof(fn_ptr);
    +
    2759  }
    +
    2760  }
    +
    2761  };
    +
    2762 
    +
    2763  if constexpr (ttg::has_split_metadata<std::decay_t<Value>>::value) {
    + +
    2765  auto iovs = descr.get_data(*const_cast<decvalueT *>(value_ptr));
    +
    2766  num_iovecs = std::distance(std::begin(iovs), std::end(iovs));
    +
    2767  /* pack the metadata */
    +
    2768  auto metadata = descr.get_metadata(*const_cast<decvalueT *>(value_ptr));
    +
    2769  size_t metadata_size = sizeof(metadata);
    +
    2770  pos = pack(metadata, msg->bytes, pos);
    +
    2771  //std::cout << "set_arg_impl splitmd num_iovecs " << num_iovecs << std::endl;
    +
    2772  handle_iovec_fn(iovs);
    +
    2773  } else if constexpr (!ttg::has_split_metadata<std::decay_t<Value>>::value) {
    +
    2774  /* serialize the object */
    +
    2775  //std::cout << "PRE pack num_iovecs " << std::distance(copy->iovec_begin(), copy->iovec_end()) << std::endl;
    +
    2776  pos = pack(*value_ptr, msg->bytes, pos, copy);
    +
    2777  num_iovecs = std::distance(copy->iovec_begin(), copy->iovec_end());
    +
    2778  //std::cout << "POST pack num_iovecs " << num_iovecs << std::endl;
    +
    2779  /* handle any iovecs contained in it */
    +
    2780  handle_iovec_fn(copy->iovec_span());
    +
    2781  copy->iovec_reset();
    +
    2782  }
    +
    2783 
    +
    2784  msg->tt_id.num_iovecs = num_iovecs;
    +
    2785  }
    +
    2786 
    +
    2787  /* pack the key */
    +
    2788  msg->tt_id.num_keys = 0;
    +
    2789  msg->tt_id.key_offset = pos;
    +
    2790  if constexpr (!ttg::meta::is_void_v<Key>) {
    +
    2791  size_t tmppos = pack(key, msg->bytes, pos);
    +
    2792  pos = tmppos;
    +
    2793  msg->tt_id.num_keys = 1;
    +
    2794  }
    +
    2795 
    +
    2796  parsec_taskpool_t *tp = world_impl.taskpool();
    +
    2797  tp->tdm.module->outgoing_message_start(tp, owner, NULL);
    +
    2798  tp->tdm.module->outgoing_message_pack(tp, owner, NULL, NULL, 0);
    +
    2799  //std::cout << "set_arg_impl send_am owner " << owner << " sender " << msg->tt_id.sender << std::endl;
    +
    2800  parsec_ce.send_am(&parsec_ce, world_impl.parsec_ttg_tag(), owner, static_cast<void *>(msg.get()),
    +
    2801  sizeof(msg_header_t) + pos);
    +
    2802 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    2803  if(world.impl().profiling()) {
    +
    2804  parsec_profiling_ts_trace(world.impl().parsec_ttg_profile_backend_set_arg_end, 0, 0, NULL);
    +
    2805  }
    +
    2806 #endif
    +
    2807 #if defined(PARSEC_PROF_GRAPHER)
    +
    2808  if(NULL != detail::parsec_ttg_caller && !detail::parsec_ttg_caller->is_dummy()) {
    + +
    2810  char orig_str[32];
    +
    2811  char dest_str[32];
    +
    2812  if(orig_index >= 0) {
    +
    2813  snprintf(orig_str, 32, "%d", orig_index);
    +
    2814  } else {
    +
    2815  strncpy(orig_str, "_", 32);
    +
    2816  }
    +
    2817  snprintf(dest_str, 32, "%lu", i);
    +
    2818  parsec_flow_t orig{ .name = orig_str, .sym_type = PARSEC_SYM_INOUT, .flow_flags = PARSEC_FLOW_ACCESS_RW,
    +
    2819  .flow_index = 0, .flow_datatype_mask = ~0 };
    +
    2820  parsec_flow_t dest{ .name = dest_str, .sym_type = PARSEC_SYM_INOUT, .flow_flags = PARSEC_FLOW_ACCESS_RW,
    +
    2821  .flow_index = 0, .flow_datatype_mask = ~0 };
    +
    2822  task_t *task = create_new_task(key);
    +
    2823  parsec_prof_grapher_dep(&detail::parsec_ttg_caller->parsec_task, &task->parsec_task, 0, &orig, &dest);
    +
    2824  delete task;
    +
    2825  }
    +
    2826 #endif
    +
    2827  }
    +
    2828 
    +
    2829  template <int i, typename Iterator, typename Value>
    +
    2830  void broadcast_arg_local(Iterator &&begin, Iterator &&end, const Value &value) {
    +
    2831 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    2832  if(world.impl().profiling()) {
    +
    2833  parsec_profiling_ts_trace(world.impl().parsec_ttg_profile_backend_bcast_arg_start, 0, 0, NULL);
    +
    2834  }
    +
    2835 #endif
    +
    2836  parsec_task_t *task_ring = nullptr;
    +
    2837  detail::ttg_data_copy_t *copy = nullptr;
    +
    2838  if (nullptr != detail::parsec_ttg_caller) {
    + +
    2840  }
    +
    2841 
    +
    2842  for (auto it = begin; it != end; ++it) {
    +
    2843  set_arg_local_impl<i>(*it, value, copy, &task_ring);
    +
    2844  }
    +
    2845  /* submit all ready tasks at once */
    +
    2846  if (nullptr != task_ring) {
    +
    2847  parsec_task_t *vp_task_ring[1] = { task_ring };
    +
    2848  __parsec_schedule_vp(world.impl().execution_stream(), vp_task_ring, 0);
    +
    2849  }
    +
    2850 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    2851  if(world.impl().profiling()) {
    +
    2852  parsec_profiling_ts_trace(world.impl().parsec_ttg_profile_backend_set_arg_end, 0, 0, NULL);
    +
    2853  }
    +
    2854 #endif
    +
    2855  }
    +
    2856 
    +
    2857  template <std::size_t i, typename Key, typename Value>
    +
    2858  std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>,
    +
    2859  void>
    +
    2860  broadcast_arg(const ttg::span<const Key> &keylist, const Value &value) {
    +
    2861  using valueT = std::tuple_element_t<i, input_values_full_tuple_type>;
    +
    2862  auto world = ttg_default_execution_context();
    +
    2863  auto np = world.size();
    +
    2864  int rank = world.rank();
    +
    2865  uint64_t pos = 0;
    +
    2866  bool have_remote = keylist.end() != std::find_if(keylist.begin(), keylist.end(),
    +
    2867  [&](const Key &key) { return keymap(key) != rank; });
    +
    2868 
    +
    2869  if (have_remote) {
    +
    2870  using decvalueT = std::decay_t<Value>;
    +
    2871 
    +
    2872  /* sort the input key list by owner and check whether there are remote keys */
    +
    2873  std::vector<Key> keylist_sorted(keylist.begin(), keylist.end());
    +
    2874  std::sort(keylist_sorted.begin(), keylist_sorted.end(), [&](const Key &a, const Key &b) mutable {
    +
    2875  int rank_a = keymap(a);
    +
    2876  int rank_b = keymap(b);
    +
    2877  // sort so that the keys for my rank are first, rank+1 next, ..., wrapping around to 0
    +
    2878  int pos_a = (rank_a + np - rank) % np;
    +
    2879  int pos_b = (rank_b + np - rank) % np;
    +
    2880  return pos_a < pos_b;
    +
    2881  });
    +
    2882 
    +
    2883  /* Assuming there are no local keys, will be updated while iterating over the keys */
    +
    2884  auto local_begin = keylist_sorted.end();
    +
    2885  auto local_end = keylist_sorted.end();
    +
    2886 
    +
    2887  int32_t num_iovs = 0;
    +
    2888 
    + + +
    2891  assert(nullptr != copy);
    +
    2892 
    +
    2893  using msg_t = detail::msg_t;
    +
    2894  auto &world_impl = world.impl();
    +
    2895  std::unique_ptr<msg_t> msg = std::make_unique<msg_t>(get_instance_id(), world_impl.taskpool()->taskpool_id,
    +
    2896  msg_header_t::MSG_SET_ARG, i, world_impl.rank());
    +
    2897 
    +
    2898  /* check if we inline the data */
    +
    2899  /* TODO: this assumes the worst case: that all keys are packed at once (i.e., go to the same remote). Can we do better?*/
    +
    2900  bool inline_data = can_inline_data(&value, copy, keylist_sorted[0], keylist_sorted.size());
    +
    2901  msg->tt_id.inline_data = inline_data;
    +
    2902 
    +
    2903  std::vector<std::pair<int32_t, std::shared_ptr<void>>> memregs;
    +
    2904  auto handle_iovs_fn = [&](auto&& iovs){
    +
    2905 
    +
    2906  if (inline_data) {
    +
    2907  /* inline data is packed right after the tt_id in the message */
    +
    2908  for (auto &&iov : iovs) {
    +
    2909  std::memcpy(msg->bytes + pos, iov.data, iov.num_bytes);
    +
    2910  pos += iov.num_bytes;
    +
    2911  }
    +
    2912  } else {
    +
    2913 
    +
    2914  /* TODO: at the moment, the tag argument to parsec_ce.get() is treated as a
    +
    2915  * raw function pointer instead of a preregistered AM tag, so play that game.
    +
    2916  * Once this is fixed in PaRSEC we need to use parsec_ttg_rma_tag instead! */
    +
    2917  parsec_ce_tag_t cbtag = reinterpret_cast<parsec_ce_tag_t>(&detail::get_remote_complete_cb);
    +
    2918  std::memcpy(msg->bytes + pos, &cbtag, sizeof(cbtag));
    +
    2919  pos += sizeof(cbtag);
    +
    2920 
    +
    2921  for (auto &&iov : iovs) {
    +
    2922  parsec_ce_mem_reg_handle_t lreg;
    +
    2923  size_t lreg_size;
    +
    2924  parsec_ce.mem_register(iov.data, PARSEC_MEM_TYPE_NONCONTIGUOUS, iov.num_bytes, parsec_datatype_int8_t,
    +
    2925  iov.num_bytes, &lreg, &lreg_size);
    +
    2926  /* TODO: use a static function for deregistration here? */
    +
    2927  memregs.push_back(std::make_pair(static_cast<int32_t>(lreg_size),
    +
    2928  /* TODO: this assumes that parsec_ce_mem_reg_handle_t is void* */
    +
    2929  std::shared_ptr<void>{lreg, [](void *ptr) {
    +
    2930  parsec_ce_mem_reg_handle_t memreg =
    +
    2931  (parsec_ce_mem_reg_handle_t)ptr;
    +
    2932  //std::cout << "broadcast_arg memunreg lreg " << memreg << std::endl;
    +
    2933  parsec_ce.mem_unregister(&memreg);
    +
    2934  }}));
    +
    2935  //std::cout << "broadcast_arg memreg lreg " << lreg << std::endl;
    +
    2936  }
    +
    2937  }
    +
    2938  };
    +
    2939 
    +
    2940  if constexpr (ttg::has_split_metadata<std::decay_t<Value>>::value) {
    + +
    2942  /* pack the metadata */
    +
    2943  auto metadata = descr.get_metadata(value);
    +
    2944  size_t metadata_size = sizeof(metadata);
    +
    2945  pos = pack(metadata, msg->bytes, pos);
    +
    2946  auto iovs = descr.get_data(*const_cast<decvalueT *>(&value));
    +
    2947  num_iovs = std::distance(std::begin(iovs), std::end(iovs));
    +
    2948  memregs.reserve(num_iovs);
    +
    2949  handle_iovs_fn(iovs);
    +
    2950  //std::cout << "broadcast_arg splitmd num_iovecs " << num_iovs << std::endl;
    +
    2951  } else if constexpr (!ttg::has_split_metadata<std::decay_t<Value>>::value) {
    +
    2952  /* serialize the object once */
    +
    2953  pos = pack(value, msg->bytes, pos, copy);
    +
    2954  num_iovs = std::distance(copy->iovec_begin(), copy->iovec_end());
    +
    2955  handle_iovs_fn(copy->iovec_span());
    +
    2956  copy->iovec_reset();
    +
    2957  }
    +
    2958 
    +
    2959  msg->tt_id.num_iovecs = num_iovs;
    +
    2960 
    +
    2961  std::size_t save_pos = pos;
    +
    2962 
    +
    2963  parsec_taskpool_t *tp = world_impl.taskpool();
    +
    2964  for (auto it = keylist_sorted.begin(); it < keylist_sorted.end(); /* increment done inline */) {
    +
    2965 
    +
    2966  auto owner = keymap(*it);
    +
    2967  if (owner == rank) {
    +
    2968  local_begin = it;
    +
    2969  /* find first non-local key */
    +
    2970  local_end =
    +
    2971  std::find_if_not(++it, keylist_sorted.end(), [&](const Key &key) { return keymap(key) == rank; });
    +
    2972  it = local_end;
    +
    2973  continue;
    +
    2974  }
    +
    2975 
    +
    2976  /* rewind the buffer and start packing a new set of memregs and keys */
    +
    2977  pos = save_pos;
    +
    2983  if (!inline_data) {
    +
    2984  for (int idx = 0; idx < num_iovs; ++idx) {
    +
    2985  // auto [lreg_size, lreg_ptr] = memregs[idx];
    +
    2986  int32_t lreg_size;
    +
    2987  std::shared_ptr<void> lreg_ptr;
    +
    2988  std::tie(lreg_size, lreg_ptr) = memregs[idx];
    +
    2989  std::memcpy(msg->bytes + pos, &lreg_size, sizeof(lreg_size));
    +
    2990  pos += sizeof(lreg_size);
    +
    2991  std::memcpy(msg->bytes + pos, lreg_ptr.get(), lreg_size);
    +
    2992  pos += lreg_size;
    +
    2993  //std::cout << "broadcast_arg lreg_ptr " << lreg_ptr.get() << std::endl;
    +
    2994  /* mark another reader on the copy */
    +
    2995  copy = detail::register_data_copy<valueT>(copy, nullptr, true);
    +
    2996  /* create a function that will be invoked upon RMA completion at the target */
    +
    2997  std::function<void(void)> *fn = new std::function<void(void)>([=]() mutable {
    +
    2998  /* shared_ptr of value and registration captured by value so resetting
    +
    2999  * them here will eventually release the memory/registration */
    + +
    3001  lreg_ptr.reset();
    +
    3002  });
    +
    3003  std::intptr_t fn_ptr{reinterpret_cast<std::intptr_t>(fn)};
    +
    3004  std::memcpy(msg->bytes + pos, &fn_ptr, sizeof(fn_ptr));
    +
    3005  pos += sizeof(fn_ptr);
    +
    3006  }
    +
    3007  }
    +
    3008 
    +
    3009  /* mark the beginning of the keys */
    +
    3010  msg->tt_id.key_offset = pos;
    +
    3011 
    +
    3012  /* pack all keys for this owner */
    +
    3013  int num_keys = 0;
    +
    3014  do {
    +
    3015  ++num_keys;
    +
    3016  pos = pack(*it, msg->bytes, pos);
    +
    3017  ++it;
    +
    3018  } while (it < keylist_sorted.end() && keymap(*it) == owner);
    +
    3019  msg->tt_id.num_keys = num_keys;
    +
    3020 
    +
    3021  tp->tdm.module->outgoing_message_start(tp, owner, NULL);
    +
    3022  tp->tdm.module->outgoing_message_pack(tp, owner, NULL, NULL, 0);
    +
    3023  //std::cout << "broadcast_arg send_am owner " << owner << std::endl;
    +
    3024  parsec_ce.send_am(&parsec_ce, world_impl.parsec_ttg_tag(), owner, static_cast<void *>(msg.get()),
    +
    3025  sizeof(msg_header_t) + pos);
    +
    3026  }
    +
    3027  /* handle local keys */
    +
    3028  broadcast_arg_local<i>(local_begin, local_end, value);
    +
    3029  } else {
    +
    3030  /* handle local keys */
    +
    3031  broadcast_arg_local<i>(keylist.begin(), keylist.end(), value);
    +
    3032  }
    +
    3033  }
    +
    3034 
    +
    3035  // Used by invoke to set all arguments associated with a task
    +
    3036  // Is: index sequence of elements in args
    +
    3037  // Js: index sequence of input terminals to set
    +
    3038  template <typename Key, typename... Ts, size_t... Is, size_t... Js>
    +
    3039  std::enable_if_t<ttg::meta::is_none_void_v<Key>, void> set_args(std::index_sequence<Is...>,
    +
    3040  std::index_sequence<Js...>, const Key &key,
    +
    3041  const std::tuple<Ts...> &args) {
    +
    3042  static_assert(sizeof...(Js) == sizeof...(Is));
    +
    3043  constexpr size_t js[] = {Js...};
    +
    3044  int junk[] = {0, (set_arg<js[Is]>(key, TT::get<Is>(args)), 0)...};
    +
    3045  junk[0]++;
    +
    3046  }
    +
    3047 
    +
    3048  // Used by invoke to set all arguments associated with a task
    +
    3049  // Is: index sequence of input terminals to set
    +
    3050  template <typename Key, typename... Ts, size_t... Is>
    +
    3051  std::enable_if_t<ttg::meta::is_none_void_v<Key>, void> set_args(std::index_sequence<Is...> is, const Key &key,
    +
    3052  const std::tuple<Ts...> &args) {
    +
    3053  set_args(std::index_sequence_for<Ts...>{}, is, key, args);
    +
    3054  }
    +
    3055 
    +
    3056  // Used by invoke to set all arguments associated with a task
    +
    3057  // Is: index sequence of elements in args
    +
    3058  // Js: index sequence of input terminals to set
    +
    3059  template <typename Key = keyT, typename... Ts, size_t... Is, size_t... Js>
    +
    3060  std::enable_if_t<ttg::meta::is_void_v<Key>, void> set_args(std::index_sequence<Is...>, std::index_sequence<Js...>,
    +
    3061  const std::tuple<Ts...> &args) {
    +
    3062  static_assert(sizeof...(Js) == sizeof...(Is));
    +
    3063  constexpr size_t js[] = {Js...};
    +
    3064  int junk[] = {0, (set_arg<js[Is], void>(TT::get<Is>(args)), 0)...};
    +
    3065  junk[0]++;
    +
    3066  }
    +
    3067 
    +
    3068  // Used by invoke to set all arguments associated with a task
    +
    3069  // Is: index sequence of input terminals to set
    +
    3070  template <typename Key = keyT, typename... Ts, size_t... Is>
    +
    3071  std::enable_if_t<ttg::meta::is_void_v<Key>, void> set_args(std::index_sequence<Is...> is,
    +
    3072  const std::tuple<Ts...> &args) {
    +
    3073  set_args(std::index_sequence_for<Ts...>{}, is, args);
    +
    3074  }
    +
    3075 
    +
    3076  public:
    +
    3079  template <std::size_t i>
    +
    3080  void set_static_argstream_size(std::size_t size) {
    +
    3081  assert(std::get<i>(input_reducers) && "TT::set_static_argstream_size called on nonstreaming input terminal");
    +
    3082  assert(size > 0 && "TT::set_static_argstream_size(key,size) called with size=0");
    +
    3083 
    +
    3084  this->trace(world.rank(), ":", get_name(), ": setting global stream size for terminal ", i);
    +
    3085 
    +
    3086  // Check if stream is already bounded
    +
    3087  if (static_stream_goal[i] < std::numeric_limits<std::size_t>::max()) {
    +
    3088  ttg::print_error(world.rank(), ":", get_name(), " : error stream is already bounded : ", i);
    +
    3089  throw std::runtime_error("TT::set_static_argstream_size called for a bounded stream");
    +
    3090  }
    +
    3091 
    +
    3092  static_stream_goal[i] = size;
    +
    3093  }
    +
    3094 
    +
    3098  template <std::size_t i, typename Key>
    +
    3099  std::enable_if_t<!ttg::meta::is_void_v<Key>, void> set_argstream_size(const Key &key, std::size_t size) {
    +
    3100  // preconditions
    +
    3101  assert(std::get<i>(input_reducers) && "TT::set_argstream_size called on nonstreaming input terminal");
    +
    3102  assert(size > 0 && "TT::set_argstream_size(key,size) called with size=0");
    +
    3103 
    +
    3104  // body
    +
    3105  const auto owner = keymap(key);
    +
    3106  if (owner != world.rank()) {
    +
    3107  ttg::trace(world.rank(), ":", get_name(), ":", key, " : forwarding stream size for terminal ", i);
    +
    3108  using msg_t = detail::msg_t;
    +
    3109  auto &world_impl = world.impl();
    +
    3110  uint64_t pos = 0;
    +
    3111  std::unique_ptr<msg_t> msg = std::make_unique<msg_t>(get_instance_id(), world_impl.taskpool()->taskpool_id,
    + +
    3113  world_impl.rank(), 1);
    +
    3114  /* pack the key */
    +
    3115  pos = pack(key, msg->bytes, pos);
    +
    3116  pos = pack(size, msg->bytes, pos);
    +
    3117  parsec_taskpool_t *tp = world_impl.taskpool();
    +
    3118  tp->tdm.module->outgoing_message_start(tp, owner, NULL);
    +
    3119  tp->tdm.module->outgoing_message_pack(tp, owner, NULL, NULL, 0);
    +
    3120  parsec_ce.send_am(&parsec_ce, world_impl.parsec_ttg_tag(), owner, static_cast<void *>(msg.get()),
    +
    3121  sizeof(msg_header_t) + pos);
    +
    3122  } else {
    +
    3123  ttg::trace(world.rank(), ":", get_name(), ":", key, " : setting stream size to ", size, " for terminal ", i);
    +
    3124 
    +
    3125  auto hk = reinterpret_cast<parsec_key_t>(&key);
    +
    3126  task_t *task;
    +
    3127  parsec_hash_table_lock_bucket(&tasks_table, hk);
    +
    3128  if (nullptr == (task = (task_t *)parsec_hash_table_nolock_find(&tasks_table, hk))) {
    +
    3129  task = create_new_task(key);
    +
    3130  world.impl().increment_created();
    +
    3131  parsec_hash_table_nolock_insert(&tasks_table, &task->tt_ht_item);
    +
    3132  if( world.impl().dag_profiling() ) {
    +
    3133 #if defined(PARSEC_PROF_GRAPHER)
    +
    3134  parsec_prof_grapher_task(&task->parsec_task, world.impl().execution_stream()->th_id, 0, *(uintptr_t*)&(task->parsec_task.locals[0]));
    +
    3135 #endif
    +
    3136  }
    +
    3137  }
    +
    3138  parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    3139 
    +
    3140  // TODO: Unfriendly implementation, cannot check if stream is already bounded
    +
    3141  // TODO: Unfriendly implementation, cannot check if stream has been finalized already
    +
    3142 
    +
    3143  // commit changes
    +
    3144  // 1) "lock" the stream by incrementing the reduce_count
    +
    3145  // 2) set the goal
    +
    3146  // 3) "unlock" the stream
    +
    3147  // only one thread will see the reduce_count be zero and the goal match the size
    +
    3148  task->streams[i].reduce_count.fetch_add(1, std::memory_order_acquire);
    +
    3149  task->streams[i].goal = size;
    +
    3150  auto c = task->streams[i].reduce_count.fetch_sub(1, std::memory_order_release);
    +
    3151  if (1 == c && (task->streams[i].size >= size)) {
    +
    3152  release_task(task);
    +
    3153  }
    +
    3154  }
    +
    3155  }
    +
    3156 
    +
    3159  template <std::size_t i, typename Key = keyT>
    +
    3160  std::enable_if_t<ttg::meta::is_void_v<Key>, void> set_argstream_size(std::size_t size) {
    +
    3161  // preconditions
    +
    3162  assert(std::get<i>(input_reducers) && "TT::set_argstream_size called on nonstreaming input terminal");
    +
    3163  assert(size > 0 && "TT::set_argstream_size(key,size) called with size=0");
    +
    3164 
    +
    3165  // body
    +
    3166  const auto owner = keymap();
    +
    3167  if (owner != world.rank()) {
    +
    3168  ttg::trace(world.rank(), ":", get_name(), " : forwarding stream size for terminal ", i);
    +
    3169  using msg_t = detail::msg_t;
    +
    3170  auto &world_impl = world.impl();
    +
    3171  uint64_t pos = 0;
    +
    3172  std::unique_ptr<msg_t> msg = std::make_unique<msg_t>(get_instance_id(), world_impl.taskpool()->taskpool_id,
    + +
    3174  world_impl.rank(), 0);
    +
    3175  pos = pack(size, msg->bytes, pos);
    +
    3176  parsec_taskpool_t *tp = world_impl.taskpool();
    +
    3177  tp->tdm.module->outgoing_message_start(tp, owner, NULL);
    +
    3178  tp->tdm.module->outgoing_message_pack(tp, owner, NULL, NULL, 0);
    +
    3179  parsec_ce.send_am(&parsec_ce, world_impl.parsec_ttg_tag(), owner, static_cast<void *>(msg.get()),
    +
    3180  sizeof(msg_header_t) + pos);
    +
    3181  } else {
    +
    3182  ttg::trace(world.rank(), ":", get_name(), " : setting stream size to ", size, " for terminal ", i);
    +
    3183 
    +
    3184  parsec_key_t hk = 0;
    +
    3185  task_t *task;
    +
    3186  parsec_hash_table_lock_bucket(&tasks_table, hk);
    +
    3187  if (nullptr == (task = (task_t *)parsec_hash_table_nolock_find(&tasks_table, hk))) {
    +
    3188  task = create_new_task(ttg::Void{});
    +
    3189  world.impl().increment_created();
    +
    3190  parsec_hash_table_nolock_insert(&tasks_table, &task->tt_ht_item);
    +
    3191  if( world.impl().dag_profiling() ) {
    +
    3192 #if defined(PARSEC_PROF_GRAPHER)
    +
    3193  parsec_prof_grapher_task(&task->parsec_task, world.impl().execution_stream()->th_id, 0, *(uintptr_t*)&(task->parsec_task.locals[0]));
    +
    3194 #endif
    +
    3195  }
    +
    3196  }
    +
    3197  parsec_hash_table_unlock_bucket(&tasks_table, hk);
    +
    3198 
    +
    3199  // TODO: Unfriendly implementation, cannot check if stream is already bounded
    +
    3200  // TODO: Unfriendly implementation, cannot check if stream has been finalized already
    +
    3201 
    +
    3202  // commit changes
    +
    3203  // 1) "lock" the stream by incrementing the reduce_count
    +
    3204  // 2) set the goal
    +
    3205  // 3) "unlock" the stream
    +
    3206  // only one thread will see the reduce_count be zero and the goal match the size
    +
    3207  task->streams[i].reduce_count.fetch_add(1, std::memory_order_acquire);
    +
    3208  task->streams[i].goal = size;
    +
    3209  auto c = task->streams[i].reduce_count.fetch_sub(1, std::memory_order_release);
    +
    3210  if (1 == c && (task->streams[i].size >= size)) {
    +
    3211  release_task(task);
    +
    3212  }
    +
    3213  }
    +
    3214  }
    +
    3215 
    +
    3217  template <std::size_t i, typename Key>
    +
    3218  std::enable_if_t<!ttg::meta::is_void_v<Key>, void> finalize_argstream(const Key &key) {
    +
    3219  // preconditions
    +
    3220  assert(std::get<i>(input_reducers) && "TT::finalize_argstream called on nonstreaming input terminal");
    +
    3221 
    +
    3222  // body
    +
    3223  const auto owner = keymap(key);
    +
    3224  if (owner != world.rank()) {
    +
    3225  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": forwarding stream finalize for terminal ", i);
    +
    3226  using msg_t = detail::msg_t;
    +
    3227  auto &world_impl = world.impl();
    +
    3228  uint64_t pos = 0;
    +
    3229  std::unique_ptr<msg_t> msg = std::make_unique<msg_t>(get_instance_id(), world_impl.taskpool()->taskpool_id,
    + +
    3231  world_impl.rank(), 1);
    +
    3232  /* pack the key */
    +
    3233  pos = pack(key, msg->bytes, pos);
    +
    3234  parsec_taskpool_t *tp = world_impl.taskpool();
    +
    3235  tp->tdm.module->outgoing_message_start(tp, owner, NULL);
    +
    3236  tp->tdm.module->outgoing_message_pack(tp, owner, NULL, NULL, 0);
    +
    3237  parsec_ce.send_am(&parsec_ce, world_impl.parsec_ttg_tag(), owner, static_cast<void *>(msg.get()),
    +
    3238  sizeof(msg_header_t) + pos);
    +
    3239  } else {
    +
    3240  ttg::trace(world.rank(), ":", get_name(), " : ", key, ": finalizing stream for terminal ", i);
    +
    3241 
    +
    3242  auto hk = reinterpret_cast<parsec_key_t>(&key);
    +
    3243  task_t *task = nullptr;
    +
    3244  //parsec_hash_table_lock_bucket(&tasks_table, hk);
    +
    3245  if (nullptr == (task = (task_t *)parsec_hash_table_find(&tasks_table, hk))) {
    +
    3246  ttg::print_error(world.rank(), ":", get_name(), ":", key,
    +
    3247  " : error finalize called on stream that never received an input data: ", i);
    +
    3248  throw std::runtime_error("TT::finalize called on stream that never received an input data");
    +
    3249  }
    +
    3250 
    +
    3251  // TODO: Unfriendly implementation, cannot check if stream is already bounded
    +
    3252  // TODO: Unfriendly implementation, cannot check if stream has been finalized already
    +
    3253 
    +
    3254  // commit changes
    +
    3255  // 1) "lock" the stream by incrementing the reduce_count
    +
    3256  // 2) set the goal
    +
    3257  // 3) "unlock" the stream
    +
    3258  // only one thread will see the reduce_count be zero and the goal match the size
    +
    3259  task->streams[i].reduce_count.fetch_add(1, std::memory_order_acquire);
    +
    3260  task->streams[i].goal = 1;
    +
    3261  auto c = task->streams[i].reduce_count.fetch_sub(1, std::memory_order_release);
    +
    3262  if (1 == c && (task->streams[i].size >= 1)) {
    +
    3263  release_task(task);
    +
    3264  }
    +
    3265  }
    +
    3266  }
    +
    3267 
    +
    3269  template <std::size_t i, bool key_is_void = ttg::meta::is_void_v<keyT>>
    +
    3270  std::enable_if_t<key_is_void, void> finalize_argstream() {
    +
    3271  // preconditions
    +
    3272  assert(std::get<i>(input_reducers) && "TT::finalize_argstream called on nonstreaming input terminal");
    +
    3273 
    +
    3274  // body
    +
    3275  const auto owner = keymap();
    +
    3276  if (owner != world.rank()) {
    +
    3277  ttg::trace(world.rank(), ":", get_name(), ": forwarding stream finalize for terminal ", i);
    +
    3278  using msg_t = detail::msg_t;
    +
    3279  auto &world_impl = world.impl();
    +
    3280  uint64_t pos = 0;
    +
    3281  std::unique_ptr<msg_t> msg = std::make_unique<msg_t>(get_instance_id(), world_impl.taskpool()->taskpool_id,
    + +
    3283  world_impl.rank(), 0);
    +
    3284  parsec_taskpool_t *tp = world_impl.taskpool();
    +
    3285  tp->tdm.module->outgoing_message_start(tp, owner, NULL);
    +
    3286  tp->tdm.module->outgoing_message_pack(tp, owner, NULL, NULL, 0);
    +
    3287  parsec_ce.send_am(&parsec_ce, world_impl.parsec_ttg_tag(), owner, static_cast<void *>(msg.get()),
    +
    3288  sizeof(msg_header_t) + pos);
    +
    3289  } else {
    +
    3290  ttg::trace(world.rank(), ":", get_name(), ": finalizing stream for terminal ", i);
    +
    3291 
    +
    3292  auto hk = static_cast<parsec_key_t>(0);
    +
    3293  task_t *task = nullptr;
    +
    3294  if (nullptr == (task = (task_t *)parsec_hash_table_find(&tasks_table, hk))) {
    +
    3295  ttg::print_error(world.rank(), ":", get_name(),
    +
    3296  " : error finalize called on stream that never received an input data: ", i);
    +
    3297  throw std::runtime_error("TT::finalize called on stream that never received an input data");
    +
    3298  }
    +
    3299 
    +
    3300  // TODO: Unfriendly implementation, cannot check if stream is already bounded
    +
    3301  // TODO: Unfriendly implementation, cannot check if stream has been finalized already
    +
    3302 
    +
    3303  // commit changes
    +
    3304  // 1) "lock" the stream by incrementing the reduce_count
    +
    3305  // 2) set the goal
    +
    3306  // 3) "unlock" the stream
    +
    3307  // only one thread will see the reduce_count be zero and the goal match the size
    +
    3308  task->streams[i].reduce_count.fetch_add(1, std::memory_order_acquire);
    +
    3309  task->streams[i].goal = 1;
    +
    3310  auto c = task->streams[i].reduce_count.fetch_sub(1, std::memory_order_release);
    +
    3311  if (1 == c && (task->streams[i].size >= 1)) {
    +
    3312  release_task(task);
    +
    3313  }
    +
    3314  }
    +
    3315  }
    +
    3316 
    + +
    3318 
    +
    3319  assert(detail::parsec_ttg_caller->dev_ptr && detail::parsec_ttg_caller->dev_ptr->gpu_task);
    +
    3320  parsec_gpu_task_t *gpu_task = detail::parsec_ttg_caller->dev_ptr->gpu_task;
    +
    3321  auto check_parsec_data = [&](parsec_data_t* data) {
    +
    3322  if (data->owner_device != 0) {
    +
    3323  /* find the flow */
    +
    3324  int flowidx = 0;
    +
    3325  while (flowidx < MAX_PARAM_COUNT &&
    +
    3326  gpu_task->flow[flowidx]->flow_flags != PARSEC_FLOW_ACCESS_NONE) {
    +
    3327  if (detail::parsec_ttg_caller->parsec_task.data[flowidx].data_in->original == data) {
    +
    3328  /* found the right data, set the corresponding flow as pushout */
    +
    3329  break;
    +
    3330  }
    +
    3331  ++flowidx;
    +
    3332  }
    +
    3333  if (flowidx == MAX_PARAM_COUNT) {
    +
    3334  throw std::runtime_error("Cannot add more than MAX_PARAM_COUNT flows to a task!");
    +
    3335  }
    +
    3336  if (gpu_task->flow[flowidx]->flow_flags == PARSEC_FLOW_ACCESS_NONE) {
    +
    3337  /* no flow found, add one and mark it pushout */
    +
    3338  detail::parsec_ttg_caller->parsec_task.data[flowidx].data_in = data->device_copies[0];
    +
    3339  gpu_task->flow_nb_elts[flowidx] = data->nb_elts;
    +
    3340  }
    +
    3341  /* need to mark the flow RW to make PaRSEC happy */
    +
    3342  ((parsec_flow_t *)gpu_task->flow[flowidx])->flow_flags |= PARSEC_FLOW_ACCESS_RW;
    +
    3343  gpu_task->pushout |= 1<<flowidx;
    +
    3344  }
    +
    3345  };
    +
    3346  copy->foreach_parsec_data(check_parsec_data);
    +
    3347  }
    +
    3348 
    +
    3349 
    +
    3350  /* check whether a data needs to be pushed out */
    +
    3351  template <std::size_t i, typename Value, typename RemoteCheckFn>
    +
    3352  std::enable_if_t<!std::is_void_v<std::decay_t<Value>>,
    +
    3353  void>
    +
    3354  do_prepare_send(const Value &value, RemoteCheckFn&& remote_check) {
    +
    3355  using valueT = std::tuple_element_t<i, input_values_full_tuple_type>;
    +
    3356  static constexpr const bool value_is_const = std::is_const_v<valueT>;
    +
    3357 
    +
    3358  /* get the copy */
    + + +
    3361 
    +
    3362  /* if there is no copy we don't need to prepare anything */
    +
    3363  if (nullptr == copy) {
    +
    3364  return;
    +
    3365  }
    +
    3366 
    + +
    3368  bool need_pushout = false;
    +
    3369 
    + +
    3371  /* already marked pushout, skip the rest */
    +
    3372  return;
    +
    3373  }
    +
    3374 
    +
    3375  /* TODO: remove this once we support reductions on the GPU */
    +
    3376  auto &reducer = std::get<i>(input_reducers);
    +
    3377  if (reducer) {
    +
    3378  /* reductions are currently done only on the host so push out */
    +
    3379  copy_mark_pushout(copy);
    + +
    3381  return;
    +
    3382  }
    +
    3383 
    +
    3384  if constexpr (value_is_const) {
    + +
    3386  /* The data has been modified previously. PaRSEC requires us to pushout
    +
    3387  * data if we transition from a writer to one or more readers. */
    +
    3388  need_pushout = true;
    +
    3389  }
    +
    3390 
    +
    3391  /* check for multiple readers */
    + + +
    3394  }
    +
    3395 
    + +
    3397  /* there is a writer already, we will need to create a copy */
    +
    3398  need_pushout = true;
    +
    3399  }
    +
    3400 
    + +
    3402  } else {
    + + +
    3405  need_pushout = true;
    +
    3406  } else {
    + +
    3408  /* there are readers, we will need to create a copy */
    +
    3409  need_pushout = true;
    +
    3410  }
    + +
    3412  }
    +
    3413  }
    +
    3414 
    +
    3415  if constexpr (!derived_has_device_op()) {
    +
    3416  need_pushout = true;
    +
    3417  }
    +
    3418 
    +
    3419  /* check if there are non-local successors if it's a device task */
    +
    3420  if (!need_pushout) {
    +
    3421  bool device_supported = false;
    +
    3422  if constexpr (derived_has_cuda_op()) {
    +
    3423  device_supported = world.impl().mpi_support(ttg::ExecutionSpace::CUDA);
    +
    3424  } else if constexpr (derived_has_hip_op()) {
    +
    3425  device_supported = world.impl().mpi_support(ttg::ExecutionSpace::HIP);
    +
    3426  } else if constexpr (derived_has_level_zero_op()) {
    +
    3427  device_supported = world.impl().mpi_support(ttg::ExecutionSpace::L0);
    +
    3428  }
    +
    3429  /* if MPI supports the device we don't care whether we have remote peers
    +
    3430  * because we can send from the device directly */
    +
    3431  if (!device_supported) {
    +
    3432  need_pushout = remote_check();
    +
    3433  }
    +
    3434  }
    +
    3435 
    +
    3436  if (need_pushout) {
    +
    3437  copy_mark_pushout(copy);
    + +
    3439  }
    +
    3440  }
    +
    3441 
    +
    3442  /* check whether a data needs to be pushed out */
    +
    3443  template <std::size_t i, typename Key, typename Value>
    +
    3444  std::enable_if_t<!ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>,
    +
    3445  void>
    +
    3446  prepare_send(const ttg::span<const Key> &keylist, const Value &value) {
    +
    3447  auto remote_check = [&](){
    +
    3448  auto world = ttg_default_execution_context();
    +
    3449  int rank = world.rank();
    +
    3450  bool remote = keylist.end() != std::find_if(keylist.begin(), keylist.end(),
    +
    3451  [&](const Key &key) { return keymap(key) != rank; });
    +
    3452  return remote;
    +
    3453  };
    +
    3454  do_prepare_send<i>(value, remote_check);
    +
    3455  }
    +
    3456 
    +
    3457  template <std::size_t i, typename Key, typename Value>
    +
    3458  std::enable_if_t<ttg::meta::is_void_v<Key> && !std::is_void_v<std::decay_t<Value>>,
    +
    3459  void>
    +
    3460  prepare_send(const Value &value) {
    +
    3461  auto remote_check = [&](){
    +
    3462  auto world = ttg_default_execution_context();
    +
    3463  int rank = world.rank();
    +
    3464  return (keymap() != rank);
    +
    3465  };
    +
    3466  do_prepare_send<i>(value, remote_check);
    +
    3467  }
    +
    3468 
    +
    3469  private:
    +
    3470  // Copy/assign/move forbidden ... we could make it work using
    +
    3471  // PIMPL for this base class. However, this instance of the base
    +
    3472  // class is tied to a specific instance of a derived class a
    +
    3473  // pointer to which is captured for invoking derived class
    +
    3474  // functions. Thus, not only does the derived class has to be
    +
    3475  // involved but we would have to do it in a thread safe way
    +
    3476  // including for possibly already running tasks and remote
    +
    3477  // references. This is not worth the effort ... wherever you are
    +
    3478  // wanting to move/assign an TT you should be using a pointer.
    +
    3479  TT(const TT &other) = delete;
    +
    3480  TT &operator=(const TT &other) = delete;
    +
    3481  TT(TT &&other) = delete;
    +
    3482  TT &operator=(TT &&other) = delete;
    +
    3483 
    +
    3484  // Registers the callback for the i'th input terminal
    +
    3485  template <typename terminalT, std::size_t i>
    +
    3486  void register_input_callback(terminalT &input) {
    +
    3487  using valueT = typename terminalT::value_type;
    +
    3488  if (input.is_pull_terminal) {
    +
    3489  num_pullins++;
    +
    3490  }
    +
    3492  // case 1: nonvoid key, nonvoid value
    +
    3494  if constexpr (!ttg::meta::is_void_v<keyT> && !std::is_void_v<valueT>) {
    +
    3495  auto move_callback = [this](const keyT &key, valueT &&value) {
    +
    3496  set_arg<i, keyT, valueT>(key, std::forward<valueT>(value));
    +
    3497  };
    +
    3498  auto send_callback = [this](const keyT &key, const valueT &value) {
    +
    3499  set_arg<i, keyT, const valueT &>(key, value);
    +
    3500  };
    +
    3501  auto broadcast_callback = [this](const ttg::span<const keyT> &keylist, const valueT &value) {
    +
    3502  broadcast_arg<i, keyT, valueT>(keylist, value);
    +
    3503  };
    +
    3504  auto prepare_send_callback = [this](const ttg::span<const keyT> &keylist, const valueT &value) {
    +
    3505  prepare_send<i, keyT, valueT>(keylist, value);
    +
    3506  };
    +
    3507  auto setsize_callback = [this](const keyT &key, std::size_t size) { set_argstream_size<i>(key, size); };
    +
    3508  auto finalize_callback = [this](const keyT &key) { finalize_argstream<i>(key); };
    +
    3509  input.set_callback(send_callback, move_callback, broadcast_callback,
    +
    3510  setsize_callback, finalize_callback, prepare_send_callback);
    +
    3511  }
    +
    3513  // case 2: nonvoid key, void value, mixed inputs
    +
    3515  else if constexpr (!ttg::meta::is_void_v<keyT> && std::is_void_v<valueT>) {
    +
    3516  auto send_callback = [this](const keyT &key) { set_arg<i, keyT, ttg::Void>(key, ttg::Void{}); };
    +
    3517  auto setsize_callback = [this](const keyT &key, std::size_t size) { set_argstream_size<i>(key, size); };
    +
    3518  auto finalize_callback = [this](const keyT &key) { finalize_argstream<i>(key); };
    +
    3519  input.set_callback(send_callback, send_callback, {}, setsize_callback, finalize_callback);
    +
    3520  }
    +
    3522  // case 3: nonvoid key, void value, no inputs
    +
    3523  // NOTE: subsumed in case 2 above, kept for historical reasons
    +
    3526  // case 4: void key, nonvoid value
    +
    3528  else if constexpr (ttg::meta::is_void_v<keyT> && !std::is_void_v<valueT>) {
    +
    3529  auto move_callback = [this](valueT &&value) { set_arg<i, keyT, valueT>(std::forward<valueT>(value)); };
    +
    3530  auto send_callback = [this](const valueT &value) { set_arg<i, keyT, const valueT &>(value); };
    +
    3531  auto setsize_callback = [this](std::size_t size) { set_argstream_size<i>(size); };
    +
    3532  auto finalize_callback = [this]() { finalize_argstream<i>(); };
    +
    3533  auto prepare_send_callback = [this](const valueT &value) {
    +
    3534  prepare_send<i, void>(value);
    +
    3535  };
    +
    3536  input.set_callback(send_callback, move_callback, {}, setsize_callback, finalize_callback, prepare_send_callback);
    +
    3537  }
    +
    3539  // case 5: void key, void value, mixed inputs
    +
    3541  else if constexpr (ttg::meta::is_void_v<keyT> && std::is_void_v<valueT>) {
    +
    3542  auto send_callback = [this]() { set_arg<i, keyT, ttg::Void>(ttg::Void{}); };
    +
    3543  auto setsize_callback = [this](std::size_t size) { set_argstream_size<i>(size); };
    +
    3544  auto finalize_callback = [this]() { finalize_argstream<i>(); };
    +
    3545  input.set_callback(send_callback, send_callback, {}, setsize_callback, finalize_callback);
    +
    3546  }
    +
    3548  // case 6: void key, void value, no inputs
    +
    3549  // NOTE: subsumed in case 5 above, kept for historical reasons
    +
    3551  else
    +
    3552  ttg::abort();
    +
    3553  }
    +
    3554 
    +
    3555  template <std::size_t... IS>
    +
    3556  void register_input_callbacks(std::index_sequence<IS...>) {
    +
    3557  int junk[] = {
    +
    3558  0,
    +
    3559  (register_input_callback<std::tuple_element_t<IS, input_terminals_type>, IS>(std::get<IS>(input_terminals)),
    +
    3560  0)...};
    +
    3561  junk[0]++;
    +
    3562  }
    +
    3563 
    +
    3564  template <std::size_t... IS, typename inedgesT>
    +
    3565  void connect_my_inputs_to_incoming_edge_outputs(std::index_sequence<IS...>, inedgesT &inedges) {
    +
    3566  int junk[] = {0, (std::get<IS>(inedges).set_out(&std::get<IS>(input_terminals)), 0)...};
    +
    3567  junk[0]++;
    +
    3568  }
    +
    3569 
    +
    3570  template <std::size_t... IS, typename outedgesT>
    +
    3571  void connect_my_outputs_to_outgoing_edge_inputs(std::index_sequence<IS...>, outedgesT &outedges) {
    +
    3572  int junk[] = {0, (std::get<IS>(outedges).set_in(&std::get<IS>(output_terminals)), 0)...};
    +
    3573  junk[0]++;
    +
    3574  }
    +
    3575 
    +
    3576 #if 0
    +
    3577  template <typename input_terminals_tupleT, std::size_t... IS, typename flowsT>
    +
    3578  void _initialize_flows(std::index_sequence<IS...>, flowsT &&flows) {
    +
    3579  int junk[] = {0,
    +
    3580  (*(const_cast<std::remove_const_t<decltype(flows[IS]->flow_flags)> *>(&(flows[IS]->flow_flags))) =
    +
    3581  (std::is_const_v<std::tuple_element_t<IS, input_terminals_tupleT>> ? PARSEC_FLOW_ACCESS_READ
    +
    3582  : PARSEC_FLOW_ACCESS_RW),
    +
    3583  0)...};
    +
    3584  junk[0]++;
    +
    3585  }
    +
    3586 
    +
    3587  template <typename input_terminals_tupleT, typename flowsT>
    +
    3588  void initialize_flows(flowsT &&flows) {
    +
    3589  _initialize_flows<input_terminals_tupleT>(
    +
    3590  std::make_index_sequence<std::tuple_size<input_terminals_tupleT>::value>{}, flows);
    +
    3591  }
    +
    3592 #endif // 0
    +
    3593 
    +
    3594  void fence() override { ttg::default_execution_context().impl().fence(); }
    +
    3595 
    +
    3596  static int key_equal(parsec_key_t a, parsec_key_t b, void *user_data) {
    +
    3597  if constexpr (std::is_same_v<keyT, void>) {
    +
    3598  return 1;
    +
    3599  } else {
    +
    3600  keyT &ka = *(reinterpret_cast<keyT *>(a));
    +
    3601  keyT &kb = *(reinterpret_cast<keyT *>(b));
    +
    3602  return ka == kb;
    +
    3603  }
    +
    3604  }
    +
    3605 
    +
    3606  static uint64_t key_hash(parsec_key_t k, void *user_data) {
    +
    3607  constexpr const bool keyT_is_Void = ttg::meta::is_void_v<keyT>;
    +
    3608  if constexpr (keyT_is_Void || std::is_same_v<keyT, void>) {
    +
    3609  return 0;
    +
    3610  } else {
    +
    3611  keyT &kk = *(reinterpret_cast<keyT *>(k));
    +
    3612  using ttg::hash;
    +
    3613  uint64_t hv = hash<std::decay_t<decltype(kk)>>{}(kk);
    +
    3614  return hv;
    +
    3615  }
    +
    3616  }
    +
    3617 
    +
    3618  static char *key_print(char *buffer, size_t buffer_size, parsec_key_t k, void *user_data) {
    +
    3619  if constexpr (std::is_same_v<keyT, void>) {
    +
    3620  buffer[0] = '\0';
    +
    3621  return buffer;
    +
    3622  } else {
    +
    3623  keyT kk = *(reinterpret_cast<keyT *>(k));
    +
    3624  std::stringstream iss;
    +
    3625  iss << kk;
    +
    3626  memset(buffer, 0, buffer_size);
    +
    3627  iss.get(buffer, buffer_size);
    +
    3628  return buffer;
    +
    3629  }
    +
    3630  }
    +
    3631 
    +
    3632  static parsec_key_t make_key(const parsec_taskpool_t *tp, const parsec_assignment_t *as) {
    +
    3633  // we use the parsec_assignment_t array as a scratchpad to store the hash and address of the key
    +
    3634  keyT *key = *(keyT**)&(as[2]);
    +
    3635  return reinterpret_cast<parsec_key_t>(key);
    +
    3636  }
    +
    3637 
    +
    3638  static char *parsec_ttg_task_snprintf(char *buffer, size_t buffer_size, const parsec_task_t *parsec_task) {
    +
    3639  if(buffer_size == 0)
    +
    3640  return buffer;
    +
    3641 
    +
    3642  if constexpr (ttg::meta::is_void_v<keyT>) {
    +
    3643  snprintf(buffer, buffer_size, "%s()[]<%d>", parsec_task->task_class->name, parsec_task->priority);
    +
    3644  } else {
    +
    3645  const task_t *task = reinterpret_cast<const task_t*>(parsec_task);
    +
    3646  std::stringstream ss;
    +
    3647  ss << task->key;
    +
    3648 
    +
    3649  std::string keystr = ss.str();
    +
    3650  std::replace(keystr.begin(), keystr.end(), '(', ':');
    +
    3651  std::replace(keystr.begin(), keystr.end(), ')', ':');
    +
    3652 
    +
    3653  snprintf(buffer, buffer_size, "%s(%s)[]<%d>", parsec_task->task_class->name, keystr.c_str(), parsec_task->priority);
    +
    3654  }
    +
    3655  return buffer;
    +
    3656  }
    +
    3657 
    +
    3658 #if defined(PARSEC_PROF_TRACE)
    +
    3659  static void *parsec_ttg_task_info(void *dst, const void *data, size_t size)
    +
    3660  {
    +
    3661  const task_t *task = reinterpret_cast<const task_t *>(data);
    +
    3662 
    +
    3663  if constexpr (ttg::meta::is_void_v<keyT>) {
    +
    3664  snprintf(reinterpret_cast<char*>(dst), size, "()");
    +
    3665  } else {
    +
    3666  std::stringstream ss;
    +
    3667  ss << task->key;
    +
    3668  snprintf(reinterpret_cast<char*>(dst), size, "%s", ss.str().c_str());
    +
    3669  }
    +
    3670  return dst;
    +
    3671  }
    +
    3672 #endif
    +
    3673 
    +
    3674  parsec_key_fn_t tasks_hash_fcts = {key_equal, key_print, key_hash};
    +
    3675 
    +
    3676  template<std::size_t I>
    +
    3677  inline static void increment_data_version_impl(task_t *task) {
    +
    3678  if constexpr (!std::is_const_v<std::tuple_element_t<I, typename TT::input_values_tuple_type>>) {
    +
    3679  if (task->copies[I] != nullptr){
    +
    3680  task->copies[I]->inc_current_version();
    +
    3681  }
    +
    3682  }
    +
    3683  }
    +
    3684 
    +
    3685  template<std::size_t... Is>
    +
    3686  inline static void increment_data_versions(task_t *task, std::index_sequence<Is...>) {
    +
    3687  /* increment version of each mutable data */
    +
    3688  int junk[] = {0, (increment_data_version_impl<Is>(task), 0)...};
    +
    3689  junk[0]++;
    +
    3690  }
    +
    3691 
    +
    3692  static parsec_hook_return_t complete_task_and_release(parsec_execution_stream_t *es, parsec_task_t *parsec_task) {
    +
    3693 
    +
    3694  //std::cout << "complete_task_and_release: task " << parsec_task << std::endl;
    +
    3695 
    +
    3696  task_t *task = (task_t*)parsec_task;
    +
    3697 
    +
    3698 #ifdef TTG_HAVE_COROUTINE
    +
    3699  /* if we still have a coroutine handle we invoke it one more time to get the sends/broadcasts */
    +
    3700  if (task->suspended_task_address) {
    +
    3701  assert(task->coroutine_id != ttg::TaskCoroutineID::Invalid);
    +
    3702 #ifdef TTG_HAVE_DEVICE
    +
    3703  if (task->coroutine_id == ttg::TaskCoroutineID::DeviceTask) {
    +
    3704  /* increment versions of all data we might have modified
    +
    3705  * this must happen before we issue the sends */
    +
    3706  //increment_data_versions(task, std::make_index_sequence<std::tuple_size_v<typename TT::input_values_tuple_type>>{});
    +
    3707 
    +
    3708  // get the device task from the coroutine handle
    +
    3709  auto dev_task = ttg::device::detail::device_task_handle_type::from_address(task->suspended_task_address);
    +
    3710 
    +
    3711  // get the promise which contains the views
    +
    3712  auto dev_data = dev_task.promise();
    +
    3713 
    +
    3714  /* for now make sure we're waiting for the kernel to complete and the coro hasn't skipped this step */
    +
    3715  assert(dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_SENDOUT);
    +
    3716 
    +
    3717  /* execute the sends we stored */
    +
    3718  if (dev_data.state() == ttg::device::detail::TTG_DEVICE_CORO_SENDOUT) {
    +
    3719  /* set the current task, needed inside the sends */
    + +
    3721  dev_data.do_sends();
    +
    3722  detail::parsec_ttg_caller = nullptr;
    +
    3723  }
    +
    3724  }
    +
    3725 #endif // TTG_HAVE_DEVICE
    +
    3726  /* the coroutine should have completed and we cannot access the promise anymore */
    +
    3727  task->suspended_task_address = nullptr;
    +
    3728  }
    +
    3729 #endif // TTG_HAVE_COROUTINE
    +
    3730 
    +
    3731  /* release our data copies */
    +
    3732  for (int i = 0; i < task->data_count; i++) {
    +
    3733  detail::ttg_data_copy_t *copy = task->copies[i];
    +
    3734  if (nullptr == copy) continue;
    + +
    3736  task->copies[i] = nullptr;
    +
    3737  }
    +
    3738  return PARSEC_HOOK_RETURN_DONE;
    +
    3739  }
    +
    3740 
    +
    3741  public:
    +
    3742  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    3743  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    3744  TT(const std::string &name, const std::vector<std::string> &innames, const std::vector<std::string> &outnames,
    +
    3745  ttg::World world, keymapT &&keymap_ = keymapT(), priomapT &&priomap_ = priomapT())
    +
    3746  : ttg::TTBase(name, numinedges, numouts)
    +
    3747  , world(world)
    +
    3748  // if using default keymap, rebind to the given world
    +
    3749  , keymap(std::is_same<keymapT, ttg::detail::default_keymap<keyT>>::value
    +
    3750  ? decltype(keymap)(ttg::detail::default_keymap<keyT>(world))
    +
    3751  : decltype(keymap)(std::forward<keymapT>(keymap_)))
    +
    3752  , priomap(decltype(keymap)(std::forward<priomapT>(priomap_))) {
    +
    3753  // Cannot call these in base constructor since terminals not yet constructed
    +
    3754  if (innames.size() != numinedges) throw std::logic_error("ttg_parsec::TT: #input names != #input terminals");
    +
    3755  if (outnames.size() != numouts) throw std::logic_error("ttg_parsec::TT: #output names != #output terminals");
    +
    3756 
    +
    3757  auto &world_impl = world.impl();
    +
    3758  world_impl.register_op(this);
    +
    3759 
    +
    3760  if constexpr (numinedges == numins) {
    +
    3761  register_input_terminals(input_terminals, innames);
    +
    3762  } else {
    +
    3763  // create a name for the virtual control input
    +
    3764  register_input_terminals(input_terminals, std::array<std::string, 1>{std::string("Virtual Control")});
    +
    3765  }
    +
    3766  register_output_terminals(output_terminals, outnames);
    +
    3767 
    +
    3768  register_input_callbacks(std::make_index_sequence<numinedges>{});
    +
    3769  int i;
    +
    3770 
    +
    3771  memset(&self, 0, sizeof(parsec_task_class_t));
    +
    3772 
    +
    3773  self.name = strdup(get_name().c_str());
    +
    3774  self.task_class_id = get_instance_id();
    +
    3775  self.nb_parameters = 0;
    +
    3776  self.nb_locals = 0;
    +
    3777  //self.nb_flows = numflows;
    +
    3778  self.nb_flows = MAX_PARAM_COUNT; // we're not using all flows but have to
    +
    3779  // trick the device handler into looking at all of them
    +
    3780 
    +
    3781  if( world_impl.profiling() ) {
    +
    3782  // first two ints are used to store the hash of the key.
    +
    3783  self.nb_parameters = (sizeof(void*)+sizeof(int)-1)/sizeof(int);
    +
    3784  // seconds two ints are used to store a pointer to the key of the task.
    +
    3785  self.nb_locals = self.nb_parameters + (sizeof(void*)+sizeof(int)-1)/sizeof(int);
    +
    3786 
    +
    3787  // If we have parameters and locals, we need to define the corresponding dereference arrays
    +
    3788  self.params[0] = &detail::parsec_taskclass_param0;
    +
    3789  self.params[1] = &detail::parsec_taskclass_param1;
    +
    3790 
    +
    3791  self.locals[0] = &detail::parsec_taskclass_param0;
    +
    3792  self.locals[1] = &detail::parsec_taskclass_param1;
    +
    3793  self.locals[2] = &detail::parsec_taskclass_param2;
    +
    3794  self.locals[3] = &detail::parsec_taskclass_param3;
    +
    3795  }
    +
    3796  self.make_key = make_key;
    +
    3797  self.key_functions = &tasks_hash_fcts;
    +
    3798  self.task_snprintf = parsec_ttg_task_snprintf;
    +
    3799 
    +
    3800 #if defined(PARSEC_PROF_TRACE)
    +
    3801  self.profile_info = &parsec_ttg_task_info;
    +
    3802 #endif
    +
    3803 
    +
    3804  world_impl.taskpool()->nb_task_classes = std::max(world_impl.taskpool()->nb_task_classes, static_cast<decltype(world_impl.taskpool()->nb_task_classes)>(self.task_class_id+1));
    +
    3805  // function_id_to_instance[self.task_class_id] = this;
    +
    3806  //self.incarnations = incarnations_array.data();
    +
    3807 //#if 0
    +
    3808  if constexpr (derived_has_cuda_op()) {
    +
    3809  self.incarnations = (__parsec_chore_t *)malloc(3 * sizeof(__parsec_chore_t));
    +
    3810  ((__parsec_chore_t *)self.incarnations)[0].type = PARSEC_DEV_CUDA;
    +
    3811  ((__parsec_chore_t *)self.incarnations)[0].evaluate = &detail::evaluate_cuda<TT>;
    +
    3812  ((__parsec_chore_t *)self.incarnations)[0].hook = &detail::hook_cuda<TT>;
    +
    3813  ((__parsec_chore_t *)self.incarnations)[1].type = PARSEC_DEV_NONE;
    +
    3814  ((__parsec_chore_t *)self.incarnations)[1].evaluate = NULL;
    +
    3815  ((__parsec_chore_t *)self.incarnations)[1].hook = NULL;
    +
    3816  } else if constexpr (derived_has_hip_op()) {
    +
    3817  self.incarnations = (__parsec_chore_t *)malloc(3 * sizeof(__parsec_chore_t));
    +
    3818  ((__parsec_chore_t *)self.incarnations)[0].type = PARSEC_DEV_HIP;
    +
    3819  ((__parsec_chore_t *)self.incarnations)[0].evaluate = &detail::evaluate_hip<TT>;
    +
    3820  ((__parsec_chore_t *)self.incarnations)[0].hook = &detail::hook_hip<TT>;
    +
    3821 
    +
    3822  ((__parsec_chore_t *)self.incarnations)[1].type = PARSEC_DEV_NONE;
    +
    3823  ((__parsec_chore_t *)self.incarnations)[1].evaluate = NULL;
    +
    3824  ((__parsec_chore_t *)self.incarnations)[1].hook = NULL;
    +
    3825 #if defined(PARSEC_HAVE_DEV_LEVEL_ZERO_SUPPORT)
    +
    3826  } else if constexpr (derived_has_level_zero_op()) {
    +
    3827  self.incarnations = (__parsec_chore_t *)malloc(3 * sizeof(__parsec_chore_t));
    +
    3828  ((__parsec_chore_t *)self.incarnations)[0].type = PARSEC_DEV_LEVEL_ZERO;
    +
    3829  ((__parsec_chore_t *)self.incarnations)[0].evaluate = &detail::evaluate_level_zero<TT>;
    +
    3830  ((__parsec_chore_t *)self.incarnations)[0].hook = &detail::hook_level_zero<TT>;
    +
    3831 
    +
    3832  ((__parsec_chore_t *)self.incarnations)[1].type = PARSEC_DEV_NONE;
    +
    3833  ((__parsec_chore_t *)self.incarnations)[1].evaluate = NULL;
    +
    3834  ((__parsec_chore_t *)self.incarnations)[1].hook = NULL;
    +
    3835 #endif // PARSEC_HAVE_DEV_LEVEL_ZERO_SUPPORT
    +
    3836  } else {
    +
    3837  self.incarnations = (__parsec_chore_t *)malloc(2 * sizeof(__parsec_chore_t));
    +
    3838  ((__parsec_chore_t *)self.incarnations)[0].type = PARSEC_DEV_CPU;
    +
    3839  ((__parsec_chore_t *)self.incarnations)[0].evaluate = NULL;
    +
    3840  ((__parsec_chore_t *)self.incarnations)[0].hook = &detail::hook<TT>;
    +
    3841  ((__parsec_chore_t *)self.incarnations)[1].type = PARSEC_DEV_NONE;
    +
    3842  ((__parsec_chore_t *)self.incarnations)[1].evaluate = NULL;
    +
    3843  ((__parsec_chore_t *)self.incarnations)[1].hook = NULL;
    +
    3844  }
    +
    3845 //#endif // 0
    +
    3846 
    +
    3847  self.release_task = &parsec_release_task_to_mempool_update_nbtasks;
    +
    3848  self.complete_execution = complete_task_and_release;
    +
    3849 
    +
    3850  for (i = 0; i < MAX_PARAM_COUNT; i++) {
    +
    3851  parsec_flow_t *flow = new parsec_flow_t;
    +
    3852  flow->name = strdup((std::string("flow in") + std::to_string(i)).c_str());
    +
    3853  flow->sym_type = PARSEC_SYM_INOUT;
    +
    3854  // see initialize_flows below
    +
    3855  // flow->flow_flags = PARSEC_FLOW_ACCESS_RW;
    +
    3856  flow->dep_in[0] = NULL;
    +
    3857  flow->dep_out[0] = NULL;
    +
    3858  flow->flow_index = i;
    +
    3859  flow->flow_datatype_mask = ~0;
    +
    3860  *((parsec_flow_t **)&(self.in[i])) = flow;
    +
    3861  }
    +
    3862  //*((parsec_flow_t **)&(self.in[i])) = NULL;
    +
    3863  //initialize_flows<input_terminals_type>(self.in);
    +
    3864 
    +
    3865  for (i = 0; i < MAX_PARAM_COUNT; i++) {
    +
    3866  parsec_flow_t *flow = new parsec_flow_t;
    +
    3867  flow->name = strdup((std::string("flow out") + std::to_string(i)).c_str());
    +
    3868  flow->sym_type = PARSEC_SYM_INOUT;
    +
    3869  flow->flow_flags = PARSEC_FLOW_ACCESS_READ; // does PaRSEC use this???
    +
    3870  flow->dep_in[0] = NULL;
    +
    3871  flow->dep_out[0] = NULL;
    +
    3872  flow->flow_index = i;
    +
    3873  flow->flow_datatype_mask = (1 << i);
    +
    3874  *((parsec_flow_t **)&(self.out[i])) = flow;
    +
    3875  }
    +
    3876  //*((parsec_flow_t **)&(self.out[i])) = NULL;
    +
    3877 
    +
    3878  self.flags = 0;
    +
    3879  self.dependencies_goal = numins; /* (~(uint32_t)0) >> (32 - numins); */
    +
    3880 
    +
    3881  int nbthreads = 0;
    +
    3882  auto *context = world_impl.context();
    +
    3883  for (int i = 0; i < context->nb_vp; i++) {
    +
    3884  nbthreads += context->virtual_processes[i]->nb_cores;
    +
    3885  }
    +
    3886 
    +
    3887  parsec_mempool_construct(&mempools, PARSEC_OBJ_CLASS(parsec_task_t), sizeof(task_t),
    +
    3888  offsetof(parsec_task_t, mempool_owner), nbthreads);
    +
    3889 
    +
    3890  parsec_hash_table_init(&tasks_table, offsetof(detail::parsec_ttg_task_base_t, tt_ht_item), 8, tasks_hash_fcts,
    +
    3891  NULL);
    +
    3892  }
    +
    3893 
    +
    3894  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    3895  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    3896  TT(const std::string &name, const std::vector<std::string> &innames, const std::vector<std::string> &outnames,
    +
    3897  keymapT &&keymap = keymapT(ttg::default_execution_context()), priomapT &&priomap = priomapT())
    +
    3898  : TT(name, innames, outnames, ttg::default_execution_context(), std::forward<keymapT>(keymap),
    +
    3899  std::forward<priomapT>(priomap)) {}
    +
    3900 
    +
    3901  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    3902  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    3903  TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name,
    +
    3904  const std::vector<std::string> &innames, const std::vector<std::string> &outnames, ttg::World world,
    +
    3905  keymapT &&keymap_ = keymapT(), priomapT &&priomap = priomapT())
    +
    3906  : TT(name, innames, outnames, world, std::forward<keymapT>(keymap_), std::forward<priomapT>(priomap)) {
    +
    3907  connect_my_inputs_to_incoming_edge_outputs(std::make_index_sequence<numinedges>{}, inedges);
    +
    3908  connect_my_outputs_to_outgoing_edge_inputs(std::make_index_sequence<numouts>{}, outedges);
    +
    3909  //DO NOT MOVE THIS - information about the number of pull terminals is only available after connecting the edges.
    +
    3910  if constexpr (numinedges > 0) {
    +
    3911  register_input_callbacks(std::make_index_sequence<numinedges>{});
    +
    3912  }
    +
    3913  }
    +
    3914  template <typename keymapT = ttg::detail::default_keymap<keyT>,
    +
    3915  typename priomapT = ttg::detail::default_priomap<keyT>>
    +
    3916  TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name,
    +
    3917  const std::vector<std::string> &innames, const std::vector<std::string> &outnames,
    +
    3918  keymapT &&keymap = keymapT(ttg::default_execution_context()), priomapT &&priomap = priomapT())
    +
    3919  : TT(inedges, outedges, name, innames, outnames, ttg::default_execution_context(),
    +
    3920  std::forward<keymapT>(keymap), std::forward<priomapT>(priomap)) {}
    +
    3921 
    +
    3922  // Destructor checks for unexecuted tasks
    +
    3923  virtual ~TT() {
    +
    3924  if(nullptr != self.name ) {
    +
    3925  free((void*)self.name);
    +
    3926  self.name = nullptr;
    +
    3927  }
    +
    3928 
    +
    3929  for (std::size_t i = 0; i < numins; ++i) {
    +
    3930  if (inpute_reducers_taskclass[i] != nullptr) {
    +
    3931  std::free(inpute_reducers_taskclass[i]);
    +
    3932  inpute_reducers_taskclass[i] = nullptr;
    +
    3933  }
    +
    3934  }
    +
    3935  release();
    +
    3936  }
    +
    3937 
    +
    3938  static void ht_iter_cb(void *item, void *cb_data) {
    +
    3939  task_t *task = (task_t *)item;
    +
    3940  ttT *op = (ttT *)cb_data;
    +
    3941  if constexpr (!ttg::meta::is_void_v<keyT>) {
    +
    3942  std::cout << "Left over task " << op->get_name() << " " << task->key << std::endl;
    +
    3943  } else {
    +
    3944  std::cout << "Left over task " << op->get_name() << std::endl;
    +
    3945  }
    +
    3946  }
    +
    3947 
    + +
    3949  parsec_hash_table_for_all(&tasks_table, ht_iter_cb, this);
    +
    3950  }
    +
    3951 
    +
    3952  virtual void release() override { do_release(); }
    +
    3953 
    +
    3954  void do_release() {
    +
    3955  if (!alive) {
    +
    3956  return;
    +
    3957  }
    +
    3958  alive = false;
    +
    3959  /* print all outstanding tasks */
    + +
    3961  parsec_hash_table_fini(&tasks_table);
    +
    3962  parsec_mempool_destruct(&mempools);
    +
    3963  // uintptr_t addr = (uintptr_t)self.incarnations;
    +
    3964  // free((void *)addr);
    +
    3965  free((__parsec_chore_t *)self.incarnations);
    +
    3966  for (int i = 0; i < MAX_PARAM_COUNT; i++) {
    +
    3967  if (NULL != self.in[i]) {
    +
    3968  free(self.in[i]->name);
    +
    3969  delete self.in[i];
    +
    3970  self.in[i] = nullptr;
    +
    3971  }
    +
    3972  if (NULL != self.out[i]) {
    +
    3973  free(self.out[i]->name);
    +
    3974  delete self.out[i];
    +
    3975  self.out[i] = nullptr;
    +
    3976  }
    +
    3977  }
    +
    3978  world.impl().deregister_op(this);
    +
    3979  }
    +
    3980 
    +
    3981  static constexpr const ttg::Runtime runtime = ttg::Runtime::PaRSEC;
    +
    3982 
    +
    3988  template <std::size_t i, typename Reducer>
    +
    3989  void set_input_reducer(Reducer &&reducer) {
    +
    3990  ttg::trace(world.rank(), ":", get_name(), " : setting reducer for terminal ", i);
    +
    3991  std::get<i>(input_reducers) = reducer;
    +
    3992 
    +
    3993  parsec_task_class_t *tc = inpute_reducers_taskclass[i];
    +
    3994  if (nullptr == tc) {
    +
    3995  tc = (parsec_task_class_t *)std::calloc(1, sizeof(*tc));
    +
    3996  inpute_reducers_taskclass[i] = tc;
    +
    3997 
    +
    3998  tc->name = strdup((get_name() + std::string(" reducer ") + std::to_string(i)).c_str());
    +
    3999  tc->task_class_id = get_instance_id();
    +
    4000  tc->nb_parameters = 0;
    +
    4001  tc->nb_locals = 0;
    +
    4002  tc->nb_flows = numflows;
    +
    4003 
    +
    4004  auto &world_impl = world.impl();
    +
    4005 
    +
    4006  if( world_impl.profiling() ) {
    +
    4007  // first two ints are used to store the hash of the key.
    +
    4008  tc->nb_parameters = (sizeof(void*)+sizeof(int)-1)/sizeof(int);
    +
    4009  // seconds two ints are used to store a pointer to the key of the task.
    +
    4010  tc->nb_locals = self.nb_parameters + (sizeof(void*)+sizeof(int)-1)/sizeof(int);
    +
    4011 
    +
    4012  // If we have parameters and locals, we need to define the corresponding dereference arrays
    +
    4013  tc->params[0] = &detail::parsec_taskclass_param0;
    +
    4014  tc->params[1] = &detail::parsec_taskclass_param1;
    +
    4015 
    +
    4016  tc->locals[0] = &detail::parsec_taskclass_param0;
    +
    4017  tc->locals[1] = &detail::parsec_taskclass_param1;
    +
    4018  tc->locals[2] = &detail::parsec_taskclass_param2;
    +
    4019  tc->locals[3] = &detail::parsec_taskclass_param3;
    +
    4020  }
    +
    4021  tc->make_key = make_key;
    +
    4022  tc->key_functions = &tasks_hash_fcts;
    +
    4023  tc->task_snprintf = parsec_ttg_task_snprintf;
    +
    4024 
    +
    4025 #if defined(PARSEC_PROF_TRACE)
    +
    4026  tc->profile_info = &parsec_ttg_task_info;
    +
    4027 #endif
    +
    4028 
    +
    4029  world_impl.taskpool()->nb_task_classes = std::max(world_impl.taskpool()->nb_task_classes, static_cast<decltype(world_impl.taskpool()->nb_task_classes)>(self.task_class_id+1));
    +
    4030 
    +
    4031 #if 0
    +
    4032  // FIXME: currently only support reduction on the host
    +
    4033  if constexpr (derived_has_cuda_op()) {
    +
    4034  self.incarnations = (__parsec_chore_t *)malloc(3 * sizeof(__parsec_chore_t));
    +
    4035  ((__parsec_chore_t *)self.incarnations)[0].type = PARSEC_DEV_CUDA;
    +
    4036  ((__parsec_chore_t *)self.incarnations)[0].evaluate = NULL;
    +
    4037  ((__parsec_chore_t *)self.incarnations)[0].hook = detail::hook_cuda;
    +
    4038  ((__parsec_chore_t *)self.incarnations)[1].type = PARSEC_DEV_CPU;
    +
    4039  ((__parsec_chore_t *)self.incarnations)[1].evaluate = NULL;
    +
    4040  ((__parsec_chore_t *)self.incarnations)[1].hook = detail::hook;
    +
    4041  ((__parsec_chore_t *)self.incarnations)[2].type = PARSEC_DEV_NONE;
    +
    4042  ((__parsec_chore_t *)self.incarnations)[2].evaluate = NULL;
    +
    4043  ((__parsec_chore_t *)self.incarnations)[2].hook = NULL;
    +
    4044  } else
    +
    4045 #endif // 0
    +
    4046  {
    +
    4047  tc->incarnations = (__parsec_chore_t *)malloc(2 * sizeof(__parsec_chore_t));
    +
    4048  ((__parsec_chore_t *)tc->incarnations)[0].type = PARSEC_DEV_CPU;
    +
    4049  ((__parsec_chore_t *)tc->incarnations)[0].evaluate = NULL;
    +
    4050  ((__parsec_chore_t *)tc->incarnations)[0].hook = &static_reducer_op<i>;
    +
    4051  ((__parsec_chore_t *)tc->incarnations)[1].type = PARSEC_DEV_NONE;
    +
    4052  ((__parsec_chore_t *)tc->incarnations)[1].evaluate = NULL;
    +
    4053  ((__parsec_chore_t *)tc->incarnations)[1].hook = NULL;
    +
    4054  }
    +
    4055 
    +
    4056  /* the reduction task does not alter the termination detection because the target task will execute */
    +
    4057  tc->release_task = &parsec_release_task_to_mempool;
    +
    4058  tc->complete_execution = NULL;
    +
    4059  }
    +
    4060  }
    +
    4061 
    +
    4069  template <std::size_t i, typename Reducer>
    +
    4070  void set_input_reducer(Reducer &&reducer, std::size_t size) {
    +
    4071  set_input_reducer<i>(std::forward<Reducer>(reducer));
    +
    4072  set_static_argstream_size<i>(size);
    +
    4073  }
    +
    4074 
    +
    4075  // Returns reference to input terminal i to facilitate connection --- terminal
    +
    4076  // cannot be copied, moved or assigned
    +
    4077  template <std::size_t i>
    +
    4078  std::tuple_element_t<i, input_terminals_type> *in() {
    +
    4079  return &std::get<i>(input_terminals);
    +
    4080  }
    +
    4081 
    +
    4082  // Returns reference to output terminal for purpose of connection --- terminal
    +
    4083  // cannot be copied, moved or assigned
    +
    4084  template <std::size_t i>
    +
    4085  std::tuple_element_t<i, output_terminalsT> *out() {
    +
    4086  return &std::get<i>(output_terminals);
    +
    4087  }
    +
    4088 
    +
    4089  // Manual injection of a task with all input arguments specified as a tuple
    +
    4090  template <typename Key = keyT>
    +
    4091  std::enable_if_t<!ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke(
    +
    4092  const Key &key, const input_values_tuple_type &args) {
    + +
    4094  if constexpr(!std::is_same_v<Key, key_type>) {
    +
    4095  key_type k = key; /* cast that type into the key type we know */
    +
    4096  invoke(k, args);
    +
    4097  } else {
    +
    4098  /* trigger non-void inputs */
    +
    4099  set_args(ttg::meta::nonvoid_index_seq<actual_input_tuple_type>{}, key, args);
    +
    4100  /* trigger void inputs */
    +
    4101  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    4102  set_args(void_index_seq{}, key, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    4103  }
    +
    4104  }
    +
    4105 
    +
    4106  // Manual injection of a key-free task and all input arguments specified as a tuple
    +
    4107  template <typename Key = keyT>
    +
    4108  std::enable_if_t<ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke(
    +
    4109  const input_values_tuple_type &args) {
    + +
    4111  /* trigger non-void inputs */
    +
    4112  set_args(ttg::meta::nonvoid_index_seq<actual_input_tuple_type>{}, args);
    +
    4113  /* trigger void inputs */
    +
    4114  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    4115  set_args(void_index_seq{}, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    4116  }
    +
    4117 
    +
    4118  // Manual injection of a task that has no arguments
    +
    4119  template <typename Key = keyT>
    +
    4120  std::enable_if_t<!ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke(
    +
    4121  const Key &key) {
    + +
    4123 
    +
    4124  if constexpr(!std::is_same_v<Key, key_type>) {
    +
    4125  key_type k = key; /* cast that type into the key type we know */
    +
    4126  invoke(k);
    +
    4127  } else {
    +
    4128  /* trigger void inputs */
    +
    4129  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    4130  set_args(void_index_seq{}, key, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    4131  }
    +
    4132  }
    +
    4133 
    +
    4134  // Manual injection of a task that has no key or arguments
    +
    4135  template <typename Key = keyT>
    +
    4136  std::enable_if_t<ttg::meta::is_void_v<Key> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke() {
    + +
    4138  /* trigger void inputs */
    +
    4139  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    4140  set_args(void_index_seq{}, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    4141  }
    +
    4142 
    +
    4143  // overrides TTBase::invoke()
    +
    4144  void invoke() override {
    +
    4145  if constexpr (ttg::meta::is_void_v<keyT> && ttg::meta::is_empty_tuple_v<input_values_tuple_type>)
    +
    4146  invoke<keyT>();
    +
    4147  else
    +
    4148  TTBase::invoke();
    +
    4149  }
    +
    4150 
    +
    4151  private:
    +
    4152  template<typename Key, typename Arg, typename... Args, std::size_t I, std::size_t... Is>
    +
    4153  void invoke_arglist(std::index_sequence<I, Is...>, const Key& key, Arg&& arg, Args&&... args) {
    +
    4154  using arg_type = std::decay_t<Arg>;
    +
    4155  if constexpr (ttg::meta::is_ptr_v<arg_type>) {
    +
    4156  /* add a reference to the object */
    +
    4157  auto copy = ttg_parsec::detail::get_copy(arg);
    +
    4158  copy->add_ref();
    +
    4159  /* reset readers so that the value can flow without copying */
    +
    4160  copy->reset_readers();
    +
    4161  auto& val = *arg;
    +
    4162  set_arg_impl<I>(key, val, copy);
    + +
    4164  if constexpr (std::is_rvalue_reference_v<Arg>) {
    +
    4165  /* if the ptr was moved in we reset it */
    +
    4166  arg.reset();
    +
    4167  }
    +
    4168  } else if constexpr (!ttg::meta::is_ptr_v<arg_type>) {
    +
    4169  set_arg<I>(key, std::forward<Arg>(arg));
    +
    4170  }
    +
    4171  if constexpr (sizeof...(Is) > 0) {
    +
    4172  /* recursive next argument */
    +
    4173  invoke_arglist(std::index_sequence<Is...>{}, key, std::forward<Args>(args)...);
    +
    4174  }
    +
    4175  }
    +
    4176 
    +
    4177  public:
    +
    4178  // Manual injection of a task with all input arguments specified as variadic arguments
    +
    4179  template <typename Key = keyT, typename Arg, typename... Args>
    +
    4180  std::enable_if_t<!ttg::meta::is_void_v<Key> && !ttg::meta::is_empty_tuple_v<input_values_tuple_type>, void> invoke(
    +
    4181  const Key &key, Arg&& arg, Args&&... args) {
    +
    4182  static_assert(sizeof...(Args)+1 == std::tuple_size_v<actual_input_tuple_type>,
    +
    4183  "Number of arguments to invoke must match the number of task inputs.");
    + +
    4185  /* trigger non-void inputs */
    +
    4186  invoke_arglist(ttg::meta::nonvoid_index_seq<actual_input_tuple_type>{}, key,
    +
    4187  std::forward<Arg>(arg), std::forward<Args>(args)...);
    +
    4188  //set_args(ttg::meta::nonvoid_index_seq<actual_input_tuple_type>{}, key, args);
    +
    4189  /* trigger void inputs */
    +
    4190  using void_index_seq = ttg::meta::void_index_seq<actual_input_tuple_type>;
    +
    4191  set_args(void_index_seq{}, key, ttg::detail::make_void_tuple<void_index_seq::size()>());
    +
    4192  }
    +
    4193 
    +
    4194  void set_defer_writer(bool value) {
    +
    4195  m_defer_writer = value;
    +
    4196  }
    +
    4197 
    +
    4198  bool get_defer_writer(bool value) {
    +
    4199  return m_defer_writer;
    +
    4200  }
    +
    4201 
    +
    4202  public:
    +
    4203  void make_executable() override {
    +
    4204  world.impl().register_tt_profiling(this);
    + + +
    4207  }
    +
    4208 
    +
    4211  const decltype(keymap) &get_keymap() const { return keymap; }
    +
    4212 
    +
    4214  template <typename Keymap>
    +
    4215  void set_keymap(Keymap &&km) {
    +
    4216  keymap = km;
    +
    4217  }
    +
    4218 
    +
    4221  const decltype(priomap) &get_priomap() const { return priomap; }
    +
    4222 
    +
    4225  template <typename Priomap>
    +
    4226  void set_priomap(Priomap &&pm) {
    +
    4227  priomap = std::forward<Priomap>(pm);
    +
    4228  }
    +
    4229 
    +
    4235  template<typename Devicemap>
    +
    4236  void set_devicemap(Devicemap&& dm) {
    +
    4237  static_assert(derived_has_device_op(), "Device map only allowed on device-enabled TT!");
    +
    4238  if constexpr (std::is_same_v<ttg::device::Device, decltype(dm(std::declval<keyT>()))>) {
    +
    4239  // dm returns a Device
    +
    4240  devicemap = std::forward<Devicemap>(dm);
    +
    4241  } else {
    +
    4242  // convert dm return into a Device
    +
    4243  devicemap = [=](const keyT& key) {
    +
    4244  if constexpr (derived_has_cuda_op()) {
    + +
    4246  } else if constexpr (derived_has_hip_op()) {
    + +
    4248  } else if constexpr (derived_has_level_zero_op()) {
    + +
    4250  } else {
    +
    4251  throw std::runtime_error("Unknown device type!");
    +
    4252  }
    +
    4253  };
    +
    4254  }
    +
    4255  }
    +
    4256 
    +
    4259  auto get_devicemap() { return devicemap; }
    +
    4260 
    +
    4261  // Register the static_op function to associate it to instance_id
    + +
    4263  int rank;
    +
    4264  MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    +
    4265  ttg::trace("ttg_parsec(", rank, ") Inserting into static_id_to_op_map at ", get_instance_id());
    +
    4266  static_set_arg_fct_call_t call = std::make_pair(&TT::static_set_arg, this);
    +
    4267  auto &world_impl = world.impl();
    +
    4268  static_map_mutex.lock();
    +
    4269  static_id_to_op_map.insert(std::make_pair(get_instance_id(), call));
    +
    4270  if (delayed_unpack_actions.count(get_instance_id()) > 0) {
    +
    4271  auto tp = world_impl.taskpool();
    +
    4272 
    +
    4273  ttg::trace("ttg_parsec(", rank, ") There are ", delayed_unpack_actions.count(get_instance_id()),
    +
    4274  " messages delayed with op_id ", get_instance_id());
    +
    4275 
    +
    4276  auto se = delayed_unpack_actions.equal_range(get_instance_id());
    +
    4277  std::vector<static_set_arg_fct_arg_t> tmp;
    +
    4278  for (auto it = se.first; it != se.second;) {
    +
    4279  assert(it->first == get_instance_id());
    +
    4280  tmp.push_back(it->second);
    +
    4281  it = delayed_unpack_actions.erase(it);
    +
    4282  }
    +
    4283  static_map_mutex.unlock();
    +
    4284 
    +
    4285  for (auto it : tmp) {
    +
    4286  if(ttg::tracing())
    +
    4287  ttg::print("ttg_parsec(", rank, ") Unpacking delayed message (", ", ", get_instance_id(), ", ",
    +
    4288  std::get<1>(it), ", ", std::get<2>(it), ")");
    +
    4289  int rc = detail::static_unpack_msg(&parsec_ce, world_impl.parsec_ttg_tag(), std::get<1>(it), std::get<2>(it),
    +
    4290  std::get<0>(it), NULL);
    +
    4291  assert(rc == 0);
    +
    4292  free(std::get<1>(it));
    +
    4293  }
    +
    4294 
    +
    4295  tmp.clear();
    +
    4296  } else {
    +
    4297  static_map_mutex.unlock();
    +
    4298  }
    +
    4299  }
    +
    4300  };
    +
    4301 
    +
    4302 #include "ttg/make_tt.h"
    +
    4303 
    +
    4304 } // namespace ttg_parsec
    +
    4305 
    +
    4311 template <>
    + +
    4313  private:
    +
    4314  ttg_parsec::detail::ttg_data_copy_t *copy_to_remove = nullptr;
    +
    4315  bool do_release = true;
    +
    4316 
    +
    4317  public:
    +
    4318  value_copy_handler() = default;
    + + +
    4321  : copy_to_remove(h.copy_to_remove)
    +
    4322  {
    +
    4323  h.copy_to_remove = nullptr;
    +
    4324  }
    +
    4325 
    + + +
    4328  {
    +
    4329  std::swap(copy_to_remove, h.copy_to_remove);
    +
    4330  return *this;
    +
    4331  }
    +
    4332 
    + +
    4334  if (nullptr != copy_to_remove) {
    + +
    4336  if (do_release) {
    +
    4337  ttg_parsec::detail::release_data_copy(copy_to_remove);
    +
    4338  }
    +
    4339  }
    +
    4340  }
    +
    4341 
    +
    4342  template <typename Value>
    +
    4343  inline std::add_lvalue_reference_t<Value> operator()(Value &&value) {
    +
    4344  static_assert(std::is_rvalue_reference_v<decltype(value)> ||
    +
    4345  std::is_copy_constructible_v<std::decay_t<Value>>,
    +
    4346  "Data sent without being moved must be copy-constructible!");
    +
    4347 
    + +
    4349  if (nullptr == caller) {
    +
    4350  ttg::print("ERROR: ttg::send or ttg::broadcast called outside of a task!\n");
    +
    4351  }
    +
    4352  using value_type = std::remove_reference_t<Value>;
    + +
    4354  copy = ttg_parsec::detail::find_copy_in_task(caller, &value);
    +
    4355  value_type *value_ptr = &value;
    +
    4356  if (nullptr == copy) {
    +
    4361  copy = ttg_parsec::detail::create_new_datacopy(std::forward<Value>(value));
    +
    4362  bool inserted = ttg_parsec::detail::add_copy_to_task(copy, caller);
    +
    4363  assert(inserted);
    +
    4364  value_ptr = reinterpret_cast<value_type *>(copy->get_ptr());
    +
    4365  copy_to_remove = copy;
    +
    4366  } else {
    +
    4367  if constexpr (std::is_rvalue_reference_v<decltype(value)>) {
    +
    4368  /* this copy won't be modified anymore so mark it as read-only */
    +
    4369  copy->reset_readers();
    +
    4370  }
    +
    4371  }
    +
    4372  /* We're coming from a writer so mark the data as modified.
    +
    4373  * That way we can force a pushout in prepare_send if we move to read-only tasks (needed by PaRSEC). */
    + +
    4375  return *value_ptr;
    +
    4376  }
    +
    4377 
    +
    4378  template<typename Value>
    +
    4379  inline std::add_lvalue_reference_t<Value> operator()(ttg_parsec::detail::persistent_value_ref<Value> vref) {
    + +
    4381  if (nullptr == caller) {
    +
    4382  ttg::print("ERROR: ttg::send or ttg::broadcast called outside of a task!\n");
    +
    4383  }
    + +
    4385  copy = ttg_parsec::detail::find_copy_in_task(caller, &vref.value_ref);
    +
    4386  if (nullptr == copy) {
    +
    4387  // no need to create a new copy since it's derived from the copy already
    +
    4388  copy = const_cast<ttg_parsec::detail::ttg_data_copy_t *>(static_cast<const ttg_parsec::detail::ttg_data_copy_t *>(&vref.value_ref));
    +
    4389  bool inserted = ttg_parsec::detail::add_copy_to_task(copy, caller);
    +
    4390  assert(inserted);
    +
    4391  copy_to_remove = copy; // we want to remove the copy from the task once done sending
    +
    4392  do_release = false; // we don't release the copy since we didn't allocate it
    +
    4393  copy->add_ref(); // add a reference so that TTG does not attempt to delete this object
    +
    4394  }
    +
    4395  return vref.value_ref;
    +
    4396  }
    +
    4397 
    +
    4398  template <typename Value>
    +
    4399  inline const Value &operator()(const Value &value) {
    +
    4400  static_assert(std::is_copy_constructible_v<std::decay_t<Value>>,
    +
    4401  "Data sent without being moved must be copy-constructible!");
    + +
    4403  if (nullptr == caller) {
    +
    4404  ttg::print("ERROR: ttg::send or ttg::broadcast called outside of a task!\n");
    +
    4405  }
    + +
    4407  copy = ttg_parsec::detail::find_copy_in_task(caller, &value);
    +
    4408  const Value *value_ptr = &value;
    +
    4409  if (nullptr == copy) {
    + +
    4415  bool inserted = ttg_parsec::detail::add_copy_to_task(copy, caller);
    +
    4416  assert(inserted);
    +
    4417  value_ptr = reinterpret_cast<Value *>(copy->get_ptr());
    +
    4418  copy_to_remove = copy;
    +
    4419  }
    + +
    4421  return *value_ptr;
    +
    4422  }
    +
    4423 
    +
    4424 };
    +
    4425 
    +
    4426 #endif // PARSEC_TTG_H_INCLUDED
    +
    4427 // clang-format on
    + +
    #define TTG_OP_ASSERT_EXECUTABLE()
    Definition: tt.h:276
    + + +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    +
    A base class for all template tasks.
    Definition: tt.h:30
    +
    void trace(const T &t, const Ts &...ts)
    Like ttg::trace(), but only produces tracing output if this->tracing()==true
    Definition: tt.h:186
    +
    auto get_instance_id() const
    Definition: tt.h:258
    +
    virtual void make_executable()=0
    Marks this executable.
    Definition: tt.h:286
    +
    bool tracing() const
    Definition: tt.h:177
    +
    const std::string & get_name() const
    Gets the name of this operation.
    Definition: tt.h:217
    +
    TTBase(TTBase &&other)
    Definition: tt.h:115
    +
    void register_input_terminals(terminalsT &terms, const namesT &names)
    Definition: tt.h:84
    +
    bool is_lazy_pull()
    Definition: tt.h:199
    +
    const TTBase * ttg_ptr() const
    Definition: tt.h:205
    +
    void register_output_terminals(terminalsT &terms, const namesT &names)
    Definition: tt.h:91
    +
    A complete version of void.
    Definition: void.h:11
    + +
    WorldImplT & impl(void)
    Definition: world.h:216
    +
    int rank() const
    Definition: world.h:204
    +
    Base class for implementation-specific Worlds.
    Definition: world.h:33
    +
    void release_ops(void)
    Definition: world.h:54
    + +
    WorldImplBase(int size, int rank)
    Definition: world.h:61
    + +
    bool is_valid(void) const
    Definition: world.h:154
    + +
    Represents a device in a specific execution space.
    Definition: device.h:23
    + +
    uint64_t pack(T &obj, void *bytes, uint64_t pos, detail::ttg_data_copy_t *copy=nullptr)
    Definition: ttg.h:1918
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local(const Key &key, const Value &value)
    Definition: ttg.h:2280
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send(const ttg::span< const Key > &keylist, const Value &value)
    Definition: ttg.h:3446
    +
    void finalize_argstream_from_msg(void *data, std::size_t size)
    Definition: ttg.h:2212
    +
    ttg::meta::add_glvalue_reference_tuple_t< ttg::meta::void_to_Void_tuple_t< actual_input_tuple_type > > input_refs_full_tuple_type
    Definition: ttg.h:1226
    +
    std::tuple_element_t< i, input_terminals_type > * in()
    Definition: ttg.h:4078
    +
    static constexpr bool derived_has_hip_op()
    Definition: ttg.h:1195
    +
    void set_keymap(Keymap &&km)
    keymap setter
    Definition: ttg.h:4215
    +
    decltype(keymap) const & get_keymap() const
    Definition: ttg.h:4211
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const Key &key, Arg &&arg, Args &&... args)
    Definition: ttg.h:4180
    +
    void print_incomplete_tasks()
    Definition: ttg.h:3948
    +
    void set_arg_from_msg(void *data, std::size_t size)
    Definition: ttg.h:2035
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_arg(const Key &key)
    Definition: ttg.h:2621
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key >, void > finalize_argstream(const Key &key)
    finalizes stream for input i
    Definition: ttg.h:3218
    +
    virtual ~TT()
    Definition: ttg.h:3923
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg(const Key &key, Value &&value)
    Definition: ttg.h:2603
    +
    std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args(std::index_sequence< Is... > is, const std::tuple< Ts... > &args)
    Definition: ttg.h:3071
    +
    keyT key_type
    Definition: ttg.h:1218
    +
    static constexpr bool derived_has_level_zero_op()
    Definition: ttg.h:1204
    +
    parsec_thread_mempool_t * get_task_mempool(void)
    Definition: ttg.h:1978
    +
    TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap=priomapT())
    Definition: ttg.h:3903
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const Key &key)
    Definition: ttg.h:4120
    +
    std::enable_if_t<!std::is_void_v< std::decay_t< Value > >, void > do_prepare_send(const Value &value, RemoteCheckFn &&remote_check)
    Definition: ttg.h:3354
    +
    typename ttg::terminals_to_edges< output_terminalsT >::type output_edges_type
    Definition: ttg.h:1235
    +
    void set_arg_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr)
    Definition: ttg.h:2656
    +
    auto get_devicemap()
    Definition: ttg.h:4259
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > broadcast_arg(const ttg::span< const Key > &keylist, const Value &value)
    Definition: ttg.h:2860
    +
    void invoke() override
    Definition: ttg.h:4144
    +
    task_t * create_new_task(const Key &key)
    Definition: ttg.h:2298
    +
    void do_release()
    Definition: ttg.h:3954
    +
    uint64_t unpack(T &obj, void *_bytes, uint64_t pos)
    Definition: ttg.h:1905
    +
    TT(const input_edges_type &inedges, const output_edges_type &outedges, const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
    Definition: ttg.h:3916
    +
    bool get_defer_writer(bool value)
    Definition: ttg.h:4198
    +
    void set_arg_from_msg_keylist(ttg::span< keyT > &&keylist, detail::ttg_data_copy_t *copy)
    Definition: ttg.h:1986
    +
    static void ht_iter_cb(void *item, void *cb_data)
    Definition: ttg.h:3938
    +
    const auto & get_output_terminals() const
    Definition: ttg.h:1259
    +
    ttg::meta::drop_void_t< ttg::meta::add_glvalue_reference_tuple_t< input_tuple_type > > input_refs_tuple_type
    Definition: ttg.h:1228
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local(const Key &key, Value &&value)
    Definition: ttg.h:2268
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const Key &key, const input_values_tuple_type &args)
    Definition: ttg.h:4091
    + +
    std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args(std::index_sequence< Is... > is, const Key &key, const std::tuple< Ts... > &args)
    Definition: ttg.h:3051
    +
    ttg::detail::input_terminals_tuple_t< keyT, input_tuple_type > input_terminals_type
    Definition: ttg.h:1219
    +
    static void static_set_arg(void *data, std::size_t size, ttg::TTBase *bop)
    Definition: ttg.h:1933
    +
    void set_input_reducer(Reducer &&reducer, std::size_t size)
    Definition: ttg.h:4070
    +
    output_terminalsT output_terminals_type
    Definition: ttg.h:1234
    +
    detail::reducer_task_t * create_new_reducer_task(task_t *task, bool is_first)
    Definition: ttg.h:2325
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local(const Value &value)
    Definition: ttg.h:2286
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke(const input_values_tuple_type &args)
    Definition: ttg.h:4108
    +
    void set_input_reducer(Reducer &&reducer)
    Definition: ttg.h:3989
    +
    decltype(priomap) const & get_priomap() const
    Definition: ttg.h:4221
    +
    ttg::detail::edges_tuple_t< keyT, ttg::meta::decayed_typelist_t< input_tuple_type > > input_edges_type
    Definition: ttg.h:1221
    +
    std::enable_if_t< ttg::meta::is_none_void_v< Key >, void > set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const Key &key, const std::tuple< Ts... > &args)
    Definition: ttg.h:3039
    +
    bool can_inline_data(Value *value_ptr, detail::ttg_data_copy_t *copy, const Key &key, std::size_t num_keys)
    Definition: ttg.h:2626
    +
    void copy_mark_pushout(detail::ttg_data_copy_t *copy)
    Definition: ttg.h:3317
    +
    void get_from_pull_msg(void *data, std::size_t size)
    Definition: ttg.h:2254
    +
    static constexpr int numinvals
    Definition: ttg.h:1230
    +
    std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_arg()
    Definition: ttg.h:2615
    +
    TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, ttg::World world, keymapT &&keymap_=keymapT(), priomapT &&priomap_=priomapT())
    Definition: ttg.h:3744
    +
    ttg::World get_world() const override final
    Definition: ttg.h:1315
    +
    void set_defer_writer(bool value)
    Definition: ttg.h:4194
    +
    void make_executable() override
    Marks this executable.
    Definition: ttg.h:4203
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local(std::shared_ptr< const Value > &valueptr)
    Definition: ttg.h:2292
    +
    void release_task(task_t *task, parsec_task_t **task_ring=nullptr)
    Definition: ttg.h:2553
    +
    virtual void release() override
    Definition: ttg.h:3952
    +
    void set_devicemap(Devicemap &&dm)
    Definition: ttg.h:4236
    +
    std::enable_if_t< key_is_void, void > finalize_argstream()
    finalizes stream for input i
    Definition: ttg.h:3270
    +
    std::enable_if_t<!ttg::meta::is_void_v< Key >, void > set_argstream_size(const Key &key, std::size_t size)
    Definition: ttg.h:3099
    +
    std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_argstream_size(std::size_t size)
    Definition: ttg.h:3160
    +
    void register_static_op_function(void)
    Definition: ttg.h:4262
    +
    static resultT get(InTuple &&intuple)
    Definition: ttg.h:1238
    +
    static auto & get(InTuple &&intuple)
    Definition: ttg.h:1242
    +
    void broadcast_arg_local(Iterator &&begin, Iterator &&end, const Value &value)
    Definition: ttg.h:2830
    +
    actual_input_tuple_type input_args_type
    Definition: ttg.h:1220
    +
    void set_priomap(Priomap &&pm)
    Definition: ttg.h:4226
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > prepare_send(const Value &value)
    Definition: ttg.h:3460
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg_local(Value &&value)
    Definition: ttg.h:2274
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&ttg::meta::is_empty_tuple_v< input_values_tuple_type >, void > invoke()
    Definition: ttg.h:4136
    +
    ttg::meta::drop_void_t< ttg::meta::decayed_typelist_t< input_tuple_type > > input_values_tuple_type
    Definition: ttg.h:1227
    +
    std::tuple_element_t< i, output_terminalsT > * out()
    Definition: ttg.h:4085
    +
    void argstream_set_size_from_msg(void *data, std::size_t size)
    Definition: ttg.h:2231
    +
    TT(const std::string &name, const std::vector< std::string > &innames, const std::vector< std::string > &outnames, keymapT &&keymap=keymapT(ttg::default_execution_context()), priomapT &&priomap=priomapT())
    Definition: ttg.h:3896
    +
    ttg::meta::void_to_Void_tuple_t< ttg::meta::decayed_typelist_t< actual_input_tuple_type > > input_values_full_tuple_type
    Definition: ttg.h:1224
    +
    void set_static_argstream_size(std::size_t size)
    Definition: ttg.h:3080
    +
    std::enable_if_t< ttg::meta::is_void_v< Key > &&!std::is_void_v< std::decay_t< Value > >, void > set_arg(Value &&value)
    Definition: ttg.h:2610
    +
    void set_arg_local_impl(const Key &key, Value &&value, detail::ttg_data_copy_t *copy_in=nullptr, parsec_task_t **task_ring=nullptr)
    Definition: ttg.h:2352
    +
    static constexpr bool derived_has_device_op()
    Definition: ttg.h:1213
    +
    static constexpr const ttg::Runtime runtime
    Definition: ttg.h:3981
    +
    static constexpr bool derived_has_cuda_op()
    Definition: ttg.h:1186
    +
    std::enable_if_t< ttg::meta::is_void_v< Key >, void > set_args(std::index_sequence< Is... >, std::index_sequence< Js... >, const std::tuple< Ts... > &args)
    Definition: ttg.h:3060
    + +
    void increment_created()
    Definition: ttg.h:452
    +
    virtual void execute() override
    Definition: ttg.h:393
    +
    static constexpr int parsec_ttg_rma_tag()
    Definition: ttg.h:389
    +
    void decrement_inflight_msg()
    Definition: ttg.h:455
    +
    WorldImpl & operator=(const WorldImpl &other)=delete
    +
    void destroy_tpool()
    Definition: ttg.h:404
    +
    const ttg::Edge & ctl_edge() const
    Definition: ttg.h:450
    +
    void increment_inflight_msg()
    Definition: ttg.h:454
    +
    WorldImpl(const WorldImpl &other)=delete
    +
    void register_tt_profiling(const TT< keyT, output_terminalsT, derivedT, input_valueTs > *t)
    Definition: ttg.h:512
    +
    virtual void profile_off() override
    Definition: ttg.h:484
    +
    void create_tpool()
    Definition: ttg.h:331
    +
    WorldImpl(int *argc, char **argv[], int ncores, parsec_context_t *c=nullptr)
    Definition: ttg.h:269
    +
    ttg::Edge & ctl_edge()
    Definition: ttg.h:448
    +
    MPI_Comm comm() const
    Definition: ttg.h:391
    + +
    bool mpi_support(ttg::ExecutionSpace space)
    Definition: ttg.h:498
    +
    virtual bool profiling() override
    Definition: ttg.h:496
    +
    virtual void dag_off() override
    Definition: ttg.h:475
    +
    virtual void fence_impl(void) override
    Definition: ttg.h:551
    +
    virtual void dag_on(const std::string &filename) override
    Definition: ttg.h:459
    +
    static constexpr int parsec_ttg_tag()
    Definition: ttg.h:388
    +
    virtual void final_task() override
    Definition: ttg.h:502
    +
    auto * taskpool()
    Definition: ttg.h:329
    +
    virtual void destroy() override
    Definition: ttg.h:417
    +
    virtual void profile_on() override
    Definition: ttg.h:490
    +
    WorldImpl(WorldImpl &&other)=delete
    +
    bool dag_profiling() override
    Definition: ttg.h:457
    +
    auto * execution_stream()
    Definition: ttg.h:328
    +
    auto * context()
    Definition: ttg.h:327
    +
    WorldImpl & operator=(WorldImpl &&other)=delete
    + +
    rma_delayed_activate(std::vector< KeyT > &&key, detail::ttg_data_copy_t *copy, int num_transfers, ActivationCallbackT cb)
    Definition: ttg.h:838
    + + + + + + + + + + + + + + +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    +
    typename make_index_sequence_t< I... >::type make_index_sequence
    +
    std::integral_constant< bool,(Flags &const_) !=0 > is_const
    +
    void set_default_world(WorldT &world)
    Definition: world.h:29
    +
    void deregister_world(ttg::base::WorldImplBase &world)
    +
    bool force_device_comm()
    Definition: env.cpp:33
    +
    typename input_terminals_tuple< keyT, valuesT... >::type input_terminals_tuple_t
    Definition: terminal.h:346
    +
    void register_world(ttg::base::WorldImplBase &world)
    +
    int num_threads()
    Determine the number of compute threads to use by TTG when not given to ttg::initialize
    Definition: env.cpp:15
    +
    typename edges_tuple< keyT, valuesT >::type edges_tuple_t
    Definition: edge.h:191
    +
    typename typelist_to_tuple< T >::type typelist_to_tuple_t
    Definition: typelist.h:52
    +
    ttg_data_copy_t * find_copy_in_task(parsec_ttg_task_base_t *task, const void *ptr)
    Definition: ttg.h:628
    +
    ttg_parsec::detail::ttg_data_copy_t * get_copy(ttg_parsec::Ptr< T > &p)
    Definition: ptr.h:277
    +
    bool & initialized_mpi()
    Definition: ttg.h:224
    +
    parsec_hook_return_t evaluate_level_zero(const parsec_task_t *parsec_task)
    Definition: ttg.h:820
    +
    ttg::device::Device parsec_device_to_ttg_device(int parsec_id)
    Definition: device.h:30
    +
    parsec_hook_return_t hook_level_zero(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
    Definition: ttg.h:788
    +
    int first_device_id
    Definition: device.h:12
    +
    std::size_t max_inline_size
    Definition: ttg.h:190
    +
    int find_index_of_copy_in_task(parsec_ttg_task_base_t *task, const void *ptr)
    Definition: ttg.h:643
    +
    int ttg_device_to_parsec_device(const ttg::device::Device &device)
    Definition: device.h:18
    +
    const parsec_symbol_t parsec_taskclass_param1
    Definition: ttg.h:603
    +
    parsec_hook_return_t evaluate_cuda(const parsec_task_t *parsec_task)
    Definition: ttg.h:800
    +
    bool add_copy_to_task(ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
    Definition: ttg.h:657
    +
    constexpr const int PARSEC_TTG_MAX_AM_SIZE
    Definition: ttg.h:172
    +
    void remove_data_copy(ttg_data_copy_t *copy, parsec_ttg_task_base_t *task)
    Definition: ttg.h:671
    +
    parsec_hook_return_t hook(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
    Definition: ttg.h:757
    +
    ttg_data_copy_t * register_data_copy(ttg_data_copy_t *copy_in, parsec_ttg_task_base_t *task, bool readonly)
    Definition: ttg.h:935
    +
    parsec_hook_return_t evaluate_hip(const parsec_task_t *parsec_task)
    Definition: ttg.h:810
    +
    const parsec_symbol_t parsec_taskclass_param2
    Definition: ttg.h:611
    + + + + + + + +
    parsec_hook_return_t hook_hip(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
    Definition: ttg.h:777
    +
    ttg_data_copy_t * create_new_datacopy(Value &&value)
    Definition: ttg.h:699
    +
    parsec_hook_return_t hook_cuda(struct parsec_execution_stream_s *es, parsec_task_t *parsec_task)
    Definition: ttg.h:766
    +
    thread_local parsec_ttg_task_base_t * parsec_ttg_caller
    Definition: thread_local.h:12
    +
    void transfer_ownership(parsec_ttg_task_t< TT > *me, int device, std::index_sequence< Is... >)
    Definition: ttg.h:750
    +
    void release_data_copy(ttg_data_copy_t *copy)
    Definition: ttg.h:882
    +
    void transfer_ownership_impl(ttg_data_copy_t *copy, int device)
    Definition: ttg.h:742
    +
    const parsec_symbol_t parsec_taskclass_param3
    Definition: ttg.h:619
    +
    const parsec_symbol_t parsec_taskclass_param0
    Definition: ttg.h:595
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    void ttg_fence(ttg::World world)
    Definition: ttg.h:1085
    +
    std::tuple< int, void *, size_t > static_set_arg_fct_arg_t
    Definition: ttg.h:136
    +
    std::map< uint64_t, static_set_arg_fct_call_t > static_id_to_op_map
    Definition: ttg.h:134
    +
    std::multimap< uint64_t, static_set_arg_fct_arg_t > delayed_unpack_actions
    Definition: ttg.h:137
    +
    void ttg_finalize()
    Definition: ttg.h:1071
    +
    void ttg_register_ptr(ttg::World world, const std::shared_ptr< T > &ptr)
    Definition: ttg.h:1088
    +
    std::mutex static_map_mutex
    Definition: ttg.h:135
    +
    void ttg_register_callback(ttg::World world, Callback &&callback)
    Definition: ttg.h:1102
    +
    ttg::Edge & ttg_ctl_edge(ttg::World world)
    Definition: ttg.h:1106
    +
    void make_executable_hook(ttg::World &)
    Definition: ttg.h:1114
    +
    void(* static_set_arg_fct_type)(void *, size_t, ttg::TTBase *)
    Definition: ttg.h:132
    +
    void ttg_initialize(int argc, char **argv, int num_threads=-1, parsec_context_s *=nullptr)
    +
    void ttg_register_status(ttg::World world, const std::shared_ptr< std::promise< void >> &status_ptr)
    Definition: ttg.h:1097
    +
    ttg::World ttg_default_execution_context()
    Definition: ttg.h:1081
    +
    std::pair< static_set_arg_fct_type, ttg::TTBase * > static_set_arg_fct_call_t
    Definition: ttg.h:133
    +
    void ttg_execute(ttg::World world)
    Definition: ttg.h:1084
    +
    void ttg_sum(ttg::World world, double &value)
    Definition: ttg.h:1108
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    ExecutionSpace
    denotes task execution space
    Definition: execution.h:17
    + + + + +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    void abort()
    Aborts the TTG program using the default backend's ttg_abort method.
    Definition: run.h:62
    +
    Runtime
    Definition: runtimes.h:15
    + +
    World default_execution_context()
    Accesses the default backend's default execution context.
    Definition: run.h:68
    +
    TTG_CXX_COROUTINE_NAMESPACE::coroutine_handle< Promise > coroutine_handle
    Definition: coroutine.h:24
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +
    void print_error(const T &t, const Ts &... ts)
    atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:138
    +
    bool tracing()
    returns whether tracing is enabled
    Definition: trace.h:28
    +
    int rank(World world=default_execution_context())
    Definition: run.h:85
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +
    void trace(const T &t, const Ts &... ts)
    Definition: trace.h:43
    +
    @ ResumableTask
    -> ttg::resumable_task
    +
    @ Invalid
    not a coroutine, i.e. a standard task function, -> void
    +
    @ DeviceTask
    -> ttg::device::Task
    + +
    #define TTG_PARSEC_DATA_FLAG_REGISTERED
    Definition: parsec-ext.h:5
    + + + + + + + + + +
    Provides (de)serialization of C++ data that can be invoked from C via ttg_data_descriptor.
    +
    std::add_lvalue_reference_t< Value > operator()(Value &&value)
    Definition: ttg.h:4343
    +
    const Value & operator()(const Value &value)
    Definition: ttg.h:4399
    + +
    value_copy_handler & operator=(value_copy_handler &&h)
    Definition: ttg.h:4327
    +
    value_copy_handler(const value_copy_handler &h)=delete
    +
    std::add_lvalue_reference_t< Value > operator()(ttg_parsec::detail::persistent_value_ref< Value > vref)
    Definition: ttg.h:4379
    +
    value_copy_handler & operator=(const value_copy_handler &h)=delete
    + + + + +
    Computes hash values for objects of type T.
    Definition: hash.h:81
    +
    task that can be resumed after some events occur
    Definition: coroutine.h:53
    + + + +
    parsec_hash_table_t tasks_table
    Definition: ttg.h:1144
    +
    parsec_gpu_task_t * gpu_task
    Definition: task.h:14
    + + +
    msg_header_t tt_id
    Definition: ttg.h:175
    +
    static constexpr std::size_t max_payload_size
    Definition: ttg.h:176
    +
    msg_t(uint64_t tt_id, uint32_t taskpool_id, msg_header_t::fn_id_t fn_id, int32_t param_id, int sender, int num_keys=1)
    Definition: ttg.h:180
    +
    unsigned char bytes[max_payload_size]
    Definition: ttg.h:177
    + + + + + + + + +
    ttg_parsec_data_flags data_flags
    Definition: task.h:136
    + +
    parsec_hash_table_item_t tt_ht_item
    Definition: task.h:94
    + + +
    std::array< stream_info_t, num_streams > streams
    Definition: task.h:204
    + + + +
    ttg_data_copy_t * copies[num_copies]
    Definition: task.h:210
    + +
    lvalue_reference_type value_ref
    Definition: ttvalue.h:88
    +
    static void drop_all_ptr()
    Definition: ptr.h:117
    + +
    static void release_task(parsec_ttg_task_base_t *task_base)
    Definition: task.h:342
    + + + + + + +
    parsec_task_t * get_next_task() const
    +
    ttg::span< ttg::iovec > iovec_span()
    + + +
    void transfer_ownership(int access, int device=0)
    + + + + + + + + + +
    void set_next_task(parsec_task_t *task)
    + + + + +
    enum ttg_parsec::msg_header_t::fn_id fn_id_t
    +
    uint32_t taskpool_id
    Definition: ttg.h:146
    + + + + + + + + +
    std::int8_t num_iovecs
    Definition: ttg.h:150
    + +
    std::size_t key_offset
    Definition: ttg.h:148
    + + +
    msg_header_t(fn_id_t fid, uint32_t tid, uint64_t oid, int32_t pid, int sender, int nk)
    Definition: ttg.h:158
    + + + + + +
    #define TTG_PROCESS_TT_OP_RETURN(result, id, invoke)
    Definition: tt.h:181
    +
    int parsec_add_fetch_runtime_task(parsec_taskpool_t *tp, int tasks)
    +
    void parsec_taskpool_termination_detected(parsec_taskpool_t *tp)
    +
    #define TTG_PARSEC_DEFER_WRITER
    Definition: ttg.h:13
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg_8h.html b/dox-master/ttg_8h.html new file mode 100644 index 000000000..f371a7568 --- /dev/null +++ b/dox-master/ttg_8h.html @@ -0,0 +1,157 @@ + + + + + + + + + + + ttg: ttg/ttg.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg.h File Reference
    +
    +
    +
    #include "ttg/config.h"
    +#include "ttg/fwd.h"
    +#include "ttg/runtimes.h"
    +#include "ttg/util/demangle.h"
    +#include "ttg/util/hash.h"
    +#include "ttg/util/meta.h"
    +#include "ttg/util/print.h"
    +#include "ttg/util/trace.h"
    +#include "ttg/util/void.h"
    +#include "ttg/util/typelist.h"
    +#include "ttg/base/keymap.h"
    +#include "ttg/base/terminal.h"
    +#include "ttg/base/world.h"
    +#include "ttg/broadcast.h"
    +#include "ttg/func.h"
    +#include "ttg/reduce.h"
    +#include "ttg/traverse.h"
    +#include "ttg/tt.h"
    +#include "ttg/util/dot.h"
    +#include "ttg/util/macro.h"
    +#include "ttg/world.h"
    +#include "ttg/edge.h"
    +#include "ttg/ptr.h"
    +#include "ttg/buffer.h"
    +#include "ttg/devicescratch.h"
    +#include "ttg/ttvalue.h"
    +#include "ttg/devicescope.h"
    +#include "ttg/device/device.h"
    +#include "ttg/device/task.h"
    +#include "ttg/madness/ttg.h"
    +#include "ttg/run.h"
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg_8h_source.html b/dox-master/ttg_8h_source.html new file mode 100644 index 000000000..c85ed21d4 --- /dev/null +++ b/dox-master/ttg_8h_source.html @@ -0,0 +1,205 @@ + + + + + + + + + + + ttg: ttg/ttg.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_H_INCLUDED
    +
    2 #define TTG_H_INCLUDED
    +
    3 
    +
    4 #include "ttg/config.h"
    +
    5 #include "ttg/fwd.h"
    +
    6 
    +
    7 #include "ttg/runtimes.h"
    +
    8 #include "ttg/util/demangle.h"
    +
    9 #include "ttg/util/hash.h"
    +
    10 #include "ttg/util/meta.h"
    +
    11 #include "ttg/util/print.h"
    +
    12 #include "ttg/util/trace.h"
    +
    13 #include "ttg/util/void.h"
    +
    14 #include "ttg/util/typelist.h"
    +
    15 
    +
    16 #include "ttg/base/keymap.h"
    +
    17 #include "ttg/base/terminal.h"
    +
    18 #include "ttg/base/world.h"
    +
    19 #include "ttg/broadcast.h"
    +
    20 #include "ttg/func.h"
    +
    21 #include "ttg/reduce.h"
    +
    22 #include "ttg/traverse.h"
    +
    23 #include "ttg/tt.h"
    +
    24 #include "ttg/util/dot.h"
    +
    25 #include "ttg/util/macro.h"
    +
    26 #include "ttg/util/print.h"
    +
    27 #include "ttg/world.h"
    +
    28 
    +
    29 #include "ttg/edge.h"
    +
    30 
    +
    31 #include "ttg/ptr.h"
    +
    32 #include "ttg/buffer.h"
    +
    33 #include "ttg/devicescratch.h"
    +
    34 #include "ttg/ttvalue.h"
    +
    35 #include "ttg/devicescope.h"
    +
    36 #include "ttg/device/device.h"
    +
    37 #include "ttg/device/task.h"
    +
    38 
    +
    39 #if defined(TTG_USE_PARSEC)
    +
    40 #include "ttg/parsec/ttg.h"
    +
    41 #elif defined(TTG_USE_MADNESS)
    +
    42 #include "ttg/madness/ttg.h"
    +
    43 #endif // TTG_USE_{PARSEC|MADNESS}
    +
    44 
    +
    45 // these headers use the default backend
    +
    46 #include "ttg/run.h"
    +
    47 
    +
    48 #endif // TTG_H_INCLUDED
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg__data__copy_8h.html b/dox-master/ttg__data__copy_8h.html new file mode 100644 index 000000000..d2ab9f63c --- /dev/null +++ b/dox-master/ttg__data__copy_8h.html @@ -0,0 +1,161 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ttg_data_copy.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttg_data_copy.h File Reference
    +
    +
    +
    #include <utility>
    +#include <limits>
    +#include <vector>
    +#include <iterator>
    +#include <atomic>
    +#include <type_traits>
    +#include <parsec.h>
    +#include "ttg/parsec/thread_local.h"
    +#include "ttg/parsec/parsec-ext.h"
    +#include "ttg/util/span.h"
    +
    + + + + + + + + + + + +

    +Classes

    struct  ttg_parsec::detail::ttg_parsec_data_wrapper_t
     
    struct  ttg_parsec::detail::ttg_data_copy_container_setter< T >
     
    struct  ttg_parsec::detail::ttg_data_copy_self_t
     
    struct  ttg_parsec::detail::ttg_data_copy_t
     
    struct  ttg_parsec::detail::ttg_data_value_copy_t< ValueT >
     
    + + + + + + +

    +Namespaces

     ttg_parsec
     this contains PaRSEC-based TTG functionality
     
     ttg_parsec::detail
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttg__data__copy_8h_source.html b/dox-master/ttg__data__copy_8h_source.html new file mode 100644 index 000000000..4e4720181 --- /dev/null +++ b/dox-master/ttg__data__copy_8h_source.html @@ -0,0 +1,800 @@ + + + + + + + + + + + ttg: ttg/ttg/parsec/ttg_data_copy.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttg_data_copy.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_DATA_COPY_H
    +
    2 #define TTG_DATA_COPY_H
    +
    3 
    +
    4 #include <utility>
    +
    5 #include <limits>
    +
    6 #include <vector>
    +
    7 #include <iterator>
    +
    8 #include <atomic>
    +
    9 #include <type_traits>
    +
    10 
    +
    11 #if defined(PARSEC_HAVE_DEV_CUDA_SUPPORT)
    +
    12 #include <cuda_runtime.h>
    +
    13 #endif // PARSEC_HAVE_DEV_CUDA_SUPPORT
    +
    14 
    +
    15 #include <parsec.h>
    +
    16 
    + +
    18 #include "ttg/parsec/parsec-ext.h"
    +
    19 #include "ttg/util/span.h"
    +
    20 
    +
    21 
    +
    22 namespace ttg_parsec {
    +
    23 
    +
    24  namespace detail {
    +
    25 
    +
    26  // fwd-decl
    +
    27  struct ttg_data_copy_t;
    +
    28 
    +
    29  /* Wrapper managing the relationship between a ttg data copy and the parsec_data_t object */
    + +
    31 
    +
    32  protected:
    +
    33  using parsec_data_ptr = std::unique_ptr<parsec_data_t, decltype(&parsec_data_destroy)>;
    +
    34 
    + + +
    37 
    + +
    39 
    +
    40  static parsec_data_t* create_parsec_data(void *ptr, size_t size) {
    +
    41  parsec_data_t *data = parsec_data_create_with_type(nullptr, 0, ptr, size,
    +
    42  parsec_datatype_int8_t);
    +
    43  data->device_copies[0]->flags |= PARSEC_DATA_FLAG_PARSEC_MANAGED;
    +
    44  data->device_copies[0]->coherency_state = PARSEC_DATA_COHERENCY_SHARED;
    +
    45  data->device_copies[0]->version = 1;
    +
    46  return data;
    +
    47  }
    +
    48 
    +
    49  parsec_data_t* parsec_data() {
    +
    50  return m_data.get();
    +
    51  }
    +
    52 
    +
    53  const parsec_data_t* parsec_data() const {
    +
    54  return m_data.get();
    +
    55  }
    +
    56 
    +
    57  static void delete_parsec_data(parsec_data_t *data) {
    +
    58 #if defined(PARSEC_HAVE_DEV_CUDA_SUPPORT)
    +
    59  if (data->device_copies[0]->flags & TTG_PARSEC_DATA_FLAG_REGISTERED) {
    +
    60  // register the memory for faster access
    +
    61  cudaError_t status;
    +
    62  status = cudaHostUnregister(data->device_copies[0]->device_private);
    +
    63  assert(cudaSuccess == status);
    +
    64  data->device_copies[0]->flags ^= TTG_PARSEC_DATA_FLAG_REGISTERED;
    +
    65  }
    +
    66 #endif // PARSEC_HAVE_DEV_CUDA_SUPPORT
    +
    67  //std::fprintf(stderr, "parsec_data_destroy %p device_copy[0] %p\n", data, data->device_copies[0]);
    +
    68  //parsec_data_destroy(data);
    +
    69  assert(data->device_copies[0] != nullptr);
    +
    70  auto copy = data->device_copies[0];
    +
    71  parsec_data_copy_detach(data, data->device_copies[0], 0);
    +
    72  PARSEC_OBJ_RELEASE(copy);
    +
    73  PARSEC_OBJ_RELEASE(data);
    +
    74 
    +
    75  }
    +
    76 
    +
    77  static void delete_null_parsec_data(parsec_data_t *) {
    +
    78  // nothing to be done, only used for nullptr
    +
    79  }
    +
    80 
    +
    81  protected:
    +
    82 
    +
    83  /* remove the the data from the owning data copy */
    +
    84  void remove_from_owner();
    +
    85 
    +
    86  /* add the data to the owning data copy */
    +
    87  void reset_parsec_data(void *ptr, size_t size);
    +
    88 
    + +
    90 
    + +
    92 
    + +
    94 
    + +
    96 
    + +
    98 
    + +
    100 
    +
    101  /* set a new owning data copy object */
    +
    102  void set_owner(ttg_data_copy_t& new_copy) {
    +
    103  m_ttg_copy = &new_copy;
    +
    104  }
    +
    105  };
    +
    106 
    +
    107 
    +
    108  /* templated to break cyclic dependency with ttg_data_copy_container */
    +
    109  template<typename T = ttg_data_copy_t>
    + + +
    112  /* set the container ptr here, will be reset in the the ttg_data_value_copy_t ctor */
    + +
    114  }
    +
    115  };
    +
    116 
    +
    117  /* special type: stores a pointer to the ttg_data_copy_t. This is necessary
    +
    118  * because ttg_data_copy_t has virtual functions so we cannot cast from parsec_data_copy_t
    +
    119  * to ttg_data_copy_t (offsetof is not supported for virtual classes).
    +
    120  * The self pointer is a back-pointer to the ttg_data_copy_t. */
    + +
    122  parsec_list_item_t super;
    + + +
    125  : self(dc)
    +
    126  {
    +
    127  PARSEC_OBJ_CONSTRUCT(&super, parsec_list_item_t);
    +
    128  }
    +
    129  };
    +
    130 
    +
    131  /* Non-owning copy-tracking wrapper, accounting for N readers or 1 writer.
    +
    132  * Also counts external references, which are not treated as
    +
    133  * readers or writers but merely prevent the object from being
    +
    134  * destroyed once no readers/writers exist.
    +
    135  */
    + +
    137 
    +
    138  /* special value assigned to parsec_data_copy_t::readers to mark the copy as
    +
    139  * mutable, i.e., a task will modify it */
    +
    140  static constexpr int mutable_tag = std::numeric_limits<int>::min();
    +
    141 
    + +
    143  : ttg_data_copy_self_t(this)
    +
    144  { }
    +
    145 
    + +
    147  : ttg_data_copy_self_t(this)
    +
    148  {
    +
    149  /* we allow copying but do not copy any data over from the original
    +
    150  * device copies will have to be allocated again
    +
    151  * and it's a new object to reference */
    +
    152  }
    +
    153 
    + +
    155  : ttg_data_copy_self_t(this)
    + +
    157  , m_readers(c.m_readers)
    +
    158  , m_refs(c.m_refs.load(std::memory_order_relaxed))
    +
    159  , m_dev_data(std::move(c.m_dev_data))
    + + +
    162  {
    +
    163  c.m_num_dev_data = 0;
    +
    164  c.m_readers = 0;
    +
    165  c.m_single_dev_data = nullptr;
    +
    166 
    + +
    168  data->set_owner(*this);
    +
    169  });
    +
    170  }
    +
    171 
    + +
    173  {
    +
    174  m_next_task = c.m_next_task;
    +
    175  c.m_next_task = nullptr;
    +
    176  m_readers = c.m_readers;
    +
    177  c.m_readers = 0;
    +
    178  m_refs.store(c.m_refs.load(std::memory_order_relaxed), std::memory_order_relaxed);
    +
    179  c.m_refs.store(0, std::memory_order_relaxed);
    +
    180  m_dev_data = std::move(c.m_dev_data);
    +
    181  m_single_dev_data = c.m_single_dev_data;
    +
    182  c.m_single_dev_data = nullptr;
    +
    183  m_num_dev_data = c.m_num_dev_data;
    +
    184  c.m_num_dev_data = 0;
    +
    185 
    +
    186  /* move all data to the new owner */
    + +
    188  data->set_owner(*this);
    +
    189  });
    +
    190  return *this;
    +
    191  }
    +
    192 
    + +
    194  /* we allow copying but do not copy any data over from the original
    +
    195  * device copies will have to be allocated again
    +
    196  * and it's a new object to reference */
    +
    197 
    +
    198  return *this;
    +
    199  }
    +
    200 
    +
    201  /* mark destructor as virtual */
    +
    202  virtual ~ttg_data_copy_t() = default;
    +
    203 
    +
    204  /* Returns true if the copy is mutable */
    +
    205  bool is_mutable() const {
    +
    206  return m_readers == mutable_tag;
    +
    207  }
    +
    208 
    +
    209  /* Mark the copy as mutable */
    +
    210  void mark_mutable() {
    + +
    212  }
    +
    213 
    +
    214  /* Increment the reader counter and return previous value
    +
    215  * \tparam Atomic Whether to decrement atomically. Default: true
    +
    216  */
    +
    217  template<bool Atomic = true>
    + +
    219  if constexpr(Atomic) {
    +
    220  return parsec_atomic_fetch_inc_int32(&m_readers);
    +
    221 // std::atomic_ref<int32_t> a{m_readers};
    +
    222 // return a.fetch_add(1, std::memory_order_relaxed);
    +
    223  } else {
    +
    224  return m_readers++;
    +
    225  }
    +
    226  }
    +
    227 
    +
    231  void reset_readers() {
    +
    232  if (mutable_tag == m_readers) {
    +
    233  m_readers = 1;
    +
    234  }
    +
    235  }
    +
    236 
    +
    237  /* Decrement the reader counter and return previous value.
    +
    238  * \tparam Atomic Whether to decrement atomically. Default: true
    +
    239  */
    +
    240  template<bool Atomic = true>
    + +
    242  if constexpr(Atomic) {
    +
    243  return parsec_atomic_fetch_dec_int32(&m_readers);
    +
    244 // std::atomic_ref<int32_t> a{m_readers};
    +
    245 // return a.fetch_sub(1, std::memory_order_relaxed);
    +
    246  } else {
    +
    247  return m_readers--;
    +
    248  }
    +
    249  }
    +
    250 
    +
    251  /* Returns the number of readers if the copy is immutable, or \c mutable_tag
    +
    252  * if the copy is mutable */
    +
    253  int num_readers() const {
    +
    254  return m_readers;
    +
    255  }
    +
    256 
    +
    257  /* Returns the pointer to the user data wrapped by the the copy object */
    +
    258  virtual void* get_ptr() = 0;
    +
    259 
    +
    260  parsec_task_t* get_next_task() const {
    +
    261  return m_next_task;
    +
    262  }
    +
    263 
    +
    264  void set_next_task(parsec_task_t* task) {
    +
    265  m_next_task = task;
    +
    266  }
    +
    267 
    +
    268  int32_t add_ref() {
    +
    269  return m_refs.fetch_add(1, std::memory_order_relaxed);
    +
    270  }
    +
    271 
    +
    272  int32_t drop_ref() {
    +
    273  return m_refs.fetch_sub(1, std::memory_order_relaxed);
    +
    274  }
    +
    275 
    +
    276  bool has_ref() {
    +
    277  return (m_refs.load(std::memory_order_relaxed) != 0);
    +
    278  }
    +
    279 
    +
    280  int32_t num_ref() const {
    +
    281  return m_refs.load(std::memory_order_relaxed);
    +
    282  }
    +
    283 
    +
    284  /* increment the version of the current copy */
    + +
    286  //std::cout << "data-copy " << this << " inc_current_version " << " count " << m_num_dev_data << std::endl;
    +
    287  foreach_parsec_data([](parsec_data_t* data){
    +
    288  assert(data->device_copies[0] != nullptr);
    +
    289  data->device_copies[0]->version++;
    +
    290  });
    +
    291  }
    +
    292 
    +
    293  void transfer_ownership(int access, int device = 0) {
    +
    294  foreach_parsec_data([&](parsec_data_t* data){
    +
    295  parsec_data_transfer_ownership_to_copy(data, device, access);
    +
    296  });
    +
    297  }
    +
    298 
    +
    299  /* manage device copies owned by this object
    +
    300  * we only touch the vector if we have more than one copies to track
    +
    301  * and otherwise use the single-element member.
    +
    302  */
    + +
    304 
    + +
    306  switch (m_num_dev_data) {
    +
    307  case 0:
    + +
    309  break;
    +
    310  case 1:
    +
    311  /* move single copy into vector and add new copy below */
    +
    312  m_dev_data.push_back(m_single_dev_data);
    +
    313  m_single_dev_data = nullptr;
    +
    314  /* fall-through */
    +
    315  default:
    +
    316  /* store in multi-copy vector */
    +
    317  m_dev_data.push_back(data);
    +
    318  break;
    +
    319  }
    +
    320  //std::cout << "data-copy " << this << " add data " << data << " count " << m_num_dev_data << std::endl;
    +
    321  m_num_dev_data++;
    +
    322  }
    +
    323 
    + +
    325  //std::cout << "data-copy " << this << " remove data " << data << " count " << m_num_dev_data << std::endl;
    +
    326  if (m_num_dev_data == 0) {
    +
    327  /* this may happen if we're integrated into the object and have been moved */
    +
    328  return;
    +
    329  }
    +
    330  if (m_num_dev_data == 1) {
    +
    331  assert(m_single_dev_data == data);
    +
    332  m_single_dev_data = nullptr;
    +
    333  } else if (m_num_dev_data > 1) {
    +
    334  auto it = std::find(m_dev_data.begin(), m_dev_data.end(), data);
    +
    335  if (it != m_dev_data.end()) {
    +
    336  m_dev_data.erase(it);
    +
    337  }
    +
    338  }
    +
    339  --m_num_dev_data;
    +
    340  /* make single-entry if needed */
    +
    341  if (m_num_dev_data == 1) {
    + +
    343  m_dev_data.clear();
    +
    344  }
    +
    345  }
    +
    346 
    +
    347  int num_dev_data() const {
    +
    348  return m_num_dev_data;
    +
    349  }
    +
    350 
    +
    351  template<typename Fn>
    +
    352  void foreach_wrapper(Fn&& fn) {
    +
    353  if (m_num_dev_data == 1) {
    +
    354  fn(m_single_dev_data);
    +
    355  } else if (m_num_dev_data > 1) {
    +
    356  std::for_each(m_dev_data.begin(), m_dev_data.end(), fn);
    +
    357  }
    +
    358  }
    +
    359 
    +
    360  template<typename Fn>
    +
    361  void foreach_parsec_data(Fn&& fn) {
    +
    362  if (m_num_dev_data == 1) {
    + + +
    365  }
    +
    366  } else if (m_num_dev_data > 1) {
    +
    367  std::for_each(m_dev_data.begin(), m_dev_data.end(),
    + +
    369  if (data->parsec_data()) {
    +
    370  fn(data->parsec_data());
    +
    371  }
    +
    372  }
    +
    373  );
    +
    374  }
    +
    375  }
    +
    376 
    +
    377 
    +
    378 #if 0
    +
    379  iterator begin() {
    +
    380  switch(m_num_dev_data) {
    +
    381  // no device copies
    +
    382  case 0: return end();
    +
    383  case 1: return &m_single_dev_data;
    +
    384  default: return m_dev_data.data();
    +
    385  }
    +
    386  }
    +
    387 
    +
    388  iterator end() {
    +
    389  switch(m_num_dev_data) {
    +
    390  case 0:
    +
    391  case 1:
    +
    392  return &(m_single_dev_data) + 1;
    +
    393  default:
    +
    394  return m_dev_data.data() + m_dev_data.size();
    +
    395  }
    +
    396  }
    +
    397 #endif // 0
    +
    398 
    +
    399  using iovec_iterator = typename std::vector<ttg::iovec>::iterator;
    +
    400 
    + +
    402  return m_iovecs.begin();
    +
    403  }
    +
    404 
    + +
    406  return m_iovecs.end();
    +
    407  }
    +
    408 
    +
    409  void iovec_reset() {
    +
    410  m_iovecs.clear();
    +
    411  }
    +
    412 
    +
    413  void iovec_add(const ttg::iovec& iov) {
    +
    414  m_iovecs.push_back(iov);
    +
    415  }
    +
    416 
    +
    417  ttg::span<ttg::iovec> iovec_span() {
    +
    418  return ttg::span<ttg::iovec>(m_iovecs.data(), m_iovecs.size());
    +
    419  }
    +
    420 
    +
    421  std::size_t iovec_count() const {
    +
    422  return m_iovecs.size();
    +
    423  }
    +
    424 
    +
    425 #if defined(PARSEC_PROF_TRACE) && defined(PARSEC_TTG_PROFILE_BACKEND)
    +
    426  int64_t size;
    +
    427  int64_t uid;
    +
    428 #endif
    +
    429  protected:
    +
    430  parsec_task_t *m_next_task = nullptr;
    +
    431  int32_t m_readers = 1;
    +
    432  std::atomic<int32_t> m_refs = 1; //< number of entities referencing this copy (TTGs, external)
    +
    433 
    +
    434  std::vector<ttg::iovec> m_iovecs;
    +
    435 
    +
    436  std::vector<ttg_parsec_data_wrapper_t*> m_dev_data; //< used if there are multiple device copies
    +
    437  // that belong to this object
    +
    438  ttg_parsec_data_wrapper_t *m_single_dev_data; //< used if there is a single device copy
    +
    439  int m_num_dev_data = 0; //< number of device copies
    +
    440  };
    +
    441 
    +
    442 
    +
    448  template<typename ValueT>
    +
    449  struct ttg_data_value_copy_t final : private ttg_data_copy_container_setter<ttg_data_copy_t>
    +
    450  , public ttg_data_copy_t {
    +
    451  using value_type = ValueT;
    + +
    453 
    +
    454  template<typename T>
    + + +
    457  , ttg_data_copy_t()
    +
    458  , m_value(std::forward<T>(value))
    +
    459  {
    +
    460  /* reset the container tracker */
    +
    461  ttg_data_copy_container() = nullptr;
    +
    462  }
    +
    463 
    + +
    465  noexcept(std::is_nothrow_move_constructible_v<value_type>)
    + +
    467  , ttg_data_copy_t(std::move(c))
    +
    468  , m_value(std::move(c.m_value))
    +
    469  {
    +
    470  /* reset the container tracker */
    +
    471  ttg_data_copy_container() = nullptr;
    +
    472  }
    +
    473 
    + +
    475  noexcept(std::is_nothrow_copy_constructible_v<value_type>)
    + +
    477  , ttg_data_copy_t(c)
    +
    478  , m_value(c.m_value)
    +
    479  {
    +
    480  /* reset the container tracker */
    +
    481  ttg_data_copy_container() = nullptr;
    +
    482  }
    +
    483 
    + +
    485  noexcept(std::is_nothrow_move_assignable_v<value_type>)
    +
    486  {
    +
    487  /* set the container ptr here, will be reset in the the ttg_data_value_copy_t ctor */
    +
    488  ttg_data_copy_container() = this;
    +
    489  ttg_data_copy_t::operator=(std::move(c));
    +
    490  m_value = std::move(c.m_value);
    +
    491  /* reset the container tracker */
    +
    492  ttg_data_copy_container() = nullptr;
    +
    493  }
    +
    494 
    + +
    496  noexcept(std::is_nothrow_copy_assignable_v<value_type>)
    +
    497  {
    +
    498  /* set the container ptr here, will be reset in the the ttg_data_value_copy_t ctor */
    +
    499  ttg_data_copy_container() = this;
    +
    500  ttg_data_copy_t::operator=(c);
    +
    501  m_value = c.m_value;
    +
    502  /* reset the container tracker */
    +
    503  ttg_data_copy_container() = nullptr;
    +
    504  }
    +
    505 
    + +
    507  return m_value;
    +
    508  }
    +
    509 
    +
    510  /* will destruct the value */
    +
    511  virtual ~ttg_data_value_copy_t() = default;
    +
    512 
    +
    513  virtual void* get_ptr() override final {
    +
    514  return &m_value;
    +
    515  }
    +
    516  };
    +
    517 
    +
    522  inline
    +
    523  void ttg_parsec_data_wrapper_t::remove_from_owner() {
    +
    524  if (nullptr != m_ttg_copy) {
    +
    525  m_ttg_copy->remove_device_data(this);
    +
    526  m_ttg_copy = nullptr;
    +
    527  }
    +
    528  }
    +
    529 
    +
    530  inline
    +
    531  void ttg_parsec_data_wrapper_t::reset_parsec_data(void *ptr, size_t size) {
    +
    532  if (ptr == m_data.get()) return;
    +
    533 
    +
    534  if (nullptr == ptr) {
    +
    535  m_data = parsec_data_ptr(nullptr, &delete_null_parsec_data);
    +
    536  } else {
    +
    537  m_data = parsec_data_ptr(create_parsec_data(ptr, size), &delete_parsec_data);
    +
    538  }
    +
    539  }
    +
    540 
    +
    541  inline
    +
    542  ttg_parsec_data_wrapper_t::ttg_parsec_data_wrapper_t()
    +
    543  : m_data(nullptr, delete_null_parsec_data)
    +
    544  , m_ttg_copy(detail::ttg_data_copy_container())
    +
    545  {
    +
    546  if (m_ttg_copy) {
    + +
    548  }
    +
    549  }
    +
    550 
    +
    551  inline
    + +
    553  : m_data(std::move(other.m_data))
    +
    554  , m_ttg_copy(detail::ttg_data_copy_container())
    +
    555  {
    +
    556  /* the ttg_data_copy may have moved us already */
    +
    557  //if (other.m_ttg_copy != m_ttg_copy) {
    +
    558  // try to remove the old buffer from the *old* ttg_copy
    +
    559  other.remove_from_owner();
    +
    560 
    +
    561  // register with the new ttg_copy
    +
    562  if (nullptr != m_ttg_copy) {
    + +
    564  }
    +
    565  //} else {
    +
    566  // other.m_ttg_copy = nullptr;
    +
    567  //}
    +
    568  }
    +
    569 
    +
    570  inline
    + +
    572  m_data = std::move(other.m_data);
    +
    573  /* check whether the owning ttg_data_copy has already moved us */
    +
    574  if (other.m_ttg_copy != m_ttg_copy) {
    +
    575  /* remove from old ttg copy */
    +
    576  other.remove_from_owner();
    +
    577 
    +
    578  if (nullptr != m_ttg_copy) {
    +
    579  /* register with the new ttg_copy */
    + +
    581  }
    +
    582  }
    +
    583  return *this;
    +
    584  }
    +
    585 
    +
    586 
    +
    587  inline
    + +
    589  if (nullptr != m_ttg_copy) {
    + +
    591  m_ttg_copy = nullptr;
    +
    592  }
    +
    593  }
    +
    594 
    +
    595 
    +
    596  } // namespace detail
    +
    597 
    +
    598 } // namespace ttg_parsec
    +
    599 
    +
    600 #endif // TTG_DATA_COPY_H
    +
    constexpr auto data(C &c) -> decltype(c.data())
    Definition: span.h:189
    +
    ttg_data_copy_t *& ttg_data_copy_container()
    Definition: thread_local.h:14
    +
    this contains PaRSEC-based TTG functionality
    Definition: fwd.h:18
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    + +
    #define TTG_PARSEC_DATA_FLAG_REGISTERED
    Definition: parsec-ext.h:5
    + + + + + + + + + + + + + + + +
    ttg_parsec_data_wrapper_t * m_single_dev_data
    +
    parsec_task_t * get_next_task() const
    +
    ttg::span< ttg::iovec > iovec_span()
    +
    ttg_data_copy_t(const ttg_data_copy_t &c)
    + +
    std::vector< ttg_parsec_data_wrapper_t * > m_dev_data
    + + + + +
    void remove_device_data(ttg_parsec_data_wrapper_t *data)
    + +
    void transfer_ownership(int access, int device=0)
    +
    ttg_data_copy_t(ttg_data_copy_t &&c)
    + + + +
    ttg_data_copy_t & operator=(const ttg_data_copy_t &c)
    + + +
    std::vector< ttg::iovec > m_iovecs
    +
    void iovec_add(const ttg::iovec &iov)
    + + + +
    void add_device_data(ttg_parsec_data_wrapper_t *data)
    + + +
    ttg_data_copy_t & operator=(ttg_data_copy_t &&c)
    + + + +
    typename std::vector< ttg::iovec >::iterator iovec_iterator
    +
    void set_next_task(parsec_task_t *task)
    + + +
    ttg_data_value_copy_t(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_constructible_v< value_type >)
    + + +
    ttg_data_value_copy_t & operator=(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_assignable_v< value_type >)
    + +
    ttg_data_value_copy_t(const ttg_data_value_copy_t &c) noexcept(std::is_nothrow_copy_constructible_v< value_type >)
    +
    virtual void * get_ptr() override final
    + +
    ttg_data_value_copy_t & operator=(ttg_data_value_copy_t &&c) noexcept(std::is_nothrow_move_assignable_v< value_type >)
    + + + +
    static parsec_data_t * create_parsec_data(void *ptr, size_t size)
    Definition: ttg_data_copy.h:40
    +
    static void delete_null_parsec_data(parsec_data_t *)
    Definition: ttg_data_copy.h:77
    +
    void set_owner(ttg_data_copy_t &new_copy)
    +
    static void delete_parsec_data(parsec_data_t *data)
    Definition: ttg_data_copy.h:57
    +
    const parsec_data_t * parsec_data() const
    Definition: ttg_data_copy.h:53
    + +
    void reset_parsec_data(void *ptr, size_t size)
    + + + +
    ttg_parsec_data_wrapper_t(const ttg_parsec_data_wrapper_t &other)=delete
    +
    std::unique_ptr< parsec_data_t, decltype(&parsec_data_destroy)> parsec_data_ptr
    Definition: ttg_data_copy.h:33
    + +
    ttg_parsec_data_wrapper_t & operator=(const ttg_parsec_data_wrapper_t &other)=delete
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttvalue_8h.html b/dox-master/ttvalue_8h.html new file mode 100644 index 000000000..9482561b1 --- /dev/null +++ b/dox-master/ttvalue_8h.html @@ -0,0 +1,143 @@ + + + + + + + + + + + ttg: ttg/ttg/ttvalue.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    ttvalue.h File Reference
    +
    +
    +
    #include "ttg/fwd.h"
    +
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + +

    +Typedefs

    template<typename T >
    using ttg::TTValue = TTG_IMPL_NS::TTValue< T >
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/ttvalue_8h_source.html b/dox-master/ttvalue_8h_source.html new file mode 100644 index 000000000..1c5e72c57 --- /dev/null +++ b/dox-master/ttvalue_8h_source.html @@ -0,0 +1,142 @@ + + + + + + + + + + + ttg: ttg/ttg/ttvalue.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    ttvalue.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_TTVALUE_H
    +
    2 #define TTG_TTVALUE_H
    +
    3 
    +
    4 #include "ttg/fwd.h"
    +
    5 
    +
    6 namespace ttg {
    +
    7 
    +
    8  template<typename T>
    +
    9  using TTValue = TTG_IMPL_NS::TTValue<T>;
    +
    10 
    +
    11 } // namespace ttg
    +
    12 
    +
    13 #endif // TTG_TTVALUE_H
    + +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/tuple_8h.html b/dox-master/tuple_8h.html new file mode 100644 index 000000000..201c8e909 --- /dev/null +++ b/dox-master/tuple_8h.html @@ -0,0 +1,127 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/tuple.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    tuple.h File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/tuple_8h_source.html b/dox-master/tuple_8h_source.html new file mode 100644 index 000000000..dd2eae637 --- /dev/null +++ b/dox-master/tuple_8h_source.html @@ -0,0 +1,180 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/tuple.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    tuple.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 5/11/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_STD_TUPLE_H
    +
    6 #define TTG_SERIALIZATION_STD_TUPLE_H
    +
    7 
    + +
    9 
    +
    10 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    11 // MADNESS supports std::tuple serialization by default
    +
    12 #endif
    +
    13 
    +
    14 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    15 
    +
    16 namespace boost {
    +
    17  namespace serialization {
    +
    18 
    +
    19  namespace detail {
    +
    20 
    +
    21  template <typename Archive, typename... Ts, std::size_t... Is>
    +
    22  Archive& tuple_serialize_impl(Archive& ar, std::tuple<Ts...>& t, std::index_sequence<Is...>) {
    +
    23  ((ar & std::get<Is>(t)), ...);
    +
    24  return ar;
    +
    25  }
    +
    26 
    +
    27  } // namespace detail
    +
    28 
    +
    29  template <typename Archive, typename... Ts>
    +
    30  Archive& serialize(Archive& ar, std::tuple<Ts...>& t, const unsigned int version) {
    +
    31  detail::tuple_serialize_impl(ar, t, std::make_index_sequence<sizeof...(Ts)>{});
    +
    32  return ar;
    +
    33  }
    +
    34 
    +
    35  } // namespace serialization
    +
    36 } // namespace boost
    +
    37 
    +
    38 namespace ttg::detail {
    +
    39  template <typename Archive, typename... Ts>
    +
    40  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, std::tuple<Ts...>> =
    +
    41  (is_boost_serializable_v<Archive, Ts> && ...);
    +
    42  template <typename Archive, typename... Ts>
    +
    43  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, const std::tuple<Ts...>> =
    +
    44  (is_boost_serializable_v<Archive, const Ts> && ...);
    +
    45 } // namespace ttg::detail
    +
    46 
    +
    47 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    48 
    +
    49 #endif // TTG_SERIALIZATION_STD_TUPLE_H
    +
    typename make_index_sequence_t< I... >::type make_index_sequence
    + + +
    std::array< int, 3 > version()
    Definition: version.cc:4
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/typelist_8h.html b/dox-master/typelist_8h.html new file mode 100644 index 000000000..4a37f0886 --- /dev/null +++ b/dox-master/typelist_8h.html @@ -0,0 +1,196 @@ + + + + + + + + + + + ttg: ttg/ttg/util/typelist.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    typelist.h File Reference
    +
    +
    +
    #include <tuple>
    +
    + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  ttg::meta::type_identity< T >
     
    struct  ttg::meta::typelist< Ts >
     A container for types. More...
     
    struct  ttg::meta::is_typelist< T >
     
    struct  ttg::meta::is_typelist< typelist< Ts... > >
     
    struct  ttg::meta::typelist_to_tuple< typelist< T... > >
     
    struct  ttg::meta::typelist_size< typelist< Ts... > >
     
    struct  ttg::meta::typelist_is_empty< T >
     
    struct  ttg::meta::typelist_is_not_empty< T >
     
    struct  std::tuple_size< ttg::meta::typelist< Ts... > >
     
    struct  std::tuple_element< I, ttg::meta::typelist< Ts... > >
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::meta
     
    + + + + + + + +

    +Typedefs

    template<typename T >
    using ttg::meta::typelist_to_tuple_t = typename typelist_to_tuple< T >::type
     
    template<typename... Ts>
    using ttg::typelist = meta::typelist< Ts... >
     
    + + + + +

    +Functions

    template<std::size_t I, typename T , typename... RestOfTs>
    constexpr auto ttg::meta::get (typelist< T, RestOfTs... >)
     
    + + + + + + + + + + + + + +

    +Variables

    template<typename T >
    constexpr bool ttg::meta::is_typelist_v = is_typelist<T>::value
     
    template<typename T >
    constexpr std::size_t ttg::meta::typelist_size_v = typelist_size<T>::value
     
    template<typename T >
    constexpr bool ttg::meta::typelist_is_empty_v = (typelist_size_v<T> == 0)
     
    template<typename T >
    constexpr bool ttg::meta::typelist_is_not_empty_v = (typelist_size_v<T> != 0)
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/typelist_8h_source.html b/dox-master/typelist_8h_source.html new file mode 100644 index 000000000..6007764fb --- /dev/null +++ b/dox-master/typelist_8h_source.html @@ -0,0 +1,247 @@ + + + + + + + + + + + ttg: ttg/ttg/util/typelist.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    typelist.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_UTIL_INPUTTYPES_H
    +
    2 #define TTG_UTIL_INPUTTYPES_H
    +
    3 
    +
    4 #include <tuple>
    +
    5 
    +
    6 namespace ttg {
    +
    7 
    +
    8  namespace meta {
    +
    9 
    +
    10  template <typename T>
    +
    11  struct type_identity {
    +
    12  using type = T;
    +
    13  };
    +
    14 
    +
    23  template <typename... Ts>
    +
    24  struct typelist {
    +
    26  constexpr auto size() const { return sizeof...(Ts); }
    +
    27 
    +
    28  template <std::size_t I>
    +
    29  constexpr auto get() const {
    +
    30  return type_identity<std::tuple_element_t<I, std::tuple<Ts...>>>{};
    +
    31  }
    +
    32  };
    +
    33 
    +
    34  template <typename T>
    +
    35  struct is_typelist : std::false_type {};
    +
    36 
    +
    37  template <typename... Ts>
    +
    38  struct is_typelist<typelist<Ts...>> : std::true_type {};
    +
    39 
    +
    40  template <typename T>
    + +
    42 
    +
    43  template <typename T>
    + +
    45 
    +
    46  template <typename... T>
    +
    47  struct typelist_to_tuple<typelist<T...>> {
    +
    48  using type = std::tuple<T...>;
    +
    49  };
    +
    50 
    +
    51  template <typename T>
    + +
    53 
    +
    54  template <typename T>
    +
    55  struct typelist_size;
    +
    56 
    +
    57  template <typename... Ts>
    +
    58  struct typelist_size<typelist<Ts...>> {
    +
    59  constexpr static std::size_t value = sizeof...(Ts);
    +
    60  };
    +
    61 
    +
    62  template <typename T>
    +
    63  constexpr std::size_t typelist_size_v = typelist_size<T>::value;
    +
    64 
    +
    65  template <typename T>
    +
    66  constexpr bool typelist_is_empty_v = (typelist_size_v<T> == 0);
    +
    67 
    +
    68  template <typename T>
    +
    69  struct typelist_is_empty : std::bool_constant<typelist_is_empty_v<T>> {};
    +
    70 
    +
    71  template <typename T>
    +
    72  constexpr bool typelist_is_not_empty_v = (typelist_size_v<T> != 0);
    +
    73 
    +
    74  template <typename T>
    +
    75  struct typelist_is_not_empty : std::bool_constant<typelist_is_not_empty_v<T>> {};
    +
    76 
    +
    77  } // namespace meta
    +
    78 
    +
    79  // typelist is user-centric API
    +
    80  template <typename... Ts>
    +
    81  using typelist = meta::typelist<Ts...>;
    +
    82 
    +
    83 } // namespace ttg
    +
    84 
    +
    85 namespace std {
    +
    86 
    +
    87  template <typename... Ts>
    +
    88  struct tuple_size<ttg::meta::typelist<Ts...>> {
    +
    89  static constexpr auto value = sizeof...(Ts);
    +
    90  };
    +
    91 
    +
    92  template <std::size_t I, typename... Ts>
    +
    93  struct tuple_element<I, ttg::meta::typelist<Ts...>> {
    +
    94  using type = typename decltype(ttg::meta::typelist<Ts...>{}.template get<I>())::type;
    +
    95  };
    +
    96 
    +
    97 } // namespace std
    +
    98 
    +
    99 namespace ttg::meta {
    +
    100  template <std::size_t I, typename T, typename... RestOfTs>
    +
    101  constexpr auto get(typelist<T, RestOfTs...>) {
    +
    102  if constexpr (I == 0)
    +
    103  return type_identity<T>{};
    +
    104  else
    +
    105  return get<I - 1>(typelist<RestOfTs...>{});
    +
    106  }
    +
    107 } // namespace ttg::meta
    +
    108 
    +
    109 #endif // TTG_UTIL_INPUTTYPES_H
    + +
    constexpr bool typelist_is_empty_v
    Definition: typelist.h:66
    +
    constexpr bool is_typelist_v
    Definition: typelist.h:41
    +
    constexpr std::size_t typelist_size_v
    Definition: typelist.h:63
    +
    constexpr bool typelist_is_not_empty_v
    Definition: typelist.h:72
    +
    typename typelist_to_tuple< T >::type typelist_to_tuple_t
    Definition: typelist.h:52
    +
    constexpr auto get(typelist< T, RestOfTs... >)
    Definition: typelist.h:101
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    meta::typelist< Ts... > typelist
    Definition: typelist.h:81
    +
    typename decltype(ttg::meta::typelist< Ts... >{}.template get< I >())::type type
    Definition: typelist.h:94
    + + + + + + + + +
    A container for types.
    Definition: typelist.h:24
    +
    constexpr auto size() const
    Definition: typelist.h:26
    +
    constexpr auto get() const
    Definition: typelist.h:29
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/unguarded_2function_8hpp.html b/dox-master/unguarded_2function_8hpp.html new file mode 100644 index 000000000..c19f351a9 --- /dev/null +++ b/dox-master/unguarded_2function_8hpp.html @@ -0,0 +1,170 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    function.hpp File Reference
    +
    +
    + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
     
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE   std::false_type
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    + +

    Definition at line 11 of file function.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE   std::false_type
    +
    + +

    Definition at line 12 of file function.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/unguarded_2function_8hpp_source.html b/dox-master/unguarded_2function_8hpp_source.html new file mode 100644 index 000000000..0aa470ade --- /dev/null +++ b/dox-master/unguarded_2function_8hpp_source.html @@ -0,0 +1,150 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/function.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    function.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2016 Barrett Adair
    +
    3 
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 HEADER GUARDS INTENTIONALLY OMITTED
    +
    8 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    9 */
    +
    10 
    +
    11 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    12 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::false_type
    + +
    14 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    15 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    16 
    +
    17 #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
    +
    18 #define BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE std::true_type
    +
    19 #define BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE transaction_safe
    + +
    21 #undef BOOST_CLBL_TRTS_INCLUDE_TRANSACTION_SAFE
    +
    22 #undef BOOST_CLBL_TRTS_IS_TRANSACTION_SAFE
    +
    23 #endif // #ifdef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/unguarded_2pmf_8hpp.html b/dox-master/unguarded_2pmf_8hpp.html new file mode 100644 index 000000000..a08578164 --- /dev/null +++ b/dox-master/unguarded_2pmf_8hpp.html @@ -0,0 +1,566 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pmf.hpp File Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Macros

    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &&
     
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &&
     
    +

    Macro Definition Documentation

    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [1/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [2/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [3/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [4/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS    BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [5/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [6/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   &&
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [7/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [8/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [9/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [10/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const &&
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [11/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   volatile &&
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS [12/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS   const volatile &&
    +
    + +

    Definition at line 89 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [1/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [2/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [3/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [4/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [5/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [6/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   &&
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [7/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [8/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [9/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [10/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const &&
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [11/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   volatile &&
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    + +

    ◆ BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS [12/12]

    + +
    +
    + + + + +
    #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS   const volatile &&
    +
    + +

    Definition at line 88 of file pmf.hpp.

    + +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/unguarded_2pmf_8hpp_source.html b/dox-master/unguarded_2pmf_8hpp_source.html new file mode 100644 index 000000000..2e5819ad1 --- /dev/null +++ b/dox-master/unguarded_2pmf_8hpp_source.html @@ -0,0 +1,221 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/unguarded/pmf.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pmf.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 Copyright (c) 2001 Peter Dimov and Multi Media Ltd.
    +
    3 Copyright (c) 2016 Modified Work Barrett Adair
    +
    4 
    +
    5 Distributed under the Boost Software License, Version 1.0.
    +
    6 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    7 
    +
    8 HEADER GUARDS INTENTIONALLY OMITTED
    +
    9 DO NOT INCLUDE THIS HEADER DIRECTLY
    +
    10 
    +
    11 */
    +
    12 
    +
    13 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    14 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    15 
    +
    16 
    +
    17 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    18 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    + +
    20 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    21 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    22 
    +
    23 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const
    +
    24 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS \
    +
    25  BOOST_CLBL_TRTS_ABOMINABLE_CONST
    + +
    27 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    28 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    29 
    +
    30 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile
    +
    31 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS \
    +
    32  BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    + +
    34 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    35 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    36 
    +
    37 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile
    +
    38 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS \
    +
    39  BOOST_CLBL_TRTS_ABOMINABLE_CONST BOOST_CLBL_TRTS_ABOMINABLE_VOLATILE
    + +
    41 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    42 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    43 
    +
    44 #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    +
    45 
    +
    46 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS &
    +
    47 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS &
    + +
    49 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    50 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    51 
    +
    52 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS &&
    +
    53 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS &&
    + +
    55 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    56 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    57 
    +
    58 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const &
    +
    59 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const &
    + +
    61 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    62 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    63 
    +
    64 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile &
    +
    65 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS volatile &
    + +
    67 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    68 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    69 
    +
    70 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile &
    +
    71 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const volatile &
    + +
    73 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    74 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    75 
    +
    76 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const &&
    +
    77 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const &&
    + +
    79 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    80 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    81 
    +
    82 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS volatile &&
    +
    83 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS volatile &&
    + +
    85 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    86 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    87 
    +
    88 #define BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS const volatile &&
    +
    89 #define BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS const volatile &&
    + +
    91 #undef BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS
    +
    92 #undef BOOST_CLBL_TRTS_INCLUDE_ABOMINABLE_QUALIFIERS
    +
    93 
    +
    94 #endif // #ifndef BOOST_CLBL_TRTS_DISABLE_REFERENCE_QUALIFIERS
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/user_2top_8md.html b/dox-master/user_2top_8md.html new file mode 100644 index 000000000..215d70a8a --- /dev/null +++ b/dox-master/user_2top_8md.html @@ -0,0 +1,122 @@ + + + + + + + + + + + ttg: doc/dox/user/top.md File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    doc/dox/user/top.md File Reference
    +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/usergroup0.html b/dox-master/usergroup0.html new file mode 100644 index 000000000..e8f38f8cc --- /dev/null +++ b/dox-master/usergroup0.html @@ -0,0 +1,125 @@ + + + + + + + + + + + ttg: Programmer Guides + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Programmer Guides
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/usergroup1.html b/dox-master/usergroup1.html new file mode 100644 index 000000000..c2b530147 --- /dev/null +++ b/dox-master/usergroup1.html @@ -0,0 +1,128 @@ + + + + + + + + + + + ttg: Source Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Source Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/userguide.html b/dox-master/userguide.html new file mode 100644 index 000000000..f05d07a45 --- /dev/null +++ b/dox-master/userguide.html @@ -0,0 +1,454 @@ + + + + + + + + + + + ttg: Template Task Graph User Guide + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + +
    +
    + + +
    + +
    + +
    +
    +
    +
    Template Task Graph User Guide
    +
    +
    +

    +

    +Contents

    + +

    +Your First TTG Program

    +

    The following code creates four tasks, one of type A, two of type B (B(0) and B(1)), and one of type C, and ensures that A runs before both B tasks, and that both B tasks run before C.

    +

    +
    +Simple diamond DAG
    +
    +

    +
    #include <ttg.h>
    +

    To implement a TTG program, the user just needs to include ttg.h. The selection of the task backend is usually done at compile time through a compiler definition. However, before include ttg.h, the user could #define TTG_USE_PARSEC 1 or #define TTG_USE_MADNESS 1. Note that only one of the backends can be defined, and the recommended way is to define which backend is used when invoking the compiler (see Compiling Your First TTG Program below).

    +
    static void a(std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task A ");
    +
    ttg::send<0>(0, 1.0, out);
    +
    ttg::send<0>(1, 2.0, out);
    +
    }
    + +
    void send(const keyT &key, valueT &&value, ttg::Out< keyT, valueT > &t)
    Sends a task id and a value to the given output terminal.
    Definition: func.h:158
    +
    void print(const T &t, const Ts &... ts)
    atomically prints to std::cout a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:130
    +

    This is the function that implements tasks of type A. Tasks of this type have no key to identify them, and receive no input data. Their only output terminal is defined to receive a key of type int and a value of type double.

    +

    We use ttg::print to printout information, as a convenience function that also avoids messages from multiple threads to interfere with each other.

    +

    The task sends the value 1.0 to B(0) by outputing the key of type int and value 0 with the data of type double and value 1.0 on the output terminal of index <0>, and the key of type int and value 1 with the data of type double and value 2.0 on the same output terminal.

    +

    Because the two keys are different, these two ttg::send instantiate two different target tasks. Which task depends on how the function is wrapped into a template task (TT), and how the terminals of this template task are connected to other terminals of template tasks (see below).

    +
    static void b(const int &key, const double &input, std::tuple<ttg::Out<void, double>, ttg::Out<void, double>> &out) {
    +
    ttg::print("Called task B(", key, ") with input data ", input);
    +
    if (key == 0) ttg::sendv<0>(input + 1.0, out);
    +
    else ttg::sendv<1>(input + 1.0, out);
    +
    }
    +
    void sendv(valueT &&value, ttg::Out< void, valueT > &t)
    Sends a value (without an accompanying task id) to the given output terminal.
    Definition: func.h:179
    +

    This function defines the behavior of tasks of type B.

    +

    This time, tasks of type B have an integer identifier (key), an input value (value), of type double, and two output terminals. Both output terminals have no identifier (keys of type void), and carry a data of type double.

    +

    The task sends to different terminals depending on the value of key: tasks with a key of 0 output on the terminal of index <0>, while tasks with another key output on the terminal of index <1>. They also output different values on these edges.

    +

    Because the output terminals do not define a task identifier (their keys are of type void), one cannot use ttg::send, but needs to use ttg::sendv. ttg::sendv differs from ttg::send only in the fact that ttg::send requires a key identifier for the destination task, while ttg::sendv does not.

    +
    static void c(const double &b0, const double &b1, std::tuple<> &out) {
    +
    ttg::print("Called task C with inputs ", b0, " from B(0) and ", b1, " from B(1)");
    +
    }
    +

    Tasks of type C are implemented with this function. It's a sink task: no ttg::send are emitted by this task that takes no task identifier, defines no output terminals, and only an input value of type double.

    +
    int main(int argc, char **argv) {
    +
    ttg::initialize(argc, argv, -1);
    +
    void initialize(int argc, char **argv, int num_threads=-1, RestOfArgs &&...)
    +
    int main(int argc, char **argv)
    Definition: simple.cc:23
    +

    The code needs to initialize ttg before any other ttg-related calls.

    +
    +
    ttg::Edge<void, double> B_C0("B->C0");
    +
    ttg::Edge<void, double> B_C1("B->C1");
    +
    Edge is used to connect In and Out terminals.
    Definition: edge.h:25
    +

    We define 3 edges, to connect the different tasks together.

    +

    They have different prototypes: A_B carries an identifier of type int and a value of type double, while B_C0 and B_C1 carry no identifier (void) and a value of type double.

    +

    To help debugging, we give unique meaningful names to these edges in the constructor argument.

    +

    We need only three edges, because these edges define connections between the template tasks, not connections between tasks. Their instantiation by ttg::send or ttg::sendv define the actual edges between tasks.

    +

    There are two edges connecting B to C because C has two input terminals, and if we used the same edge between B and C, sending on that edge would trigger C twice.

    +
    auto wa(ttg::make_tt<void>(a, ttg::edges(), ttg::edges(A_B), "A", {}, {"to B"}));
    +
    auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C0, B_C1), "B", {"from A"}, {"to 1st input of C", "to 2nd input of C"}));
    +
    auto wc(ttg::make_tt(c, ttg::edges(B_C0, B_C1), ttg::edges(), "C", {"From B", "From B"}, {}));
    +
    auto make_tt(funcT &&func, const std::tuple< ttg::Edge< keyT, input_edge_valuesT >... > &inedges=std::tuple<>{}, const std::tuple< output_edgesT... > &outedges=std::tuple<>{}, const std::string &name="wrapper", const std::vector< std::string > &innames=std::vector< std::string >(sizeof...(input_edge_valuesT), "input"), const std::vector< std::string > &outnames=std::vector< std::string >(sizeof...(output_edgesT), "output"))
    Factory function to assist in wrapping a callable with signature.
    Definition: make_tt.h:560
    +
    auto edges(inedgesT &&...args)
    Make a tuple of Edges to pass to.
    Definition: func.h:147
    +

    We now define the three template tasks wa, wb, and wc, using the ttg::make_tt helper.

    +

    ttg::make_tt takes as parameters the function that implements the task, the list of input edges that are connected to its input terminals, the list of output edges that are connected to its output terminals, the name of the task, the list of names for the input terminals, and the list of names for the output terminals.

    +

    These TTs and the edges define the template task graph that will then be instantiated as a DAG of tasks by the execution.

    +
    +
    +
    if (wa->get_world().rank() == 0) wa->invoke();
    +
    std::enable_if_t<(std::is_convertible_v< decltype(*(std::declval< TTBasePtrs >))), TTBase & > bool make_graph_executable(TTBasePtrs &&...tts)
    Definition: func.h:80
    +

    Before executing the first tasks, the template task graph must be made executable by calling ttg::make_graph_executable() on each source TT of the graph. This signals to the runtime system that all edges that connect TTs are defined, computes internal state necessary to track all dependencies, and registers active message handles for each template task type.

    +

    We need to start the DAG of tasks by invoking the initial tasks with ttg::TTBase::invoke(). In this simple DAG, there is a single initial task, the task A, which runs on rank 0.

    +
    + +
    void execute(ttg::World world)
    Starts the execution in the given execution context.
    Definition: run.h:74
    +
    void fence(ttg::World world)
    Returns when all tasks associated with the given execution context have finished on all ranks.
    Definition: run.h:81
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    +

    We can then start the execution of the DAG of tasks. This will enable the compute-threads in the ttg library, and start instantiating tasks as the execution unfolds.

    +

    With ttg::fence(), we wait for the completion of all DAGs started.

    +
    +
    return EXIT_SUCCESS;
    +
    }
    +
    std::enable_if_t<!meta::is_void_v< keyT >, void > finalize(const keyT &key, ttg::Out< out_keyT, out_valueT > &t)
    Finalize streaming input terminals connecting to the given output terminal for tasks identified by ke...
    Definition: func.h:533
    +

    And finally, we can shut down the ttg library and return from the application.

    +

    Full first example

    +

    +Compiling Your First TTG Program

    +

    The recommended way to compile a TTG program is to use CMake.

    +

    Below, you will find a minimal CMakeLists.txt file to compile the first example above with both the PaRSEC and the MADNESS driver.

    +
    cmake_minimum_required(VERSION 3.19)
    +
    project(TTG-Example CXX)
    +
    +
    find_package(ttg REQUIRED)
    +
    +
    add_executable(first-parsec first.cc)
    +
    target_compile_definitions(first-parsec PRIVATE TTG_USE_PARSEC=1)
    +
    target_link_libraries(first-parsec PRIVATE ttg-parsec)
    +
    +
    add_executable(first-mad first.cc)
    +
    target_compile_definitions(first-mad PRIVATE TTG_USE_MADNESS=1)
    +
    target_link_libraries(first-mad PRIVATE ttg-mad)
    +

    This CMakeLists.txt uses find_package(ttg) to define the different ttg targets. find_package uses the ttg_DIR CMake variable as a hint where to find configuration files. So, if you installed ttg in /path/to/ttg, you can point find_package to the appropriate directory by calling CMake as follows:

    +
    cd /path/to/your/builddir
    +
    cmake -Dttg_DIR=/path/to/ttg/lib/cmake/ttg /path/to/your/sourcedir
    +

    find_package(ttg) defines the following CMake targets:

      +
    • ttg-parsec: the PaRSEC backend for TTG
    • +
    • ttg-mad: the MADNESS backend for TTG
    • +
    +

    When source code #include <ttg.h>, it needs to define which backend it uses. In this example, we do that from the command line, by adding the compile-definition TTG_USE_PARSEC=1 or TTG_USE_MADNESS=1.

    +

    It is then sufficient to tell CMake that the executable depends on the corresponding TTG target to add the appropriate include path and link commands.

    +

    +Data Dependent Program

    +

    We now extend the first example to illustrate a data-dependent application behavior. Consider now that the tasks of type C can dynamically decide to iterate over the simple DAG of tasks before, depending on the values received as input.

    +

    To make the example simple, we will simply define a threshold: if the data sent by B(0) plus the data sent by B(1) is lower than this threshold, then the DAG should be iterated, otherwise the application is completed.

    +

    One way of representing this behavior is denoted by the graph below:

    +

    +
    +Iterative diamond DAG
    +
    +

    +

    First, because each task in the DAG needs to be uniquely identified, and there are potentially many tasks of type A or C, tasks of these kinds now need to get an identifier. Second, tasks of type B are not only identified by 0 or 1, but also need another identifier that denotes to which task of A or C it is connected. We extend the identifier type of B to Key2, which is a std::pair<int, int> to do this simply.

    +

    Second, the function that implements the task for C needs to decide dynamically if it continues iterating or not. This is done by conditionally calling ttg::send in this function. If the function does not call ttg::send, then the no more task is discovered, and the whole operation will complete.

    +
    #include <ttg.h>
    +

    The inclusion of the ttg/serialization/std/pair.h file is necessary to import the serialization mechanisms for the task identifiers of tasks of type A or C.

    +
    const double threshold = 100.0;
    +
    const double threshold
    Definition: iterative.cc:5
    +

    We define the threshold as a globally visible constant.

    +
    using Key2 = std::pair<int, int>;
    +
    +
    namespace std {
    +
    std::ostream &operator<<(std::ostream &os, const Key2 &key) {
    +
    os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
    +
    return os;
    +
    }
    +
    } // namespace std
    +
    std::ostream & operator<<(std::ostream &os, ttg::device::Device device)
    Definition: device.h:68
    +
    std::pair< int, int > Key2
    Definition: distributed.cc:6
    +

    We define the key type as a std::pair<int, int>, and extend the std::operator<< to printout an object of type Key2

    +
    static void a(const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
    +
    ttg::print("Called task A(", k, ")"); ttg::send <0>(Key2{k, 0}, 1.0 + input, out);
    +
    ttg::send <0>(Key2{k, 1}, 2.0 + input, out);
    +
    }
    +

    Tasks of type A now take an integer key, and an input value; the output is modified to take a Key2 (as tasks of type B have keys of type Key2).

    +
    static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>, ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task B(", key, ") with input data ", input);
    +
    if (std::get<1>(key) == 0) ttg::send <0>(std::get<0>(key), input + 1.0, out);
    +
    else ttg::send <1>(std::get<0>(key), input + 1.0, out);
    +
    }
    +

    Tasks of type B now take a key of type Key2, and the output is modified to take an integer key. We then use ttg::send instead of ttg::sendv, because ttg::sendv is only used to send to a task that does not have a key identifier.

    +
    static void c(const int &k, const double &b0, const double &b1, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task C(", k, ") with inputs ", b0, " from B(", k, " 0) and ", b1, " from B(", k, " 1)");
    +
    if (b0 + b1 < threshold) {
    +
    ttg::print(" ", b0, "+", b1, "<", threshold, " so continuing to iterate"); ttg::send <0>(k + 1, b0 + b1, out);
    +
    } else {
    +
    ttg::print(" ", b0, "+", b1, ">=", threshold, " so stopping the iterations");
    +
    }
    +
    }
    +

    Tasks of type C are modified the same way, and the function that implements the task holds the dynamic decision to continue in the DAG or not.

    +
    int main(int argc, char **argv) {
    +
    ttg::initialize(argc, argv, -1);
    +
    +
    ttg::Edge<Key2, double> A_B("A(k)->B(k)");
    +
    ttg::Edge<int, double> B_C0("B(k)->C0(k)");
    +
    ttg::Edge<int, double> B_C1("B(k)->C1(k)");
    +
    ttg::Edge<int, double> C_A("C(k)->A(k)");
    +
    int main(int argc, char **argv)
    Definition: iterative.cc:39
    +

    We update the edges types to reflect the new tasks prototypes, and add a new edge, that loops from C(k) to A(k+1) (note that the value of the key is decided in the function itself, this has no impact on this part of the code).

    +
    auto wa(ttg::make_tt(a, ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
    +
    auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C0, B_C1), "B", {"from A"},
    +
    {"to 1st input of C", "to 2nd input of C"}));
    +
    auto wc(ttg::make_tt(c, ttg::edges(B_C0, B_C1), ttg::edges(C_A), "C", {"From B", "From B"}, {"to A"}));
    +

    The ttg::make_tt calls are also updated to reflect the new task prototypes, and include the edge from C(k) to A(k+1).

    +
    +
    +
    if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
    +

    When invoking A(0, 0.0), one needs to provide the key for the task and the input value for each input that A now defines.

    +
    + +
    + +
    return EXIT_SUCCESS;
    +
    }
    +

    Full iterative diamond example

    +

    +Streaming Terminals

    +

    Now, consider that for a given k, there can be a large amount of tasks of type B, and that the number of such tasks depends on some computation. This means that the input of tasks of type C is not fixed, but variable.

    +

    To express such construct, it is possible to do it by building a sub-DAG of tasks that combine the outputs of the different tasks of class B before passing the combination to task C.

    +

    TTG provides a more synthetic construct to do so easily: the streaming terminals.

    +

    +
    +DAG of the iterative diamond of arbitary width
    +
    +

    +

    The begining of the program remains identical to the iterative case above: we still use a std::pair<int, int> that we alias as Key2 to define the task identifiers of tasks of class B, and we use the standard serialization provided by TTG for those.

    +
    #include <ttg.h>
    + + +
    +
    const double threshold = 100.0;
    +
    using Key2 = std::pair<int, int>;
    +
    +
    namespace std {
    +
    std::ostream &operator<<(std::ostream &os, const Key2 &key) {
    +
    os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
    +
    return os;
    +
    }
    +
    } // namespace std
    +
    const double threshold
    Definition: reducing.cc:5
    + + +

    The code for tasks of type A will be inlined as a lambda function, because it needs to access other parts of the DAG that need to be defined before. The code for tasks of type B becomes simpler: we always send the updated input that tasks of type B receive to the single input terminal of tasks of task C, so we don't need to differentiate between the keys to decide on which output terminal to provide the data.

    +
    static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task B(", key, ") with input data ", input); ttg::send <0>(std::get<0>(key), input + 1.0, out);
    +
    }
    +

    Tasks of type C have been simplified too: they now take a single input, and it's the input terminal that will do the sum operation.

    +
    static void c(const int &k, const double &sum, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task C(", k, ") with input ", sum);
    +
    if (sum < threshold) {
    +
    ttg::print(" ", sum, "<", threshold, " so continuing to iterate"); ttg::send <0>(k + 1, sum, out);
    +
    } else {
    +
    ttg::print(" ", sum, ">=", threshold, " so stopping the iterations");
    +
    }
    +
    }
    +

    The main program that builds the DAG starts similarly to the simple iterative diamond example. Edge types have been simplified, because there is less unique edges (but edges of type C_A will be extended to include the streaming capability).

    +
    int main(int argc, char **argv) {
    +
    ttg::initialize(argc, argv, -1);
    +
    +
    ttg::Edge<Key2, double> A_B("A(k)->B(k, i)");
    +
    ttg::Edge<int, double> B_C("B(k, i)->C(k)");
    +
    ttg::Edge<int, double> C_A("C(k)->A(k)");
    +
    int main(int argc, char **argv)
    Definition: reducing.cc:30
    +

    Tasks of type C are defined first, because we need to expose those to the code of tasks of type A.

    +
    auto wc(ttg::make_tt(c, ttg::edges(B_C), ttg::edges(C_A), "C", {"From B"}, {"to A"}));
    +

    Now, we define the input reducer function to apply to the input terminal 0 of tasks of type C. The set_input_reducer function takes two references to elements of the appropriate type, a and b. The operation goal is to aggregate the values as they are sent to the input terminal. The first time a data is sent to this input terminal, it is copied onto the current aggregated value. Every other data sent to the same input terminal (and for the same destination task) is reduced into the aggregator value via this lambda. a is a reference to the (mutable) aggregator value, while b is a reference to the (constant) value to add.

    +

    Here, the function we define simply adds the value of b to a.

    +
    wc->set_input_reducer <0>(
    +

    We can now define the tasks of type A. Instead of passing the function to call, we define it in a lambda expression, which allows us to capture the TT of type C (wc). The prototype of this lambda is the one expected for tasks of the A. After displaying its name, the task calls set_argstream_size on the first input (<0>) of wc. This function takes two arguments: a task identifier (k), and the number of elements that are expected as input of the streaming terminal <0>. That counter can be data depndent, in this case we set it to k+1.

    +
    auto wa(ttg::make_tt(
    +
    [&](const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
    +
    ttg::print("Called task A(", k, ")");
    +
    wc->set_argstream_size<0>(k, k + 1);
    +

    The task can then create as many tasks of type B as is needed, and since each task of type B will output their value into the streaming terminal of the corresponding C, we instantiate k+1 tasks of type B by sending them input data.

    +

    The other parameters are the usual parameters of ttg::make_tt.

    +
    for (int i = 0; i < k + 1; i++) {
    +
    ttg::send <0>(Key2{k, i}, 1.0 + k + input, out);
    +
    }
    +
    },
    +
    ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
    +

    Tasks of type B are created according to the new prototype, and the rest of the code is unchanged.

    +
    auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C), "B", {"from A"}, {"to C"}));
    +
    + +
    +
    if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
    +
    + + +
    + +
    return EXIT_SUCCESS;
    +
    }
    +

    Full iterative diamond of arbitrary width example

    +

    +Distributed Computing

    +

    Any TTG program is a parallel application. In the current backends, TTG applications are also MPI applications. Tasks are distributed between the MPI ranks following a process keymap. The default process keymap hashes the task identifiers and distributes the hashes in a round-robin way. The user can control the task distribution by setting a user-defined keymap for Task Templates.

    +

    In the iterative diamond of arbitrary width, we can easily provide a suitable keymap by pinning tasks of type A and C (which are the first and last task of each diamond) onto the rank 0, while distributing the tasks of type B between the ranks using the second element in the key of those tasks.

    +

    This gives the code below, almost identical to the previous example, except for the keymap definition, and displaying on which rank each task executes.

    +
    #include <ttg.h>
    + + +
    +
    const double threshold = 100.0;
    +
    using Key2 = std::pair<int, int>;
    +
    +
    namespace std {
    +
    std::ostream &operator<<(std::ostream &os, const Key2 &key) {
    +
    os << "{" << std::get<0>(key) << ", " << std::get<1>(key) << "}";
    +
    return os;
    +
    }
    +
    } // namespace std
    +
    +
    static void b(const Key2 &key, const double &input, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task B(", key, ") on rank", ttg::ttg_default_execution_context().rank(), "with input data ", input); ttg::send<0>(std::get<0>(key), input + 1.0, out);
    +
    }
    +
    +
    static void c(const int &k, const double &sum, std::tuple<ttg::Out<int, double>> &out) {
    +
    ttg::print("Called task C(", k, ") on rank", ttg::ttg_default_execution_context().rank(), "with input ", sum);
    +
    if (sum < threshold) {
    +
    ttg::print(" ", sum, "<", threshold, " so continuing to iterate");
    +
    ttg::send<0>(k + 1, sum, out);
    +
    } else {
    +
    ttg::print(" ", sum, ">=", threshold, " so stopping the iterations");
    +
    }
    +
    }
    +
    +
    int main(int argc, char **argv) {
    +
    ttg::initialize(argc, argv, -1);
    +
    +
    ttg::Edge<Key2, double> A_B("A(k)->B(k, i)");
    +
    ttg::Edge<int, double> B_C("B(k, i)->C(k)");
    +
    ttg::Edge<int, double> C_A("C(k)->A(k)");
    +
    +
    auto wc(ttg::make_tt(c, ttg::edges(B_C), ttg::edges(C_A), "C", {"From B"}, {"to A"}));
    +
    wc->set_input_reducer<0>([](double &a, const double &b) { a += b; });
    +
    +
    auto wa(ttg::make_tt([&](const int &k, const double &input, std::tuple<ttg::Out<Key2, double>> &out) {
    +
    ttg::print("Called task A(", k, ") on rank", ttg::ttg_default_execution_context().rank());
    +
    wc->set_argstream_size<0>(k, k+1);
    +
    for(int i = 0; i < k+1; i++) {
    +
    ttg::send<0>(Key2{k, i}, 1.0 + k + input, out);
    +
    }
    +
    }, ttg::edges(C_A), ttg::edges(A_B), "A", {"from C"}, {"to B"}));
    +
    +
    auto wb(ttg::make_tt(b, ttg::edges(A_B), ttg::edges(B_C), "B", {"from A"}, {"to C"}));
    +
    +
    wa->set_keymap([&](const int &k) { return 0; });
    +
    wb->set_keymap([&](const Key2 &k) { return std::get<1>(k) % wb->get_world().size(); });
    +
    wc->set_keymap([&](const int &k) { return 0; });
    +
    + +
    +
    if (wa->get_world().rank() == 0) wa->invoke(0, 0.0);
    +
    + + +
    + +
    return EXIT_SUCCESS;
    +
    }
    +
    +
    const double threshold
    Definition: distributed.cc:5
    +
    int main(int argc, char **argv)
    Definition: distributed.cc:31
    +
    ttg::World ttg_default_execution_context()
    Definition: ttg.h:136
    +
    int rank(World world=default_execution_context())
    Definition: run.h:85
    +

    Full iterative diamond of arbitrary width example with user-defined keymap

    +
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/util_2hash_2std_2pair_8h.html b/dox-master/util_2hash_2std_2pair_8h.html new file mode 100644 index 000000000..973b69cf9 --- /dev/null +++ b/dox-master/util_2hash_2std_2pair_8h.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: ttg/ttg/util/hash/std/pair.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    pair.h File Reference
    +
    +
    +
    #include "ttg/util/hash.h"
    +#include <utility>
    +
    + + + +

    +Classes

    struct  ttg::overload::hash< std::pair< T1, T2 >, std::enable_if_t< meta::has_ttg_hash_specialization_v< T1 > &&meta::has_ttg_hash_specialization_v< T2 > > >
     
    + + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::overload
     place for overloading/instantiating hash and other functionality
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/util_2hash_2std_2pair_8h_source.html b/dox-master/util_2hash_2std_2pair_8h_source.html new file mode 100644 index 000000000..d624e91fc --- /dev/null +++ b/dox-master/util_2hash_2std_2pair_8h_source.html @@ -0,0 +1,154 @@ + + + + + + + + + + + ttg: ttg/ttg/util/hash/std/pair.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    pair.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_UTIL_HASH_STD_PAIR_H
    +
    2 #define TTG_UTIL_HASH_STD_PAIR_H
    +
    3 
    +
    4 #include "ttg/util/hash.h"
    +
    5 
    +
    6 #include <utility>
    +
    7 
    +
    8 namespace ttg::overload {
    +
    9 
    +
    10  template <typename T1, typename T2>
    +
    11  struct hash<std::pair<T1, T2>,
    +
    12  std::enable_if_t<meta::has_ttg_hash_specialization_v<T1> && meta::has_ttg_hash_specialization_v<T2>>> {
    +
    13  auto operator()(const std::pair<T1, T2>& t) const {
    +
    14  std::size_t seed = 0;
    +
    15  hash_combine(seed, t.first);
    +
    16  hash_combine(seed, t.second);
    +
    17  return seed;
    +
    18  }
    +
    19  };
    +
    20 
    +
    21 } // namespace ttg::overload
    +
    22 
    +
    23 #endif // TTG_UTIL_HASH_PAIR_H
    + +
    place for overloading/instantiating hash and other functionality
    Definition: pair.h:8
    +
    void hash_combine(std::size_t &seed, T const &v)
    Definition: hash.h:147
    + +
    Computes hash values for objects of type T.
    Definition: hash.h:81
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/utility_8hpp.html b/dox-master/utility_8hpp.html new file mode 100644 index 000000000..80b8bc952 --- /dev/null +++ b/dox-master/utility_8hpp.html @@ -0,0 +1,208 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/utility.hpp File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    utility.hpp File Reference
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Classes

    struct  boost::callable_traits::detail::cdecl_tag
     
    struct  boost::callable_traits::detail::stdcall_tag
     
    struct  boost::callable_traits::detail::fastcall_tag
     
    struct  boost::callable_traits::detail::pascal_tag
     
    struct  boost::callable_traits::detail::invalid_type
     
    struct  boost::callable_traits::detail::reference_error
     
    struct  boost::callable_traits::detail::dummy
     
    struct  boost::callable_traits::detail::substitution_failure
     
    struct  boost::callable_traits::detail::force_sfinae< T, Alias, U >
     
    struct  boost::callable_traits::detail::is_reference_wrapper_t< T >
     
    struct  boost::callable_traits::detail::is_reference_wrapper_t< std::reference_wrapper< T > >
     
    struct  boost::callable_traits::detail::unwrap_reference_t< T, typename >
     
    struct  boost::callable_traits::detail::unwrap_reference_t< T, is_reference_wrapper< T > >
     
    + + + + + + + +

    +Namespaces

     boost
     
     boost::callable_traits
     
     boost::callable_traits::detail
     
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Typedefs

    template<typename T >
    using boost::callable_traits::detail::error_type = typename std::conditional< std::is_reference< T >::value, reference_error, invalid_type >::type
     
    template<bool Value>
    using boost::callable_traits::detail::bool_type = std::integral_constant< bool, Value >
     
    template<std::size_t I, typename Tup >
    using boost::callable_traits::detail::at = typename std::tuple_element< I, Tup >::type
     
    template<typename T , typename Class >
    using boost::callable_traits::detail::add_member_pointer = T Class::*
     
    template<typename L , typename R , typename ErrorType >
    using boost::callable_traits::detail::fail_when_same = fail_if< std::is_same< L, R >::value, ErrorType >
     
    template<typename T , typename ErrorType , typename U = typename std::remove_reference<T>::type>
    using boost::callable_traits::detail::try_but_fail_if_invalid = sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > >
     
    template<typename T , typename ErrorType , typename U = typename std::remove_reference<T>::type, bool is_reference_error = std::is_same<reference_error, U>::value>
    using boost::callable_traits::detail::fail_if_invalid = fail_if< std::is_same< U, invalid_type >::value||is_reference_error, typename std::conditional< is_reference_error, reference_type_not_supported_by_this_metafunction, ErrorType >::type >
     
    template<typename T , typename Fallback >
    using boost::callable_traits::detail::fallback_if_invalid = typename std::conditional< std::is_same< T, invalid_type >::value, Fallback, T >::type
     
    template<typename T >
    using boost::callable_traits::detail::shallow_decay = typename std::remove_cv< typename std::remove_reference< T >::type >::type
     
    template<typename T >
    using boost::callable_traits::detail::is_reference_wrapper = typename is_reference_wrapper_t< shallow_decay< T > >::type
     
    template<typename T >
    using boost::callable_traits::detail::unwrap_reference = typename unwrap_reference_t< T >::type
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/utility_8hpp_source.html b/dox-master/utility_8hpp_source.html new file mode 100644 index 000000000..68faff22e --- /dev/null +++ b/dox-master/utility_8hpp_source.html @@ -0,0 +1,271 @@ + + + + + + + + + + + ttg: ttg/ttg/external/boost/callable_traits/detail/utility.hpp Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    utility.hpp
    +
    +
    +Go to the documentation of this file.
    1 /*
    +
    2 
    +
    3 @Copyright Barrett Adair 2015-2017
    +
    4 Distributed under the Boost Software License, Version 1.0.
    +
    5 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
    +
    6 
    +
    7 */
    +
    8 
    +
    9 #ifndef BOOST_CLBL_TRTS_DETAIL_UTILITY_HPP
    +
    10 #define BOOST_CLBL_TRTS_DETAIL_UTILITY_HPP
    +
    11 
    + + + +
    15 
    +
    16 namespace boost { namespace callable_traits { namespace detail {
    +
    17 
    +
    18 struct cdecl_tag{};
    +
    19 struct stdcall_tag{};
    +
    20 struct fastcall_tag{};
    +
    21 struct pascal_tag{};
    +
    22 
    +
    23 struct invalid_type { invalid_type() = delete; };
    +
    24 struct reference_error { reference_error() = delete; };
    +
    25 
    +
    26 template<typename T>
    +
    27 using error_type = typename std::conditional<
    +
    28  std::is_reference<T>::value, reference_error, invalid_type>::type;
    +
    29 
    +
    30 #ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
    +
    31 struct abominable_functions_not_supported_on_this_compiler{};
    +
    32 #endif
    +
    33 
    +
    34 // used to convey "this type doesn't matter" in code
    +
    35 struct dummy {};
    +
    36 
    +
    37 // used as return type in failed SFINAE tests
    +
    38 struct substitution_failure : std::false_type{};
    +
    39 
    +
    40 template<bool Value>
    +
    41 using bool_type = std::integral_constant<bool, Value>;
    +
    42 
    +
    43 // shorthand for std::tuple_element
    +
    44 template<std::size_t I, typename Tup>
    +
    45 using at = typename std::tuple_element<I, Tup>::type;
    +
    46 
    +
    47 template<typename T, typename Class>
    +
    48 using add_member_pointer = T Class::*;
    +
    49 
    +
    50 template<typename L, typename R, typename ErrorType>
    + +
    52 
    +
    53 template<typename T, typename ErrorType,
    +
    54  typename U = typename std::remove_reference<T>::type>
    + + + +
    58  reference_type_not_supported_by_this_metafunction>>;
    +
    59 
    +
    60 template<typename T, typename ErrorType,
    +
    61  typename U = typename std::remove_reference<T>::type,
    +
    62  bool is_reference_error = std::is_same<reference_error, U>::value>
    + +
    64  std::is_same<U, invalid_type>::value || is_reference_error,
    +
    65  typename std::conditional<is_reference_error,
    +
    66  reference_type_not_supported_by_this_metafunction, ErrorType>::type>;
    +
    67 
    +
    68 template<typename T, typename Fallback>
    +
    69 using fallback_if_invalid = typename std::conditional<
    +
    70  std::is_same<T, invalid_type>::value, Fallback, T>::type;
    +
    71 
    +
    72 template<typename T, template<class> class Alias, typename U = Alias<T>>
    +
    73 struct force_sfinae {
    +
    74  using type = U;
    +
    75 };
    +
    76 
    +
    77 template<typename T>
    +
    78 using shallow_decay = typename std::remove_cv<
    +
    79  typename std::remove_reference<T>::type>::type;
    +
    80 
    +
    81 template<typename T>
    + +
    83  using type = std::false_type;
    +
    84 };
    +
    85 
    +
    86 template<typename T>
    +
    87 struct is_reference_wrapper_t<std::reference_wrapper<T>> {
    +
    88  using type = std::true_type;
    +
    89 };
    +
    90 
    +
    91 template<typename T>
    + + +
    94 
    +
    95 template<typename T, typename = std::true_type>
    + +
    97  using type = T;
    +
    98 };
    +
    99 
    +
    100 template<typename T>
    + +
    102  using type = decltype(std::declval<T>().get());
    +
    103 };
    +
    104 
    +
    105 // removes std::reference_wrapper
    +
    106 template<typename T>
    + +
    108 
    +
    109 }}} // namespace boost::callable_traits::detail
    +
    110 
    +
    111 #endif // #ifndef BOOST_CLBL_TRTS_DETAIL_UTILITY_HPP
    + +
    constexpr auto get(span< E, S > s) -> decltype(s[N])
    Definition: span.h:492
    +
    typename std::conditional< std::is_reference< T >::value, reference_error, invalid_type >::type error_type
    Definition: utility.hpp:28
    +
    typename std::tuple_element< I, Tup >::type at
    Definition: utility.hpp:45
    +
    sfinae_try< T, fail_when_same< U, invalid_type, ErrorType >, fail_when_same< U, reference_error, reference_type_not_supported_by_this_metafunction > > try_but_fail_if_invalid
    Definition: utility.hpp:58
    +
    typename std::remove_cv< typename std::remove_reference< T >::type >::type shallow_decay
    Definition: utility.hpp:79
    + +
    typename std::conditional< std::is_same< T, invalid_type >::value, Fallback, T >::type fallback_if_invalid
    Definition: utility.hpp:70
    +
    std::integral_constant< bool, Value > bool_type
    Definition: utility.hpp:41
    +
    typename is_reference_wrapper_t< shallow_decay< T > >::type is_reference_wrapper
    Definition: utility.hpp:93
    +
    typename unwrap_reference_t< T >::type unwrap_reference
    Definition: utility.hpp:107
    +
    typename BOOST_CLBL_TRTS_DISJUNCTION(FailIfs..., success< T >)::_::type sfinae_try
    + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/variant_8h.html b/dox-master/variant_8h.html new file mode 100644 index 000000000..48b93f03f --- /dev/null +++ b/dox-master/variant_8h.html @@ -0,0 +1,127 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/variant.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    variant.h File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/variant_8h_source.html b/dox-master/variant_8h_source.html new file mode 100644 index 000000000..cf01fa8af --- /dev/null +++ b/dox-master/variant_8h_source.html @@ -0,0 +1,207 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/variant.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    variant.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 6/22/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_STD_VARIANT_H
    +
    6 #define TTG_SERIALIZATION_STD_VARIANT_H
    +
    7 
    + +
    9 
    +
    10 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    11 // MADNESS does not supports std::variant serialization
    +
    12 #endif
    +
    13 
    +
    14 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    15 
    +
    16 namespace boost {
    +
    17  namespace serialization {
    +
    18 
    +
    19  namespace detail {
    +
    20 
    +
    21  template <typename Archive, typename... Ts, std::size_t I0, std::size_t... Is>
    +
    22  Archive& variant_load_impl(Archive& ar, std::variant<Ts...>& v, std::size_t which,
    +
    23  std::index_sequence<I0, Is...>) {
    +
    24  constexpr bool writing = ttg::detail::is_output_archive_v<Archive>;
    +
    25  static_assert(!writing);
    +
    26  if (which == I0) {
    +
    27  using type = std::variant_alternative_t<I0, std::variant<Ts...>>;
    +
    28  if (!std::is_same_v<type, std::monostate>) {
    +
    29  type value;
    +
    30  ar& value;
    +
    31  v.template emplace<I0>(std::move(value));
    +
    32  }
    +
    33  } else {
    +
    34  if constexpr (sizeof...(Is) == 0)
    +
    35  throw std::logic_error(
    +
    36  "boost::serialization::detail::variant_load_impl(ar,v,idx,idxs): idx is not present in idxs");
    +
    37  else
    +
    38  return variant_load_impl(ar, v, which, std::index_sequence<Is...>{});
    +
    39  }
    +
    40  return ar;
    +
    41  }
    +
    42 
    +
    43  } // namespace detail
    +
    44 
    +
    45  template <typename Archive, typename... Ts>
    +
    46  Archive& serialize(Archive& ar, std::variant<Ts...>& t, const unsigned int version) {
    +
    47  constexpr bool writing = ttg::detail::is_output_archive_v<Archive>;
    +
    48  const auto index = t.index();
    +
    49  ar& index;
    +
    50  // to write visit the current alternative
    +
    51  if constexpr (writing) {
    +
    52  std::visit(
    +
    53  [&ar](const auto& v) {
    +
    54  if constexpr (!std::is_same_v<std::decay_t<decltype(v)>, std::monostate>) ar& v;
    +
    55  },
    +
    56  t);
    +
    57  } else // reading by recursive traversal until found index
    +
    58  detail::variant_load_impl(ar, t, index, std::make_index_sequence<sizeof...(Ts)>{});
    +
    59  return ar;
    +
    60  }
    +
    61 
    +
    62  } // namespace serialization
    +
    63 } // namespace boost
    +
    64 
    +
    65 namespace ttg::detail {
    +
    66  template <typename Archive, typename... Ts>
    +
    67  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, std::variant<Ts...>> =
    +
    68  (is_boost_serializable_v<Archive, Ts> && ...);
    +
    69  template <typename Archive, typename... Ts>
    +
    70  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, const std::variant<Ts...>> =
    +
    71  (is_boost_serializable_v<Archive, const Ts> && ...);
    +
    72 } // namespace ttg::detail
    +
    73 
    +
    74 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    75 
    +
    76 #endif // TTG_SERIALIZATION_STD_TUPLE_H
    +
    typename make_index_sequence_t< I... >::type make_index_sequence
    + + +
    std::array< int, 3 > version()
    Definition: version.cc:4
    + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/vector_8h.html b/dox-master/vector_8h.html new file mode 100644 index 000000000..0ba654112 --- /dev/null +++ b/dox-master/vector_8h.html @@ -0,0 +1,128 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/vector.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    vector.h File Reference
    +
    + + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/vector_8h_source.html b/dox-master/vector_8h_source.html new file mode 100644 index 000000000..ff7fc4076 --- /dev/null +++ b/dox-master/vector_8h_source.html @@ -0,0 +1,158 @@ + + + + + + + + + + + ttg: ttg/ttg/serialization/std/vector.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    vector.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 5/11/21.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_SERIALIZATION_STD_VECTOR_H
    +
    6 #define TTG_SERIALIZATION_STD_VECTOR_H
    +
    7 
    + + +
    10 
    +
    11 #ifdef TTG_SERIALIZATION_SUPPORTS_MADNESS
    +
    12 // MADNESS supports std::vector serialization by default
    +
    13 #endif
    +
    14 
    +
    15 #ifdef TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    16 #include <boost/serialization/vector.hpp>
    +
    17 
    +
    18 namespace ttg::detail {
    +
    19  template <typename Archive, typename T, typename A>
    +
    20  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, std::vector<T, A>> =
    +
    21  is_boost_serializable_v<Archive, T>&& is_boost_serializable_v<Archive, A>;
    +
    22  template <typename Archive, typename T, typename A>
    +
    23  inline static constexpr bool is_stlcontainer_boost_serializable_v<Archive, const std::vector<T, A>> =
    +
    24  is_boost_serializable_v<Archive, const T>&& is_boost_serializable_v<Archive, const A>;
    +
    25 } // namespace ttg::detail
    +
    26 
    +
    27 #endif // TTG_SERIALIZATION_SUPPORTS_BOOST
    +
    28 
    +
    29 #endif // TTG_SERIALIZATION_STD_VECTOR_H
    + + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/version_8cc.html b/dox-master/version_8cc.html new file mode 100644 index 000000000..0444c5100 --- /dev/null +++ b/dox-master/version_8cc.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: ttg/ttg/util/version.cc File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    version.cc File Reference
    +
    +
    +
    #include "ttg/util/version.h"
    +
    + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
    + + + + + + + +

    +Functions

    std::array< int, 3 > ttg::version ()
     
    const char * ttg::git_revision () noexcept
     
    const char * ttg::git_description () noexcept
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/version_8cc_source.html b/dox-master/version_8cc_source.html new file mode 100644 index 000000000..3b24b69a2 --- /dev/null +++ b/dox-master/version_8cc_source.html @@ -0,0 +1,146 @@ + + + + + + + + + + + ttg: ttg/ttg/util/version.cc Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    version.cc
    +
    +
    +Go to the documentation of this file.
    1 #include "ttg/util/version.h"
    +
    2 
    +
    3 namespace ttg {
    +
    4  std::array<int, 3> version() { return {TTG_MAJOR_VERSION, TTG_MINOR_VERSION, TTG_MICRO_VERSION}; }
    +
    5 
    +
    6  const char* git_revision() noexcept {
    +
    7  static const char revision[] = TTG_GIT_REVISION;
    +
    8  return revision;
    +
    9  }
    +
    10 
    +
    11  const char* git_description() noexcept {
    +
    12  static const char description[] = TTG_GIT_DESCRIPTION;
    +
    13  return description;
    +
    14  }
    +
    15 
    +
    16 } // namespace ttg
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    const char * git_description() noexcept
    Definition: version.cc:11
    +
    std::array< int, 3 > version()
    Definition: version.cc:4
    +
    const char * git_revision() noexcept
    Definition: version.cc:6
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/void_8h.html b/dox-master/void_8h.html new file mode 100644 index 000000000..b76ee159d --- /dev/null +++ b/dox-master/void_8h.html @@ -0,0 +1,164 @@ + + + + + + + + + + + ttg: ttg/ttg/util/void.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    void.h File Reference
    +
    +
    +
    #include <iostream>
    +#include "ttg/util/meta.h"
    +
    + + + + + + +

    +Classes

    class  ttg::Void
     A complete version of void. More...
     
    struct  std::hash< ttg::Void >
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + + + + + + + + +

    +Functions

    bool ttg::operator== (const Void &, const Void &)
     
    bool ttg::operator!= (const Void &, const Void &)
     
    std::ostream & ttg::operator<< (std::ostream &os, const ttg::Void &)
     
    template<std::size_t... Is>
    auto ttg::detail::make_void_tuple (std::index_sequence< Is... >)
     
    template<std::size_t N>
    auto ttg::detail::make_void_tuple ()
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/void_8h_source.html b/dox-master/void_8h_source.html new file mode 100644 index 000000000..f387ee6fb --- /dev/null +++ b/dox-master/void_8h_source.html @@ -0,0 +1,184 @@ + + + + + + + + + + + ttg: ttg/ttg/util/void.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    void.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_VOID_H
    +
    2 #define TTG_VOID_H
    +
    3 #include <iostream>
    +
    4 #include "ttg/util/meta.h"
    +
    5 
    +
    6 namespace ttg {
    +
    8 
    +
    11  class Void {
    +
    12  public:
    +
    13  Void() = default;
    +
    14  template <typename T> explicit Void(T&&) {}
    +
    15  };
    +
    16 
    +
    17  inline bool operator==(const Void&, const Void&) { return true; }
    +
    18  inline bool operator!=(const Void&, const Void&) { return false; }
    +
    19 
    +
    20  inline std::ostream& operator<<(std::ostream& os, const ttg::Void&) {
    +
    21  return os;
    +
    22  }
    +
    23 
    +
    24  static_assert(meta::is_empty_tuple_v<std::tuple<>>,"ouch");
    +
    25  static_assert(meta::is_empty_tuple_v<std::tuple<Void>>,"ouch");
    +
    26 
    +
    27  namespace detail {
    +
    28 
    +
    29  template<std::size_t... Is>
    +
    30  auto make_void_tuple(std::index_sequence<Is...>) {
    +
    31  auto g = [](int i){ return Void{}; };
    +
    32  return std::make_tuple(g(Is)...);
    +
    33  }
    +
    34 
    +
    35  template<std::size_t N>
    +
    36  auto make_void_tuple() {
    +
    37  return make_void_tuple(std::make_index_sequence<N>{});
    +
    38  }
    +
    39 
    +
    40  } // namespace detail
    +
    41 
    +
    42 } // namespace ttg
    +
    43 
    +
    44 namespace std {
    +
    45  template <>
    +
    46  struct hash<ttg::Void> {
    +
    47  template <typename ... Args> int64_t operator()(Args&& ... args) const { return 0; }
    +
    48  };
    +
    49 } // namespace std
    +
    50 
    +
    51 #endif // TTG_VOID_H
    +
    A complete version of void.
    Definition: void.h:11
    +
    Void()=default
    +
    Void(T &&)
    Definition: void.h:14
    + +
    auto make_void_tuple(std::index_sequence< Is... >)
    Definition: void.h:30
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    bool operator==(const Void &, const Void &)
    Definition: void.h:17
    +
    std::ostream & operator<<(std::ostream &os, const MultiIndex< Rank > &key)
    Definition: multiindex.h:83
    +
    bool operator!=(const Void &, const Void &)
    Definition: void.h:18
    +
    int64_t operator()(Args &&... args) const
    Definition: void.h:47
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/watch_8h.html b/dox-master/watch_8h.html new file mode 100644 index 000000000..c05554ee5 --- /dev/null +++ b/dox-master/watch_8h.html @@ -0,0 +1,156 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/watch.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    watch.h File Reference
    +
    +
    +
    #include "ttg/impl_selector.h"
    +#include "ttg/util/bug.h"
    +
    + + + + + + +

    +Namespaces

     ttg_madness
     this contains MADNESS-based TTG functionality
     
     ttg_madness::detail
     
    + + + + + + + + + + + + + + +

    +Functions

    const std::vector< const pthread_t * > & ttg_madness::detail::watchpoints_threads ()
     
    void ttg_madness::initialize_watchpoints ()
     must be called from main thread before setting watchpoints More...
     
    template<typename T >
    void ttg_madness::watchpoint_set (T *addr, ttg::detail::MemoryWatchpoint_x86_64::Size size, ttg::detail::MemoryWatchpoint_x86_64::Condition cond)
     sets a hardware watchpoint for window [addr,addr+size) and condition cond More...
     
    template<typename T >
    void ttg_madness::watchpoint_clear (T *addr)
     clears the hardware watchpoint for window [addr,addr+size) previously created with watchpoint_set<T> More...
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/watch_8h_source.html b/dox-master/watch_8h_source.html new file mode 100644 index 000000000..c8c7849c7 --- /dev/null +++ b/dox-master/watch_8h_source.html @@ -0,0 +1,217 @@ + + + + + + + + + + + ttg: ttg/ttg/madness/watch.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    watch.h
    +
    +
    +Go to the documentation of this file.
    1 //
    +
    2 // Created by Eduard Valeyev on 2019-04-05.
    +
    3 //
    +
    4 
    +
    5 #ifndef TTG_WATCH_H
    +
    6 #define TTG_WATCH_H
    +
    7 
    +
    8 #include "ttg/impl_selector.h"
    +
    9 #include "ttg/util/bug.h"
    +
    10 
    +
    11 namespace ttg_madness {
    +
    12  // clang-format off
    +
    13 /*
    +
    14  * This allows programmatic control of watchpoints. Requires MADWorld using legacy ThreadPool and macOS. Example:
    +
    15  * @code
    +
    16  * double x = 0.0;
    +
    17  * ::ttg_madness::initialize_watchpoints();
    +
    18  * ::ttg_madness::watchpoint_set(&x, ttg::detail::MemoryWatchpoint_x86_64::kWord,
    +
    19  * ttg::detail::MemoryWatchpoint_x86_64::kWhenWritten);
    +
    20  * x = 1.0; // this will generate SIGTRAP ...
    +
    21  * ::ttg_madness::ttg_default_execution_context().taskq.add([&x](){ x = 1.0; }); // and so will this ...
    +
    22  * ::ttg_madness::watchpoint_set(&x, ttg::detail::MemoryWatchpoint_x86_64::kWord,
    +
    23  * ttg::detail::MemoryWatchpoint_x86_64::kWhenWrittenOrRead);
    +
    24  * ::ttg_madness::ttg_default_execution_context().taskq.add([&x](){
    +
    25  * std::cout << x << std::endl; }); // and even this!
    +
    26  *
    +
    27  * @endcode
    +
    28  */
    +
    29  // clang-format on
    +
    30 
    +
    31  namespace detail {
    +
    32  inline const std::vector<const pthread_t *> &watchpoints_threads() {
    +
    33  static std::vector<const pthread_t *> threads;
    +
    34  // can set watchpoints only with the legacy MADNESS threadpool
    +
    35  // TODO improve this when shortsighted MADNESS macro names are strengthened, i.e. HAVE_INTEL_TBB ->
    +
    36  // MADNESS_HAS_INTEL_TBB
    +
    37  // TODO also exclude the case of a PARSEC-based backend
    +
    38 #ifndef HAVE_INTEL_TBB
    +
    39  if (threads.empty()) {
    +
    40  static pthread_t main_thread_id = pthread_self();
    +
    41  threads.push_back(&main_thread_id);
    +
    42  for (auto t = 0ul; t != ::madness::ThreadPool::size(); ++t) {
    +
    43  threads.push_back(&(::madness::ThreadPool::get_threads()[t].get_id()));
    +
    44  }
    +
    45  }
    +
    46 #endif
    +
    47  return threads;
    +
    48  }
    +
    49  } // namespace detail
    +
    50 
    +
    52  inline void initialize_watchpoints() {
    +
    53 #if defined(HAVE_INTEL_TBB)
    + +
    55  "WARNING: watchpoints are only supported with MADWorld using the legacy threadpool");
    +
    56 #endif
    +
    57 #if !defined(__APPLE__)
    +
    58  ttg::print_error(ttg::default_execution_context().rank(), "WARNING: watchpoints are only supported on macOS");
    +
    59 #endif
    + +
    61  }
    +
    62 
    +
    64  template <typename T>
    + + +
    67  const auto &threads = detail::watchpoints_threads();
    +
    68  for (auto t : threads) ttg::detail::MemoryWatchpoint_x86_64::Pool::instance()->set(addr, size, cond, t);
    +
    69  }
    +
    70 
    +
    72  template <typename T>
    +
    73  inline void watchpoint_clear(T *addr) {
    +
    74  const auto &threads = detail::watchpoints_threads();
    +
    75  for (auto t : threads) ttg::detail::MemoryWatchpoint_x86_64::Pool::instance()->clear(addr, t);
    +
    76  }
    +
    77 
    +
    78 } // namespace ttg_madness
    +
    79 #endif // TTG_WATCH_H
    + +
    static void initialize_instance(const std::vector< const pthread_t * > &threads)
    Definition: bug.h:89
    +
    static std::shared_ptr< Pool > instance()
    accesses the unique pool; asserts that the default instance has been initialized by calling initializ...
    Definition: bug.h:94
    + + + +
    const std::vector< const pthread_t * > & watchpoints_threads()
    Definition: watch.h:32
    +
    this contains MADNESS-based TTG functionality
    Definition: fwd.h:16
    +
    void initialize_watchpoints()
    must be called from main thread before setting watchpoints
    Definition: watch.h:52
    +
    void watchpoint_clear(T *addr)
    clears the hardware watchpoint for window [addr,addr+size) previously created with watchpoint_set<T>
    Definition: watch.h:73
    +
    void watchpoint_set(T *addr, ttg::detail::MemoryWatchpoint_x86_64::Size size, ttg::detail::MemoryWatchpoint_x86_64::Condition cond)
    sets a hardware watchpoint for window [addr,addr+size) and condition cond
    Definition: watch.h:65
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    World default_execution_context()
    Accesses the default backend's default execution context.
    Definition: run.h:68
    +
    void print_error(const T &t, const Ts &... ts)
    atomically prints to std::cerr a sequence of items (separated by ttg::print_separator) followed by st...
    Definition: print.h:138
    +
    int rank(World world=default_execution_context())
    Definition: run.h:85
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/world_8h.html b/dox-master/world_8h.html new file mode 100644 index 000000000..d06ee972b --- /dev/null +++ b/dox-master/world_8h.html @@ -0,0 +1,179 @@ + + + + + + + + + + + ttg: ttg/ttg/world.h File Reference + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    + +
    +
    world.h File Reference
    +
    +
    +
    #include "ttg/impl_selector.h"
    +#include <stdexcept>
    +#include <algorithm>
    +#include "ttg/base/world.h"
    +#include "ttg/base/keymap.h"
    +#include "ttg/fwd.h"
    +
    + + + + + + + +

    +Classes

    class  ttg::World
     
    struct  ttg::detail::default_keymap< keyT >
     
    struct  ttg::detail::default_priomap< keyT >
     
    + + + + + + +

    +Namespaces

     ttg
     top-level TTG namespace contains runtime-neutral functionality
     
     ttg::detail
     
    + + + + + + + + + + + + + + + + + + + + + + + +

    +Functions

    template<typename WorldT >
    WorldT & ttg::detail::default_world_accessor ()
     
    template<typename WorldT >
    void ttg::detail::set_default_world (WorldT &world)
     
    template<typename WorldT >
    void ttg::detail::set_default_world (WorldT &&world)
     
    template<typename WorldImplT >
    std::list< WorldImplT * > & ttg::detail::world_registry_accessor ()
     
    template<typename WorldImplT >
    void ttg::detail::register_world (WorldImplT &world)
     
    template<typename WorldImplT >
    void ttg::detail::deregister_world (WorldImplT &world)
     
    void ttg::detail::destroy_worlds (void)
     
    ttg::Worldttg::get_default_world ()
     
    +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/dox-master/world_8h_source.html b/dox-master/world_8h_source.html new file mode 100644 index 000000000..a93d54ae5 --- /dev/null +++ b/dox-master/world_8h_source.html @@ -0,0 +1,238 @@ + + + + + + + + + + + ttg: ttg/ttg/world.h Source File + + + + + + + + + + + + + + + + + + + +
    +
    +
    +
    +
    +
    + + + + + + +
    +
    + + +
    + +
    + + +
    +
    +
    +
    world.h
    +
    +
    +Go to the documentation of this file.
    1 #ifndef TTG_WORLD_H
    +
    2 #define TTG_WORLD_H
    +
    3 
    +
    4 #include "ttg/impl_selector.h"
    +
    5 
    +
    6 #include <stdexcept>
    +
    7 #include <algorithm>
    +
    8 
    +
    9 #include "ttg/base/world.h"
    +
    10 #include "ttg/base/keymap.h"
    +
    11 
    +
    12 #include "ttg/fwd.h"
    +
    13 
    +
    14 namespace ttg {
    +
    15 
    +
    16  /* Slim wrapper to allow for forward declaration */
    +
    17  class World : public ttg::base::World<TTG_IMPL_NS::WorldImpl> {
    + +
    19  };
    +
    20 
    +
    21  namespace detail {
    +
    22  template<typename WorldT>
    + +
    24  static WorldT world;
    +
    25  return world;
    +
    26  }
    +
    27 
    +
    28  template<typename WorldT>
    +
    29  inline void set_default_world(WorldT& world) { detail::default_world_accessor<WorldT>() = world; }
    +
    30  template<typename WorldT>
    +
    31  inline void set_default_world(WorldT&& world) { detail::default_world_accessor<WorldT>() = std::move(world); }
    +
    32 
    +
    33  template <typename keyT>
    + +
    35  public:
    +
    36  default_keymap() = default;
    +
    37  default_keymap(const ttg::World& world) : ttg::detail::default_keymap_impl<keyT>(world.size()) {}
    +
    38  };
    +
    39 
    +
    40  template <typename keyT>
    + +
    42  public:
    +
    43  default_priomap() = default;
    +
    44  };
    +
    45 
    +
    46  template<typename WorldImplT>
    +
    47  std::list<WorldImplT*>&
    + +
    49  static std::list<WorldImplT*> world_registry;
    +
    50  return world_registry;
    +
    51  }
    +
    52 
    +
    53  /* TODO: how should the MADNESS and PaRSEC init/finalize play together? */
    +
    54  template<typename WorldImplT>
    +
    55  void register_world(WorldImplT& world)
    +
    56  {
    +
    57  world_registry_accessor<WorldImplT>().push_back(&world);
    +
    58  }
    +
    59 
    +
    60  template<typename WorldImplT>
    +
    61  void deregister_world(WorldImplT& world) {
    +
    62  auto& world_registry = world_registry_accessor<WorldImplT>();
    +
    63  auto it = std::find(world_registry.begin(), world_registry.end(), &world);
    +
    64  if (it != world_registry.end()) {
    +
    65  world_registry.remove(&world);
    +
    66  }
    +
    67  }
    +
    68 
    +
    69  template<typename WorldImplT>
    +
    70  void destroy_worlds(void) {
    +
    71  auto& world_registry = world_registry_accessor<WorldImplT>();
    +
    72  while (!world_registry.empty()) {
    +
    73  auto it = world_registry.begin();
    +
    74  (*it)->destroy();
    +
    75  }
    +
    76  }
    +
    77 
    +
    78  } // namespace detail
    +
    79 
    + +
    81  if (detail::default_world_accessor<ttg::World>().is_valid()) {
    +
    82  return detail::default_world_accessor<ttg::World>();
    +
    83  } else {
    +
    84  throw std::runtime_error("ttg::set_default_world() must be called before use");
    +
    85  }
    +
    86  }
    +
    87 
    +
    88 } // namespace ttg
    +
    89 
    +
    90 #endif // TTG_WORLD_H
    + + + + + + +
    void set_default_world(WorldT &world)
    Definition: world.h:29
    +
    void deregister_world(ttg::base::WorldImplBase &world)
    +
    WorldT & default_world_accessor()
    Definition: world.h:23
    +
    std::list< WorldImplT * > & world_registry_accessor()
    Definition: world.h:48
    +
    void register_world(ttg::base::WorldImplBase &world)
    +
    void destroy_worlds(void)
    Definition: world.h:70
    +
    top-level TTG namespace contains runtime-neutral functionality
    Definition: keymap.h:8
    +
    int size(World world=default_execution_context())
    Definition: run.h:89
    +
    ttg::World & get_default_world()
    Definition: world.h:80
    + + +
    default_keymap(const ttg::World &world)
    Definition: world.h:37
    + +
    the default priority map implementation
    Definition: keymap.h:42
    + + +
    + + + +
    +
    +
    +
    +
    + + + + diff --git a/index.md b/index.md new file mode 100644 index 000000000..f359dde52 --- /dev/null +++ b/index.md @@ -0,0 +1,305 @@ +![Build Status](https://github.com/TESSEorg/ttg/workflows/CMake/badge.svg) + +# TTG +This is the C++ API for the Template Task Graph (TTG) programming model for flowgraph-based composition of high-performance algorithms executable on distributed heterogeneous computer platforms. The TTG API abstracts out the details of the underlying task and data flow runtime; the current realization is implemented using [MADNESS](https://github.com/m-a-d-n-e-s-s/madness) and [PaRSEC](https://bitbucket.org/icldistcomp/parsec.git) runtimes as backends. + +# Why TTG? + +- TTG marries the idea of flowgraph programming models with the key innovations in the PARSEC runtime for compact specification of DAGs (PTG). +- TTG can be used to efficiently compose and execute irregular computation patterns which are poorly served by the current programming and execution models. +- TTG has strong support for distributed hybrid architectures for running modern scientific algorithms efficiently on current and near-future supercomputers. + +# Installation + +- To try out TTG in a Docker container, install Docker, then execute `bin/docker-build.sh` and follow instructions in `bin/docker.md`; +- See [INSTALL.md](https://github.com/TESSEorg/ttg/blob/master/INSTALL.md) to learn how to build and install TTG. + +# A Short Intro to TTG + +## TL;DR: A "Hello, World" TTG Program + +`helloworld.cpp` +```cpp +#include + +int main(int argc, char *argv[]) { + ttg::initialize(argc, argv); + + auto tt = ttg::make_tt([]() { std::cout << "Hello, World!"; }); + + ttg::make_graph_executable(tt); + ttg::execute(); + if (ttg::get_default_world().rank() == 0) tt->invoke(); + ttg::fence(); + + ttg::finalize(); + return 0; +} +``` + +`CMakeLists.txt` +~~~~~~~~~~~~~{.cmake} +cmake_minimum_required(VERSION 3.19) +project(TTG-HW CXX) + +find_package(ttg QUIET) # check if TTG is already available +if (NOT TARGET ttg-parsec) # else build from source + include(FetchContent) + FetchContent_Declare(ttg GIT_REPOSITORY https://github.com/TESSEorg/ttg.git) + FetchContent_MakeAvailable( ttg ) +endif() + +add_executable(hw-parsec helloworld.cpp) +target_link_libraries(hw-parsec PRIVATE ttg-parsec) +target_compile_definitions(hw-parsec PRIVATE TTG_USE_PARSEC=1) +~~~~~~~~~~~~~ + +Configure + build: +```shell +> cmake -S . -B build && cmake --build build --target hw-parsec +``` + +## "Hello, World!" Walkthrough + +Although it does not involve any useful flow of computation and/or data, the above "Hello, World!" TTG program introduces several key TTG concepts and illustrates what you need to do to write a complete TTG program. So let's walk through it. + +### Programming Model + +The basic model of computation is built around a Template Task Graph (TTG). A TTG consists of one or more connected Template Task (TT) objects. Each message that travels between TTs consist of a (potentially void) task ID and (optional) datum. A TT creates a task for a given task ID when its every input terminal receives a message with that task ID. The task body can send data to zero or more of the output terminals defined for the corresponding TT. + +Thus, task creation is a byproduct of messages traveling through one or more TTGs. What makes the model powerful is the ability to encode large DAGs of tasks compactly. + +Before proceeding further, let's refine the few concepts used to define the programming model above: +- `TaskId` (aka `Key`): A unique identifier for each task. It must be _perfectly_ hashable. +- `Terminal`: A port for receiving (input) and sending (output) messages. Each message consists of a (potentially void) `TaskId` and an (optional) datum. Terminals are strongly-typed. An {in,out}put terminal can be connected to one or more {out,in}put terminal (as long as the `TaskId` and datum types match). Input terminals are programmable (e.g., incoming messages can be optionally reduced). +- `TemplateTask` (aka `TT`): This is a _template_ for creating tasks. Task template creates a task associated with a given `TaskId` when every input terminal received messages for the given `TaskId`. +- `Edge`: A connection between an input terminal and an output terminal. N.B. Concept `Edge` denotes a 1-to-1 connection and exists to be able to think of TTGs as graphs ("data flows between TTs' terminals via Edges"); do not confuse with the TTG C++ class `Edge` which behaves like a hyperedge by composing 1-to-many and many-to-1 connections between terminals. + +Due to its simplicity only template tasks appear in the "Hello, World!" program. + +## Structure of a Minimal TTG Program + +Every TTG program must: +- select the TTG backend, +- initialize the TTG runtime, +- construct a TTG by declaring its constituent nodes, +- make TTG executable and kickstart the execution by sending a control or data message to the TTG, +- shut down the runtime + +Let's go over each of these steps using the "Hello, World!" example. + +### Select the TTG Backend + +TTG C++ implementation is currently supported by 2 backends providing task scheduling, data transfer, and resource management. +While it is possible to use specific TTG backend explicitly, by using the appropriate namespaces, it is recommended to write backend-neutral programs that can be specialized to a particular backend as follows. +1. By defining one (and only one) of the following macros, via the command-line argument to the compiler (recommended) or as an explicit `#define` statement in the source code: + - `TTG_USE_PARSEC`: selects the PaRSEC backend as the default; + - `TTG_USE_MADNESS`: selects the MADNESS backend as the default (expert-use only). + + Following the definition of this macro it is safe to include the top-level TTG header file: +```cpp +#include +``` +2. By including the corresponding backend-specific header directly: + - to use PaRSEC backend only, add: +```cpp +#include +``` + - to use the MADNESS backend only, add: +```cpp +#include +``` + + This approach does not require inclusion of the top-level TTG header or definition of a backend selection macro. + +### Initialize + +To initialize TTG runtime invoke `ttg::initialize(argc, argv)`; there are several overloads of this function that also accept other optional parameters, such as the number of threads in the main thread pool, the MPI communicator for execution, etc. + +## Specify a TTG + +To make a TTG create and connect one or more TTs. The simplest TTG consists of a single TT. + +The "Hello, World!" example contains a single TT that executes a single task (hence, task ID can be omitted, i.e., void) that does not take and produce any data. The easiest way to make such a TT is by wrapping a callable (e.g., a lambda) with `ttg::make_tt`: +```cpp + auto tt = ttg::make_tt([]() { std::cout << "Hello, World!"; }); +``` + +## Execute TTG + +To execute a TTG we must make it executable (this will declare the TTG complete). To execute the TTG its root TT must receive at least one message; since in this case the task does not receive either task ID or data the message is empty (i.e., void): +```cpp + ttg::make_graph_executable(tt); + ttg::execute(); + if (ttg::get_default_world().rank() == 0) + tt->invoke(); +``` +Note that we must ensure that only one such message must be generated. Since TTG execution uses the Single Program Multiple Data (SPMD) model, +when launching the TTG program as multiple processes only the first process (rank) gets to send the message. + +## Finalize TTG +Since TTG program is executed asynchronously, we must ensure that all tasks are finished: +```cpp + ttg::fence(); +``` + +Before exiting `main()` the TTG runtime should be finalized: +```cpp + ttg::finalize(); +``` + +## Beyond "Hello, World!" + +Since "Hello, World!" consists of a single task it does not demonstrate either how to control scheduling of +multiple tasks or enable data flow between tasks. Let's use computation of `N`th Fibonacci number as +a simple example of a recursive task-based computation that is often used +([OpenMP](https://www.openmp.org/wp-content/uploads/openmp-examples-5.1.pdf), +[TBB](https://github.com/oneapi-src/oneTBB/blob/master/examples/test_all/fibonacci/fibonacci.cpp), +[Legion](https://legion.stanford.edu/tutorial/tasks_and_futures.html), +[Cilk](https://cilk.mit.edu/programming/)) to illustrate basic features of task-based programming models. +Although the example lacks opportunity for parallelism, the point here is not performance but its simplicity. + +### Example: `N`th Fibonacci Number + +This example illustrates how to compute a particular element of the Fibonacci sequence +defined by recurrence +. + +`nth-fibonacci.cpp` +```cpp +#include + +int main(int argc, char *argv[]) { + ttg::initialize(argc, argv); + + const int64_t N = 20; + ttg::Edge f2f_nm1, f2f_nm2; + ttg::Edge f2p; + auto fib = ttg::make_tt( + [=](int64_t n, int64_t F_nm1, int64_t F_nm2) { + auto F_n = F_nm1 + F_nm2; + if (n < N) { + ttg::send<0>(n + 1, F_n); + ttg::send<1>(n + 1, F_nm1); + } else + ttg::sendv<2>(F_n); + }, + ttg::edges(f2f_nm1, f2f_nm2), ttg::edges(f2f_nm1, f2f_nm2, f2p), + "fib"); + auto print = ttg::make_tt([](int64_t F_N) { std::cout << N << "th Fibonacci number is " << F_N << std::endl; }, + ttg::edges(f2p), + ttg::edges(), + "print"); + + ttg::make_graph_executable(fib); + ttg::execute(); + if (ttg::rank() == 0) fib->invoke(2, std::make_tuple(1, 0)); + ttg::fence(); + + ttg::finalize(); + return 0; +} +``` + +The TTG consists of 2 TTs, one (`fib`) that implements the Fibonacci recurrence and another (`print`) that prints the result to +`std::cout`: +- `fib` computes from and + and either sends and to the next (`n+1`) + instance of `fib`, or, if `n==N`, sends to `print`. Thus `fib` + needs 2 input terminals and 3 output terminals (for better efficiency instead of + sending individual Fibonacci numbers, each over an individual edge, it is better to send + a pair of Fibonacci numbers over a single edge). +- `print` receives a single unannotated datum and produces no data, so it needs a single input terminal and no output terminals. + +Execution of the program starts by explicitly instantiating `fib` for `n=2`. +In total 20 tasks will be executed: 19 instances of `fib` with `n=2..20` and the single instance of `print`. + +Note that unlike typical task-based implementations in the literature which construct tasks _recursively_, +i.e., the task for +computing +is created before the task computing , +the TTG implementation constructs the tasks in the order of increasing `n`. This is because +parametric dataflow of TTG naturally expresses inductive (push) computation patterns rather than +recursive (pull) computation patterns. However, it is easy to implement proper recursion by +separating the downward flow of control (task creation, +) +from the upward flow of data (task evaluation, +). + +## Debugging TTG Programs + +### TTG Visualization + +TTGs can be exported in [the DOT format](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) as follows: + +```cpp +std::cout << ttg::Dot()(tt.get()) << std::endl; +``` + +Use [GraphViz](https://www.graphviz.org/) to visualize the resulting graph. + +### Task Graph Visualization + +Exporting the DAG of tasks resulting from execution of a TTG will be possible as soon as [PR 227](https://github.com/TESSEorg/ttg/pull/227) has been merged. + +### Launching a Debugger +To simplify debugging of multirank TTG programs it is possible to automate the process as follows: +- If an X11 server is running (check if environment variable `DISPLAY` is set), then set environment variable `TTG_DEBUGGER` to {`gdb_xterm`,`lldb_xterm`} to launch {`gdb`,`lldb`} upon receiving a signal like `SIGSEGV` or `SIGABRT` (one `xterm` window per rank will be created); +- If an X11 server is not running the set `TTG_DEBUGGER` to empty value; upon receiving a signal the program will print instructions for how to attach a debugger to a running process from another terminal. +- run the ttg program and if it receives any signal the xterm windows should pop up to display debugging results + +# TTG Performance + +Competitive performance of TTG for several paradigmatic scientific applications on shared- and distributed-memory machines (CPU only) +will be discussed in [manuscript ``Generalized Flow-Graph Programming Using Template Task-Graphs: Initial Implementation and Assessment''](https://www.ipdps.org/ipdps2022/2022-accepted-papers.html) to be presented at [IPDPS'22](https://www.ipdps.org/ipdps2022/). +Stay tuned! + +# TTG Performance Tracing + +There are several ways to trace execution of a TTG program. The easiest way is to use the PaRSEC-based TTG backend to +produce binary traces in PaRSEC Binary Trace (PBT) format and then convert them to +a Chrome Trace Format (CTF) JSON file that can be visuzalized using built-in browser +in Chrome browser or using web-based [Perfetto trace viewer](https://ui.perfetto.dev/). +To generate the trace results of any TTG program follow the process discussed below: + +- For simplicity we assume here that TTG will build PaRSEC from source. Make sure PaRSEC Python tools prerequisites have been installed, namely Python3 (version 3.8 is recommended) and the following Python packages (e.g., using `pip`): + - `cython` + - `2to3` + - `numpy` + - `pandas` + - `tables` +- Configure and build TTG: + - Configure TTG with `-DPARSEC_PROF_TRACE=ON` (this turns on PaRSEC task tracing) and `-DBUILD_SHARED_LIBS=ON` (to support PaRSEC Python tools). Also make sure that CMake discovers the Python3 interpreter and the `cython` package. + - Build and install TTG +- Build the TTG program to be traced. +- Run the TTG program with tracing turned on: + - Create file `${HOME}/.parsec/mca-params.conf` and add line `mca_pins = task_profiler` to it + - Set the environment variable `PARSEC_MCA_profile_filename` to the PBT file name _prefix_, e.g. `/tmp/ttg`. + - Run the program and make sure the trace files (in PBT format) have been generated; e.g., if you set `PARSEC_MCA_profile_filename` to `/tmp/ttg` you should find file `/tmp/ttg-0.prof-...` containing the trace from MPI rank 0, `/tmp/ttg-1.prof-...` from rank 1, and so on. +- Convert the traces from PaRSEC Binary Trace (PBT) format to the Chrome Trace Format (CTF): + - Add `{TTG build directory}/_deps/parsec-build/tools/profiling/python/build/{lib folder for your version of Python}` (currently it is not possible to use PaRSEC Python module from the install tree, only from its build tree) + to the `PYTHONPATH` environment variable so that the Python interpreter can find the modules for reading the PaRSEC trace files. + - Convert the PBT files to a CTF file by running the conversion script: +``` + {TTG install prefix}/bin/pbt_to_ctf.py {PBT file name prefix} {CTF filename} +``` +- Open the `chrome://tracing` URL in the Chrome browser and load the resulting trace; alternatively you can use the [Perfetto trace viewer](https://ui.perfetto.dev/) from any browser. + +For example, executing the Fibonacci program described above using 2 MPI processes and with 2 threads each will produce a trace that looks like this: + +![Fibonacci_traces_example](doc/images/nth-fib-trace-2proc-2thr.png) + +# TTG reference documentation +TTG API documentation is available for the following versions:0 +- [master branch](https://tesseorg.github.io/ttg/dox-master) . + +# Cite + +When referring to TTG in an academic setting please cite the following publication: +- G. Bosilca, R. J. Harrison, T. Herault, M. M. Javanmard, P. Nookala and E. F. Valeev, "The Template Task Graph (TTG) - an emerging practical dataflow programming paradigm for scientific simulation at extreme scale," 2020 IEEE/ACM Fifth International Workshop on Extreme Scale Programming Models and Middleware (ESPM2), 2020, pp. 1-7, doi: [10.1109/ESPM251964.2020.00011](https://dx.doi.org/10.1109/ESPM251964.2020.00011). + +# Acknowledgment + +The development of TTG was made possible by: +- [The EPEXA project](https://tesseorg.github.io/), currently supported by the National Science Foundation under grants [1931387](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1931387) at Stony Brook University, [1931347](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1931347) at Virginia Tech, and [1931384](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1931384) at the University of Tennesse, Knoxville. +- The TESSE project, supported by the National Science Foundation under grants [1450344](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1450344) at Stony Brook University, [1450262](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1450262) at Virginia Tech, and [1450300](https://www.nsf.gov/awardsearch/showAward?AWD_ID=1450300) at the University of Tennesse, Knoxville.