├── .coveragerc ├── .github ├── actions │ ├── build-relstorage │ │ └── action.yml │ ├── config-cc │ │ └── action.yml │ ├── install-native-libs │ │ └── action.yml │ └── run-tests │ │ └── action.yml └── workflows │ └── tests.yml ├── .gitignore ├── .landscape.yml ├── .pylintrc ├── .readthedocs.yml ├── .travis ├── docker.cnf ├── mysql.cmd ├── mysql.sh ├── postgres.cmd ├── postgres.sh ├── run_with_env.cmd ├── setup-cmysqlconnector.sh ├── setup-mysql.sh ├── setup-mysqlconnector.sh ├── setup-oracle.sh ├── setup-postgres.sh ├── setup-pymysql.sh └── zope_testrunner_gevent.py ├── BUILDOUT.rst ├── CHANGES.rst ├── COPYRIGHT.txt ├── LICENSE.txt ├── MANIFEST.in ├── README.rst ├── appveyor.yml ├── bootstrap.py ├── buildout-oracle.cfg ├── buildout.cfg ├── docs ├── .mocks │ ├── _pylibmc.py │ ├── cx_Oracle.py │ └── pylibmc.py ├── Makefile ├── cache-tracing.rst ├── changelog.rst ├── command-line-utilities.rst ├── conf.py ├── configuration-reference.rst ├── configure-application.rst ├── configure-database.rst ├── contents.rst ├── db-specific-options.rst ├── developing.rst ├── developing │ ├── caching.rst │ ├── pack_policy.png │ ├── packing.rst │ └── running.rst ├── faq.rst ├── generate_rst.py ├── getting-started.rst ├── index.rst ├── install.rst ├── internals.rst ├── migration.rst ├── migration │ ├── migrate-to-1.0.rst │ ├── migrate-to-1.1.1.rst │ ├── migrate-to-1.1.2.rst │ ├── migrate-to-1.1.rst │ ├── migrate-to-1.4.rst │ ├── migrate-to-1.5.rst │ └── migrate-to-3.0.rst ├── mysql │ ├── index.rst │ ├── install.rst │ ├── options.rst │ └── setup.rst ├── old_history.rst ├── oracle │ ├── index.rst │ ├── install.rst │ ├── options.rst │ └── setup.rst ├── perf-20.png ├── perf-rs14.png ├── perf-rs20-no-mem.png ├── perf-rs20-rs16.png ├── perf-rs20pypy.png ├── perf-rs21v20-c2.png ├── perf-rs21v20-c6-n100-s256.png ├── performance.rst ├── postgresql │ ├── index.rst │ ├── install.rst │ ├── options.rst │ ├── pgbouncer.rst │ └── setup.rst ├── relstorage-options.rst ├── sqlite3 │ ├── faq.rst │ ├── faq_sql_add_objects.png │ ├── faq_sql_read_cold_objects.png │ ├── faq_sql_update_objects.png │ ├── faq_sql_write_read_objects.png │ ├── index.rst │ ├── install.rst │ ├── options.rst │ └── setup.rst ├── supported-databases.rst ├── things-to-know.rst ├── zodbconvert.rst ├── zodbpack.rst └── zodburi.rst ├── include ├── LICENSE_1_0.txt ├── README.rst └── boost │ ├── assert.hpp │ ├── assert │ └── source_location.hpp │ ├── config.hpp │ ├── config │ ├── compiler │ │ ├── borland.hpp │ │ ├── clang.hpp │ │ ├── clang_version.hpp │ │ ├── codegear.hpp │ │ ├── comeau.hpp │ │ ├── common_edg.hpp │ │ ├── compaq_cxx.hpp │ │ ├── cray.hpp │ │ ├── diab.hpp │ │ ├── digitalmars.hpp │ │ ├── gcc.hpp │ │ ├── gcc_xml.hpp │ │ ├── greenhills.hpp │ │ ├── hp_acc.hpp │ │ ├── intel.hpp │ │ ├── kai.hpp │ │ ├── metrowerks.hpp │ │ ├── mpw.hpp │ │ ├── nvcc.hpp │ │ ├── pathscale.hpp │ │ ├── pgi.hpp │ │ ├── sgi_mipspro.hpp │ │ ├── sunpro_cc.hpp │ │ ├── vacpp.hpp │ │ ├── visualc.hpp │ │ ├── xlcpp.hpp │ │ └── xlcpp_zos.hpp │ ├── detail │ │ ├── cxx_composite.hpp │ │ ├── posix_features.hpp │ │ ├── select_compiler_config.hpp │ │ ├── select_platform_config.hpp │ │ ├── select_stdlib_config.hpp │ │ └── suffix.hpp │ ├── header_deprecated.hpp │ ├── helper_macros.hpp │ ├── no_tr1 │ │ └── cmath.hpp │ ├── platform │ │ ├── aix.hpp │ │ ├── bsd.hpp │ │ ├── cloudabi.hpp │ │ ├── cygwin.hpp │ │ ├── haiku.hpp │ │ ├── hpux.hpp │ │ ├── linux.hpp │ │ ├── macos.hpp │ │ ├── solaris.hpp │ │ └── win32.hpp │ ├── pragma_message.hpp │ ├── stdlib │ │ ├── dinkumware.hpp │ │ ├── libcpp.hpp │ │ └── libstdcpp3.hpp │ ├── user.hpp │ ├── warning_disable.hpp │ └── workaround.hpp │ ├── container_hash │ ├── detail │ │ ├── float_functions.hpp │ │ ├── hash_float.hpp │ │ ├── hash_mix.hpp │ │ ├── hash_range.hpp │ │ ├── hash_tuple_like.hpp │ │ ├── limits.hpp │ │ ├── mulx.hpp │ │ └── requires_cxx11.hpp │ ├── extensions.hpp │ ├── hash.hpp │ ├── hash_fwd.hpp │ ├── is_contiguous_range.hpp │ ├── is_described_class.hpp │ ├── is_range.hpp │ ├── is_tuple_like.hpp │ └── is_unordered_range.hpp │ ├── core │ ├── addressof.hpp │ ├── allocator_access.hpp │ ├── allocator_traits.hpp │ ├── bit.hpp │ ├── empty_value.hpp │ ├── enable_if.hpp │ ├── explicit_operator_bool.hpp │ ├── no_exceptions_support.hpp │ ├── pointer_traits.hpp │ ├── ref.hpp │ └── swap.hpp │ ├── cstdint.hpp │ ├── current_function.hpp │ ├── describe │ ├── bases.hpp │ ├── class.hpp │ ├── descriptor_by_name.hpp │ ├── descriptor_by_pointer.hpp │ ├── detail │ │ ├── bases.hpp │ │ ├── compute_base_modifiers.hpp │ │ ├── config.hpp │ │ ├── cx_streq.hpp │ │ ├── list.hpp │ │ ├── members.hpp │ │ ├── pp_for_each.hpp │ │ ├── pp_utilities.hpp │ │ └── void_t.hpp │ ├── enum.hpp │ ├── enum_from_string.hpp │ ├── enum_to_string.hpp │ ├── enumerators.hpp │ ├── members.hpp │ ├── modifier_description.hpp │ ├── modifiers.hpp │ └── operators.hpp │ ├── detail │ ├── container_fwd.hpp │ ├── select_type.hpp │ └── workaround.hpp │ ├── exception │ └── exception.hpp │ ├── functional │ ├── hash.hpp │ └── hash_fwd.hpp │ ├── integer │ └── static_log2.hpp │ ├── integer_fwd.hpp │ ├── intrusive │ ├── any_hook.hpp │ ├── avl_set.hpp │ ├── avl_set_hook.hpp │ ├── avltree.hpp │ ├── avltree_algorithms.hpp │ ├── bs_set.hpp │ ├── bs_set_hook.hpp │ ├── bstree.hpp │ ├── bstree_algorithms.hpp │ ├── circular_list_algorithms.hpp │ ├── circular_slist_algorithms.hpp │ ├── derivation_value_traits.hpp │ ├── detail │ │ ├── algo_type.hpp │ │ ├── algorithm.hpp │ │ ├── any_node_and_algorithms.hpp │ │ ├── array_initializer.hpp │ │ ├── assert.hpp │ │ ├── avltree_node.hpp │ │ ├── bstree_algorithms_base.hpp │ │ ├── common_slist_algorithms.hpp │ │ ├── config_begin.hpp │ │ ├── config_end.hpp │ │ ├── default_header_holder.hpp │ │ ├── ebo_functor_holder.hpp │ │ ├── empty_node_checker.hpp │ │ ├── equal_to_value.hpp │ │ ├── exception_disposer.hpp │ │ ├── function_detector.hpp │ │ ├── generic_hook.hpp │ │ ├── get_value_traits.hpp │ │ ├── has_member_function_callable_with.hpp │ │ ├── hash_combine.hpp │ │ ├── hashtable_node.hpp │ │ ├── hook_traits.hpp │ │ ├── iiterator.hpp │ │ ├── is_stateful_value_traits.hpp │ │ ├── iterator.hpp │ │ ├── key_nodeptr_comp.hpp │ │ ├── list_iterator.hpp │ │ ├── list_node.hpp │ │ ├── math.hpp │ │ ├── minimal_less_equal_header.hpp │ │ ├── minimal_pair_header.hpp │ │ ├── mpl.hpp │ │ ├── node_cloner_disposer.hpp │ │ ├── node_holder.hpp │ │ ├── node_to_value.hpp │ │ ├── parent_from_member.hpp │ │ ├── rbtree_node.hpp │ │ ├── reverse_iterator.hpp │ │ ├── simple_disposers.hpp │ │ ├── size_holder.hpp │ │ ├── slist_iterator.hpp │ │ ├── slist_node.hpp │ │ ├── std_fwd.hpp │ │ ├── transform_iterator.hpp │ │ ├── tree_iterator.hpp │ │ ├── tree_node.hpp │ │ ├── tree_value_compare.hpp │ │ ├── twin.hpp │ │ ├── uncast.hpp │ │ ├── value_functors.hpp │ │ └── workaround.hpp │ ├── hashtable.hpp │ ├── intrusive_fwd.hpp │ ├── linear_slist_algorithms.hpp │ ├── link_mode.hpp │ ├── list.hpp │ ├── list_hook.hpp │ ├── member_value_traits.hpp │ ├── options.hpp │ ├── pack_options.hpp │ ├── parent_from_member.hpp │ ├── pointer_plus_bits.hpp │ ├── pointer_rebind.hpp │ ├── pointer_traits.hpp │ ├── priority_compare.hpp │ ├── rbtree.hpp │ ├── rbtree_algorithms.hpp │ ├── set.hpp │ ├── set_hook.hpp │ ├── sg_set.hpp │ ├── sgtree.hpp │ ├── sgtree_algorithms.hpp │ ├── slist.hpp │ ├── slist_hook.hpp │ ├── splay_set.hpp │ ├── splaytree.hpp │ ├── splaytree_algorithms.hpp │ ├── treap.hpp │ ├── treap_algorithms.hpp │ ├── treap_set.hpp │ ├── trivial_value_traits.hpp │ ├── unordered_set.hpp │ └── unordered_set_hook.hpp │ ├── limits.hpp │ ├── move │ ├── adl_move_swap.hpp │ ├── algo │ │ └── move.hpp │ ├── algorithm.hpp │ ├── core.hpp │ ├── detail │ │ ├── addressof.hpp │ │ ├── config_begin.hpp │ │ ├── config_end.hpp │ │ ├── force_ptr.hpp │ │ ├── iterator_to_raw_pointer.hpp │ │ ├── iterator_traits.hpp │ │ ├── meta_utils.hpp │ │ ├── meta_utils_core.hpp │ │ ├── placement_new.hpp │ │ ├── pointer_element.hpp │ │ ├── reverse_iterator.hpp │ │ ├── std_ns_begin.hpp │ │ ├── std_ns_end.hpp │ │ ├── to_raw_pointer.hpp │ │ ├── type_traits.hpp │ │ └── workaround.hpp │ ├── iterator.hpp │ ├── move.hpp │ ├── traits.hpp │ ├── utility.hpp │ └── utility_core.hpp │ ├── mp11 │ ├── algorithm.hpp │ ├── bind.hpp │ ├── detail │ │ ├── config.hpp │ │ ├── mp_append.hpp │ │ ├── mp_copy_if.hpp │ │ ├── mp_count.hpp │ │ ├── mp_defer.hpp │ │ ├── mp_fold.hpp │ │ ├── mp_front.hpp │ │ ├── mp_is_list.hpp │ │ ├── mp_is_value_list.hpp │ │ ├── mp_list.hpp │ │ ├── mp_list_v.hpp │ │ ├── mp_map_find.hpp │ │ ├── mp_min_element.hpp │ │ ├── mp_plus.hpp │ │ ├── mp_remove_if.hpp │ │ ├── mp_rename.hpp │ │ ├── mp_value.hpp │ │ ├── mp_void.hpp │ │ ├── mp_with_index.hpp │ │ └── mpl_common.hpp │ ├── function.hpp │ ├── integer_sequence.hpp │ ├── integral.hpp │ ├── list.hpp │ ├── set.hpp │ ├── utility.hpp │ └── version.hpp │ ├── pointer_to_other.hpp │ ├── predef.h │ ├── predef │ ├── architecture.h │ ├── architecture │ │ ├── alpha.h │ │ ├── arm.h │ │ ├── blackfin.h │ │ ├── convex.h │ │ ├── e2k.h │ │ ├── ia64.h │ │ ├── loongarch.h │ │ ├── m68k.h │ │ ├── mips.h │ │ ├── parisc.h │ │ ├── ppc.h │ │ ├── ptx.h │ │ ├── pyramid.h │ │ ├── riscv.h │ │ ├── rs6k.h │ │ ├── sparc.h │ │ ├── superh.h │ │ ├── sys370.h │ │ ├── sys390.h │ │ ├── x86.h │ │ ├── x86 │ │ │ ├── 32.h │ │ │ └── 64.h │ │ └── z.h │ ├── compiler.h │ ├── compiler │ │ ├── borland.h │ │ ├── clang.h │ │ ├── comeau.h │ │ ├── compaq.h │ │ ├── diab.h │ │ ├── digitalmars.h │ │ ├── dignus.h │ │ ├── edg.h │ │ ├── ekopath.h │ │ ├── gcc.h │ │ ├── gcc_xml.h │ │ ├── greenhills.h │ │ ├── hp_acc.h │ │ ├── iar.h │ │ ├── ibm.h │ │ ├── intel.h │ │ ├── kai.h │ │ ├── llvm.h │ │ ├── metaware.h │ │ ├── metrowerks.h │ │ ├── microtec.h │ │ ├── mpw.h │ │ ├── nvcc.h │ │ ├── palm.h │ │ ├── pgi.h │ │ ├── sgi_mipspro.h │ │ ├── sunpro.h │ │ ├── tendra.h │ │ ├── visualc.h │ │ └── watcom.h │ ├── detail │ │ ├── _cassert.h │ │ ├── _exception.h │ │ ├── comp_detected.h │ │ ├── os_detected.h │ │ ├── platform_detected.h │ │ ├── test.h │ │ └── test_def.h │ ├── hardware.h │ ├── hardware │ │ ├── simd.h │ │ └── simd │ │ │ ├── arm.h │ │ │ ├── arm │ │ │ └── versions.h │ │ │ ├── ppc.h │ │ │ ├── ppc │ │ │ └── versions.h │ │ │ ├── x86.h │ │ │ ├── x86 │ │ │ └── versions.h │ │ │ ├── x86_amd.h │ │ │ └── x86_amd │ │ │ └── versions.h │ ├── language.h │ ├── language │ │ ├── cuda.h │ │ ├── objc.h │ │ ├── stdc.h │ │ └── stdcpp.h │ ├── library.h │ ├── library │ │ ├── c.h │ │ ├── c │ │ │ ├── _prefix.h │ │ │ ├── cloudabi.h │ │ │ ├── gnu.h │ │ │ ├── uc.h │ │ │ ├── vms.h │ │ │ └── zos.h │ │ ├── std.h │ │ └── std │ │ │ ├── _prefix.h │ │ │ ├── cxx.h │ │ │ ├── dinkumware.h │ │ │ ├── libcomo.h │ │ │ ├── modena.h │ │ │ ├── msl.h │ │ │ ├── roguewave.h │ │ │ ├── sgi.h │ │ │ ├── stdcpp3.h │ │ │ ├── stlport.h │ │ │ └── vacpp.h │ ├── make.h │ ├── os.h │ ├── os │ │ ├── aix.h │ │ ├── amigaos.h │ │ ├── beos.h │ │ ├── bsd.h │ │ ├── bsd │ │ │ ├── bsdi.h │ │ │ ├── dragonfly.h │ │ │ ├── free.h │ │ │ ├── net.h │ │ │ └── open.h │ │ ├── cygwin.h │ │ ├── haiku.h │ │ ├── hpux.h │ │ ├── ios.h │ │ ├── irix.h │ │ ├── linux.h │ │ ├── macos.h │ │ ├── os400.h │ │ ├── qnxnto.h │ │ ├── solaris.h │ │ ├── unix.h │ │ ├── vms.h │ │ └── windows.h │ ├── other.h │ ├── other │ │ ├── endian.h │ │ ├── wordsize.h │ │ └── workaround.h │ ├── platform.h │ ├── platform │ │ ├── android.h │ │ ├── cloudabi.h │ │ ├── ios.h │ │ ├── mingw.h │ │ ├── mingw32.h │ │ ├── mingw64.h │ │ ├── windows_desktop.h │ │ ├── windows_phone.h │ │ ├── windows_runtime.h │ │ ├── windows_server.h │ │ ├── windows_store.h │ │ ├── windows_system.h │ │ └── windows_uwp.h │ ├── version.h │ └── version_number.h │ ├── preprocessor │ ├── arithmetic.hpp │ ├── arithmetic │ │ ├── add.hpp │ │ ├── dec.hpp │ │ ├── detail │ │ │ ├── div_base.hpp │ │ │ ├── is_1_number.hpp │ │ │ ├── is_maximum_number.hpp │ │ │ ├── is_minimum_number.hpp │ │ │ └── maximum_number.hpp │ │ ├── div.hpp │ │ ├── inc.hpp │ │ ├── limits │ │ │ ├── dec_1024.hpp │ │ │ ├── dec_256.hpp │ │ │ ├── dec_512.hpp │ │ │ ├── inc_1024.hpp │ │ │ ├── inc_256.hpp │ │ │ └── inc_512.hpp │ │ ├── mod.hpp │ │ ├── mul.hpp │ │ └── sub.hpp │ ├── array.hpp │ ├── array │ │ ├── data.hpp │ │ ├── detail │ │ │ └── get_data.hpp │ │ ├── elem.hpp │ │ ├── enum.hpp │ │ ├── insert.hpp │ │ ├── pop_back.hpp │ │ ├── pop_front.hpp │ │ ├── push_back.hpp │ │ ├── push_front.hpp │ │ ├── remove.hpp │ │ ├── replace.hpp │ │ ├── reverse.hpp │ │ ├── size.hpp │ │ ├── to_list.hpp │ │ ├── to_seq.hpp │ │ └── to_tuple.hpp │ ├── assert_msg.hpp │ ├── cat.hpp │ ├── comma.hpp │ ├── comma_if.hpp │ ├── comparison.hpp │ ├── comparison │ │ ├── equal.hpp │ │ ├── greater.hpp │ │ ├── greater_equal.hpp │ │ ├── less.hpp │ │ ├── less_equal.hpp │ │ ├── limits │ │ │ ├── not_equal_1024.hpp │ │ │ ├── not_equal_256.hpp │ │ │ └── not_equal_512.hpp │ │ └── not_equal.hpp │ ├── config │ │ ├── config.hpp │ │ └── limits.hpp │ ├── control.hpp │ ├── control │ │ ├── deduce_d.hpp │ │ ├── detail │ │ │ ├── dmc │ │ │ │ └── while.hpp │ │ │ ├── edg │ │ │ │ ├── limits │ │ │ │ │ ├── while_1024.hpp │ │ │ │ │ ├── while_256.hpp │ │ │ │ │ └── while_512.hpp │ │ │ │ └── while.hpp │ │ │ ├── limits │ │ │ │ ├── while_1024.hpp │ │ │ │ ├── while_256.hpp │ │ │ │ └── while_512.hpp │ │ │ ├── msvc │ │ │ │ └── while.hpp │ │ │ └── while.hpp │ │ ├── expr_if.hpp │ │ ├── expr_iif.hpp │ │ ├── if.hpp │ │ ├── iif.hpp │ │ ├── limits │ │ │ ├── while_1024.hpp │ │ │ ├── while_256.hpp │ │ │ └── while_512.hpp │ │ └── while.hpp │ ├── debug.hpp │ ├── debug │ │ ├── assert.hpp │ │ ├── error.hpp │ │ └── line.hpp │ ├── dec.hpp │ ├── detail │ │ ├── auto_rec.hpp │ │ ├── check.hpp │ │ ├── dmc │ │ │ └── auto_rec.hpp │ │ ├── is_binary.hpp │ │ ├── is_nullary.hpp │ │ ├── is_unary.hpp │ │ ├── limits │ │ │ ├── auto_rec_1024.hpp │ │ │ ├── auto_rec_256.hpp │ │ │ └── auto_rec_512.hpp │ │ ├── null.hpp │ │ └── split.hpp │ ├── empty.hpp │ ├── enum.hpp │ ├── enum_params.hpp │ ├── enum_params_with_a_default.hpp │ ├── enum_params_with_defaults.hpp │ ├── enum_shifted.hpp │ ├── enum_shifted_params.hpp │ ├── expand.hpp │ ├── expr_if.hpp │ ├── facilities.hpp │ ├── facilities │ │ ├── apply.hpp │ │ ├── check_empty.hpp │ │ ├── detail │ │ │ └── is_empty.hpp │ │ ├── empty.hpp │ │ ├── expand.hpp │ │ ├── identity.hpp │ │ ├── intercept.hpp │ │ ├── is_1.hpp │ │ ├── is_empty.hpp │ │ ├── is_empty_or_1.hpp │ │ ├── is_empty_variadic.hpp │ │ ├── limits │ │ │ ├── intercept_1024.hpp │ │ │ ├── intercept_256.hpp │ │ │ └── intercept_512.hpp │ │ ├── overload.hpp │ │ └── va_opt.hpp │ ├── for.hpp │ ├── identity.hpp │ ├── if.hpp │ ├── inc.hpp │ ├── iterate.hpp │ ├── iteration.hpp │ ├── iteration │ │ ├── detail │ │ │ ├── bounds │ │ │ │ ├── lower1.hpp │ │ │ │ ├── lower2.hpp │ │ │ │ ├── lower3.hpp │ │ │ │ ├── lower4.hpp │ │ │ │ ├── lower5.hpp │ │ │ │ ├── upper1.hpp │ │ │ │ ├── upper2.hpp │ │ │ │ ├── upper3.hpp │ │ │ │ ├── upper4.hpp │ │ │ │ └── upper5.hpp │ │ │ ├── finish.hpp │ │ │ ├── iter │ │ │ │ ├── forward1.hpp │ │ │ │ ├── forward2.hpp │ │ │ │ ├── forward3.hpp │ │ │ │ ├── forward4.hpp │ │ │ │ ├── forward5.hpp │ │ │ │ ├── limits │ │ │ │ │ ├── forward1_1024.hpp │ │ │ │ │ ├── forward1_256.hpp │ │ │ │ │ ├── forward1_512.hpp │ │ │ │ │ ├── forward2_1024.hpp │ │ │ │ │ ├── forward2_256.hpp │ │ │ │ │ ├── forward2_512.hpp │ │ │ │ │ ├── forward3_1024.hpp │ │ │ │ │ ├── forward3_256.hpp │ │ │ │ │ ├── forward3_512.hpp │ │ │ │ │ ├── forward4_1024.hpp │ │ │ │ │ ├── forward4_256.hpp │ │ │ │ │ ├── forward4_512.hpp │ │ │ │ │ ├── forward5_1024.hpp │ │ │ │ │ ├── forward5_256.hpp │ │ │ │ │ ├── forward5_512.hpp │ │ │ │ │ ├── reverse1_1024.hpp │ │ │ │ │ ├── reverse1_256.hpp │ │ │ │ │ ├── reverse1_512.hpp │ │ │ │ │ ├── reverse2_1024.hpp │ │ │ │ │ ├── reverse2_256.hpp │ │ │ │ │ ├── reverse2_512.hpp │ │ │ │ │ ├── reverse3_1024.hpp │ │ │ │ │ ├── reverse3_256.hpp │ │ │ │ │ ├── reverse3_512.hpp │ │ │ │ │ ├── reverse4_1024.hpp │ │ │ │ │ ├── reverse4_256.hpp │ │ │ │ │ ├── reverse4_512.hpp │ │ │ │ │ ├── reverse5_1024.hpp │ │ │ │ │ ├── reverse5_256.hpp │ │ │ │ │ └── reverse5_512.hpp │ │ │ │ ├── reverse1.hpp │ │ │ │ ├── reverse2.hpp │ │ │ │ ├── reverse3.hpp │ │ │ │ ├── reverse4.hpp │ │ │ │ └── reverse5.hpp │ │ │ ├── limits │ │ │ │ ├── local_1024.hpp │ │ │ │ ├── local_256.hpp │ │ │ │ ├── local_512.hpp │ │ │ │ ├── rlocal_1024.hpp │ │ │ │ ├── rlocal_256.hpp │ │ │ │ └── rlocal_512.hpp │ │ │ ├── local.hpp │ │ │ ├── rlocal.hpp │ │ │ ├── self.hpp │ │ │ └── start.hpp │ │ ├── iterate.hpp │ │ ├── local.hpp │ │ └── self.hpp │ ├── library.hpp │ ├── limits.hpp │ ├── list.hpp │ ├── list │ │ ├── adt.hpp │ │ ├── append.hpp │ │ ├── at.hpp │ │ ├── cat.hpp │ │ ├── detail │ │ │ ├── dmc │ │ │ │ └── fold_left.hpp │ │ │ ├── edg │ │ │ │ ├── fold_left.hpp │ │ │ │ ├── fold_right.hpp │ │ │ │ └── limits │ │ │ │ │ ├── fold_left_1024.hpp │ │ │ │ │ ├── fold_left_256.hpp │ │ │ │ │ ├── fold_left_512.hpp │ │ │ │ │ ├── fold_right_1024.hpp │ │ │ │ │ ├── fold_right_256.hpp │ │ │ │ │ └── fold_right_512.hpp │ │ │ ├── fold_left.hpp │ │ │ ├── fold_right.hpp │ │ │ └── limits │ │ │ │ ├── fold_left_1024.hpp │ │ │ │ ├── fold_left_256.hpp │ │ │ │ ├── fold_left_512.hpp │ │ │ │ ├── fold_right_1024.hpp │ │ │ │ ├── fold_right_256.hpp │ │ │ │ └── fold_right_512.hpp │ │ ├── enum.hpp │ │ ├── filter.hpp │ │ ├── first_n.hpp │ │ ├── fold_left.hpp │ │ ├── fold_right.hpp │ │ ├── for_each.hpp │ │ ├── for_each_i.hpp │ │ ├── for_each_product.hpp │ │ ├── limits │ │ │ ├── fold_left_1024.hpp │ │ │ ├── fold_left_256.hpp │ │ │ └── fold_left_512.hpp │ │ ├── rest_n.hpp │ │ ├── reverse.hpp │ │ ├── size.hpp │ │ ├── to_array.hpp │ │ ├── to_seq.hpp │ │ ├── to_tuple.hpp │ │ └── transform.hpp │ ├── logical.hpp │ ├── logical │ │ ├── and.hpp │ │ ├── bitand.hpp │ │ ├── bitnor.hpp │ │ ├── bitor.hpp │ │ ├── bitxor.hpp │ │ ├── bool.hpp │ │ ├── compl.hpp │ │ ├── limits │ │ │ ├── bool_1024.hpp │ │ │ ├── bool_256.hpp │ │ │ └── bool_512.hpp │ │ ├── nor.hpp │ │ ├── not.hpp │ │ ├── or.hpp │ │ └── xor.hpp │ ├── max.hpp │ ├── min.hpp │ ├── punctuation.hpp │ ├── punctuation │ │ ├── comma.hpp │ │ ├── comma_if.hpp │ │ ├── detail │ │ │ └── is_begin_parens.hpp │ │ ├── is_begin_parens.hpp │ │ ├── paren.hpp │ │ ├── paren_if.hpp │ │ └── remove_parens.hpp │ ├── repeat.hpp │ ├── repeat_2nd.hpp │ ├── repeat_3rd.hpp │ ├── repeat_from_to.hpp │ ├── repeat_from_to_2nd.hpp │ ├── repeat_from_to_3rd.hpp │ ├── repetition.hpp │ ├── repetition │ │ ├── deduce_r.hpp │ │ ├── deduce_z.hpp │ │ ├── detail │ │ │ ├── dmc │ │ │ │ └── for.hpp │ │ │ ├── edg │ │ │ │ ├── for.hpp │ │ │ │ └── limits │ │ │ │ │ ├── for_1024.hpp │ │ │ │ │ ├── for_256.hpp │ │ │ │ │ └── for_512.hpp │ │ │ ├── for.hpp │ │ │ ├── limits │ │ │ │ ├── for_1024.hpp │ │ │ │ ├── for_256.hpp │ │ │ │ └── for_512.hpp │ │ │ └── msvc │ │ │ │ └── for.hpp │ │ ├── enum.hpp │ │ ├── enum_binary_params.hpp │ │ ├── enum_params.hpp │ │ ├── enum_params_with_a_default.hpp │ │ ├── enum_params_with_defaults.hpp │ │ ├── enum_shifted.hpp │ │ ├── enum_shifted_binary_params.hpp │ │ ├── enum_shifted_params.hpp │ │ ├── enum_trailing.hpp │ │ ├── enum_trailing_binary_params.hpp │ │ ├── enum_trailing_params.hpp │ │ ├── for.hpp │ │ ├── limits │ │ │ ├── for_1024.hpp │ │ │ ├── for_256.hpp │ │ │ ├── for_512.hpp │ │ │ ├── repeat_1024.hpp │ │ │ ├── repeat_256.hpp │ │ │ └── repeat_512.hpp │ │ ├── repeat.hpp │ │ └── repeat_from_to.hpp │ ├── selection.hpp │ ├── selection │ │ ├── max.hpp │ │ └── min.hpp │ ├── seq.hpp │ ├── seq │ │ ├── cat.hpp │ │ ├── detail │ │ │ ├── binary_transform.hpp │ │ │ ├── is_empty.hpp │ │ │ ├── limits │ │ │ │ ├── split_1024.hpp │ │ │ │ ├── split_256.hpp │ │ │ │ └── split_512.hpp │ │ │ ├── split.hpp │ │ │ └── to_list_msvc.hpp │ │ ├── elem.hpp │ │ ├── enum.hpp │ │ ├── filter.hpp │ │ ├── first_n.hpp │ │ ├── fold_left.hpp │ │ ├── fold_right.hpp │ │ ├── for_each.hpp │ │ ├── for_each_i.hpp │ │ ├── for_each_product.hpp │ │ ├── insert.hpp │ │ ├── limits │ │ │ ├── elem_1024.hpp │ │ │ ├── elem_256.hpp │ │ │ ├── elem_512.hpp │ │ │ ├── enum_1024.hpp │ │ │ ├── enum_256.hpp │ │ │ ├── enum_512.hpp │ │ │ ├── fold_left_1024.hpp │ │ │ ├── fold_left_256.hpp │ │ │ ├── fold_left_512.hpp │ │ │ ├── fold_right_1024.hpp │ │ │ ├── fold_right_256.hpp │ │ │ ├── fold_right_512.hpp │ │ │ ├── size_1024.hpp │ │ │ ├── size_256.hpp │ │ │ └── size_512.hpp │ │ ├── pop_back.hpp │ │ ├── pop_front.hpp │ │ ├── push_back.hpp │ │ ├── push_front.hpp │ │ ├── remove.hpp │ │ ├── replace.hpp │ │ ├── rest_n.hpp │ │ ├── reverse.hpp │ │ ├── seq.hpp │ │ ├── size.hpp │ │ ├── subseq.hpp │ │ ├── to_array.hpp │ │ ├── to_list.hpp │ │ ├── to_tuple.hpp │ │ ├── transform.hpp │ │ └── variadic_seq_to_seq.hpp │ ├── slot.hpp │ ├── slot │ │ ├── counter.hpp │ │ ├── detail │ │ │ ├── counter.hpp │ │ │ ├── def.hpp │ │ │ ├── shared.hpp │ │ │ ├── slot1.hpp │ │ │ ├── slot2.hpp │ │ │ ├── slot3.hpp │ │ │ ├── slot4.hpp │ │ │ └── slot5.hpp │ │ └── slot.hpp │ ├── stringize.hpp │ ├── tuple.hpp │ ├── tuple │ │ ├── detail │ │ │ └── is_single_return.hpp │ │ ├── eat.hpp │ │ ├── elem.hpp │ │ ├── enum.hpp │ │ ├── insert.hpp │ │ ├── limits │ │ │ ├── reverse_128.hpp │ │ │ ├── reverse_256.hpp │ │ │ ├── reverse_64.hpp │ │ │ ├── to_list_128.hpp │ │ │ ├── to_list_256.hpp │ │ │ ├── to_list_64.hpp │ │ │ ├── to_seq_128.hpp │ │ │ ├── to_seq_256.hpp │ │ │ └── to_seq_64.hpp │ │ ├── pop_back.hpp │ │ ├── pop_front.hpp │ │ ├── push_back.hpp │ │ ├── push_front.hpp │ │ ├── rem.hpp │ │ ├── remove.hpp │ │ ├── replace.hpp │ │ ├── reverse.hpp │ │ ├── size.hpp │ │ ├── to_array.hpp │ │ ├── to_list.hpp │ │ └── to_seq.hpp │ ├── variadic.hpp │ ├── variadic │ │ ├── detail │ │ │ ├── has_opt.hpp │ │ │ └── is_single_return.hpp │ │ ├── elem.hpp │ │ ├── has_opt.hpp │ │ ├── limits │ │ │ ├── elem_128.hpp │ │ │ ├── elem_256.hpp │ │ │ ├── elem_64.hpp │ │ │ ├── size_128.hpp │ │ │ ├── size_256.hpp │ │ │ └── size_64.hpp │ │ ├── size.hpp │ │ ├── to_array.hpp │ │ ├── to_list.hpp │ │ ├── to_seq.hpp │ │ └── to_tuple.hpp │ ├── while.hpp │ └── wstringize.hpp │ ├── ref.hpp │ ├── static_assert.hpp │ ├── swap.hpp │ ├── throw_exception.hpp │ ├── tuple │ ├── detail │ │ └── tuple_basic.hpp │ ├── tuple.hpp │ ├── tuple_comparison.hpp │ └── tuple_io.hpp │ ├── type_traits │ ├── add_const.hpp │ ├── add_cv.hpp │ ├── add_lvalue_reference.hpp │ ├── add_pointer.hpp │ ├── add_reference.hpp │ ├── add_rvalue_reference.hpp │ ├── add_volatile.hpp │ ├── aligned_storage.hpp │ ├── alignment_of.hpp │ ├── alignment_traits.hpp │ ├── arithmetic_traits.hpp │ ├── array_traits.hpp │ ├── broken_compiler_spec.hpp │ ├── common_type.hpp │ ├── composite_traits.hpp │ ├── conditional.hpp │ ├── config.hpp │ ├── conjunction.hpp │ ├── conversion_traits.hpp │ ├── copy_cv.hpp │ ├── copy_cv_ref.hpp │ ├── copy_reference.hpp │ ├── cv_traits.hpp │ ├── decay.hpp │ ├── declval.hpp │ ├── detail │ │ ├── bool_trait_def.hpp │ │ ├── bool_trait_undef.hpp │ │ ├── common_arithmetic_type.hpp │ │ ├── common_type_impl.hpp │ │ ├── composite_member_pointer_type.hpp │ │ ├── composite_pointer_type.hpp │ │ ├── config.hpp │ │ ├── detector.hpp │ │ ├── has_binary_operator.hpp │ │ ├── has_postfix_operator.hpp │ │ ├── has_prefix_operator.hpp │ │ ├── ice_and.hpp │ │ ├── ice_eq.hpp │ │ ├── ice_not.hpp │ │ ├── ice_or.hpp │ │ ├── is_function_cxx_03.hpp │ │ ├── is_function_cxx_11.hpp │ │ ├── is_function_msvc10_fix.hpp │ │ ├── is_function_ptr_helper.hpp │ │ ├── is_function_ptr_tester.hpp │ │ ├── is_likely_lambda.hpp │ │ ├── is_mem_fun_pointer_impl.hpp │ │ ├── is_mem_fun_pointer_tester.hpp │ │ ├── is_member_function_pointer_cxx_03.hpp │ │ ├── is_member_function_pointer_cxx_11.hpp │ │ ├── is_rvalue_reference_msvc10_fix.hpp │ │ ├── is_swappable_cxx_11.hpp │ │ ├── mp_defer.hpp │ │ ├── template_arity_spec.hpp │ │ └── yes_no_type.hpp │ ├── detected.hpp │ ├── detected_or.hpp │ ├── disjunction.hpp │ ├── enable_if.hpp │ ├── extent.hpp │ ├── floating_point_promotion.hpp │ ├── function_traits.hpp │ ├── has_bit_and.hpp │ ├── has_bit_and_assign.hpp │ ├── has_bit_or.hpp │ ├── has_bit_or_assign.hpp │ ├── has_bit_xor.hpp │ ├── has_bit_xor_assign.hpp │ ├── has_complement.hpp │ ├── has_dereference.hpp │ ├── has_divides.hpp │ ├── has_divides_assign.hpp │ ├── has_equal_to.hpp │ ├── has_greater.hpp │ ├── has_greater_equal.hpp │ ├── has_left_shift.hpp │ ├── has_left_shift_assign.hpp │ ├── has_less.hpp │ ├── has_less_equal.hpp │ ├── has_logical_and.hpp │ ├── has_logical_not.hpp │ ├── has_logical_or.hpp │ ├── has_minus.hpp │ ├── has_minus_assign.hpp │ ├── has_modulus.hpp │ ├── has_modulus_assign.hpp │ ├── has_multiplies.hpp │ ├── has_multiplies_assign.hpp │ ├── has_negate.hpp │ ├── has_new_operator.hpp │ ├── has_not_equal_to.hpp │ ├── has_nothrow_assign.hpp │ ├── has_nothrow_constructor.hpp │ ├── has_nothrow_copy.hpp │ ├── has_nothrow_destructor.hpp │ ├── has_operator.hpp │ ├── has_plus.hpp │ ├── has_plus_assign.hpp │ ├── has_post_decrement.hpp │ ├── has_post_increment.hpp │ ├── has_pre_decrement.hpp │ ├── has_pre_increment.hpp │ ├── has_right_shift.hpp │ ├── has_right_shift_assign.hpp │ ├── has_trivial_assign.hpp │ ├── has_trivial_constructor.hpp │ ├── has_trivial_copy.hpp │ ├── has_trivial_destructor.hpp │ ├── has_trivial_move_assign.hpp │ ├── has_trivial_move_constructor.hpp │ ├── has_unary_minus.hpp │ ├── has_unary_plus.hpp │ ├── has_virtual_destructor.hpp │ ├── ice.hpp │ ├── integral_constant.hpp │ ├── integral_promotion.hpp │ ├── intrinsics.hpp │ ├── is_abstract.hpp │ ├── is_arithmetic.hpp │ ├── is_array.hpp │ ├── is_assignable.hpp │ ├── is_base_and_derived.hpp │ ├── is_base_of.hpp │ ├── is_base_of_tr1.hpp │ ├── is_bounded_array.hpp │ ├── is_class.hpp │ ├── is_complete.hpp │ ├── is_complex.hpp │ ├── is_compound.hpp │ ├── is_const.hpp │ ├── is_constructible.hpp │ ├── is_convertible.hpp │ ├── is_copy_assignable.hpp │ ├── is_copy_constructible.hpp │ ├── is_default_constructible.hpp │ ├── is_destructible.hpp │ ├── is_detected.hpp │ ├── is_detected_convertible.hpp │ ├── is_detected_exact.hpp │ ├── is_empty.hpp │ ├── is_enum.hpp │ ├── is_final.hpp │ ├── is_float.hpp │ ├── is_floating_point.hpp │ ├── is_function.hpp │ ├── is_fundamental.hpp │ ├── is_integral.hpp │ ├── is_list_constructible.hpp │ ├── is_lvalue_reference.hpp │ ├── is_member_function_pointer.hpp │ ├── is_member_object_pointer.hpp │ ├── is_member_pointer.hpp │ ├── is_noncopyable.hpp │ ├── is_nothrow_move_assignable.hpp │ ├── is_nothrow_move_constructible.hpp │ ├── is_nothrow_swappable.hpp │ ├── is_object.hpp │ ├── is_pod.hpp │ ├── is_pointer.hpp │ ├── is_polymorphic.hpp │ ├── is_reference.hpp │ ├── is_rvalue_reference.hpp │ ├── is_same.hpp │ ├── is_scalar.hpp │ ├── is_scoped_enum.hpp │ ├── is_signed.hpp │ ├── is_stateless.hpp │ ├── is_trivially_copyable.hpp │ ├── is_unbounded_array.hpp │ ├── is_union.hpp │ ├── is_unscoped_enum.hpp │ ├── is_unsigned.hpp │ ├── is_virtual_base_of.hpp │ ├── is_void.hpp │ ├── is_volatile.hpp │ ├── make_signed.hpp │ ├── make_unsigned.hpp │ ├── make_void.hpp │ ├── negation.hpp │ ├── nonesuch.hpp │ ├── object_traits.hpp │ ├── promote.hpp │ ├── rank.hpp │ ├── reference_traits.hpp │ ├── remove_all_extents.hpp │ ├── remove_bounds.hpp │ ├── remove_const.hpp │ ├── remove_cv.hpp │ ├── remove_cv_ref.hpp │ ├── remove_extent.hpp │ ├── remove_pointer.hpp │ ├── remove_reference.hpp │ ├── remove_volatile.hpp │ ├── same_traits.hpp │ ├── transform_traits.hpp │ ├── type_identity.hpp │ └── type_with_alignment.hpp │ ├── unordered │ ├── detail │ │ ├── fca.hpp │ │ ├── fwd.hpp │ │ ├── implementation.hpp │ │ ├── map.hpp │ │ ├── mulx.hpp │ │ ├── narrow_cast.hpp │ │ ├── prime_fmod.hpp │ │ ├── requires_cxx11.hpp │ │ ├── set.hpp │ │ ├── type_traits.hpp │ │ └── xmx.hpp │ ├── unordered_map.hpp │ ├── unordered_map_fwd.hpp │ ├── unordered_set.hpp │ └── unordered_set_fwd.hpp │ ├── unordered_map.hpp │ ├── unordered_set.hpp │ ├── utility │ ├── addressof.hpp │ ├── enable_if.hpp │ └── swap.hpp │ └── version.hpp ├── pyproject.toml ├── repltest ├── master │ ├── buildout.cfg │ ├── notes.sql │ └── replicas.conf ├── my.cnf.in ├── mysql-no-read-etc.patch └── slave │ ├── buildout.cfg │ └── notes.sql ├── scripts ├── install.ps1 ├── releases │ ├── geventrel.sh │ ├── geventreleases.sh │ ├── make-manylinux │ ├── relstoragerel.sh │ └── relstoragereleases.sh └── util │ └── zodbgcrecover.py ├── setup.cfg ├── setup.py ├── src └── relstorage │ ├── .gitignore │ ├── __init__.py │ ├── _compat.py │ ├── _inthashmap.h │ ├── _inthashmap.pxd │ ├── _inthashmap.pyx │ ├── _mvcc.py │ ├── _rs_types.h │ ├── _rs_types.pxd │ ├── _util.py │ ├── adapters │ ├── __init__.py │ ├── _util.py │ ├── adapter.py │ ├── batch.py │ ├── connections.py │ ├── connmanager.py │ ├── dbiter.py │ ├── drivers.py │ ├── interfaces.py │ ├── locker.py │ ├── mover.py │ ├── mysql │ │ ├── __init__.py │ │ ├── adapter.py │ │ ├── connmanager.py │ │ ├── drivers │ │ │ ├── __init__.py │ │ │ ├── _mysqldb_gevent.py │ │ │ ├── mysqlconnector.py │ │ │ ├── mysqldb.py │ │ │ ├── pymysql.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_mysqldb.py │ │ ├── locker.py │ │ ├── mover.py │ │ ├── oidallocator.py │ │ ├── packundo.py │ │ ├── procs │ │ │ ├── __init__.py │ │ │ ├── clean_temp_state.sql │ │ │ ├── hf │ │ │ │ ├── __init__.py │ │ │ │ ├── lock_and_choose_tid.sql │ │ │ │ ├── lock_and_choose_tid_and_move.sql │ │ │ │ └── lock_and_choose_tid_p.sql │ │ │ ├── hp │ │ │ │ ├── __init__.py │ │ │ │ ├── lock_and_choose_tid.sql │ │ │ │ ├── lock_and_choose_tid_and_move.sql │ │ │ │ └── lock_and_choose_tid_p.sql │ │ │ ├── lock_database_for_commit.sql │ │ │ ├── lock_objects_and_detect_conflicts.sql │ │ │ ├── make_current_tid.sql │ │ │ ├── make_tid_for_epoch.sql │ │ │ └── set_min_oid.sql │ │ ├── schema.py │ │ ├── stats.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test_adapter.py │ │ │ ├── test_dialect.py │ │ │ ├── test_schema.py │ │ │ └── test_txncontrol.py │ │ └── txncontrol.py │ ├── oidallocator.py │ ├── oracle │ │ ├── __init__.py │ │ ├── adapter.py │ │ ├── batch.py │ │ ├── connmanager.py │ │ ├── dialect.py │ │ ├── drivers.py │ │ ├── locker.py │ │ ├── mover.py │ │ ├── oidallocator.py │ │ ├── packundo.py │ │ ├── schema.py │ │ ├── scriptrunner.py │ │ ├── stats.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test_adapter.py │ │ │ └── test_dialect.py │ │ └── txncontrol.py │ ├── packundo.py │ ├── poller.py │ ├── postgresql │ │ ├── __init__.py │ │ ├── adapter.py │ │ ├── batch.py │ │ ├── connmanager.py │ │ ├── drivers │ │ │ ├── __init__.py │ │ │ ├── _lobject.py │ │ │ ├── pg8000.py │ │ │ ├── psycopg2.py │ │ │ ├── psycopg2cffi.py │ │ │ └── tests │ │ │ │ ├── __init__.py │ │ │ │ └── test_psycopg2.py │ │ ├── locker.py │ │ ├── mover.py │ │ ├── oidallocator.py │ │ ├── procs │ │ │ ├── __init__.py │ │ │ ├── blob_chunk_delete_trigger.sql │ │ │ ├── hf │ │ │ │ ├── __init__.py │ │ │ │ ├── lock_and_choose_tid.sql │ │ │ │ └── lock_and_choose_tid_and_move.sql │ │ │ ├── hp │ │ │ │ ├── __init__.py │ │ │ │ ├── lock_and_choose_tid.sql │ │ │ │ └── lock_and_choose_tid_and_move.sql │ │ │ ├── lock_objects_and_detect_conflicts.sql │ │ │ ├── make_current_tid.sql │ │ │ ├── make_tid_for_epoch.sql │ │ │ ├── merge_blob_chunks.sql │ │ │ └── temp_blob_chunk_delete_trigger.sql │ │ ├── schema.py │ │ ├── stats.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test_adapter.py │ │ │ ├── test_mover.py │ │ │ └── test_txncontrol.py │ │ ├── txncontrol.py │ │ └── util.py │ ├── replica.py │ ├── schema.py │ ├── scriptrunner.py │ ├── sql │ │ ├── __init__.py │ │ ├── _util.py │ │ ├── ast.py │ │ ├── dialect.py │ │ ├── expressions.py │ │ ├── functions.py │ │ ├── insert.py │ │ ├── interfaces.py │ │ ├── query.py │ │ ├── schema.py │ │ ├── select.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test_ast.py │ │ │ ├── test_dialect.py │ │ │ ├── test_expressions.py │ │ │ ├── test_query.py │ │ │ ├── test_schema.py │ │ │ └── test_sql.py │ │ └── types.py │ ├── sqlite │ │ ├── __init__.py │ │ ├── adapter.py │ │ ├── batch.py │ │ ├── connmanager.py │ │ ├── dialect.py │ │ ├── drivers.py │ │ ├── locker.py │ │ ├── mover.py │ │ ├── oidallocator.py │ │ ├── poller.py │ │ ├── schema.py │ │ ├── scriptrunner.py │ │ ├── stats.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test_adapter.py │ │ │ ├── test_dialect.py │ │ │ ├── test_driver.py │ │ │ ├── test_mover.py │ │ │ └── test_sqlite.py │ │ └── txncontrol.py │ ├── stats.py │ ├── tests │ │ ├── __init__.py │ │ ├── test_adapter.py │ │ ├── test_batch.py │ │ ├── test_connections.py │ │ ├── test_connmanager.py │ │ ├── test_drivers.py │ │ ├── test_interfaces.py │ │ ├── test_oidallocator.py │ │ ├── test_replica.py │ │ ├── test_txncontrol.py │ │ └── test_util.py │ └── txncontrol.py │ ├── blobhelper │ ├── __init__.py │ ├── abstract.py │ ├── cached.py │ ├── interfaces.py │ ├── shared.py │ ├── tests │ │ ├── __init__.py │ │ ├── test_blobhelper.py │ │ ├── test_cached.py │ │ └── test_shared.py │ └── util.py │ ├── cache │ ├── .gitignore │ ├── __init__.py │ ├── _objectindex.pyx │ ├── _statecache_wrappers.py │ ├── c_cache.cpp │ ├── c_cache.h │ ├── c_cache.pxd │ ├── cache.pyx │ ├── interfaces.py │ ├── local_client.py │ ├── local_database.py │ ├── memcache_client.py │ ├── micro_benchmark_results.rst │ ├── mvcc.py │ ├── persistence.py │ ├── storage_cache.py │ ├── tests │ │ ├── __init__.py │ │ ├── bench_mvcc.py │ │ ├── benchmarks.py │ │ ├── cache_trace_analysis.rst │ │ ├── test__statecache_wrappers.py │ │ ├── test_cache_stats.py │ │ ├── test_local_client.py │ │ ├── test_local_database.py │ │ ├── test_lru_cffiring.py │ │ ├── test_memcache_client.py │ │ ├── test_mvcc.py │ │ └── test_storage_cache.py │ └── trace.py │ ├── component.xml │ ├── config.py │ ├── interfaces.py │ ├── options.py │ ├── pylibmc_wrapper.py │ ├── storage │ ├── __init__.py │ ├── copy.py │ ├── history.py │ ├── interfaces.py │ ├── legacy.py │ ├── load.py │ ├── oid.py │ ├── pack.py │ ├── store.py │ ├── tests │ │ ├── __init__.py │ │ ├── test_storage.py │ │ └── test_util.py │ ├── tpc │ │ ├── __init__.py │ │ ├── begin.py │ │ ├── finish.py │ │ ├── restore.py │ │ ├── temporary_storage.py │ │ ├── tests │ │ │ ├── __init__.py │ │ │ ├── test_temporary_storage.py │ │ │ ├── test_tpc.py │ │ │ └── test_vote.py │ │ └── vote.py │ ├── transaction_iterator.py │ └── util.py │ ├── tests │ ├── RecoveryStorage.py │ ├── __init__.py │ ├── bigmark.py │ ├── bigpack.py │ ├── blob │ │ ├── __init__.py │ │ ├── blob_cache.py │ │ ├── blob_connection.py │ │ ├── blob_importexport.py │ │ ├── blob_packing.py │ │ ├── blob_transaction.py │ │ └── testblob.py │ ├── fakecache.py │ ├── hftestbase.py │ ├── hptestbase.py │ ├── locking.py │ ├── packstresstest.py │ ├── packundo.py │ ├── persistentcache.py │ ├── reltestbase.py │ ├── replicas.conf │ ├── ro_replicas.conf │ ├── test__inthashmap.py │ ├── test__mvcc.py │ ├── test__util.py │ ├── test_config.py │ ├── test_treemark.py │ ├── test_zodbconvert.py │ ├── test_zodbpack.py │ ├── test_zodburi.py │ ├── testmysql.py │ ├── testoracle.py │ ├── testpostgresql.py │ └── util.py │ ├── treemark.py │ ├── zodbconvert.py │ ├── zodbpack.py │ └── zodburi_resolver.py ├── tox.ini └── version.txt /.gitignore: -------------------------------------------------------------------------------- 1 | .installed.cfg 2 | .dir-locals.el 3 | .pydevproject 4 | .project 5 | *.egg-info 6 | *.pyc 7 | *.pyo 8 | *.so 9 | *.sublime-* 10 | .coverage 11 | .runtimes 12 | htmlcov/ 13 | bin/ 14 | develop-eggs/ 15 | wheelhouse/ 16 | dist/ 17 | lib/ 18 | 19 | 20 | docs/_build/ 21 | docs/__pycache__ 22 | docs/relstorage.*.rst 23 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Some things can only be configured on the RTD dashboard. 6 | # Those that we may have changed from the default include: 7 | 8 | # Show Version Warning: False 9 | 10 | # Required 11 | version: 2 12 | 13 | # Build documentation in the docs/ directory with Sphinx 14 | sphinx: 15 | builder: html 16 | configuration: docs/conf.py 17 | 18 | # Set the version of Python and requirements required to build your 19 | # docs 20 | build: 21 | # os is required for some reason 22 | os: ubuntu-22.04 23 | tools: 24 | python: "3.11" 25 | 26 | python: 27 | install: 28 | - method: pip 29 | path: . 30 | extra_requirements: 31 | - docs 32 | -------------------------------------------------------------------------------- /.travis/docker.cnf: -------------------------------------------------------------------------------- 1 | [client] 2 | host = 127.0.0.1 3 | port = 3306 4 | protocol = tcp 5 | 6 | [mysqld] 7 | ssl = 0 8 | -------------------------------------------------------------------------------- /.travis/mysql.cmd: -------------------------------------------------------------------------------- 1 | mysql -uroot -e "CREATE USER 'relstoragetest'@'localhost' IDENTIFIED BY 'relstoragetest';" 2 | mysql -uroot -e "CREATE DATABASE relstoragetest;" 3 | mysql -uroot -e "GRANT ALL ON relstoragetest.* TO 'relstoragetest'@'localhost';" 4 | mysql -uroot -e "CREATE DATABASE relstoragetest2;" 5 | mysql -uroot -e "GRANT ALL ON relstoragetest2.* TO 'relstoragetest'@'localhost';" 6 | mysql -uroot -e "CREATE DATABASE relstoragetest_hf;" 7 | mysql -uroot -e "GRANT ALL ON relstoragetest_hf.* TO 'relstoragetest'@'localhost';" 8 | mysql -uroot -e "CREATE DATABASE relstoragetest2_hf;" 9 | mysql -uroot -e "GRANT ALL ON relstoragetest2_hf.* TO 'relstoragetest'@'localhost';" 10 | mysql -uroot -e "GRANT SELECT ON performance_schema.* TO 'relstoragetest'@'localhost';" 11 | mysql -uroot -e "GRANT SELECT ON sys.* TO 'relstoragetest'@'localhost'" 12 | mysql -uroot -e "GRANT PROCESS ON *.* TO 'relstoragetest'@'localhost'" 13 | mysql -uroot -e "SELECT version()" 14 | mysql -uroot -e "FLUSH PRIVILEGES;" 15 | -------------------------------------------------------------------------------- /.travis/postgres.cmd: -------------------------------------------------------------------------------- 1 | psql -U postgres -c "CREATE USER relstoragetest WITH PASSWORD 'relstoragetest';" 2 | psql -U postgres -c "CREATE DATABASE relstoragetest OWNER relstoragetest;" 3 | psql -U postgres -c "CREATE DATABASE relstoragetest2 OWNER relstoragetest;" 4 | psql -U postgres -c "CREATE DATABASE relstoragetest_hf OWNER relstoragetest;" 5 | psql -U postgres -c "CREATE DATABASE relstoragetest2_hf OWNER relstoragetest;" 6 | psql -U postgres -c "SELECT version();" 7 | -------------------------------------------------------------------------------- /.travis/postgres.sh: -------------------------------------------------------------------------------- 1 | RS_PG_UNAME=${RELSTORAGETEST_PG_UNAME:-postgres} 2 | psql -U $RS_PG_UNAME $RELSTORAGETEST_PG_DBNAME -c "CREATE USER relstoragetest WITH PASSWORD 'relstoragetest';" 3 | psql -U $RS_PG_UNAME $RELSTORAGETEST_PG_DBNAME -c "CREATE DATABASE relstoragetest OWNER relstoragetest;" 4 | psql -U $RS_PG_UNAME $RELSTORAGETEST_PG_DBNAME -c "CREATE DATABASE relstoragetest2 OWNER relstoragetest;" 5 | psql -U $RS_PG_UNAME $RELSTORAGETEST_PG_DBNAME -c "CREATE DATABASE relstoragetest_hf OWNER relstoragetest;" 6 | psql -U $RS_PG_UNAME $RELSTORAGETEST_PG_DBNAME -c "CREATE DATABASE relstoragetest2_hf OWNER relstoragetest;" 7 | psql -U $RS_PG_UNAME $RELSTORAGETEST_PG_DBNAME -c "SELECT version();" 8 | -------------------------------------------------------------------------------- /.travis/setup-cmysqlconnector.sh: -------------------------------------------------------------------------------- 1 | wget https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-8.0.6.tar.gz 2 | tar -xf mysql-connector-python-8.0.6.tar.gz 3 | cd ./mysql-connector-python-8.0.6 4 | python ./setup.py install --with-mysql-capi=/usr 5 | cd .. 6 | python -c 'import relstorage.adapters.mysql.drivers as D; print(D.preferred_driver_name,D.driver_map)' 7 | `dirname $0`/mysql.sh 8 | -------------------------------------------------------------------------------- /.travis/setup-mysql.sh: -------------------------------------------------------------------------------- 1 | pip install -U -e ".[mysql]" 2 | `dirname $0`/mysql.sh 3 | -------------------------------------------------------------------------------- /.travis/setup-mysqlconnector.sh: -------------------------------------------------------------------------------- 1 | pip install https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python-8.0.6.tar.gz 2 | python -c 'import relstorage.adapters.mysql.drivers as D; print(D.preferred_driver_name,D.driver_map)' 3 | `dirname $0`/mysql.sh 4 | -------------------------------------------------------------------------------- /.travis/setup-postgres.sh: -------------------------------------------------------------------------------- 1 | `dirname $0`/postgres.sh 2 | -------------------------------------------------------------------------------- /.travis/setup-pymysql.sh: -------------------------------------------------------------------------------- 1 | pip install -U pymysql 2 | `dirname $0`/mysql.sh 3 | -------------------------------------------------------------------------------- /.travis/zope_testrunner_gevent.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Script to run zope.testrunner in a gevent monkey-patched environment. 4 | 5 | Using ``python -m gevent.monkey zope-testrunner ...`` is insufficient. 6 | 7 | This is because up through 1.5a2 there is a serious bug in the way the 8 | monkey-patcher patches the spawned process. The net effect is that the gevent 9 | threadpool isn't functional. 10 | 11 | """ 12 | from __future__ import absolute_import 13 | from __future__ import division 14 | from __future__ import print_function 15 | 16 | import gevent.monkey 17 | gevent.monkey.patch_all() 18 | # pylint:disable=wrong-import-position, wrong-import-order 19 | import sys 20 | 21 | from zope.testrunner import run 22 | 23 | sys.argv[:] = [ 24 | 'zope-testrunner', 25 | '--test-path', 'src', 26 | '-v', 27 | '--color', 28 | '--keepbytecode', 29 | ] + sys.argv[1:] 30 | print(sys.argv) 31 | run() 32 | -------------------------------------------------------------------------------- /BUILDOUT.rst: -------------------------------------------------------------------------------- 1 | ======================================== 2 | Building for running tests with buildout 3 | ======================================== 4 | 5 | Run the buildout as usual, but to include database support specify a 6 | db option, with one or more database names sperated by commas. For 7 | example, to build for postgres, mysql and oracle:: 8 | 9 | bin/buildout db=postgresql,mysql,oracle 10 | 11 | Or just postgres: 12 | 13 | bin/buildout db=postgresql 14 | 15 | Before running tests, you'll need to run database setup scripts in the 16 | ``.travis`` subdirectory. 17 | 18 | Then run tests with ``bin/test``. 19 | -------------------------------------------------------------------------------- /COPYRIGHT.txt: -------------------------------------------------------------------------------- 1 | Zope Foundation and Contributors 2 | -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include MANIFEST.in *.txt *.py *.yml setup.cfg 2 | include .coveragerc 3 | include buildout*.cfg 4 | include tox.ini 5 | include appveyor.yml 6 | include .pylintrc 7 | include BUILDOUT.rst 8 | include CHANGES.rst 9 | include .landscape.yml 10 | include pyproject.toml 11 | recursive-include .travis * 12 | recursive-include scripts *.ps1 13 | 14 | recursive-include src *.py *.xml *.txt *.test *.conf *.rst *.c *.h *.sql *.cpp 15 | recursive-include src *.pxd *.pyx 16 | recursive-include include *.hpp *.txt *.rst *.ipp *.h 17 | 18 | recursive-include docs *.py *.rst *.png Makefile 19 | recursive-exclude docs relstorage.*.rst _build 20 | 21 | recursive-include repltest *.cfg *.conf *.in *.patch *.sql 22 | recursive-include scripts *.sh make-manylinux *.py 23 | -------------------------------------------------------------------------------- /buildout-oracle.cfg: -------------------------------------------------------------------------------- 1 | [buildout] 2 | extends = buildout.cfg 3 | eggs += cx_Oracle 4 | -------------------------------------------------------------------------------- /buildout.cfg: -------------------------------------------------------------------------------- 1 | [buildout] 2 | develop = . 3 | base-parts = test py python omelette coverage-test coverage-report 4 | parts = ${buildout:base-parts} 5 | eggs = relstorage [${buildout:db}] 6 | db = 7 | 8 | [test] 9 | recipe = zc.recipe.testrunner 10 | eggs = relstorage [test, ${buildout:db}] 11 | 12 | [py] 13 | recipe = zc.recipe.egg 14 | eggs = ${test:eggs} 15 | 16 | [python] 17 | recipe = zc.recipe.egg 18 | eggs = ${buildout:eggs} 19 | interpreter = py 20 | 21 | [omelette] 22 | recipe = collective.recipe.omelette 23 | eggs = ${buildout:eggs} 24 | ignores = setuptools 25 | 26 | [coverage-test] 27 | recipe = zc.recipe.testrunner 28 | eggs = ${buildout:eggs} 29 | defaults = ['--coverage', 'coverage'] 30 | 31 | [coverage-report] 32 | recipe = zc.recipe.egg 33 | eggs = 34 | ${buildout:eggs} 35 | z3c.coverage 36 | scripts = coveragereport 37 | arguments = ('coverage', 'coverage/report') 38 | 39 | -------------------------------------------------------------------------------- /docs/.mocks/_pylibmc.py: -------------------------------------------------------------------------------- 1 | class MemcachedError(Exception): pass 2 | -------------------------------------------------------------------------------- /docs/.mocks/cx_Oracle.py: -------------------------------------------------------------------------------- 1 | class OperationalError(Exception): pass 2 | class InterfaceError(Exception): pass 3 | class DatabaseError(Exception): pass 4 | -------------------------------------------------------------------------------- /docs/.mocks/pylibmc.py: -------------------------------------------------------------------------------- 1 | from _pylibmc import MemcachedError 2 | Error = MemcachedError 3 | -------------------------------------------------------------------------------- /docs/changelog.rst: -------------------------------------------------------------------------------- 1 | .. include:: ../CHANGES.rst 2 | -------------------------------------------------------------------------------- /docs/command-line-utilities.rst: -------------------------------------------------------------------------------- 1 | ================================= 2 | Included Command Line Utilities 3 | ================================= 4 | 5 | .. toctree:: 6 | 7 | zodbconvert 8 | zodbpack 9 | -------------------------------------------------------------------------------- /docs/configuration-reference.rst: -------------------------------------------------------------------------------- 1 | ========================= 2 | Configuration Reference 3 | ========================= 4 | 5 | .. toctree:: 6 | 7 | relstorage-options 8 | db-specific-options 9 | -------------------------------------------------------------------------------- /docs/configure-database.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | Configuring Your Database 3 | =========================== 4 | 5 | You need to configure a database (schema) and user account for RelStorage. 6 | RelStorage will populate the database with its schema the first time it 7 | connects. Once you have the database configured, you can 8 | :doc:`configure your application ` to use RelStorage. 9 | 10 | .. note:: If you'll be developing on RelStorage itself, see :ref:`how 11 | to set up databases to run tests `. 12 | 13 | .. toctree:: 14 | 15 | postgresql/setup 16 | mysql/setup 17 | oracle/setup 18 | sqlite3/setup 19 | -------------------------------------------------------------------------------- /docs/contents.rst: -------------------------------------------------------------------------------- 1 | .. This file exists only to have a place for old links to point to. 2 | -------------------------------------------------------------------------------- /docs/developing.rst: -------------------------------------------------------------------------------- 1 | ======================= 2 | Developing RelStorage 3 | ======================= 4 | 5 | Hacking on RelStorage should generally be done in a virtual 6 | environment. Buildout may also be used. 7 | 8 | .. toctree:: 9 | :maxdepth: 1 10 | 11 | developing/running 12 | developing/caching 13 | developing/packing 14 | -------------------------------------------------------------------------------- /docs/developing/pack_policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/developing/pack_policy.png -------------------------------------------------------------------------------- /docs/getting-started.rst: -------------------------------------------------------------------------------- 1 | ================================= 2 | Getting Started With RelStorage 3 | ================================= 4 | 5 | .. toctree:: 6 | 7 | install 8 | configure-database 9 | configure-application 10 | things-to-know 11 | zodburi 12 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | ===================== 2 | What is RelStorage? 3 | ===================== 4 | 5 | Contents: 6 | 7 | .. toctree:: 8 | :maxdepth: 2 9 | 10 | getting-started 11 | command-line-utilities 12 | supported-databases 13 | configuration-reference 14 | faq 15 | performance 16 | 17 | .. toctree:: 18 | :maxdepth: 1 19 | 20 | migration 21 | developing 22 | changelog 23 | old_history 24 | internals 25 | 26 | .. include:: ../README.rst 27 | 28 | ==================== 29 | Indices and tables 30 | ==================== 31 | 32 | * :ref:`genindex` 33 | * :ref:`modindex` 34 | * :ref:`search` 35 | -------------------------------------------------------------------------------- /docs/migration.rst: -------------------------------------------------------------------------------- 1 | ========================================== 2 | Migrating to a new version of RelStorage 3 | ========================================== 4 | 5 | Sometimes RelStorage needs a schema modification along with a software 6 | upgrade. Hopefully, this will not often be necessary. 7 | 8 | .. toctree:: 9 | :maxdepth: 1 10 | 11 | migration/migrate-to-3.0 12 | migration/migrate-to-1.5 13 | migration/migrate-to-1.4 14 | migration/migrate-to-1.1.2 15 | migration/migrate-to-1.1.1 16 | migration/migrate-to-1.1 17 | migration/migrate-to-1.0 18 | -------------------------------------------------------------------------------- /docs/migration/migrate-to-1.1.2.rst: -------------------------------------------------------------------------------- 1 | .. _migrate-to-1.1.2: 2 | 3 | 4 | ========================================================== 5 | Migrating from RelStorage version 1.1.1 to version 1.1.2 6 | ========================================================== 7 | 8 | .. highlight:: sql 9 | 10 | Before following these directions, first upgrade to the schema of 11 | RelStorage version 1.1.1 by following the directions in :ref:`migrate-to-1.1.1`. 12 | 13 | Only Oracle needs a schema update for this release:: 14 | 15 | DROP TABLE temp_pack_visit; 16 | CREATE GLOBAL TEMPORARY TABLE temp_pack_visit ( 17 | zoid NUMBER(20) NOT NULL PRIMARY KEY, 18 | keep_tid NUMBER(20) 19 | ); 20 | -------------------------------------------------------------------------------- /docs/migration/migrate-to-3.0.rst: -------------------------------------------------------------------------------- 1 | ===================================== 2 | Migrating to RelStorage version 3.0 3 | ===================================== 4 | 5 | A small migration is necessary for all schemas. It is accomplished 6 | automatically the first time RelStorage 3.0 is used. See `the release 7 | announcement 8 | `_ for 9 | details. 10 | 11 | Oracle 12 | ====== 13 | 14 | The Oracle users will need to have ``CREATE VIEW`` privileges granted 15 | to them before a history-free RelStorage can be opened. 16 | -------------------------------------------------------------------------------- /docs/mysql/index.rst: -------------------------------------------------------------------------------- 1 | ======= 2 | MySQL 3 | ======= 4 | 5 | .. toctree:: 6 | 7 | install 8 | setup 9 | options 10 | -------------------------------------------------------------------------------- /docs/oracle/index.rst: -------------------------------------------------------------------------------- 1 | ======== 2 | Oracle 3 | ======== 4 | 5 | .. toctree:: 6 | 7 | install 8 | setup 9 | options 10 | -------------------------------------------------------------------------------- /docs/oracle/install.rst: -------------------------------------------------------------------------------- 1 | ======================================== 2 | Installing Database Drivers for Oracle 3 | ======================================== 4 | 5 | .. tip:: See :doc:`../install` for the easiest way to get the best 6 | drivers. 7 | 8 | The only tested driver is cx_Oracle 6.0+. 9 | 10 | .. note:: PyPy is not tested with Oracle. 11 | -------------------------------------------------------------------------------- /docs/oracle/setup.rst: -------------------------------------------------------------------------------- 1 | =================== 2 | Setting Up Oracle 3 | =================== 4 | 5 | .. caution:: 6 | 7 | Oracle is not used in production by the RelStorage maintainers and 8 | tends to lag behind in feature development; it also does not fully 9 | support parallel commit. If possible, choose PostgreSQL. Oracle 10 | support may be deprecated and eventually removed. 11 | 12 | .. highlight:: shell 13 | 14 | Initial setup will require ``SYS`` privileges. Using Oracle 10g XE, you 15 | can start a ``SYS`` session with the following shell commands:: 16 | 17 | $ su - oracle 18 | $ sqlplus / as sysdba 19 | 20 | .. highlight:: sql 21 | 22 | You need to create a database user and grant execute privileges on 23 | the DBMS_LOCK package to that user. 24 | Here are some sample SQL statements for creating the database user 25 | and granting the required permissions:: 26 | 27 | CREATE USER zodb IDENTIFIED BY mypassword; 28 | GRANT CONNECT, RESOURCE, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW TO zodb; 29 | GRANT EXECUTE ON DBMS_LOCK TO zodb; 30 | -------------------------------------------------------------------------------- /docs/perf-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/perf-20.png -------------------------------------------------------------------------------- /docs/perf-rs14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/perf-rs14.png -------------------------------------------------------------------------------- /docs/perf-rs20-no-mem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/perf-rs20-no-mem.png -------------------------------------------------------------------------------- /docs/perf-rs20-rs16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/perf-rs20-rs16.png -------------------------------------------------------------------------------- /docs/perf-rs20pypy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/perf-rs20pypy.png -------------------------------------------------------------------------------- /docs/perf-rs21v20-c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/perf-rs21v20-c2.png -------------------------------------------------------------------------------- /docs/perf-rs21v20-c6-n100-s256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/perf-rs21v20-c6-n100-s256.png -------------------------------------------------------------------------------- /docs/postgresql/index.rst: -------------------------------------------------------------------------------- 1 | ============ 2 | PostgreSQL 3 | ============ 4 | 5 | .. toctree:: 6 | 7 | install 8 | setup 9 | options 10 | pgbouncer 11 | 12 | .. tip:: 13 | 14 | Prior to version 3.5.0a4, using ZODB's ``readCurrent(ob)`` method 15 | will result in taking shared locks (``SELECT FOR SHARE``) in 16 | PostgreSQL for the row holding the data for *ob*. 17 | 18 | This operation performs disk I/O, and consequently has an 19 | associated cost. We recommend using this method judiciously. 20 | 21 | For more information, see `this article on PostgreSQL 22 | implementation details 23 | `_. 24 | -------------------------------------------------------------------------------- /docs/sqlite3/faq_sql_add_objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/sqlite3/faq_sql_add_objects.png -------------------------------------------------------------------------------- /docs/sqlite3/faq_sql_read_cold_objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/sqlite3/faq_sql_read_cold_objects.png -------------------------------------------------------------------------------- /docs/sqlite3/faq_sql_update_objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/sqlite3/faq_sql_update_objects.png -------------------------------------------------------------------------------- /docs/sqlite3/faq_sql_write_read_objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/docs/sqlite3/faq_sql_write_read_objects.png -------------------------------------------------------------------------------- /docs/sqlite3/index.rst: -------------------------------------------------------------------------------- 1 | ======== 2 | SQLite 3 | ======== 4 | 5 | .. toctree:: 6 | 7 | install 8 | setup 9 | options 10 | faq 11 | -------------------------------------------------------------------------------- /docs/sqlite3/install.rst: -------------------------------------------------------------------------------- 1 | ======================================== 2 | Installing Database Drivers for SQLite 3 | ======================================== 4 | 5 | Support for SQLite is provided by the standard library :mod:`sqlite3` 6 | module; no extra library is required. The underlying SQLite database 7 | must be at least version 3.8.3. 8 | 9 | gevent 10 | ====== 11 | 12 | SQLite3 can be used with gevent by explicitly choosing a gevent-aware 13 | driver. This uses a progress handler to switch periodically, and also 14 | moves certain blocking operations into gevent's thread pool. 15 | 16 | For additional details and warnings, see the "driver" section in 17 | :doc:`options`. 18 | -------------------------------------------------------------------------------- /docs/sqlite3/setup.rst: -------------------------------------------------------------------------------- 1 | =================== 2 | Setting Up SQLite 3 | =================== 4 | 5 | No explicit setup is needed. The necessary files will be created automatically. 6 | 7 | For information on backing up the database, see 8 | :ref:`the FAQ about backing up SQLite `. 9 | -------------------------------------------------------------------------------- /docs/supported-databases.rst: -------------------------------------------------------------------------------- 1 | ===================== 2 | Supported Databases 3 | ===================== 4 | 5 | .. toctree:: 6 | 7 | postgresql/index 8 | mysql/index 9 | oracle/index 10 | sqlite3/index 11 | -------------------------------------------------------------------------------- /include/boost/config/compiler/compaq_cxx.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Tru64 C++ compiler setup (now HP): 9 | 10 | #define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER) 11 | 12 | #include 13 | 14 | // 15 | // versions check: 16 | // Nothing to do here? 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /include/boost/config/compiler/diab.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Brian Kuhl 2016. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // Check this is a recent EDG based compiler, otherwise we don't support it here: 7 | 8 | 9 | #ifndef __EDG_VERSION__ 10 | # error "Unknown Diab compiler version - please run the configure tests and report the results" 11 | #endif 12 | 13 | #include "boost/config/compiler/common_edg.hpp" 14 | 15 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 16 | #define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS 17 | 18 | #define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE 19 | #define BOOST_LOG_NO_MEMBER_TEMPLATE_FRIENDS 20 | #define BOOST_REGEX_NO_EXTERNAL_TEMPLATES 21 | 22 | #define BOOST_NO_CXX11_HDR_INITIALIZER_LIST 23 | #define BOOST_NO_CXX11_HDR_CODECVT 24 | #define BOOST_NO_CXX11_NUMERIC_LIMITS 25 | 26 | #define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__) 27 | -------------------------------------------------------------------------------- /include/boost/config/compiler/greenhills.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Greenhills C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs) 11 | 12 | #include 13 | 14 | // 15 | // versions check: 16 | // we don't support Greenhills prior to version 0: 17 | #if __ghs < 0 18 | # error "Compiler not supported or configured - please reconfigure" 19 | #endif 20 | // 21 | // last known and checked version is 0: 22 | #if (__ghs > 0) 23 | # if defined(BOOST_ASSERT_CONFIG) 24 | # error "boost: Unknown compiler version - please run the configure tests and report the results" 25 | # endif 26 | #endif 27 | 28 | 29 | -------------------------------------------------------------------------------- /include/boost/config/compiler/pgi.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Noel Belcourt 2007. 2 | // Copyright 2017, NVIDIA CORPORATION. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // PGI C++ compiler setup: 10 | 11 | #define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__ 12 | #define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) 13 | 14 | // PGI is mostly GNU compatible. So start with that. 15 | #include 16 | 17 | // Now adjust for things that are different. 18 | 19 | // __float128 is a typedef, not a distinct type. 20 | #undef BOOST_HAS_FLOAT128 21 | 22 | // __int128 is not supported. 23 | #undef BOOST_HAS_INT128 24 | -------------------------------------------------------------------------------- /include/boost/config/compiler/sgi_mipspro.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // SGI C++ compiler setup: 9 | 10 | #define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION) 11 | 12 | #include 13 | 14 | // 15 | // Threading support: 16 | // Turn this on unconditionally here, it will get turned off again later 17 | // if no threading API is detected. 18 | // 19 | #define BOOST_HAS_THREADS 20 | #define BOOST_NO_TWO_PHASE_NAME_LOOKUP 21 | 22 | #undef BOOST_NO_SWPRINTF 23 | #undef BOOST_DEDUCED_TYPENAME 24 | 25 | // 26 | // version check: 27 | // probably nothing to do here? 28 | 29 | 30 | -------------------------------------------------------------------------------- /include/boost/config/header_deprecated.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 2 | #define BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 3 | 4 | // Copyright 2017 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | // 11 | // BOOST_HEADER_DEPRECATED("") 12 | // 13 | // Expands to the equivalent of 14 | // BOOST_PRAGMA_MESSAGE("This header is deprecated. Use instead.") 15 | // 16 | // Note that this header is C compatible. 17 | 18 | #include 19 | 20 | #if defined(BOOST_ALLOW_DEPRECATED_HEADERS) || defined(BOOST_ALLOW_DEPRECATED) 21 | # define BOOST_HEADER_DEPRECATED(a) 22 | #else 23 | # define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.") 24 | #endif 25 | 26 | #endif // BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /include/boost/config/no_tr1/cmath.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2008. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | // 6 | // The aim of this header is just to include but to do 7 | // so in a way that does not result in recursive inclusion of 8 | // the Boost TR1 components if boost/tr1/tr1/cmath is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_CMATH 14 | # define BOOST_CONFIG_CMATH 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_CMATH_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_CMATH_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_CMATH_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /include/boost/config/platform/aix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2002. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // IBM/Aix specific config options: 9 | 10 | #define BOOST_PLATFORM "IBM Aix" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_NANOSLEEP 15 | #define BOOST_HAS_CLOCK_GETTIME 16 | 17 | // This needs support in "boost/cstdint.hpp" exactly like FreeBSD. 18 | // This platform has header named which includes all 19 | // the things needed. 20 | #define BOOST_HAS_STDINT_H 21 | 22 | // Threading API's: 23 | #define BOOST_HAS_PTHREADS 24 | #define BOOST_HAS_PTHREAD_DELAY_NP 25 | #define BOOST_HAS_SCHED_YIELD 26 | //#define BOOST_HAS_PTHREAD_YIELD 27 | 28 | // boilerplate code: 29 | #include 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /include/boost/config/platform/cloudabi.hpp: -------------------------------------------------------------------------------- 1 | // Copyright Nuxi, https://nuxi.nl/ 2015. 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #define BOOST_PLATFORM "CloudABI" 7 | 8 | #define BOOST_HAS_DIRENT_H 9 | #define BOOST_HAS_STDINT_H 10 | #define BOOST_HAS_UNISTD_H 11 | 12 | #define BOOST_HAS_CLOCK_GETTIME 13 | #define BOOST_HAS_EXPM1 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_LOG1P 16 | #define BOOST_HAS_NANOSLEEP 17 | #define BOOST_HAS_PTHREADS 18 | #define BOOST_HAS_SCHED_YIELD 19 | -------------------------------------------------------------------------------- /include/boost/config/platform/haiku.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jessica Hamilton 2014. 2 | // Use, modification and distribution are subject to the 3 | // Boost Software License, Version 1.0. (See accompanying file 4 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | // See http://www.boost.org for most recent version. 7 | 8 | // Haiku specific config options: 9 | 10 | #define BOOST_PLATFORM "Haiku" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_STDINT_H 14 | 15 | #ifndef BOOST_DISABLE_THREADS 16 | # define BOOST_HAS_THREADS 17 | #endif 18 | 19 | #define BOOST_NO_CXX11_HDR_TYPE_TRAITS 20 | #define BOOST_NO_CXX11_ATOMIC_SMART_PTR 21 | #define BOOST_NO_CXX11_STATIC_ASSERT 22 | #define BOOST_NO_CXX11_VARIADIC_MACROS 23 | 24 | // 25 | // thread API's not auto detected: 26 | // 27 | #define BOOST_HAS_SCHED_YIELD 28 | #define BOOST_HAS_GETTIMEOFDAY 29 | 30 | // boilerplate code: 31 | #include 32 | -------------------------------------------------------------------------------- /include/boost/config/platform/solaris.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2001 - 2003. 2 | // (C) Copyright Jens Maurer 2003. 3 | // Use, modification and distribution are subject to the 4 | // Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // sun specific config options: 10 | 11 | #define BOOST_PLATFORM "Sun Solaris" 12 | 13 | #define BOOST_HAS_GETTIMEOFDAY 14 | 15 | // boilerplate code: 16 | #define BOOST_HAS_UNISTD_H 17 | #include 18 | 19 | // 20 | // pthreads don't actually work with gcc unless _PTHREADS is defined: 21 | // 22 | #if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS) 23 | # undef BOOST_HAS_PTHREADS 24 | #endif 25 | 26 | #define BOOST_HAS_STDINT_H 27 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 28 | #define BOOST_HAS_LOG1P 29 | #define BOOST_HAS_EXPM1 30 | 31 | 32 | -------------------------------------------------------------------------------- /include/boost/container_hash/detail/limits.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2005-2009 Daniel James. 2 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | #ifndef BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER 6 | #define BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER 7 | 8 | #include 9 | 10 | namespace boost 11 | { 12 | namespace hash_detail 13 | { 14 | template 15 | struct limits : std::numeric_limits {}; 16 | } 17 | } 18 | 19 | #endif // #ifndef BOOST_FUNCTIONAL_HASH_DETAIL_LIMITS_HEADER 20 | -------------------------------------------------------------------------------- /include/boost/container_hash/detail/requires_cxx11.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_HASH_DETAIL_REQUIRES_CXX11_HPP_INCLUDED 2 | #define BOOST_HASH_DETAIL_REQUIRES_CXX11_HPP_INCLUDED 3 | 4 | // Copyright 2023 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | #include 10 | 11 | #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || \ 12 | defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ 13 | defined(BOOST_NO_CXX11_DECLTYPE) || \ 14 | defined(BOOST_NO_CXX11_CONSTEXPR) || \ 15 | defined(BOOST_NO_CXX11_NOEXCEPT) || \ 16 | defined(BOOST_NO_CXX11_HDR_TUPLE) 17 | 18 | BOOST_PRAGMA_MESSAGE("C++03 support was deprecated in Boost.ContainerHash 1.82 and will be removed in Boost.ContainerHash 1.84. Please open an issue in https://github.com/boostorg/container_hash if you want it retained.") 19 | 20 | #endif 21 | 22 | #endif // #ifndef BOOST_HASH_DETAIL_REQUIRES_CXX11_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /include/boost/container_hash/extensions.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2005-2009 Daniel James. 2 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 3 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 4 | 5 | #ifndef BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP 6 | #define BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP 7 | 8 | #include 9 | 10 | #endif // #ifndef BOOST_FUNCTIONAL_HASH_EXTENSIONS_HPP 11 | -------------------------------------------------------------------------------- /include/boost/container_hash/is_described_class.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2022 Peter Dimov. 2 | // Distributed under the Boost Software License, Version 1.0. 3 | // https://www.boost.org/LICENSE_1_0.txt 4 | 5 | #ifndef BOOST_HASH_IS_DESCRIBED_CLASS_HPP_INCLUDED 6 | #define BOOST_HASH_IS_DESCRIBED_CLASS_HPP_INCLUDED 7 | 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | namespace boost 14 | { 15 | namespace container_hash 16 | { 17 | 18 | #if defined(BOOST_DESCRIBE_CXX11) 19 | 20 | template struct is_described_class: boost::integral_constant::value && 22 | describe::has_describe_members::value && 23 | !boost::is_union::value> 24 | { 25 | }; 26 | 27 | #else 28 | 29 | template struct is_described_class: boost::false_type 30 | { 31 | }; 32 | 33 | #endif 34 | 35 | } // namespace container_hash 36 | } // namespace boost 37 | 38 | #endif // #ifndef BOOST_HASH_IS_DESCRIBED_CLASS_HPP_INCLUDED 39 | -------------------------------------------------------------------------------- /include/boost/describe/detail/cx_streq.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_DESCRIBE_DETAIL_CX_STREQ_HPP_INCLUDED 2 | #define BOOST_DESCRIBE_DETAIL_CX_STREQ_HPP_INCLUDED 3 | 4 | // Copyright 2021 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | 10 | #if defined(BOOST_DESCRIBE_CXX11) 11 | 12 | namespace boost 13 | { 14 | namespace describe 15 | { 16 | namespace detail 17 | { 18 | 19 | constexpr bool cx_streq( char const * s1, char const * s2 ) 20 | { 21 | return s1[0] == s2[0] && ( s1[0] == 0 || cx_streq( s1 + 1, s2 + 1 ) ); 22 | } 23 | 24 | } // namespace detail 25 | } // namespace describe 26 | } // namespace boost 27 | 28 | #endif // defined(BOOST_DESCRIBE_CXX11) 29 | 30 | #endif // #ifndef BOOST_DESCRIBE_DETAIL_CX_STREQ_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /include/boost/describe/detail/list.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_DESCRIBE_DETAIL_LIST_HPP_INCLUDED 2 | #define BOOST_DESCRIBE_DETAIL_LIST_HPP_INCLUDED 3 | 4 | // Copyright 2020 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | 10 | #if defined(BOOST_DESCRIBE_CXX11) 11 | 12 | namespace boost 13 | { 14 | namespace describe 15 | { 16 | namespace detail 17 | { 18 | 19 | template struct list {}; 20 | 21 | } // namespace detail 22 | } // namespace describe 23 | } // namespace boost 24 | 25 | #endif // defined(BOOST_DESCRIBE_CXX11) 26 | 27 | #endif // #ifndef BOOST_DESCRIBE_DETAIL_LIST_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /include/boost/describe/detail/void_t.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_DESCRIBE_DETAIL_VOID_T_HPP_INCLUDED 2 | #define BOOST_DESCRIBE_DETAIL_VOID_T_HPP_INCLUDED 3 | 4 | // Copyright 2021 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | 10 | #if defined(BOOST_DESCRIBE_CXX11) 11 | 12 | namespace boost 13 | { 14 | namespace describe 15 | { 16 | namespace detail 17 | { 18 | 19 | template struct make_void 20 | { 21 | using type = void; 22 | }; 23 | 24 | template using void_t = typename make_void::type; 25 | 26 | } // namespace detail 27 | } // namespace describe 28 | } // namespace boost 29 | 30 | #endif // defined(BOOST_DESCRIBE_CXX11) 31 | 32 | #endif // #ifndef BOOST_DESCRIBE_DETAIL_VOID_T_HPP_INCLUDED 33 | -------------------------------------------------------------------------------- /include/boost/describe/modifier_description.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_DESCRIBE_MODIFIER_DESCRIPTION_HPP_INCLUDED 2 | #define BOOST_DESCRIBE_MODIFIER_DESCRIPTION_HPP_INCLUDED 3 | 4 | // Copyright 2020, 2022 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | #include 10 | 11 | namespace boost 12 | { 13 | namespace describe 14 | { 15 | 16 | BOOST_DESCRIBE_ENUM(modifiers, 17 | mod_public, 18 | mod_protected, 19 | mod_private, 20 | mod_virtual, 21 | mod_static, 22 | mod_function, 23 | mod_any_member, 24 | mod_inherited, 25 | mod_hidden) 26 | 27 | } // namespace describe 28 | } // namespace boost 29 | 30 | #endif // #ifndef BOOST_DESCRIBE_MODIFIER_DESCRIPTION_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /include/boost/describe/modifiers.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_DESCRIBE_MODIFIERS_HPP_INCLUDED 2 | #define BOOST_DESCRIBE_MODIFIERS_HPP_INCLUDED 3 | 4 | // Copyright 2020 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | 10 | namespace boost 11 | { 12 | namespace describe 13 | { 14 | 15 | enum modifiers 16 | { 17 | mod_public = 1, 18 | mod_protected = 2, 19 | mod_private = 4, 20 | mod_virtual = 8, 21 | mod_static = 16, 22 | mod_function = 32, 23 | mod_any_member = 64, 24 | mod_inherited = 128, 25 | mod_hidden = 256 26 | }; 27 | 28 | BOOST_DESCRIBE_CONSTEXPR_OR_CONST modifiers mod_any_access = static_cast( mod_public | mod_protected | mod_private ); 29 | 30 | } // namespace describe 31 | } // namespace boost 32 | 33 | #endif // #ifndef BOOST_DESCRIBE_MODIFIERS_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /include/boost/detail/workaround.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2002. 2 | // Distributed under the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | #ifndef BOOST_WORKAROUND_DWA2002126_HPP 6 | #define BOOST_WORKAROUND_DWA2002126_HPP 7 | 8 | #include 9 | 10 | #endif // BOOST_WORKAROUND_DWA2002126_HPP 11 | -------------------------------------------------------------------------------- /include/boost/functional/hash.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright 2005-2009 Daniel James. 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | -------------------------------------------------------------------------------- /include/boost/functional/hash_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright 2005-2009 Daniel James. 3 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 4 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #include 7 | -------------------------------------------------------------------------------- /include/boost/intrusive/detail/config_end.hpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2006-2013 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/intrusive for documentation. 10 | // 11 | ///////////////////////////////////////////////////////////////////////////// 12 | 13 | #if defined BOOST_MSVC 14 | #pragma warning (pop) 15 | #endif 16 | -------------------------------------------------------------------------------- /include/boost/intrusive/detail/minimal_less_equal_header.hpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2014-2015 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/intrusive for documentation. 10 | // 11 | ///////////////////////////////////////////////////////////////////////////// 12 | #ifndef BOOST_INTRUSIVE_DETAIL_MINIMAL_LESS_EQUAL_HEADER_HPP 13 | #define BOOST_INTRUSIVE_DETAIL_MINIMAL_LESS_EQUAL_HEADER_HPP 14 | # 15 | #ifndef BOOST_CONFIG_HPP 16 | # include 17 | #endif 18 | # 19 | #if defined(BOOST_HAS_PRAGMA_ONCE) 20 | # pragma once 21 | #endif 22 | # 23 | #//Try to avoid including , as it's quite big in C++11 24 | #if defined(BOOST_GNU_STDLIB) 25 | # include 26 | #else 27 | # include //Fallback 28 | #endif 29 | # 30 | #endif //BOOST_INTRUSIVE_DETAIL_MINIMAL_LESS_EQUAL_HEADER_HPP 31 | -------------------------------------------------------------------------------- /include/boost/intrusive/detail/minimal_pair_header.hpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2014-2015 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/intrusive for documentation. 10 | // 11 | ///////////////////////////////////////////////////////////////////////////// 12 | #ifndef BOOST_INTRUSIVE_DETAIL_MINIMAL_PAIR_HEADER_HPP 13 | #define BOOST_INTRUSIVE_DETAIL_MINIMAL_PAIR_HEADER_HPP 14 | # 15 | #if defined(BOOST_HAS_PRAGMA_ONCE) 16 | # pragma once 17 | #endif 18 | # 19 | #ifndef BOOST_CONFIG_HPP 20 | # include 21 | #endif 22 | # 23 | #//Try to avoid including , as it's quite big in C++11 24 | #if defined(BOOST_GNU_STDLIB) 25 | # include 26 | #else 27 | # include //Fallback 28 | #endif 29 | # 30 | #endif //BOOST_INTRUSIVE_DETAIL_MINIMAL_PAIR_HEADER_HPP 31 | -------------------------------------------------------------------------------- /include/boost/intrusive/detail/node_holder.hpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2014-2014 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/intrusive for documentation. 10 | // 11 | ///////////////////////////////////////////////////////////////////////////// 12 | 13 | #ifndef BOOST_INTRUSIVE_DETAIL_NODE_HOLDER_HPP 14 | #define BOOST_INTRUSIVE_DETAIL_NODE_HOLDER_HPP 15 | 16 | #ifndef BOOST_CONFIG_HPP 17 | # include 18 | #endif 19 | 20 | #if defined(BOOST_HAS_PRAGMA_ONCE) 21 | # pragma once 22 | #endif 23 | 24 | namespace boost { 25 | namespace intrusive { 26 | 27 | template 28 | struct node_holder 29 | : public Node 30 | {}; 31 | 32 | } //namespace intrusive{ 33 | } //namespace boost{ 34 | 35 | #endif //BOOST_INTRUSIVE_DETAIL_NODE_HOLDER_HPP 36 | -------------------------------------------------------------------------------- /include/boost/intrusive/detail/reverse_iterator.hpp: -------------------------------------------------------------------------------- 1 | ///////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2014-2014 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/intrusive for documentation. 10 | // 11 | ///////////////////////////////////////////////////////////////////////////// 12 | 13 | #ifndef BOOST_INTRUSIVE_DETAIL_REVERSE_ITERATOR_HPP 14 | #define BOOST_INTRUSIVE_DETAIL_REVERSE_ITERATOR_HPP 15 | 16 | #include 17 | 18 | namespace boost { 19 | namespace intrusive { 20 | 21 | using boost::movelib::reverse_iterator; 22 | using boost::movelib::make_reverse_iterator; 23 | 24 | } //namespace intrusive { 25 | } //namespace boost { 26 | 27 | 28 | #endif //BOOST_INTRUSIVE_DETAIL_REVERSE_ITERATOR_HPP 29 | -------------------------------------------------------------------------------- /include/boost/move/detail/config_end.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2012-2012. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // See http://www.boost.org/libs/move for documentation. 8 | // 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #if defined BOOST_MSVC 11 | # pragma warning (pop) 12 | #endif 13 | -------------------------------------------------------------------------------- /include/boost/move/detail/force_ptr.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost 4 | // Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | // 7 | // See http://www.boost.org/libs/container for documentation. 8 | // 9 | ////////////////////////////////////////////////////////////////////////////// 10 | #ifndef BOOST_MOVE_DETAIL_FORCE_CAST_HPP 11 | #define BOOST_MOVE_DETAIL_FORCE_CAST_HPP 12 | 13 | #ifndef BOOST_CONFIG_HPP 14 | # include 15 | #endif 16 | 17 | #if defined(BOOST_HAS_PRAGMA_ONCE) 18 | # pragma once 19 | #endif 20 | 21 | #include 22 | 23 | namespace boost { 24 | namespace move_detail { 25 | 26 | 27 | template 28 | BOOST_MOVE_FORCEINLINE T force_ptr(const volatile void *p) 29 | { 30 | return static_cast(const_cast(p)); 31 | } 32 | 33 | } //namespace move_detail { 34 | } //namespace boost { 35 | 36 | #endif //#ifndef BOOST_MOVE_DETAIL_FORCE_CAST_HPP 37 | -------------------------------------------------------------------------------- /include/boost/move/detail/placement_new.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MOVE_DETAIL_PLACEMENT_NEW_HPP 2 | #define BOOST_MOVE_DETAIL_PLACEMENT_NEW_HPP 3 | /////////////////////////////////////////////////////////////////////////////// 4 | // 5 | // (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost 6 | // Software License, Version 1.0. (See accompanying file 7 | // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | // 9 | // See http://www.boost.org/libs/container for documentation. 10 | // 11 | /////////////////////////////////////////////////////////////////////////////// 12 | 13 | #ifndef BOOST_CONFIG_HPP 14 | # include 15 | #endif 16 | 17 | #if defined(BOOST_HAS_PRAGMA_ONCE) 18 | # pragma once 19 | #endif 20 | 21 | struct boost_move_new_t{}; 22 | 23 | //avoid including 24 | inline void *operator new(std::size_t, void *p, boost_move_new_t) 25 | { return p; } 26 | 27 | inline void operator delete(void *, void *, boost_move_new_t) 28 | {} 29 | 30 | #endif //BOOST_MOVE_DETAIL_PLACEMENT_NEW_HPP 31 | -------------------------------------------------------------------------------- /include/boost/move/detail/std_ns_end.hpp: -------------------------------------------------------------------------------- 1 | #////////////////////////////////////////////////////////////////////////////// 2 | #// 3 | #// (C) Copyright Ion Gaztanaga 2015-2015. 4 | #// Distributed under the Boost Software License, Version 1.0. 5 | #// (See accompanying file LICENSE_1_0.txt or copy at 6 | #// http://www.boost.org/LICENSE_1_0.txt) 7 | #// 8 | #// See http://www.boost.org/libs/move for documentation. 9 | #// 10 | #////////////////////////////////////////////////////////////////////////////// 11 | #ifdef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH 12 | #pragma GCC diagnostic pop 13 | #undef BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH 14 | #elif defined(_MSC_VER) && (_MSC_VER >= 1915) 15 | #pragma warning (pop) 16 | #endif //BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH 17 | -------------------------------------------------------------------------------- /include/boost/mp11/detail/mp_is_list.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MP11_DETAIL_MP_IS_LIST_HPP_INCLUDED 2 | #define BOOST_MP11_DETAIL_MP_IS_LIST_HPP_INCLUDED 3 | 4 | // Copyright 2015-2019 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | 11 | #include 12 | 13 | namespace boost 14 | { 15 | namespace mp11 16 | { 17 | 18 | // mp_is_list 19 | namespace detail 20 | { 21 | 22 | template struct mp_is_list_impl 23 | { 24 | using type = mp_false; 25 | }; 26 | 27 | template class L, class... T> struct mp_is_list_impl> 28 | { 29 | using type = mp_true; 30 | }; 31 | 32 | } // namespace detail 33 | 34 | template using mp_is_list = typename detail::mp_is_list_impl::type; 35 | 36 | } // namespace mp11 37 | } // namespace boost 38 | 39 | #endif // #ifndef BOOST_MP11_DETAIL_MP_IS_LIST_HPP_INCLUDED 40 | -------------------------------------------------------------------------------- /include/boost/mp11/detail/mp_is_value_list.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MP11_DETAIL_MP_IS_VALUE_LIST_HPP_INCLUDED 2 | #define BOOST_MP11_DETAIL_MP_IS_VALUE_LIST_HPP_INCLUDED 3 | 4 | // Copyright 2023 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | #include 10 | 11 | namespace boost 12 | { 13 | namespace mp11 14 | { 15 | 16 | // mp_is_value_list 17 | namespace detail 18 | { 19 | 20 | template struct mp_is_value_list_impl 21 | { 22 | using type = mp_false; 23 | }; 24 | 25 | #if defined(BOOST_MP11_HAS_TEMPLATE_AUTO) 26 | 27 | template class L, auto... A> struct mp_is_value_list_impl> 28 | { 29 | using type = mp_true; 30 | }; 31 | 32 | #endif 33 | 34 | } // namespace detail 35 | 36 | template using mp_is_value_list = typename detail::mp_is_value_list_impl::type; 37 | 38 | } // namespace mp11 39 | } // namespace boost 40 | 41 | #endif // #ifndef BOOST_MP11_DETAIL_MP_IS_VALUE_LIST_HPP_INCLUDED 42 | -------------------------------------------------------------------------------- /include/boost/mp11/detail/mp_list.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MP11_DETAIL_MP_LIST_HPP_INCLUDED 2 | #define BOOST_MP11_DETAIL_MP_LIST_HPP_INCLUDED 3 | 4 | // Copyright 2015, 2016 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | 11 | namespace boost 12 | { 13 | namespace mp11 14 | { 15 | 16 | // mp_list 17 | template struct mp_list 18 | { 19 | }; 20 | 21 | } // namespace mp11 22 | } // namespace boost 23 | 24 | #endif // #ifndef BOOST_MP11_DETAIL_MP_LIST_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /include/boost/mp11/detail/mp_list_v.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MP11_DETAIL_MP_LIST_V_HPP_INCLUDED 2 | #define BOOST_MP11_DETAIL_MP_LIST_V_HPP_INCLUDED 3 | 4 | // Copyright 2023 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // http://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | 10 | namespace boost 11 | { 12 | namespace mp11 13 | { 14 | 15 | #if defined(BOOST_MP11_HAS_TEMPLATE_AUTO) 16 | 17 | // mp_list_v 18 | template struct mp_list_v 19 | { 20 | }; 21 | 22 | #endif 23 | 24 | } // namespace mp11 25 | } // namespace boost 26 | 27 | #endif // #ifndef BOOST_MP11_DETAIL_MP_LIST_V_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /include/boost/mp11/detail/mp_value.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MP11_DETAIL_MP_VALUE_HPP_INCLUDED 2 | #define BOOST_MP11_DETAIL_MP_VALUE_HPP_INCLUDED 3 | 4 | // Copyright 2023 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | #include 10 | 11 | #if defined(BOOST_MP11_HAS_TEMPLATE_AUTO) 12 | 13 | namespace boost 14 | { 15 | namespace mp11 16 | { 17 | 18 | template using mp_value = std::integral_constant; 19 | 20 | } // namespace mp11 21 | } // namespace boost 22 | 23 | #endif // #if defined(BOOST_MP11_HAS_TEMPLATE_AUTO) 24 | 25 | #endif // #ifndef BOOST_MP11_DETAIL_MP_VALUE_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /include/boost/mp11/detail/mp_void.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MP11_DETAIL_MP_VOID_HPP_INCLUDED 2 | #define BOOST_MP11_DETAIL_MP_VOID_HPP_INCLUDED 3 | 4 | // Copyright 2015-2017 Peter Dimov. 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | 11 | namespace boost 12 | { 13 | namespace mp11 14 | { 15 | 16 | // mp_void 17 | namespace detail 18 | { 19 | 20 | template struct mp_void_impl 21 | { 22 | using type = void; 23 | }; 24 | 25 | } // namespace detail 26 | 27 | template using mp_void = typename detail::mp_void_impl::type; 28 | 29 | } // namespace mp11 30 | } // namespace boost 31 | 32 | #endif // #ifndef BOOST_MP11_DETAIL_MP_VOID_HPP_INCLUDED 33 | -------------------------------------------------------------------------------- /include/boost/mp11/version.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_MP11_VERSION_HPP_INCLUDED 2 | #define BOOST_MP11_VERSION_HPP_INCLUDED 3 | 4 | // Copyright 2019 Peter Dimov 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | 11 | // Same format as BOOST_VERSION: 12 | // major * 100000 + minor * 100 + patch 13 | 14 | #define BOOST_MP11_VERSION 108300 15 | 16 | #endif // #ifndef BOOST_MP11_VERSION_HPP_INCLUDED 17 | -------------------------------------------------------------------------------- /include/boost/predef.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2008-2015 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #if !defined(BOOST_PREDEF_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 9 | #ifndef BOOST_PREDEF_H 10 | #define BOOST_PREDEF_H 11 | #endif 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #include 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/boost/predef/detail/_cassert.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2011-2012 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_DETAIL__CASSERT_H 9 | #define BOOST_PREDEF_DETAIL__CASSERT_H 10 | 11 | #if defined(__cplusplus) 12 | #include 13 | #else 14 | #include 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/boost/predef/detail/_exception.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2011-2012 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_DETAIL__EXCEPTION_H 9 | #define BOOST_PREDEF_DETAIL__EXCEPTION_H 10 | 11 | #if defined(__cplusplus) 12 | #include 13 | #endif 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /include/boost/predef/detail/comp_detected.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2014 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_DETAIL_COMP_DETECTED 9 | #define BOOST_PREDEF_DETAIL_COMP_DETECTED 1 10 | #endif 11 | -------------------------------------------------------------------------------- /include/boost/predef/detail/os_detected.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2013 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_DETAIL_OS_DETECTED 9 | #define BOOST_PREDEF_DETAIL_OS_DETECTED 1 10 | #endif 11 | -------------------------------------------------------------------------------- /include/boost/predef/detail/platform_detected.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2014 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_DETAIL_PLAT_DETECTED 9 | #define BOOST_PREDEF_DETAIL_PLAT_DETECTED 1 10 | #endif 11 | -------------------------------------------------------------------------------- /include/boost/predef/detail/test.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2011-2012 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_DETAIL_TEST_H 9 | #define BOOST_PREDEF_DETAIL_TEST_H 10 | 11 | #if !defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 12 | 13 | #define BOOST_PREDEF_DECLARE_TEST(x,s) 14 | 15 | #endif 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/boost/predef/hardware.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Charly Chevalier 2015 3 | Copyright Joel Falcou 2015 4 | Distributed under the Boost Software License, Version 1.0. 5 | (See accompanying file LICENSE_1_0.txt or copy at 6 | http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #if !defined(BOOST_PREDEF_HARDWARE_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 10 | #ifndef BOOST_PREDEF_HARDWARE_H 11 | #define BOOST_PREDEF_HARDWARE_H 12 | #endif 13 | 14 | #include 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /include/boost/predef/hardware/simd/arm/versions.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Charly Chevalier 2015 3 | Copyright Joel Falcou 2015 4 | Distributed under the Boost Software License, Version 1.0. 5 | (See accompanying file LICENSE_1_0.txt or copy at 6 | http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H 10 | #define BOOST_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H 11 | 12 | #include 13 | 14 | /* tag::reference[] 15 | = `BOOST_HW_SIMD_ARM_*_VERSION` 16 | 17 | Those defines represent ARM SIMD extensions versions. 18 | 19 | NOTE: You *MUST* compare them with the predef `BOOST_HW_SIMD_ARM`. 20 | */ // end::reference[] 21 | 22 | // --------------------------------- 23 | 24 | /* tag::reference[] 25 | = `BOOST_HW_SIMD_ARM_NEON_VERSION` 26 | 27 | The https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29[NEON] 28 | ARM extension version number. 29 | 30 | Version number is: *1.0.0*. 31 | */ // end::reference[] 32 | #define BOOST_HW_SIMD_ARM_NEON_VERSION BOOST_VERSION_NUMBER(1, 0, 0) 33 | 34 | /* tag::reference[] 35 | 36 | */ // end::reference[] 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /include/boost/predef/language.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2011-2015 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #if !defined(BOOST_PREDEF_LANGUAGE_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 9 | #ifndef BOOST_PREDEF_LANGUAGE_H 10 | #define BOOST_PREDEF_LANGUAGE_H 11 | #endif 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /include/boost/predef/library.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2008-2015 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #if !defined(BOOST_PREDEF_LIBRARY_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 9 | #ifndef BOOST_PREDEF_LIBRARY_H 10 | #define BOOST_PREDEF_LIBRARY_H 11 | #endif 12 | 13 | #include 14 | #include 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /include/boost/predef/library/c.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2008-2015 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #if !defined(BOOST_PREDEF_LIBRARY_C_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 9 | #ifndef BOOST_PREDEF_LIBRARY_C_H 10 | #define BOOST_PREDEF_LIBRARY_C_H 11 | #endif 12 | 13 | #include 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | #endif 22 | -------------------------------------------------------------------------------- /include/boost/predef/library/c/_prefix.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2008-2013 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_LIBRARY_C__PREFIX_H 9 | #define BOOST_PREDEF_LIBRARY_C__PREFIX_H 10 | 11 | #include 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /include/boost/predef/library/std.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2008-2015 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #if !defined(BOOST_PREDEF_LIBRARY_STD_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 8 | #ifndef BOOST_PREDEF_LIBRARY_STD_H 9 | #define BOOST_PREDEF_LIBRARY_STD_H 10 | #endif 11 | 12 | #include 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/boost/predef/library/std/_prefix.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2008-2013 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | #ifndef BOOST_PREDEF_LIBRARY_STD__PREFIX_H 8 | #define BOOST_PREDEF_LIBRARY_STD__PREFIX_H 9 | 10 | /* 11 | We need to include an STD header to gives us the context 12 | of which library we are using. The "smallest" code-wise header 13 | seems to be . Boost uses but as far 14 | as I can tell (RR) it's not a stand-alone header in most 15 | implementations. Using also has the benefit of 16 | being available in EC++, so we get a chance to make this work 17 | for embedded users. And since it's not a header impacted by TR1 18 | there's no magic needed for inclusion in the face of the 19 | Boost.TR1 library. 20 | */ 21 | #include 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/boost/predef/os.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2008-2015 3 | Copyright Franz Detro 2014 4 | Distributed under the Boost Software License, Version 1.0. 5 | (See accompanying file LICENSE_1_0.txt or copy at 6 | http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #if !defined(BOOST_PREDEF_OS_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 10 | #ifndef BOOST_PREDEF_OS_H 11 | #define BOOST_PREDEF_OS_H 12 | #endif 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include 29 | #include 30 | #include 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /include/boost/predef/other.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Ferdinand Rivera Morell 2013-2020 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #if !defined(BOOST_PREDEF_OTHER_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS) 9 | #ifndef BOOST_PREDEF_OTHER_H 10 | #define BOOST_PREDEF_OTHER_H 11 | #endif 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/boost/predef/version.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright Rene Rivera 2015-2016 3 | Distributed under the Boost Software License, Version 1.0. 4 | (See accompanying file LICENSE_1_0.txt or copy at 5 | http://www.boost.org/LICENSE_1_0.txt) 6 | */ 7 | 8 | #ifndef BOOST_PREDEF_VERSION_H 9 | #define BOOST_PREDEF_VERSION_H 10 | 11 | #include 12 | 13 | #define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,14,0) 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /include/boost/preprocessor/arithmetic.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_ARITHMETIC_HPP 15 | # define BOOST_PREPROCESSOR_ARITHMETIC_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # include 22 | # include 23 | # include 24 | # 25 | # endif 26 | -------------------------------------------------------------------------------- /include/boost/preprocessor/arithmetic/detail/is_1_number.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2020. * 4 | # * Distributed under the Boost Software License, Version 1.0. (See * 5 | # * accompanying file LICENSE_1_0.txt or copy at * 6 | # * http://www.boost.org/LICENSE_1_0.txt) * 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_HPP 13 | # define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_IS_1_NUMBER_HPP 14 | # 15 | # /* BOOST_PP_DETAIL_IS_1_NUMBER */ 16 | # 17 | # include 18 | # 19 | # define BOOST_PP_DETAIL_IS_1_NUMBER(x) BOOST_PP_EQUAL(x,1) 20 | # 21 | # endif 22 | -------------------------------------------------------------------------------- /include/boost/preprocessor/arithmetic/detail/maximum_number.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2020. * 4 | # * Distributed under the Boost Software License, Version 1.0. (See * 5 | # * accompanying file LICENSE_1_0.txt or copy at * 6 | # * http://www.boost.org/LICENSE_1_0.txt) * 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_MAXIMUM_NUMBER_HPP 13 | # define BOOST_PREPROCESSOR_ARITHMETIC_DETAIL_MAXIMUM_NUMBER_HPP 14 | # 15 | # include 16 | # 17 | # define BOOST_PP_DETAIL_MAXIMUM_NUMBER BOOST_PP_LIMIT_MAG 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /include/boost/preprocessor/assert_msg.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ASSERT_MSG_HPP 13 | # define BOOST_PREPROCESSOR_ASSERT_MSG_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/comma.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_COMMA_HPP 13 | # define BOOST_PREPROCESSOR_COMMA_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/comma_if.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_COMMA_IF_HPP 13 | # define BOOST_PREPROCESSOR_COMMA_IF_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/comparison.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_COMPARISON_HPP 15 | # define BOOST_PREPROCESSOR_COMPARISON_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # include 22 | # include 23 | # 24 | # endif 25 | -------------------------------------------------------------------------------- /include/boost/preprocessor/control.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_CONTROL_HPP 13 | # define BOOST_PREPROCESSOR_CONTROL_HPP 14 | # 15 | # include 16 | # include 17 | # include 18 | # include 19 | # include 20 | # include 21 | # 22 | # endif 23 | -------------------------------------------------------------------------------- /include/boost/preprocessor/control/expr_if.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP 15 | # define BOOST_PREPROCESSOR_CONTROL_EXPR_IF_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_EXPR_IF */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr) 25 | # else 26 | # define BOOST_PP_EXPR_IF(cond, expr) BOOST_PP_EXPR_IF_I(cond, expr) 27 | # define BOOST_PP_EXPR_IF_I(cond, expr) BOOST_PP_EXPR_IIF(BOOST_PP_BOOL(cond), expr) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /include/boost/preprocessor/control/if.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_CONTROL_IF_HPP 15 | # define BOOST_PREPROCESSOR_CONTROL_IF_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_IF */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_IF(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) 25 | # else 26 | # define BOOST_PP_IF(cond, t, f) BOOST_PP_IF_I(cond, t, f) 27 | # define BOOST_PP_IF_I(cond, t, f) BOOST_PP_IIF(BOOST_PP_BOOL(cond), t, f) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /include/boost/preprocessor/debug.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_DEBUG_HPP 13 | # define BOOST_PREPROCESSOR_DEBUG_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # endif 19 | -------------------------------------------------------------------------------- /include/boost/preprocessor/dec.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_DEC_HPP 13 | # define BOOST_PREPROCESSOR_DEC_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/detail/null.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_DETAIL_NULL_HPP 13 | # define BOOST_PREPROCESSOR_DETAIL_NULL_HPP 14 | # 15 | # /* empty file */ 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_EMPTY_HPP 13 | # define BOOST_PREPROCESSOR_EMPTY_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/enum.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/enum_params.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_PARAMS_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/enum_params_with_a_default.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_A_DEFAULT_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/enum_params_with_defaults.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_PARAMS_WITH_DEFAULTS_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/enum_shifted.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_SHIFTED_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_SHIFTED_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/enum_shifted_params.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP 13 | # define BOOST_PREPROCESSOR_ENUM_SHIFTED_PARAMS_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/expand.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_EXPAND_HPP 13 | # define BOOST_PREPROCESSOR_EXPAND_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/expr_if.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_EXPR_IF_HPP 13 | # define BOOST_PREPROCESSOR_EXPR_IF_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/facilities/empty.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_EMPTY_HPP 16 | # 17 | # include 18 | # 19 | # /* BOOST_PP_EMPTY */ 20 | # 21 | # define BOOST_PP_EMPTY() 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /include/boost/preprocessor/facilities/expand.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP 15 | # define BOOST_PREPROCESSOR_FACILITIES_EXPAND_HPP 16 | # 17 | # include 18 | # 19 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MWCC() && ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_DMC() 20 | # define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_I(x) 21 | # else 22 | # define BOOST_PP_EXPAND(x) BOOST_PP_EXPAND_OO((x)) 23 | # define BOOST_PP_EXPAND_OO(par) BOOST_PP_EXPAND_I ## par 24 | # endif 25 | # 26 | # define BOOST_PP_EXPAND_I(x) x 27 | # 28 | # endif 29 | -------------------------------------------------------------------------------- /include/boost/preprocessor/facilities/identity.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # /* Revised by Edward Diener (2015) */ 12 | # 13 | # /* See http://www.boost.org for most recent version. */ 14 | # 15 | # ifndef BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP 16 | # define BOOST_PREPROCESSOR_FACILITIES_IDENTITY_HPP 17 | # 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_IDENTITY */ 22 | # 23 | # define BOOST_PP_IDENTITY(item) item BOOST_PP_EMPTY 24 | # 25 | # define BOOST_PP_IDENTITY_N(item,n) item BOOST_PP_TUPLE_EAT_N(n) 26 | # 27 | # endif 28 | -------------------------------------------------------------------------------- /include/boost/preprocessor/facilities/is_1.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2003. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP 13 | # define BOOST_PREPROCESSOR_FACILITIES_IS_1_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_IS_1 */ 19 | # 20 | # define BOOST_PP_IS_1(x) BOOST_PP_IS_EMPTY(BOOST_PP_CAT(BOOST_PP_IS_1_HELPER_, x)) 21 | # define BOOST_PP_IS_1_HELPER_1 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /include/boost/preprocessor/facilities/is_empty.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2003. 4 | # * (C) Copyright Edward Diener 2014. 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # * * 9 | # ************************************************************************** */ 10 | # 11 | # /* See http://www.boost.org for most recent version. */ 12 | # 13 | # ifndef BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP 14 | # define BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP 15 | # 16 | # include 17 | # include 18 | # 19 | # endif /* BOOST_PREPROCESSOR_FACILITIES_IS_EMPTY_HPP */ 20 | -------------------------------------------------------------------------------- /include/boost/preprocessor/for.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_FOR_HPP 13 | # define BOOST_PREPROCESSOR_FOR_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/identity.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_IDENTITY_HPP 13 | # define BOOST_PREPROCESSOR_IDENTITY_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/if.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_IF_HPP 13 | # define BOOST_PREPROCESSOR_IF_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/inc.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_INC_HPP 13 | # define BOOST_PREPROCESSOR_INC_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/iterate.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATE_HPP 13 | # define BOOST_PREPROCESSOR_ITERATE_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/iteration.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATION_HPP 13 | # define BOOST_PREPROCESSOR_ITERATION_HPP 14 | # 15 | # include 16 | # include 17 | # include 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /include/boost/preprocessor/iteration/detail/self.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # if !defined(BOOST_PP_INDIRECT_SELF) 13 | # error BOOST_PP_ERROR: no indirect file to include 14 | # endif 15 | # 16 | # define BOOST_PP_IS_SELFISH 1 17 | # 18 | # include BOOST_PP_INDIRECT_SELF 19 | # 20 | # undef BOOST_PP_IS_SELFISH 21 | # undef BOOST_PP_INDIRECT_SELF 22 | -------------------------------------------------------------------------------- /include/boost/preprocessor/iteration/self.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_ITERATION_SELF_HPP 13 | # define BOOST_PREPROCESSOR_ITERATION_SELF_HPP 14 | # 15 | # /* BOOST_PP_INCLUDE_SELF */ 16 | # 17 | # define BOOST_PP_INCLUDE_SELF() 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /include/boost/preprocessor/limits.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_LIMITS_HPP 13 | # define BOOST_PREPROCESSOR_LIMITS_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/logical.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # include 21 | # include 22 | # include 23 | # include 24 | # include 25 | # include 26 | # include 27 | # include 28 | # 29 | # endif 30 | -------------------------------------------------------------------------------- /include/boost/preprocessor/logical/and.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_AND_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_AND_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_AND */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_AND(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 25 | # else 26 | # define BOOST_PP_AND(p, q) BOOST_PP_AND_I(p, q) 27 | # define BOOST_PP_AND_I(p, q) BOOST_PP_BITAND(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /include/boost/preprocessor/logical/nor.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_NOR_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_NOR_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_NOR */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_NOR(p, q) BOOST_PP_BITNOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 25 | # else 26 | # define BOOST_PP_NOR(p, q) BOOST_PP_NOR_I(p, q) 27 | # define BOOST_PP_NOR_I(p, q) BOOST_PP_BITNOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /include/boost/preprocessor/logical/not.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_NOT_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_NOT_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_NOT */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_NOT(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x)) 25 | # else 26 | # define BOOST_PP_NOT(x) BOOST_PP_NOT_I(x) 27 | # define BOOST_PP_NOT_I(x) BOOST_PP_COMPL(BOOST_PP_BOOL(x)) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /include/boost/preprocessor/logical/or.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_OR_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_OR_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_OR */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_OR(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 25 | # else 26 | # define BOOST_PP_OR(p, q) BOOST_PP_OR_I(p, q) 27 | # define BOOST_PP_OR_I(p, q) BOOST_PP_BITOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /include/boost/preprocessor/logical/xor.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_LOGICAL_XOR_HPP 15 | # define BOOST_PREPROCESSOR_LOGICAL_XOR_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_XOR */ 22 | # 23 | # if ~BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_EDG() 24 | # define BOOST_PP_XOR(p, q) BOOST_PP_BITXOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 25 | # else 26 | # define BOOST_PP_XOR(p, q) BOOST_PP_XOR_I(p, q) 27 | # define BOOST_PP_XOR_I(p, q) BOOST_PP_BITXOR(BOOST_PP_BOOL(p), BOOST_PP_BOOL(q)) 28 | # endif 29 | # 30 | # endif 31 | -------------------------------------------------------------------------------- /include/boost/preprocessor/max.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_MAX_HPP 13 | # define BOOST_PREPROCESSOR_MAX_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/min.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_MIN_HPP 13 | # define BOOST_PREPROCESSOR_MIN_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/punctuation/comma.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 15 | # define BOOST_PREPROCESSOR_PUNCTUATION_COMMA_HPP 16 | # 17 | # /* BOOST_PP_COMMA */ 18 | # 19 | # define BOOST_PP_COMMA() , 20 | # 21 | # endif 22 | -------------------------------------------------------------------------------- /include/boost/preprocessor/punctuation/paren.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP 13 | # define BOOST_PREPROCESSOR_PUNCTUATION_PAREN_HPP 14 | # 15 | # /* BOOST_PP_LPAREN */ 16 | # 17 | # define BOOST_PP_LPAREN() ( 18 | # 19 | # /* BOOST_PP_RPAREN */ 20 | # 21 | # define BOOST_PP_RPAREN() ) 22 | # 23 | # endif 24 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repeat.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repeat_2nd.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_2ND_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_2ND_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repeat_3rd.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_3RD_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_3RD_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repeat_from_to.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_FROM_TO_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repeat_from_to_2nd.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_FROM_TO_2ND_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repeat_from_to_3rd.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP 13 | # define BOOST_PREPROCESSOR_REPEAT_FROM_TO_3RD_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repetition/deduce_z.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP 13 | # define BOOST_PREPROCESSOR_REPETITION_DEDUCE_Z_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # /* BOOST_PP_DEDUCE_Z */ 19 | # 20 | # define BOOST_PP_DEDUCE_Z() BOOST_PP_AUTO_REC(BOOST_PP_REPEAT_P, 4) 21 | # 22 | # endif 23 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repetition/enum_params_with_a_default.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP 15 | # define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_A_DEFAULT_HPP 16 | # 17 | # include 18 | # include 19 | # include 20 | # 21 | # /* BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT */ 22 | # 23 | # define BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def BOOST_PP_INTERCEPT) 24 | # 25 | # endif 26 | -------------------------------------------------------------------------------- /include/boost/preprocessor/repetition/enum_params_with_defaults.hpp: -------------------------------------------------------------------------------- 1 | # /* Copyright (C) 2001 2 | # * Housemarque Oy 3 | # * http://www.housemarque.com 4 | # * 5 | # * Distributed under the Boost Software License, Version 1.0. (See 6 | # * accompanying file LICENSE_1_0.txt or copy at 7 | # * http://www.boost.org/LICENSE_1_0.txt) 8 | # */ 9 | # 10 | # /* Revised by Paul Mensonides (2002) */ 11 | # 12 | # /* See http://www.boost.org for most recent version. */ 13 | # 14 | # ifndef BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP 15 | # define BOOST_PREPROCESSOR_REPETITION_ENUM_PARAMS_WITH_DEFAULTS_HPP 16 | # 17 | # include 18 | # include 19 | # 20 | # /* BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS */ 21 | # 22 | # define BOOST_PP_ENUM_PARAMS_WITH_DEFAULTS(count, param, def) BOOST_PP_ENUM_BINARY_PARAMS(count, param, = def) 23 | # 24 | # endif 25 | -------------------------------------------------------------------------------- /include/boost/preprocessor/selection.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SELECTION_HPP 13 | # define BOOST_PREPROCESSOR_SELECTION_HPP 14 | # 15 | # include 16 | # include 17 | # 18 | # endif 19 | -------------------------------------------------------------------------------- /include/boost/preprocessor/seq/push_back.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP 13 | # define BOOST_PREPROCESSOR_SEQ_PUSH_BACK_HPP 14 | # 15 | # /* BOOST_PP_SEQ_PUSH_BACK */ 16 | # 17 | # define BOOST_PP_SEQ_PUSH_BACK(seq, elem) seq(elem) 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /include/boost/preprocessor/seq/push_front.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP 13 | # define BOOST_PREPROCESSOR_SEQ_PUSH_FRONT_HPP 14 | # 15 | # /* BOOST_PP_SEQ_PUSH_FRONT */ 16 | # 17 | # define BOOST_PP_SEQ_PUSH_FRONT(seq, elem) (elem)seq 18 | # 19 | # endif 20 | -------------------------------------------------------------------------------- /include/boost/preprocessor/slot.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_SLOT_HPP 13 | # define BOOST_PREPROCESSOR_SLOT_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/preprocessor/tuple/enum.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Edward Diener 2011. * 4 | # * (C) Copyright Paul Mensonides 2011. * 5 | # * Distributed under the Boost Software License, Version 1.0. (See * 6 | # * accompanying file LICENSE_1_0.txt or copy at * 7 | # * http://www.boost.org/LICENSE_1_0.txt) * 8 | # * * 9 | # ************************************************************************** */ 10 | # 11 | # /* See http://www.boost.org for most recent version. */ 12 | # 13 | # ifndef BOOST_PREPROCESSOR_TUPLE_ENUM_HPP 14 | # define BOOST_PREPROCESSOR_TUPLE_ENUM_HPP 15 | # 16 | # include 17 | # 18 | # /* BOOST_PP_TUPLE_ENUM */ 19 | # 20 | # define BOOST_PP_TUPLE_ENUM BOOST_PP_TUPLE_REM_CTOR 21 | # 22 | # endif 23 | -------------------------------------------------------------------------------- /include/boost/preprocessor/while.hpp: -------------------------------------------------------------------------------- 1 | # /* ************************************************************************** 2 | # * * 3 | # * (C) Copyright Paul Mensonides 2002. 4 | # * Distributed under the Boost Software License, Version 1.0. (See 5 | # * accompanying file LICENSE_1_0.txt or copy at 6 | # * http://www.boost.org/LICENSE_1_0.txt) 7 | # * * 8 | # ************************************************************************** */ 9 | # 10 | # /* See http://www.boost.org for most recent version. */ 11 | # 12 | # ifndef BOOST_PREPROCESSOR_WHILE_HPP 13 | # define BOOST_PREPROCESSOR_WHILE_HPP 14 | # 15 | # include 16 | # 17 | # endif 18 | -------------------------------------------------------------------------------- /include/boost/ref.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_REF_HPP 10 | #define BOOST_REF_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/ref.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/boost/swap.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_SWAP_HPP 10 | #define BOOST_SWAP_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/swap.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/boost/type_traits/add_lvalue_reference.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2010 John Maddock 2 | 3 | // Distributed under the Boost Software License, Version 1.0. 4 | // See http://www.boost.org/LICENSE_1_0.txt 5 | 6 | #ifndef BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 7 | #define BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 8 | 9 | #include 10 | 11 | namespace boost{ 12 | 13 | template struct add_lvalue_reference 14 | { 15 | typedef typename boost::add_reference::type type; 16 | }; 17 | 18 | #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 19 | template struct add_lvalue_reference 20 | { 21 | typedef T& type; 22 | }; 23 | #endif 24 | 25 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 26 | 27 | template using add_lvalue_reference_t = typename add_lvalue_reference::type; 28 | 29 | #endif 30 | 31 | } 32 | 33 | #endif // BOOST_TYPE_TRAITS_EXT_ADD_LVALUE_REFERENCE__HPP 34 | -------------------------------------------------------------------------------- /include/boost/type_traits/alignment_traits.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED 10 | #define BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | #endif // BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /include/boost/type_traits/arithmetic_traits.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | // 8 | // defines traits classes for arithmetic types: 9 | // is_void, is_integral, is_float, is_arithmetic, is_fundamental. 10 | 11 | #ifndef BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED 12 | #define BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #endif // BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /include/boost/type_traits/array_traits.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 2 | // Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | 10 | #ifndef BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED 11 | #define BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED 12 | 13 | #include 14 | 15 | #endif // BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /include/boost/type_traits/broken_compiler_spec.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_BROKEN_SPEC_HPP_INCLUDED 10 | #define BOOST_TT_BROKEN_SPEC_HPP_INCLUDED 11 | 12 | // 13 | // This header is deprecated and no longer used by type_traits: 14 | // 15 | #if defined(__GNUC__) || defined(_MSC_VER) 16 | # pragma message("NOTE: Use of this header (boost/type_traits/broken_compiler_spec.hpp) is deprecated") 17 | #endif 18 | 19 | #endif // BOOST_TT_CONFIG_HPP_INCLUDED 20 | 21 | 22 | -------------------------------------------------------------------------------- /include/boost/type_traits/conditional.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2010. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | 9 | #ifndef BOOST_TT_CONDITIONAL_HPP_INCLUDED 10 | #define BOOST_TT_CONDITIONAL_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost { 15 | 16 | template struct conditional { typedef T type; }; 17 | template struct conditional { typedef U type; }; 18 | 19 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 20 | 21 | template using conditional_t = typename conditional::type; 22 | 23 | #endif 24 | 25 | } // namespace boost 26 | 27 | 28 | #endif // BOOST_TT_CONDITIONAL_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /include/boost/type_traits/config.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_OLD_CONFIG_HPP_INCLUDED 10 | #define BOOST_TT_OLD_CONFIG_HPP_INCLUDED 11 | 12 | // 13 | // This header is deprecated and no longer used by type_traits: 14 | // 15 | #if defined(__GNUC__) || defined(_MSC_VER) 16 | # pragma message("NOTE: Use of this header (boost/type_traits/config.hpp) is deprecated") 17 | #endif 18 | 19 | #endif // BOOST_TT_CONFIG_HPP_INCLUDED 20 | 21 | 22 | -------------------------------------------------------------------------------- /include/boost/type_traits/conjunction.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2020 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_CONJUNCTION_HPP_INCLUDED 11 | #define BOOST_TT_CONJUNCTION_HPP_INCLUDED 12 | 13 | #include 14 | #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 15 | #include 16 | #endif 17 | 18 | namespace boost { 19 | 20 | #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 21 | template 22 | struct conjunction 23 | : true_type { }; 24 | 25 | template 26 | struct conjunction 27 | : T { }; 28 | 29 | template 30 | struct conjunction 31 | : conditional, T>::type { }; 32 | #else 33 | template 34 | struct conjunction 35 | : conditional::type { }; 36 | #endif 37 | 38 | } /* boost */ 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /include/boost/type_traits/conversion_traits.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright 2000 John Maddock (john@johnmaddock.co.uk) 3 | // Copyright 2000 Jeremy Siek (jsiek@lsc.nd.edu) 4 | // Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi) 5 | // 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | #ifndef BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED 13 | #define BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED 14 | 15 | #include 16 | 17 | #endif // BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED 18 | -------------------------------------------------------------------------------- /include/boost/type_traits/copy_cv_ref.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | #ifndef BOOST_TT_COPY_CV_REF_HPP_INCLUDED 10 | #define BOOST_TT_COPY_CV_REF_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | template 19 | struct copy_cv_ref { 20 | typedef typename copy_reference::type >::type, U>::type type; 22 | }; 23 | 24 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 25 | template 26 | using copy_cv_ref_t = typename copy_cv_ref::type; 27 | #endif 28 | 29 | } /* boost */ 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /include/boost/type_traits/cv_traits.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 2 | // Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | // 9 | // defines traits classes for cv-qualified types: 10 | // is_const, is_volatile, remove_const, remove_volatile, remove_cv. 11 | 12 | #ifndef BOOST_TT_CV_TRAITS_HPP_INCLUDED 13 | #define BOOST_TT_CV_TRAITS_HPP_INCLUDED 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | #endif // BOOST_TT_CV_TRAITS_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /include/boost/type_traits/detail/bool_trait_undef.hpp: -------------------------------------------------------------------------------- 1 | 2 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 3 | 4 | // Copyright Aleksey Gurtovoy 2002-2004 5 | // 6 | // Distributed under the Boost Software License, Version 1.0. 7 | // (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt) 9 | 10 | // $Source$ 11 | // $Date$ 12 | // $Revision$ 13 | 14 | #undef BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL 15 | #undef BOOST_TT_AUX_BOOL_C_BASE 16 | #undef BOOST_TT_AUX_BOOL_TRAIT_DEF1 17 | #undef BOOST_TT_AUX_BOOL_TRAIT_DEF2 18 | #undef BOOST_TT_AUX_BOOL_TRAIT_DEF3 19 | #undef BOOST_TT_AUX_BOOL_TRAIT_SPEC1 20 | #undef BOOST_TT_AUX_BOOL_TRAIT_SPEC2 21 | #undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1 22 | #undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2 23 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1 24 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2 25 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1 26 | #undef BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_2 27 | #undef BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1 28 | #undef BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1 29 | -------------------------------------------------------------------------------- /include/boost/type_traits/detail/detector.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_DETAIL_DETECTOR_HPP_INCLUDED 11 | #define BOOST_TT_DETAIL_DETECTOR_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | namespace detail { 18 | 19 | template 20 | using detector_t = typename boost::make_void::type; 21 | 22 | template class, class...> 23 | struct detector { 24 | using value_t = boost::false_type; 25 | using type = Default; 26 | }; 27 | 28 | template class Op, class... Args> 29 | struct detector >, Op, Args...> { 30 | using value_t = boost::true_type; 31 | using type = Op; 32 | }; 33 | 34 | } /* detail */ 35 | } /* boost */ 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /include/boost/type_traits/detail/template_arity_spec.hpp: -------------------------------------------------------------------------------- 1 | // NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION 2 | 3 | // Copyright Aleksey Gurtovoy 2002-2004 4 | // 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt) 8 | 9 | // 10 | // This header is deprecated and no longer used by type_traits: 11 | // 12 | #if defined(__GNUC__) || defined(_MSC_VER) 13 | # pragma message("NOTE: Use of this header (template_arity_spec.hpp) is deprecated") 14 | #endif 15 | 16 | # define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/ 17 | -------------------------------------------------------------------------------- /include/boost/type_traits/detail/yes_no_type.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock and Steve Cleary 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | // 9 | // macros and helpers for working with integral-constant-expressions. 10 | 11 | #ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 12 | #define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 13 | 14 | namespace boost { 15 | namespace type_traits { 16 | 17 | typedef char yes_type; 18 | struct no_type 19 | { 20 | char padding[8]; 21 | }; 22 | 23 | } // namespace type_traits 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /include/boost/type_traits/detected.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_DETECTED_HPP_INCLUDED 11 | #define BOOST_TT_DETECTED_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | template class Op, class... Args> 19 | using detected_t = typename 20 | detail::detector::type; 21 | 22 | } /* boost */ 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /include/boost/type_traits/detected_or.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_DETECTED_OR_HPP_INCLUDED 11 | #define BOOST_TT_DETECTED_OR_HPP_INCLUDED 12 | 13 | #include 14 | 15 | namespace boost { 16 | 17 | template class Op, class... Args> 18 | using detected_or = detail::detector; 19 | 20 | template class Op, class... Args> 21 | using detected_or_t = typename detected_or::type; 22 | 23 | } /* boost */ 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/boost/type_traits/disjunction.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2020 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_DISJUNCTION_HPP_INCLUDED 11 | #define BOOST_TT_DISJUNCTION_HPP_INCLUDED 12 | 13 | #include 14 | #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 15 | #include 16 | #endif 17 | 18 | namespace boost { 19 | 20 | #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 21 | template 22 | struct disjunction 23 | : false_type { }; 24 | 25 | template 26 | struct disjunction 27 | : T { }; 28 | 29 | template 30 | struct disjunction 31 | : conditional >::type { }; 32 | #else 33 | template 34 | struct disjunction 35 | : conditional::type { }; 36 | #endif 37 | 38 | } /* boost */ 39 | 40 | #endif 41 | -------------------------------------------------------------------------------- /include/boost/type_traits/enable_if.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2003 The Trustees of Indiana University 3 | 4 | Authors: Jaakko Jarvi (jajarvi at osl.iu.edu) 5 | Jeremiah Willcock (jewillco at osl.iu.edu) 6 | Andrew Lumsdaine (lums at osl.iu.edu) 7 | 8 | Copyright 2018 Glen Joseph Fernandes 9 | (glenjofe@gmail.com) 10 | 11 | Distributed under the Boost Software License, 12 | Version 1.0. (See accompanying file LICENSE_1_0.txt 13 | or copy at http://www.boost.org/LICENSE_1_0.txt) 14 | */ 15 | #ifndef BOOST_TT_ENABLE_IF_HPP_INCLUDED 16 | #define BOOST_TT_ENABLE_IF_HPP_INCLUDED 17 | 18 | #include 19 | 20 | namespace boost { 21 | 22 | template 23 | struct enable_if_ { 24 | typedef T type; 25 | }; 26 | 27 | template 28 | struct enable_if_ { }; 29 | 30 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 31 | template 32 | using enable_if_t = typename enable_if_::type; 33 | #endif 34 | 35 | } /* boost */ 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /include/boost/type_traits/has_complement.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright 2009-2011 Frederic Bron. 2 | // 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED 10 | #define BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED 11 | 12 | #define BOOST_TT_TRAIT_NAME has_complement 13 | #define BOOST_TT_TRAIT_OP ~ 14 | #define BOOST_TT_FORBIDDEN_IF\ 15 | (\ 16 | /* pointer */\ 17 | ::boost::is_pointer< Rhs_noref >::value || \ 18 | /* fundamental non integral */\ 19 | (\ 20 | ::boost::is_fundamental< Rhs_noref >::value && \ 21 | (! ::boost::is_integral< Rhs_noref >::value )\ 22 | )\ 23 | ) 24 | 25 | 26 | #include 27 | 28 | #undef BOOST_TT_TRAIT_NAME 29 | #undef BOOST_TT_TRAIT_OP 30 | #undef BOOST_TT_FORBIDDEN_IF 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /include/boost/type_traits/has_negate.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright 2009-2011 Frederic Bron. 2 | // 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_HAS_NEGATE_HPP_INCLUDED 10 | #define BOOST_TT_HAS_NEGATE_HPP_INCLUDED 11 | 12 | #define BOOST_TT_TRAIT_NAME has_negate 13 | #define BOOST_TT_TRAIT_OP - 14 | #define BOOST_TT_FORBIDDEN_IF\ 15 | /* pointer */\ 16 | ::boost::is_pointer< Rhs_noref >::value 17 | 18 | 19 | #include 20 | 21 | #undef BOOST_TT_TRAIT_NAME 22 | #undef BOOST_TT_TRAIT_OP 23 | #undef BOOST_TT_FORBIDDEN_IF 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/boost/type_traits/has_unary_minus.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright 2009-2011 Frederic Bron. 2 | // 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED 10 | #define BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED 11 | 12 | #define BOOST_TT_TRAIT_NAME has_unary_minus 13 | #define BOOST_TT_TRAIT_OP - 14 | #define BOOST_TT_FORBIDDEN_IF\ 15 | /* pointer */\ 16 | ::boost::is_pointer< Rhs_noref >::value 17 | 18 | 19 | #include 20 | 21 | #undef BOOST_TT_TRAIT_NAME 22 | #undef BOOST_TT_TRAIT_OP 23 | #undef BOOST_TT_FORBIDDEN_IF 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/boost/type_traits/has_unary_plus.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright 2009-2011 Frederic Bron. 2 | // 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED 10 | #define BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED 11 | 12 | #define BOOST_TT_TRAIT_NAME has_unary_plus 13 | #define BOOST_TT_TRAIT_OP + 14 | #define BOOST_TT_FORBIDDEN_IF\ 15 | false 16 | 17 | #include 18 | 19 | #undef BOOST_TT_TRAIT_NAME 20 | #undef BOOST_TT_TRAIT_OP 21 | #undef BOOST_TT_FORBIDDEN_IF 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/boost/type_traits/has_virtual_destructor.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock 2005. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | 10 | #ifndef BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED 11 | #define BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | #ifdef BOOST_HAS_VIRTUAL_DESTRUCTOR 19 | template struct has_virtual_destructor : public integral_constant{}; 20 | #else 21 | template struct has_virtual_destructor : public integral_constant{}; 22 | #endif 23 | 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /include/boost/type_traits/ice.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock and Steve Cleary 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | // 9 | // macros and helpers for working with integral-constant-expressions. 10 | 11 | #ifndef BOOST_TT_ICE_HPP_INCLUDED 12 | #define BOOST_TT_ICE_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | #include 17 | #include 18 | #include 19 | 20 | #endif // BOOST_TT_ICE_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_arithmetic.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 10 | #define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | template 18 | struct is_arithmetic : public integral_constant::value || is_floating_point::value> {}; 19 | 20 | } // namespace boost 21 | 22 | #endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_bounded_array.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_BOUNDED_ARRAY_HPP_INCLUDED 11 | #define BOOST_TT_IS_BOUNDED_ARRAY_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | template 19 | struct is_bounded_array 20 | : false_type { }; 21 | 22 | #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) 23 | template 24 | struct is_bounded_array 25 | : true_type { }; 26 | 27 | template 28 | struct is_bounded_array 29 | : true_type { }; 30 | 31 | template 32 | struct is_bounded_array 33 | : true_type { }; 34 | 35 | template 36 | struct is_bounded_array 37 | : true_type { }; 38 | #endif 39 | 40 | } /* boost */ 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_complex.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2007. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | #ifndef BOOST_TT_IS_COMPLEX_HPP 9 | #define BOOST_TT_IS_COMPLEX_HPP 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | template struct is_complex : public false_type {}; 18 | template struct is_complex : public is_complex{}; 19 | template struct is_complex : public is_complex{}; 20 | template struct is_complex : public is_complex{}; 21 | template struct is_complex > : public true_type{}; 22 | 23 | } // namespace boost 24 | 25 | #endif //BOOST_TT_IS_COMPLEX_HPP 26 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_compound.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_COMPOUND_HPP_INCLUDED 10 | #define BOOST_TT_IS_COMPOUND_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost { 15 | 16 | #if defined( BOOST_CODEGEARC ) 17 | template struct is_compound : public integral_constant {}; 18 | #else 19 | template struct is_compound : public integral_constant::value> {}; 20 | #endif 21 | 22 | } // namespace boost 23 | 24 | #endif // BOOST_TT_IS_COMPOUND_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_detected.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_DETECTED_HPP_INCLUDED 11 | #define BOOST_TT_IS_DETECTED_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | template class Op, class... Args> 19 | using is_detected = typename 20 | detail::detector::value_t; 21 | 22 | #if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES) 23 | template class Op, class... Args> 24 | constexpr bool is_detected_v = is_detected::value; 25 | #endif 26 | 27 | } /* boost */ 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_detected_convertible.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_DETECTED_CONVERTIBLE_HPP_INCLUDED 11 | #define BOOST_TT_IS_DETECTED_CONVERTIBLE_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | template class Op, class... Args> 19 | using is_detected_convertible = is_convertible, To>; 20 | 21 | #if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES) 22 | template class Op, class... Args> 23 | constexpr bool is_detected_convertible_v = is_detected_convertible::value; 25 | #endif 26 | 27 | } /* boost */ 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_detected_exact.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017-2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_DETECTED_EXACT_HPP_INCLUDED 11 | #define BOOST_TT_IS_DETECTED_EXACT_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | template class Op, class... Args> 19 | using is_detected_exact = is_same >; 20 | 21 | #if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES) 22 | template class Op, class... Args> 23 | constexpr bool is_detected_exact_v = is_detected_exact::value; 25 | #endif 26 | 27 | } /* boost */ 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_final.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright (c) 2014 Agustin Berge 3 | // 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | #ifndef BOOST_TT_IS_FINAL_HPP_INCLUDED 12 | #define BOOST_TT_IS_FINAL_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | #ifdef BOOST_IS_FINAL 17 | #include 18 | #endif 19 | 20 | namespace boost { 21 | 22 | #ifdef BOOST_IS_FINAL 23 | template struct is_final : public integral_constant {}; 24 | #else 25 | template struct is_final : public integral_constant {}; 26 | #endif 27 | 28 | } // namespace boost 29 | 30 | #endif // BOOST_TT_IS_FINAL_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_float.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | 8 | #ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED 9 | #define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED 10 | 11 | // should be the last #include 12 | #include 13 | 14 | namespace boost { 15 | 16 | //* is a type T a floating-point type described in the standard (3.9.1p8) 17 | template struct is_float : public is_floating_point {}; 18 | } // namespace boost 19 | 20 | #endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED 21 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_function.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright 2000 John Maddock (john@johnmaddock.co.uk) 3 | // Copyright 2002 Aleksey Gurtovoy (agurtovoy@meta-comm.com) 4 | // 5 | // Use, modification and distribution are subject to the Boost Software License, 6 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 7 | // http://www.boost.org/LICENSE_1_0.txt). 8 | // 9 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 10 | 11 | #ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED 12 | #define BOOST_TT_IS_FUNCTION_HPP_INCLUDED 13 | 14 | #include 15 | #include 16 | 17 | #ifdef BOOST_TT_HAS_ACCURATE_IS_FUNCTION 18 | 19 | #include 20 | 21 | #else 22 | 23 | #include 24 | 25 | #endif 26 | 27 | #endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_fundamental.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED 10 | #define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | 15 | namespace boost { 16 | 17 | //* is a type T a fundamental type described in the standard (3.9.1) 18 | #if defined( BOOST_CODEGEARC ) 19 | template struct is_fundamental : public integral_constant {}; 20 | #else 21 | template struct is_fundamental : public integral_constant::value || ::boost::is_void::value> {}; 22 | #endif 23 | 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_member_function_pointer.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard 3 | // Hinnant & John Maddock 2000. 4 | // Use, modification and distribution are subject to the Boost Software License, 5 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt). 7 | // 8 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 9 | 10 | 11 | #ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 12 | #define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 13 | 14 | #include 15 | 16 | #ifdef BOOST_TT_HAS_ACCURATE_IS_FUNCTION 17 | 18 | #include 19 | 20 | #else 21 | 22 | #include 23 | 24 | #endif 25 | 26 | #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_member_object_pointer.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright John Maddock 2005. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | 10 | #ifndef BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED 11 | #define BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | 16 | namespace boost { 17 | 18 | template struct is_member_object_pointer 19 | : public integral_constant::value && !::boost::is_member_function_pointer::value>{}; 21 | 22 | } // namespace boost 23 | 24 | #endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED 25 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_object.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_OBJECT_HPP_INCLUDED 10 | #define BOOST_TT_IS_OBJECT_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | 17 | namespace boost { 18 | 19 | template struct is_object 20 | : public 21 | integral_constant< 22 | bool, 23 | ! ::boost::is_reference::value && ! ::boost::is_void::value && ! ::boost::is_function::value > 24 | {}; 25 | 26 | } // namespace boost 27 | 28 | #endif // BOOST_TT_IS_OBJECT_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_reference.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, 3 | // Howard Hinnant and John Maddock 2000, 2010. 4 | // (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001 5 | 6 | // Use, modification and distribution are subject to the Boost Software License, 7 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 8 | // http://www.boost.org/LICENSE_1_0.txt). 9 | // 10 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 11 | 12 | #ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED 13 | #define BOOST_TT_IS_REFERENCE_HPP_INCLUDED 14 | 15 | #include 16 | #include 17 | 18 | namespace boost { 19 | 20 | template struct is_reference 21 | : public 22 | integral_constant< 23 | bool, 24 | ::boost::is_lvalue_reference::value || ::boost::is_rvalue_reference::value> 25 | {}; 26 | 27 | } // namespace boost 28 | 29 | #endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED 30 | 31 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_scalar.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED 10 | #define BOOST_TT_IS_SCALAR_HPP_INCLUDED 11 | 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | namespace boost { 19 | 20 | template 21 | struct is_scalar 22 | : public integral_constant::value || ::boost::is_enum::value || ::boost::is_pointer::value || ::boost::is_member_pointer::value> 23 | {}; 24 | 25 | } // namespace boost 26 | 27 | #endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_scoped_enum.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2020 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_SCOPED_ENUM_HPP_INCLUDED 11 | #define BOOST_TT_IS_SCOPED_ENUM_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | namespace boost { 19 | 20 | template 21 | struct is_scoped_enum 22 | : conjunction, negation > >::type { }; 23 | 24 | } /* boost */ 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_trivially_copyable.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2020 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_TRIVIALLY_COPYABLE_HPP_INCLUDED 11 | #define BOOST_TT_IS_TRIVIALLY_COPYABLE_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | 19 | namespace boost { 20 | 21 | template 22 | struct is_trivially_copyable 23 | : integral_constant::value && 24 | has_trivial_assign::value && 25 | has_trivial_move_constructor::value && 26 | has_trivial_move_assign::value && 27 | has_trivial_destructor::value> { }; 28 | 29 | } /* boost */ 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_unbounded_array.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2018 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_UNBOUNDED_ARRAY_HPP_INCLUDED 11 | #define BOOST_TT_IS_UNBOUNDED_ARRAY_HPP_INCLUDED 12 | 13 | #include 14 | 15 | namespace boost { 16 | 17 | template 18 | struct is_unbounded_array 19 | : false_type { }; 20 | 21 | #if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS) 22 | template 23 | struct is_unbounded_array 24 | : true_type { }; 25 | 26 | template 27 | struct is_unbounded_array 28 | : true_type { }; 29 | 30 | template 31 | struct is_unbounded_array 32 | : true_type { }; 33 | 34 | template 35 | struct is_unbounded_array 36 | : true_type { }; 37 | #endif 38 | 39 | } /* boost */ 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_unscoped_enum.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2020 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_IS_UNSCOPED_ENUM_HPP_INCLUDED 11 | #define BOOST_TT_IS_UNSCOPED_ENUM_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | namespace boost { 18 | 19 | template 20 | struct is_unscoped_enum 21 | : conjunction, is_convertible >::type { }; 22 | 23 | } /* boost */ 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /include/boost/type_traits/is_void.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_IS_VOID_HPP_INCLUDED 10 | #define BOOST_TT_IS_VOID_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost { 15 | 16 | template 17 | struct is_void : public false_type {}; 18 | 19 | template<> struct is_void : public true_type {}; 20 | template<> struct is_void : public true_type{}; 21 | template<> struct is_void : public true_type{}; 22 | template<> struct is_void : public true_type{}; 23 | 24 | } // namespace boost 25 | 26 | #endif // BOOST_TT_IS_VOID_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /include/boost/type_traits/negation.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2020 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_NEGATION_HPP_INCLUDED 11 | #define BOOST_TT_NEGATION_HPP_INCLUDED 12 | 13 | #include 14 | 15 | namespace boost { 16 | 17 | template 18 | struct negation 19 | : integral_constant { }; 20 | 21 | } /* boost */ 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /include/boost/type_traits/nonesuch.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2017 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, 6 | Version 1.0. (See accompanying file LICENSE_1_0.txt 7 | or copy at http://www.boost.org/LICENSE_1_0.txt) 8 | */ 9 | 10 | #ifndef BOOST_TT_NONESUCH_HPP_INCLUDED 11 | #define BOOST_TT_NONESUCH_HPP_INCLUDED 12 | 13 | #include 14 | 15 | namespace boost { 16 | 17 | #if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) 18 | struct nonesuch { 19 | nonesuch() = delete; 20 | ~nonesuch() = delete; 21 | nonesuch(const nonesuch&) = delete; 22 | void operator=(const nonesuch&) = delete; 23 | }; 24 | #else 25 | class nonesuch { 26 | nonesuch(); 27 | ~nonesuch(); 28 | nonesuch(const nonesuch&); 29 | void operator=(const nonesuch&); 30 | }; 31 | #endif 32 | 33 | } /* boost */ 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /include/boost/type_traits/promote.hpp: -------------------------------------------------------------------------------- 1 | // Copyright 2005 Alexander Nasonov. 2 | // Distributed under the Boost Software License, Version 1.0. (See 3 | // accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt) 5 | 6 | #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED 7 | #define FILE_boost_type_traits_promote_hpp_INCLUDED 8 | 9 | #include 10 | #include 11 | #include 12 | 13 | namespace boost { 14 | 15 | template struct promote : public integral_promotion::type>{}; 16 | 17 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 18 | 19 | template using promote_t = typename promote::type; 20 | 21 | #endif 22 | 23 | } 24 | 25 | #endif // #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED 26 | 27 | -------------------------------------------------------------------------------- /include/boost/type_traits/reference_traits.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright David Abrahams Steve Cleary, Beman Dawes, Howard 2 | // Hinnant & John Maddock 2000-2002. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | 10 | #ifndef BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED 11 | #define BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED 12 | 13 | #include 14 | 15 | #endif // BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /include/boost/type_traits/remove_bounds.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | #ifndef BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED 10 | #define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED 11 | 12 | #include 13 | 14 | namespace boost 15 | { 16 | 17 | template struct remove_bounds : public remove_extent {}; 18 | 19 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 20 | 21 | template using remove_bounds_t = typename remove_bounds::type; 22 | 23 | #endif 24 | 25 | 26 | } // namespace boost 27 | 28 | #endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /include/boost/type_traits/remove_cv_ref.hpp: -------------------------------------------------------------------------------- 1 | 2 | // (C) Copyright Peter Dimov 2017. 3 | // Use, modification and distribution are subject to the Boost Software License, 4 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 5 | // http://www.boost.org/LICENSE_1_0.txt). 6 | // 7 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 8 | 9 | 10 | #ifndef BOOST_TT_REMOVE_CV_REF_HPP_INCLUDED 11 | #define BOOST_TT_REMOVE_CV_REF_HPP_INCLUDED 12 | 13 | #include 14 | #include 15 | #include 16 | 17 | namespace boost { 18 | 19 | template struct remove_cv_ref: remove_cv::type> {}; 20 | 21 | 22 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 23 | 24 | template using remove_cv_ref_t = typename remove_cv_ref::type; 25 | 26 | #endif 27 | 28 | } // namespace boost 29 | 30 | #endif // BOOST_TT_REMOVE_CV_REF_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /include/boost/type_traits/same_traits.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | // 8 | // defines is_same: 9 | 10 | #ifndef BOOST_TT_SAME_TRAITS_HPP_INCLUDED 11 | #define BOOST_TT_SAME_TRAITS_HPP_INCLUDED 12 | 13 | #include 14 | 15 | #endif // BOOST_TT_SAME_TRAITS_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /include/boost/type_traits/transform_traits.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. 2 | // Use, modification and distribution are subject to the Boost Software License, 3 | // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 4 | // http://www.boost.org/LICENSE_1_0.txt). 5 | // 6 | // See http://www.boost.org/libs/type_traits for most recent version including documentation. 7 | // 8 | // defines traits classes for transforming one type to another: 9 | // remove_reference, add_reference, remove_bounds, remove_pointer. 10 | // 11 | 12 | #ifndef BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED 13 | #define BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED 14 | 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | 21 | #endif // BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /include/boost/type_traits/type_identity.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_TYPE_TRAITS_TYPE_IDENTITY_HPP_INCLUDED 2 | #define BOOST_TYPE_TRAITS_TYPE_IDENTITY_HPP_INCLUDED 3 | 4 | // 5 | // Copyright 2015 Peter Dimov 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. 8 | // See accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt 10 | // 11 | 12 | #include 13 | 14 | namespace boost 15 | { 16 | 17 | template struct type_identity 18 | { 19 | typedef T type; 20 | }; 21 | 22 | #if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) 23 | 24 | template using type_identity_t = typename type_identity::type; 25 | 26 | #endif 27 | 28 | 29 | } // namespace boost 30 | 31 | #endif // #ifndef BOOST_TYPE_TRAITS_TYPE_IDENTITY_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /include/boost/unordered/detail/requires_cxx11.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_UNORDERED_DETAIL_REQUIRES_CXX11_HPP_INCLUDED 2 | #define BOOST_UNORDERED_DETAIL_REQUIRES_CXX11_HPP_INCLUDED 3 | 4 | // Copyright 2023 Peter Dimov 5 | // Distributed under the Boost Software License, Version 1.0. 6 | // https://www.boost.org/LICENSE_1_0.txt 7 | 8 | #include 9 | #include 10 | 11 | #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || \ 12 | defined(BOOST_NO_CXX11_RVALUE_REFERENCES) || \ 13 | defined(BOOST_NO_CXX11_DECLTYPE) || \ 14 | defined(BOOST_NO_CXX11_CONSTEXPR) || \ 15 | defined(BOOST_NO_CXX11_NOEXCEPT) 16 | 17 | BOOST_PRAGMA_MESSAGE("C++03 support is deprecated in Boost.Unordered 1.82 and will be removed in Boost.Unordered 1.84.") 18 | 19 | #endif 20 | 21 | #endif // #ifndef BOOST_UNORDERED_DETAIL_REQUIRES_CXX11_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /include/boost/unordered_map.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. 3 | // Copyright (C) 2005-2008 Daniel James. 4 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org/libs/unordered for documentation 8 | 9 | #ifndef BOOST_UNORDERED_MAP_HPP_INCLUDED 10 | #define BOOST_UNORDERED_MAP_HPP_INCLUDED 11 | 12 | #include 13 | #if defined(BOOST_HAS_PRAGMA_ONCE) 14 | #pragma once 15 | #endif 16 | 17 | #include 18 | 19 | #endif // BOOST_UNORDERED_MAP_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /include/boost/unordered_set.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright (C) 2003-2004 Jeremy B. Maitin-Shepard. 3 | // Copyright (C) 2005-2008 Daniel James. 4 | // Distributed under the Boost Software License, Version 1.0. (See accompanying 5 | // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 | 7 | // See http://www.boost.org/libs/unordered for documentation 8 | 9 | #ifndef BOOST_UNORDERED_SET_HPP_INCLUDED 10 | #define BOOST_UNORDERED_SET_HPP_INCLUDED 11 | 12 | #include 13 | #if defined(BOOST_HAS_PRAGMA_ONCE) 14 | #pragma once 15 | #endif 16 | 17 | #include 18 | 19 | #endif // BOOST_UNORDERED_SET_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /include/boost/utility/addressof.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_UTILITY_ADDRESSOF_HPP 10 | #define BOOST_UTILITY_ADDRESSOF_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/addressof.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/boost/utility/enable_if.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_UTILITY_ENABLE_IF_HPP 10 | #define BOOST_UTILITY_ENABLE_IF_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/enable_if.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /include/boost/utility/swap.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2014 Glen Fernandes 3 | * 4 | * Distributed under the Boost Software License, Version 1.0. (See 5 | * accompanying file LICENSE_1_0.txt or copy at 6 | * http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | 9 | #ifndef BOOST_UTILITY_SWAP_HPP 10 | #define BOOST_UTILITY_SWAP_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/swap.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /repltest/master/notes.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE plone; 2 | GRANT ALL ON plone.* TO 'plone'@'%' IDENTIFIED BY 'plonepass'; 3 | GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'slavepass'; 4 | FLUSH PRIVILEGES; 5 | RESET MASTER; 6 | SHOW MASTER STATUS; 7 | -------------------------------------------------------------------------------- /repltest/master/replicas.conf: -------------------------------------------------------------------------------- 1 | # The list of replicas for RelStorage to contact. 2 | # Note that MySQL uses a socket file instead of TCP/IP if the host 3 | # is "localhost". Use "127.0.0.1" instead. 4 | 127.0.0.1:23306 5 | 127.0.0.1:23307 6 | -------------------------------------------------------------------------------- /repltest/mysql-no-read-etc.patch: -------------------------------------------------------------------------------- 1 | --- mysys/default.c.orig 2009-09-28 15:44:21.000000000 -0600 2 | +++ mysys/default.c 2009-09-28 15:44:57.000000000 -0600 3 | @@ -1123,9 +1123,6 @@ 4 | 5 | #else 6 | 7 | - errors += add_directory(alloc, "/etc/", dirs); 8 | - errors += add_directory(alloc, "/etc/mysql/", dirs); 9 | - 10 | #if defined(DEFAULT_SYSCONFDIR) 11 | if (DEFAULT_SYSCONFDIR[0]) 12 | errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); 13 | -------------------------------------------------------------------------------- /repltest/slave/notes.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE plone; 2 | GRANT ALL ON plone.* TO 'plone'@'%' IDENTIFIED BY 'plonepass'; 3 | FLUSH PRIVILEGES; 4 | CHANGE MASTER TO 5 | MASTER_HOST='192.168.1.61', 6 | MASTER_USER='repl', 7 | MASTER_PASSWORD='slavepass', 8 | MASTER_LOG_FILE='mysql-bin.000001', 9 | MASTER_LOG_POS=4, 10 | MASTER_CONNECT_RETRY=10; 11 | START SLAVE; 12 | -------------------------------------------------------------------------------- /scripts/releases/geventreleases.sh: -------------------------------------------------------------------------------- 1 | #!/opt/local/bin/bash 2 | 3 | # Quick hack script to create many gevent releases. 4 | # Contains hardcoded paths. Probably only works on my (JAM) machine 5 | # (OS X 10.11) 6 | 7 | mkdir /tmp/gevent/ 8 | 9 | 10 | ./geventrel.sh /usr/local/bin/python3.8 11 | ./geventrel.sh /usr/local/bin/python3.9 12 | ./geventrel.sh /usr/local/bin/python3.10 13 | ./geventrel.sh /usr/local/bin/python3.11 14 | ./geventrel.sh /usr/local/bin/python3.12 15 | 16 | 17 | # PyPy doesn't build binaries, resulting in a none-any wheel. 18 | # I don't think we want to publish that. If we have no wheel for a platform, 19 | # we want them to get the .tar.gz sdist so they can build the C accelerator. 20 | #./geventrel.sh `which pypy3` 21 | 22 | wait 23 | -------------------------------------------------------------------------------- /scripts/releases/relstoragereleases.sh: -------------------------------------------------------------------------------- 1 | #!/opt/local/bin/bash 2 | 3 | # Quick hack script to create many gevent releases. 4 | # Contains hardcoded paths. Probably only works on my (JAM) machine 5 | # (OS X 10.11) 6 | 7 | mkdir /tmp/RelStorage/ 8 | 9 | 10 | # 2.7 is a python.org build, builds a 10_9_intel wheel 11 | ./relstoragerel.sh /usr/local/bin/python2.7 12 | 13 | # 3.5 is a python.org build, builds a 10_6_intel wheel 14 | # But that doesn't work on current macOS tool chains: 15 | # clang: error: invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later) 16 | # ./relstoragerel.sh /usr/local/bin/python3.5 17 | 18 | # 3.6 is a python.org build, builds a 10_9_intel wheel 19 | ./relstoragerel.sh /usr/local/bin/python3.6 20 | 21 | # 3.7 is a python.org build, builds a 10_9_intel wheel 22 | ./relstoragerel.sh /usr/local/bin/python3.7 23 | 24 | # Likewise for 3.8 25 | ./relstoragerel.sh /usr/local/bin/python3.8 26 | 27 | # PyPy 4.0 28 | ./relstoragerel.sh `which pypy` 29 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [check-manifest] 2 | # These files are generated from Cython and aren't in 3 | # git. 4 | ignore = 5 | src/relstorage/cache/cache.cpp 6 | src/relstorage/_inthashmap.cpp 7 | src/relstorage/cache/_objectindex.cpp 8 | 9 | [zest.releaser] 10 | create-wheel = no 11 | -------------------------------------------------------------------------------- /src/relstorage/.gitignore: -------------------------------------------------------------------------------- 1 | _inthashmap.cpp 2 | *.html 3 | -------------------------------------------------------------------------------- /src/relstorage/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Copyright (c) 2008 Zope Foundation and Contributors. 4 | # All Rights Reserved. 5 | # 6 | # This software is subject to the provisions of the Zope Public License, 7 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 8 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 9 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 10 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 11 | # FOR A PARTICULAR PURPOSE. 12 | # 13 | ############################################################################## 14 | """relstorage package""" 15 | -------------------------------------------------------------------------------- /src/relstorage/_inthashmap.h: -------------------------------------------------------------------------------- 1 | #ifndef _INTHASHMAP_H 2 | #define _INTHASHMAP_H 3 | 4 | #include "_rs_types.h" 5 | 6 | #include 7 | #include 8 | 9 | 10 | #endif 11 | -------------------------------------------------------------------------------- /src/relstorage/_rs_types.pxd: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # distutils: language = c++ 3 | # cython: auto_pickle=False,embedsignature=True,always_allow_keywords=False,infer_types=True 4 | 5 | 6 | cdef extern from "_rs_types.h": 7 | ctypedef signed long int64_t 8 | ctypedef signed long uint64_t 9 | ctypedef int64_t TID_t 10 | ctypedef int64_t OID_t 11 | 12 | cdef extern from "_rs_types.h" namespace "relstorage": 13 | cdef cppclass PythonAllocator[T]: 14 | pass 15 | 16 | cdef extern from * namespace "boost": 17 | T& move[T](T&) 18 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/drivers/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/mysql/procs/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/clean_temp_state.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE clean_temp_state(IN p_truncate BOOLEAN) 2 | COMMENT '{CHECKSUM}' 3 | BEGIN 4 | 5 | IF p_truncate THEN 6 | TRUNCATE temp_store; 7 | TRUNCATE temp_read_current; 8 | TRUNCATE temp_blob_chunk; 9 | TRUNCATE temp_locked_zoid; 10 | ELSE 11 | DELETE FROM temp_store; 12 | DELETE FROM temp_read_current; 13 | DELETE FROM temp_blob_chunk; 14 | DELETE FROM temp_locked_zoid; 15 | END IF; 16 | END; 17 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/hf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/mysql/procs/hf/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/hf/lock_and_choose_tid.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE lock_and_choose_tid() 2 | COMMENT '{CHECKSUM}' 3 | BEGIN 4 | DECLARE next_tid_64 BIGINT; 5 | CALL lock_and_choose_tid_p(next_tid_64); 6 | SELECT next_tid_64; 7 | END; 8 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/hf/lock_and_choose_tid_p.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE lock_and_choose_tid_p(OUT next_tid_64 BIGINT) 2 | COMMENT '{CHECKSUM}' 3 | BEGIN 4 | DECLARE committed_tid_64 BIGINT; 5 | CALL lock_database_for_commit(); 6 | 7 | SELECT COALESCE(MAX(tid), 0) 8 | INTO committed_tid_64 9 | FROM object_state; 10 | 11 | CALL make_current_tid(next_tid_64); 12 | 13 | IF next_tid_64 <= committed_tid_64 THEN 14 | SET next_tid_64 = committed_tid_64 + 1; 15 | END IF; 16 | END; 17 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/hp/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/mysql/procs/hp/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/hp/lock_and_choose_tid.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE lock_and_choose_tid( 2 | p_packed BOOLEAN, 3 | p_username BLOB, 4 | p_description BLOB, 5 | p_extension BLOB 6 | ) 7 | COMMENT '{CHECKSUM}' 8 | BEGIN 9 | DECLARE next_tid_64 BIGINT; 10 | CALL lock_and_choose_tid_p( 11 | next_tid_64, 12 | p_packed, 13 | p_username, 14 | p_description, 15 | p_extension 16 | ); 17 | SELECT next_tid_64; 18 | END; 19 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/hp/lock_and_choose_tid_p.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE lock_and_choose_tid_p( 2 | OUT next_tid_64 BIGINT, 3 | IN p_packed BOOLEAN, 4 | IN p_username BLOB, 5 | IN p_description BLOB, 6 | IN p_extension BLOB 7 | ) 8 | COMMENT '{CHECKSUM}' 9 | BEGIN 10 | DECLARE committed_tid_64 BIGINT; 11 | 12 | CALL lock_database_for_commit(); 13 | 14 | SELECT COALESCE(MAX(tid), 0) 15 | INTO committed_tid_64 16 | FROM transaction; 17 | 18 | CALL make_current_tid(next_tid_64); 19 | 20 | IF next_tid_64 <= committed_tid_64 THEN 21 | SET next_tid_64 = committed_tid_64 + 1; 22 | END IF; 23 | 24 | INSERT INTO transaction ( 25 | tid, packed, username, description, extension 26 | ) 27 | VALUES ( 28 | next_tid_64, p_packed, p_username, p_description, p_extension 29 | ); 30 | END; 31 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/procs/make_current_tid.sql: -------------------------------------------------------------------------------- 1 | CREATE PROCEDURE make_current_tid(OUT tid_64 BIGINT) 2 | COMMENT '{CHECKSUM}' 3 | BEGIN 4 | CALL make_tid_for_epoch( 5 | UNIX_TIMESTAMP(UTC_TIMESTAMP(6)), 6 | tid_64 7 | ); 8 | END; 9 | -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/mysql/tests/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/mysql/txncontrol.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Copyright (c) 2009 Zope Foundation and Contributors. 4 | # All Rights Reserved. 5 | # 6 | # This software is subject to the provisions of the Zope Public License, 7 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 8 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 9 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 10 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 11 | # FOR A PARTICULAR PURPOSE. 12 | # 13 | ############################################################################## 14 | """TransactionControl implementations""" 15 | 16 | from __future__ import absolute_import 17 | from __future__ import print_function 18 | 19 | from ..txncontrol import GenericTransactionControl 20 | 21 | 22 | class MySQLTransactionControl(GenericTransactionControl): 23 | pass 24 | -------------------------------------------------------------------------------- /src/relstorage/adapters/oracle/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Copyright (c) 2008 Zope Foundation and Contributors. 4 | # All Rights Reserved. 5 | # 6 | # This software is subject to the provisions of the Zope Public License, 7 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 8 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 9 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 10 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 11 | # FOR A PARTICULAR PURPOSE. 12 | # 13 | ############################################################################## 14 | """Oracle adapter for RelStorage.""" 15 | from __future__ import absolute_import 16 | 17 | from relstorage.adapters.oracle.adapter import OracleAdapter 18 | 19 | 20 | assert OracleAdapter 21 | -------------------------------------------------------------------------------- /src/relstorage/adapters/oracle/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Oracle test package. 2 | -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Copyright (c) 2008 Zope Foundation and Contributors. 4 | # All Rights Reserved. 5 | # 6 | # This software is subject to the provisions of the Zope Public License, 7 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 8 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 9 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 10 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 11 | # FOR A PARTICULAR PURPOSE. 12 | # 13 | ############################################################################## 14 | """PostgreSQL adapter for RelStorage.""" 15 | from __future__ import absolute_import 16 | from __future__ import print_function 17 | 18 | from relstorage.adapters.postgresql.adapter import PostgreSQLAdapter 19 | 20 | 21 | assert PostgreSQLAdapter 22 | -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/drivers/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/procs/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/postgresql/procs/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/procs/blob_chunk_delete_trigger.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE FUNCTION blob_chunk_delete_trigger() 2 | RETURNS TRIGGER 3 | AS $blob_chunk_delete_trigger$ 4 | -- Unlink large object data file after blob_chunk row deletion 5 | DECLARE 6 | cnt integer; 7 | BEGIN 8 | SELECT count(*) into cnt FROM blob_chunk WHERE chunk=OLD.chunk; 9 | IF (cnt = 1) THEN 10 | -- Last reference to this oid, unlink 11 | PERFORM lo_unlink(OLD.chunk); 12 | END IF; 13 | RETURN OLD; 14 | END; 15 | $blob_chunk_delete_trigger$ 16 | LANGUAGE plpgsql; 17 | -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/procs/hf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/postgresql/procs/hf/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/procs/hp/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/postgresql/procs/hp/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/procs/make_current_tid.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE FUNCTION make_current_tid() 2 | RETURNS BIGINT 3 | AS 4 | $$ 5 | SELECT make_tid_for_epoch( 6 | EXTRACT(EPOCH FROM clock_timestamp()) 7 | ); 8 | $$ 9 | LANGUAGE SQL STABLE STRICT PARALLEL SAFE; 10 | -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/procs/temp_blob_chunk_delete_trigger.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE FUNCTION temp_blob_chunk_delete_trigger() 2 | RETURNS TRIGGER 3 | AS $temp_blob_chunk_delete_trigger$ 4 | -- Unlink large object data file after temp_blob_chunk row deletion 5 | DECLARE 6 | cnt integer; 7 | BEGIN 8 | SELECT count(*) into cnt FROM blob_chunk WHERE chunk=OLD.chunk; 9 | IF (cnt = 0) THEN 10 | -- No more references to this oid, unlink 11 | PERFORM lo_unlink(OLD.chunk); 12 | END IF; 13 | RETURN OLD; 14 | END; 15 | $temp_blob_chunk_delete_trigger$ 16 | LANGUAGE plpgsql; 17 | -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/postgresql/tests/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/tests/test_adapter.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | ############################################################################## 3 | # 4 | # Copyright (c) 2019 Zope Foundation and Contributors. 5 | # All Rights Reserved. 6 | # 7 | # This software is subject to the provisions of the Zope Public License, 8 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 9 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 10 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 11 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 12 | # FOR A PARTICULAR PURPOSE. 13 | # 14 | ############################################################################## 15 | from __future__ import absolute_import 16 | from __future__ import division 17 | from __future__ import print_function 18 | 19 | 20 | from ..adapter import PostgreSQLAdapter as Adapter 21 | 22 | from ...tests import test_adapter 23 | 24 | class TestAdapter(test_adapter.AdapterTestBase): 25 | 26 | def _makeOne(self, options): 27 | return Adapter(options=options) 28 | -------------------------------------------------------------------------------- /src/relstorage/adapters/postgresql/txncontrol.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Copyright (c) 2009 Zope Foundation and Contributors. 4 | # All Rights Reserved. 5 | # 6 | # This software is subject to the provisions of the Zope Public License, 7 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 8 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 9 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 10 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 11 | # FOR A PARTICULAR PURPOSE. 12 | # 13 | ############################################################################## 14 | """TransactionControl implementations""" 15 | 16 | from __future__ import absolute_import 17 | 18 | from ..txncontrol import GenericTransactionControl 19 | 20 | class PostgreSQLTransactionControl(GenericTransactionControl): 21 | pass 22 | -------------------------------------------------------------------------------- /src/relstorage/adapters/sql/functions.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Function expressions. 4 | 5 | """ 6 | from __future__ import absolute_import 7 | from __future__ import division 8 | from __future__ import print_function 9 | 10 | from .expressions import Expression 11 | from .schema import Column 12 | 13 | # pylint objects to __compile_visit.*__ 14 | # pylint:disable=bad-dunder-name 15 | 16 | class _Functions(object): 17 | 18 | def max(self, column): 19 | return _Function('max', column) 20 | 21 | def count(self, column=Column('*')): 22 | return _Function('COUNT', column) 23 | 24 | class _Function(Expression): 25 | 26 | def __init__(self, name, expression): 27 | self.name = name 28 | self.expression = expression 29 | 30 | def __compile_visit__(self, compiler): 31 | compiler.emit_identifier(self.name) 32 | compiler.visit_grouped(self.expression) 33 | 34 | func = _Functions() 35 | -------------------------------------------------------------------------------- /src/relstorage/adapters/sql/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/sql/tests/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/sql/tests/test_schema.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | ############################################################################## 3 | # 4 | # Copyright (c) 2019 Zope Foundation and Contributors. 5 | # All Rights Reserved. 6 | # 7 | # This software is subject to the provisions of the Zope Public License, 8 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 9 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 10 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 11 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 12 | # FOR A PARTICULAR PURPOSE. 13 | # 14 | ############################################################################## 15 | 16 | from __future__ import absolute_import 17 | from __future__ import division 18 | from __future__ import print_function 19 | 20 | from relstorage.tests import TestCase 21 | 22 | from ..schema import Table 23 | 24 | 25 | class TestTable(TestCase): 26 | 27 | def test_str(self): 28 | 29 | self.assertEqual(str(Table("table")), "table") 30 | -------------------------------------------------------------------------------- /src/relstorage/adapters/sqlite/poller.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | ############################################################################## 3 | # 4 | # Copyright (c) 2019 Zope Foundation and Contributors. 5 | # All Rights Reserved. 6 | # 7 | # This software is subject to the provisions of the Zope Public License, 8 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 9 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 10 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 11 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 12 | # FOR A PARTICULAR PURPOSE. 13 | # 14 | ############################################################################## 15 | 16 | from __future__ import absolute_import 17 | from __future__ import division 18 | from __future__ import print_function 19 | 20 | from ..poller import Poller 21 | 22 | class Sqlite3Poller(Poller): 23 | pass 24 | -------------------------------------------------------------------------------- /src/relstorage/adapters/sqlite/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/adapters/sqlite/tests/__init__.py -------------------------------------------------------------------------------- /src/relstorage/adapters/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # Tests package. 2 | -------------------------------------------------------------------------------- /src/relstorage/blobhelper/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zodb/relstorage/8fc73c45287a92c2b1123d5b228a3eb40ff01345/src/relstorage/blobhelper/tests/__init__.py -------------------------------------------------------------------------------- /src/relstorage/cache/.gitignore: -------------------------------------------------------------------------------- 1 | cache.cpp 2 | cache_values.cpp 3 | _objectindex.cpp 4 | *.html 5 | -------------------------------------------------------------------------------- /src/relstorage/cache/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Copyright (c) 2009 Zope Foundation and Contributors. 4 | # All Rights Reserved. 5 | # 6 | # This software is subject to the provisions of the Zope Public License, 7 | # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. 8 | # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED 9 | # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 10 | # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS 11 | # FOR A PARTICULAR PURPOSE. 12 | # 13 | ############################################################################## 14 | from __future__ import absolute_import 15 | from __future__ import division 16 | from __future__ import print_function 17 | -------------------------------------------------------------------------------- /src/relstorage/storage/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Unit tests for storage. 4 | """ 5 | from __future__ import absolute_import 6 | from __future__ import division 7 | from __future__ import print_function 8 | -------------------------------------------------------------------------------- /src/relstorage/storage/tpc/tests/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | -------------------------------------------------------------------------------- /src/relstorage/tests/replicas.conf: -------------------------------------------------------------------------------- 1 | # this is used by some of the tests 2 | 127.0.0.1 3 | -------------------------------------------------------------------------------- /src/relstorage/tests/ro_replicas.conf: -------------------------------------------------------------------------------- 1 | # this is used by some of the tests 2 | readonlyhost 3 | -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | 4.1.2.dev0 2 | --------------------------------------------------------------------------------