├── .Rbuildignore ├── .aspell ├── DBI.rds └── defaults.R ├── .cproject ├── .github ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── move.yml ├── security.md └── workflows │ ├── R-CMD-check-dev.yaml │ ├── R-CMD-check-status.yaml │ ├── R-CMD-check.yaml │ ├── check │ └── action.yml │ ├── commit │ └── action.yml │ ├── covr │ └── action.yml │ ├── custom │ ├── after-install │ │ └── action.yml │ └── before-install │ │ └── action.yml │ ├── dep-matrix │ └── action.yml │ ├── dep-suggests-matrix │ ├── action.R │ └── action.yml │ ├── fledge.yaml │ ├── get-extra │ └── action.yml │ ├── git-identity │ └── action.yml │ ├── install │ └── action.yml │ ├── lock.yaml │ ├── matrix-check │ └── action.yml │ ├── pkgdown-build │ └── action.yml │ ├── pkgdown-deploy │ └── action.yml │ ├── pkgdown.yaml │ ├── pr-commands.yaml │ ├── rate-limit │ └── action.yml │ ├── revdep.yaml │ ├── rhub.yaml │ ├── roxygenize │ └── action.yml │ ├── style │ └── action.yml │ ├── update-snapshots │ └── action.yml │ ├── upgrade.yaml │ └── versions-matrix │ ├── action.R │ └── action.yml ├── .gitignore ├── .gitpod.yml ├── CMakeLists.txt ├── DESCRIPTION ├── LICENSE.md ├── NAMESPACE ├── NEWS.md ├── R ├── SQLKeywords_SQLiteConnection.R ├── SQLite.R ├── SQLiteConnection.R ├── SQLiteDriver.R ├── SQLiteResult.R ├── coerce.R ├── compatRowNames.R ├── copy.R ├── cpp11.R ├── datasetsDb.R ├── dbAppendTable_SQLiteConnection.R ├── dbBeginTransaction.R ├── dbBegin_SQLiteConnection.R ├── dbBind_SQLiteResult.R ├── dbClearResult_SQLiteResult.R ├── dbColumnInfo_SQLiteResult.R ├── dbCommit_SQLiteConnection.R ├── dbConnect_SQLiteConnection.R ├── dbConnect_SQLiteDriver.R ├── dbDataType_SQLiteConnection.R ├── dbDataType_SQLiteDriver.R ├── dbDisconnect_SQLiteConnection.R ├── dbExistsTable_SQLiteConnection_Id.R ├── dbExistsTable_SQLiteConnection_character.R ├── dbFetch_SQLiteResult.R ├── dbGetException_SQLiteConnection.R ├── dbGetInfo_SQLiteConnection.R ├── dbGetInfo_SQLiteDriver.R ├── dbGetPreparedQuery.R ├── dbGetPreparedQuery_SQLiteConnection_character_data.frame.R ├── dbGetRowCount_SQLiteResult.R ├── dbGetRowsAffected_SQLiteResult.R ├── dbGetStatement_SQLiteResult.R ├── dbHasCompleted_SQLiteResult.R ├── dbIsValid_SQLiteConnection.R ├── dbIsValid_SQLiteDriver.R ├── dbIsValid_SQLiteResult.R ├── dbListResults_SQLiteConnection.R ├── dbListTables_SQLiteConnection.R ├── dbQuoteIdentifier_SQLiteConnection_SQL.R ├── dbQuoteIdentifier_SQLiteConnection_character.R ├── dbReadTable_SQLiteConnection_character.R ├── dbRemoveTable_SQLiteConnection_character.R ├── dbRollback_SQLiteConnection.R ├── dbSendPreparedQuery.R ├── dbSendPreparedQuery_SQLiteConnection_character_data.frame.R ├── dbSendQuery_SQLiteConnection_character.R ├── dbUnloadDriver_SQLiteDriver.R ├── dbUnquoteIdentifier_SQLiteConnection_SQL.R ├── dbWriteTable_SQLiteConnection_character_character.R ├── dbWriteTable_SQLiteConnection_character_data.frame.R ├── db_bind.R ├── deprecated.R ├── export.R ├── fetch_SQLiteResult.R ├── import-standalone-check_suggested.R ├── import-standalone-purrr.R ├── initExtension.R ├── initRegExp.R ├── isSQLKeyword_SQLiteConnection_character.R ├── make.db.names_SQLiteConnection_character.R ├── pkgconfig.R ├── show_SQLiteConnection.R ├── sqlData_SQLiteConnection.R ├── table.R ├── transactions.R ├── utils.R ├── version.R └── zzz.R ├── README.Rmd ├── README.md ├── RSQLite.Rproj ├── UPDATE.md ├── _pkgdown.yml ├── codecov.yml ├── cran-comments.md ├── data-raw ├── datasets.R └── upgrade.R ├── inst ├── WORDLIST └── db │ └── datasets.sqlite ├── man ├── SQLite.Rd ├── SQLiteConnection-class.Rd ├── SQLiteDriver-class.Rd ├── SQLiteResult-class.Rd ├── datasetsDb.Rd ├── dbBeginTransaction.Rd ├── dbListResults.Rd ├── dbReadTable.Rd ├── dbWriteTable.Rd ├── fetch.Rd ├── initExtension.Rd ├── initRegExp.Rd ├── isIdCurrent.Rd ├── keywords-dep.Rd ├── query-dep.Rd ├── reexports.Rd ├── rsqliteVersion.Rd ├── sqlite-transaction.Rd ├── sqliteBuildTableDefinition.Rd ├── sqliteCopyDatabase.Rd ├── sqliteQuickColumn.Rd └── sqliteSetBusyHandler.Rd ├── patch └── 0001-Adapt-include-paths.patch ├── revdep ├── .gitignore ├── README.md ├── cran.md ├── drake-analyze.R ├── drake-base.R ├── drake-deps.R ├── drake.R ├── failures.md ├── new-problems.md └── problems.md ├── src ├── .gitignore ├── CMakeLists.txt ├── DbColumn.cpp ├── DbColumn.dd ├── DbColumn.h ├── DbColumnDataSource.cpp ├── DbColumnDataSource.dd ├── DbColumnDataSource.h ├── DbColumnDataSourceFactory.cpp ├── DbColumnDataSourceFactory.dd ├── DbColumnDataSourceFactory.h ├── DbColumnDataType.h ├── DbColumnStorage.cpp ├── DbColumnStorage.dd ├── DbColumnStorage.h ├── DbConnection.cpp ├── DbConnection.dd ├── DbConnection.h ├── DbDataFrame.cpp ├── DbDataFrame.dd ├── DbDataFrame.h ├── DbResult.cpp ├── DbResult.dd ├── DbResult.h ├── DbResultImpl.h ├── DbResultImplDecl.h ├── Makevars ├── RSQLite.h ├── RSQLite_types.h ├── SqliteColumnDataSource.cpp ├── SqliteColumnDataSource.dd ├── SqliteColumnDataSource.h ├── SqliteColumnDataSourceFactory.cpp ├── SqliteColumnDataSourceFactory.dd ├── SqliteColumnDataSourceFactory.h ├── SqliteDataFrame.cpp ├── SqliteDataFrame.dd ├── SqliteDataFrame.h ├── SqliteResult.cpp ├── SqliteResult.dd ├── SqliteResult.h ├── SqliteResultImpl.cpp ├── SqliteResultImpl.dd ├── SqliteResultImpl.h ├── affinity.c ├── affinity.dd ├── affinity.h ├── connection.cpp ├── connection.dd ├── cpp11.cpp ├── cpp11.dd ├── deps.mk ├── ext-csv.c ├── ext-csv.dd ├── ext-math.c ├── ext-math.dd ├── ext-regexp.c ├── ext-regexp.dd ├── ext-series.c ├── ext-series.dd ├── ext-uuid.c ├── ext-uuid.dd ├── extensions.cpp ├── extensions.dd ├── import-file.c ├── import-file.dd ├── integer64.h ├── pch.h ├── result.cpp ├── result.dd ├── rsqlite.cpp ├── rsqlite.dd ├── sqlite3-cpp.h └── vendor │ ├── boost │ ├── algorithm │ │ └── string │ │ │ ├── case_conv.hpp │ │ │ ├── compare.hpp │ │ │ ├── concept.hpp │ │ │ ├── config.hpp │ │ │ ├── constants.hpp │ │ │ ├── detail │ │ │ ├── case_conv.hpp │ │ │ ├── find_format.hpp │ │ │ ├── find_format_all.hpp │ │ │ ├── find_format_store.hpp │ │ │ ├── finder.hpp │ │ │ ├── formatter.hpp │ │ │ ├── predicate.hpp │ │ │ ├── replace_storage.hpp │ │ │ ├── sequence.hpp │ │ │ └── util.hpp │ │ │ ├── erase.hpp │ │ │ ├── find.hpp │ │ │ ├── find_format.hpp │ │ │ ├── finder.hpp │ │ │ ├── formatter.hpp │ │ │ ├── predicate.hpp │ │ │ ├── replace.hpp │ │ │ ├── sequence_traits.hpp │ │ │ └── yes_no_type.hpp │ ├── array.hpp │ ├── assert.hpp │ ├── assert │ │ └── source_location.hpp │ ├── bind.hpp │ ├── bind │ │ ├── arg.hpp │ │ ├── bind.hpp │ │ ├── bind_cc.hpp │ │ ├── bind_mf2_cc.hpp │ │ ├── bind_mf_cc.hpp │ │ ├── bind_template.hpp │ │ ├── detail │ │ │ └── result_traits.hpp │ │ ├── mem_fn.hpp │ │ ├── mem_fn_cc.hpp │ │ ├── mem_fn_template.hpp │ │ ├── mem_fn_vw.hpp │ │ ├── placeholders.hpp │ │ ├── std_placeholders.hpp │ │ └── storage.hpp │ ├── call_traits.hpp │ ├── checked_delete.hpp │ ├── compressed_pair.hpp │ ├── concept │ │ ├── assert.hpp │ │ ├── detail │ │ │ ├── backward_compatibility.hpp │ │ │ ├── borland.hpp │ │ │ ├── concept_def.hpp │ │ │ ├── concept_undef.hpp │ │ │ ├── general.hpp │ │ │ ├── has_constraints.hpp │ │ │ └── msvc.hpp │ │ └── usage.hpp │ ├── concept_check.hpp │ ├── config.hpp │ ├── config │ │ ├── abi │ │ │ ├── borland_prefix.hpp │ │ │ ├── borland_suffix.hpp │ │ │ ├── msvc_prefix.hpp │ │ │ └── msvc_suffix.hpp │ │ ├── abi_prefix.hpp │ │ ├── abi_suffix.hpp │ │ ├── assert_cxx03.hpp │ │ ├── assert_cxx11.hpp │ │ ├── assert_cxx14.hpp │ │ ├── assert_cxx17.hpp │ │ ├── assert_cxx20.hpp │ │ ├── assert_cxx98.hpp │ │ ├── auto_link.hpp │ │ ├── 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 │ │ │ ├── complex.hpp │ │ │ ├── functional.hpp │ │ │ ├── memory.hpp │ │ │ └── utility.hpp │ │ ├── platform │ │ │ ├── aix.hpp │ │ │ ├── amigaos.hpp │ │ │ ├── beos.hpp │ │ │ ├── bsd.hpp │ │ │ ├── cloudabi.hpp │ │ │ ├── cray.hpp │ │ │ ├── cygwin.hpp │ │ │ ├── haiku.hpp │ │ │ ├── hpux.hpp │ │ │ ├── irix.hpp │ │ │ ├── linux.hpp │ │ │ ├── macos.hpp │ │ │ ├── qnxnto.hpp │ │ │ ├── solaris.hpp │ │ │ ├── symbian.hpp │ │ │ ├── vms.hpp │ │ │ ├── vxworks.hpp │ │ │ ├── wasm.hpp │ │ │ ├── win32.hpp │ │ │ └── zos.hpp │ │ ├── pragma_message.hpp │ │ ├── requires_threads.hpp │ │ ├── stdlib │ │ │ ├── dinkumware.hpp │ │ │ ├── libcomo.hpp │ │ │ ├── libcpp.hpp │ │ │ ├── libstdcpp3.hpp │ │ │ ├── modena.hpp │ │ │ ├── msl.hpp │ │ │ ├── roguewave.hpp │ │ │ ├── sgi.hpp │ │ │ ├── stlport.hpp │ │ │ ├── vacpp.hpp │ │ │ └── xlcpp_zos.hpp │ │ ├── user.hpp │ │ ├── warning_disable.hpp │ │ └── workaround.hpp │ ├── container │ │ ├── allocator_traits.hpp │ │ ├── container_fwd.hpp │ │ ├── detail │ │ │ ├── addressof.hpp │ │ │ ├── advanced_insert_int.hpp │ │ │ ├── algorithm.hpp │ │ │ ├── alloc_helpers.hpp │ │ │ ├── allocation_type.hpp │ │ │ ├── allocator_version_traits.hpp │ │ │ ├── config_begin.hpp │ │ │ ├── config_end.hpp │ │ │ ├── construct_in_place.hpp │ │ │ ├── copy_move_algo.hpp │ │ │ ├── destroyers.hpp │ │ │ ├── iterator.hpp │ │ │ ├── iterators.hpp │ │ │ ├── min_max.hpp │ │ │ ├── mpl.hpp │ │ │ ├── multiallocation_chain.hpp │ │ │ ├── next_capacity.hpp │ │ │ ├── placement_new.hpp │ │ │ ├── std_fwd.hpp │ │ │ ├── transform_iterator.hpp │ │ │ ├── type_traits.hpp │ │ │ ├── value_functors.hpp │ │ │ ├── value_init.hpp │ │ │ ├── variadic_templates_tools.hpp │ │ │ ├── version_type.hpp │ │ │ └── workaround.hpp │ │ ├── new_allocator.hpp │ │ ├── options.hpp │ │ ├── stable_vector.hpp │ │ ├── throw_exception.hpp │ │ └── vector.hpp │ ├── core │ │ ├── addressof.hpp │ │ ├── checked_delete.hpp │ │ ├── cmath.hpp │ │ ├── demangle.hpp │ │ ├── enable_if.hpp │ │ ├── ignore_unused.hpp │ │ ├── is_same.hpp │ │ ├── no_exceptions_support.hpp │ │ ├── noncopyable.hpp │ │ ├── ref.hpp │ │ ├── snprintf.hpp │ │ ├── swap.hpp │ │ ├── typeinfo.hpp │ │ └── use_default.hpp │ ├── cstdint.hpp │ ├── current_function.hpp │ ├── date_time │ │ ├── adjust_functors.hpp │ │ ├── c_time.hpp │ │ ├── compiler_config.hpp │ │ ├── constrained_value.hpp │ │ ├── date.hpp │ │ ├── date_clock_device.hpp │ │ ├── date_defs.hpp │ │ ├── date_duration.hpp │ │ ├── date_duration_types.hpp │ │ ├── date_facet.hpp │ │ ├── date_format_simple.hpp │ │ ├── date_formatting.hpp │ │ ├── date_formatting_limited.hpp │ │ ├── date_formatting_locales.hpp │ │ ├── date_generator_formatter.hpp │ │ ├── date_generator_parser.hpp │ │ ├── date_generators.hpp │ │ ├── date_iterator.hpp │ │ ├── date_names_put.hpp │ │ ├── date_parsing.hpp │ │ ├── dst_rules.hpp │ │ ├── filetime_functions.hpp │ │ ├── find_match.hpp │ │ ├── format_date_parser.hpp │ │ ├── gregorian │ │ │ ├── conversion.hpp │ │ │ ├── formatters.hpp │ │ │ ├── formatters_limited.hpp │ │ │ ├── greg_calendar.hpp │ │ │ ├── greg_date.hpp │ │ │ ├── greg_day.hpp │ │ │ ├── greg_day_of_year.hpp │ │ │ ├── greg_duration.hpp │ │ │ ├── greg_duration_types.hpp │ │ │ ├── greg_facet.hpp │ │ │ ├── greg_month.hpp │ │ │ ├── greg_weekday.hpp │ │ │ ├── greg_year.hpp │ │ │ ├── greg_ymd.hpp │ │ │ ├── gregorian.hpp │ │ │ ├── gregorian_io.hpp │ │ │ ├── gregorian_types.hpp │ │ │ └── parsers.hpp │ │ ├── gregorian_calendar.hpp │ │ ├── gregorian_calendar.ipp │ │ ├── int_adapter.hpp │ │ ├── iso_format.hpp │ │ ├── locale_config.hpp │ │ ├── microsec_time_clock.hpp │ │ ├── parse_format_base.hpp │ │ ├── period.hpp │ │ ├── period_formatter.hpp │ │ ├── period_parser.hpp │ │ ├── posix_time │ │ │ ├── conversion.hpp │ │ │ ├── date_duration_operators.hpp │ │ │ ├── posix_time.hpp │ │ │ ├── posix_time_config.hpp │ │ │ ├── posix_time_duration.hpp │ │ │ ├── posix_time_io.hpp │ │ │ ├── posix_time_legacy_io.hpp │ │ │ ├── posix_time_system.hpp │ │ │ ├── posix_time_types.hpp │ │ │ ├── ptime.hpp │ │ │ ├── time_formatters.hpp │ │ │ ├── time_formatters_limited.hpp │ │ │ ├── time_parsers.hpp │ │ │ └── time_period.hpp │ │ ├── special_defs.hpp │ │ ├── special_values_formatter.hpp │ │ ├── special_values_parser.hpp │ │ ├── string_convert.hpp │ │ ├── string_parse_tree.hpp │ │ ├── strings_from_facet.hpp │ │ ├── time.hpp │ │ ├── time_clock.hpp │ │ ├── time_defs.hpp │ │ ├── time_duration.hpp │ │ ├── time_facet.hpp │ │ ├── time_formatting_streams.hpp │ │ ├── time_iterator.hpp │ │ ├── time_parsing.hpp │ │ ├── time_resolution_traits.hpp │ │ ├── time_system_counted.hpp │ │ ├── time_system_split.hpp │ │ ├── wrapping_int.hpp │ │ └── year_month_day.hpp │ ├── detail │ │ ├── basic_pointerbuf.hpp │ │ ├── call_traits.hpp │ │ ├── compressed_pair.hpp │ │ ├── indirect_traits.hpp │ │ ├── is_incrementable.hpp │ │ ├── lcast_precision.hpp │ │ ├── select_type.hpp │ │ └── workaround.hpp │ ├── exception │ │ └── exception.hpp │ ├── get_pointer.hpp │ ├── integer.hpp │ ├── integer_fwd.hpp │ ├── integer_traits.hpp │ ├── intrusive │ │ ├── circular_slist_algorithms.hpp │ │ ├── detail │ │ │ ├── algo_type.hpp │ │ │ ├── algorithm.hpp │ │ │ ├── array_initializer.hpp │ │ │ ├── assert.hpp │ │ │ ├── common_slist_algorithms.hpp │ │ │ ├── config_begin.hpp │ │ │ ├── config_end.hpp │ │ │ ├── default_header_holder.hpp │ │ │ ├── ebo_functor_holder.hpp │ │ │ ├── equal_to_value.hpp │ │ │ ├── exception_disposer.hpp │ │ │ ├── function_detector.hpp │ │ │ ├── generic_hook.hpp │ │ │ ├── get_value_traits.hpp │ │ │ ├── has_member_function_callable_with.hpp │ │ │ ├── hook_traits.hpp │ │ │ ├── iiterator.hpp │ │ │ ├── is_stateful_value_traits.hpp │ │ │ ├── iterator.hpp │ │ │ ├── key_nodeptr_comp.hpp │ │ │ ├── minimal_pair_header.hpp │ │ │ ├── mpl.hpp │ │ │ ├── node_cloner_disposer.hpp │ │ │ ├── node_holder.hpp │ │ │ ├── parent_from_member.hpp │ │ │ ├── reverse_iterator.hpp │ │ │ ├── simple_disposers.hpp │ │ │ ├── size_holder.hpp │ │ │ ├── slist_iterator.hpp │ │ │ ├── slist_node.hpp │ │ │ ├── std_fwd.hpp │ │ │ ├── tree_value_compare.hpp │ │ │ ├── twin.hpp │ │ │ ├── uncast.hpp │ │ │ ├── value_functors.hpp │ │ │ └── workaround.hpp │ │ ├── intrusive_fwd.hpp │ │ ├── linear_slist_algorithms.hpp │ │ ├── link_mode.hpp │ │ ├── options.hpp │ │ ├── pack_options.hpp │ │ ├── pointer_rebind.hpp │ │ ├── pointer_traits.hpp │ │ ├── slist.hpp │ │ └── slist_hook.hpp │ ├── io │ │ └── ios_state.hpp │ ├── io_fwd.hpp │ ├── is_placeholder.hpp │ ├── iterator │ │ ├── advance.hpp │ │ ├── detail │ │ │ ├── config_def.hpp │ │ │ ├── config_undef.hpp │ │ │ ├── enable_if.hpp │ │ │ └── facade_iterator_category.hpp │ │ ├── distance.hpp │ │ ├── interoperable.hpp │ │ ├── iterator_adaptor.hpp │ │ ├── iterator_categories.hpp │ │ ├── iterator_concepts.hpp │ │ ├── iterator_facade.hpp │ │ ├── iterator_traits.hpp │ │ ├── minimum_category.hpp │ │ ├── reverse_iterator.hpp │ │ └── transform_iterator.hpp │ ├── lexical_cast.hpp │ ├── lexical_cast │ │ ├── bad_lexical_cast.hpp │ │ ├── detail │ │ │ ├── converter_lexical.hpp │ │ │ ├── converter_lexical_streams.hpp │ │ │ ├── converter_numeric.hpp │ │ │ ├── inf_nan.hpp │ │ │ ├── is_character.hpp │ │ │ ├── lcast_char_constants.hpp │ │ │ ├── lcast_unsigned_converters.hpp │ │ │ └── widest_char.hpp │ │ └── try_lexical_convert.hpp │ ├── limits.hpp │ ├── move │ │ ├── adl_move_swap.hpp │ │ ├── algo │ │ │ ├── adaptive_merge.hpp │ │ │ ├── detail │ │ │ │ ├── adaptive_sort_merge.hpp │ │ │ │ ├── basic_op.hpp │ │ │ │ ├── heap_sort.hpp │ │ │ │ ├── insertion_sort.hpp │ │ │ │ ├── is_sorted.hpp │ │ │ │ ├── merge.hpp │ │ │ │ ├── merge_sort.hpp │ │ │ │ ├── search.hpp │ │ │ │ └── set_difference.hpp │ │ │ ├── move.hpp │ │ │ ├── predicate.hpp │ │ │ └── unique.hpp │ │ ├── core.hpp │ │ ├── detail │ │ │ ├── addressof.hpp │ │ │ ├── config_begin.hpp │ │ │ ├── config_end.hpp │ │ │ ├── destruct_n.hpp │ │ │ ├── force_ptr.hpp │ │ │ ├── fwd_macros.hpp │ │ │ ├── iterator_to_raw_pointer.hpp │ │ │ ├── iterator_traits.hpp │ │ │ ├── meta_utils.hpp │ │ │ ├── meta_utils_core.hpp │ │ │ ├── move_helpers.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 │ │ ├── traits.hpp │ │ └── utility_core.hpp │ ├── mpl │ │ ├── always.hpp │ │ ├── and.hpp │ │ ├── apply.hpp │ │ ├── apply_fwd.hpp │ │ ├── apply_wrap.hpp │ │ ├── arg.hpp │ │ ├── arg_fwd.hpp │ │ ├── assert.hpp │ │ ├── aux_ │ │ │ ├── adl_barrier.hpp │ │ │ ├── arg_typedef.hpp │ │ │ ├── arithmetic_op.hpp │ │ │ ├── arity.hpp │ │ │ ├── arity_spec.hpp │ │ │ ├── common_name_wknd.hpp │ │ │ ├── comparison_op.hpp │ │ │ ├── config │ │ │ │ ├── adl.hpp │ │ │ │ ├── arrays.hpp │ │ │ │ ├── bcc.hpp │ │ │ │ ├── bind.hpp │ │ │ │ ├── compiler.hpp │ │ │ │ ├── ctps.hpp │ │ │ │ ├── dmc_ambiguous_ctps.hpp │ │ │ │ ├── dtp.hpp │ │ │ │ ├── eti.hpp │ │ │ │ ├── forwarding.hpp │ │ │ │ ├── gcc.hpp │ │ │ │ ├── gpu.hpp │ │ │ │ ├── has_apply.hpp │ │ │ │ ├── has_xxx.hpp │ │ │ │ ├── integral.hpp │ │ │ │ ├── intel.hpp │ │ │ │ ├── lambda.hpp │ │ │ │ ├── msvc.hpp │ │ │ │ ├── msvc_typename.hpp │ │ │ │ ├── nttp.hpp │ │ │ │ ├── overload_resolution.hpp │ │ │ │ ├── pp_counter.hpp │ │ │ │ ├── preprocessor.hpp │ │ │ │ ├── static_constant.hpp │ │ │ │ ├── ttp.hpp │ │ │ │ ├── use_preprocessed.hpp │ │ │ │ └── workaround.hpp │ │ │ ├── count_args.hpp │ │ │ ├── full_lambda.hpp │ │ │ ├── has_apply.hpp │ │ │ ├── has_rebind.hpp │ │ │ ├── has_tag.hpp │ │ │ ├── has_type.hpp │ │ │ ├── include_preprocessed.hpp │ │ │ ├── integral_wrapper.hpp │ │ │ ├── is_msvc_eti_arg.hpp │ │ │ ├── lambda_arity_param.hpp │ │ │ ├── lambda_no_ctps.hpp │ │ │ ├── lambda_support.hpp │ │ │ ├── largest_int.hpp │ │ │ ├── logical_op.hpp │ │ │ ├── msvc_dtw.hpp │ │ │ ├── msvc_eti_base.hpp │ │ │ ├── msvc_is_class.hpp │ │ │ ├── msvc_never_true.hpp │ │ │ ├── na.hpp │ │ │ ├── na_assert.hpp │ │ │ ├── na_fwd.hpp │ │ │ ├── na_spec.hpp │ │ │ ├── nested_type_wknd.hpp │ │ │ ├── nttp_decl.hpp │ │ │ ├── numeric_cast_utils.hpp │ │ │ ├── numeric_op.hpp │ │ │ ├── preprocessed │ │ │ │ ├── bcc │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── bcc551 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── bcc_pre590 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── dmc │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── gcc │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── msvc60 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── msvc70 │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── mwcw │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── no_ctps │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ ├── no_ttp │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ │ └── plain │ │ │ │ │ ├── advance_backward.hpp │ │ │ │ │ ├── advance_forward.hpp │ │ │ │ │ ├── and.hpp │ │ │ │ │ ├── apply.hpp │ │ │ │ │ ├── apply_fwd.hpp │ │ │ │ │ ├── apply_wrap.hpp │ │ │ │ │ ├── arg.hpp │ │ │ │ │ ├── basic_bind.hpp │ │ │ │ │ ├── bind.hpp │ │ │ │ │ ├── bind_fwd.hpp │ │ │ │ │ ├── bitand.hpp │ │ │ │ │ ├── bitor.hpp │ │ │ │ │ ├── bitxor.hpp │ │ │ │ │ ├── deque.hpp │ │ │ │ │ ├── divides.hpp │ │ │ │ │ ├── equal_to.hpp │ │ │ │ │ ├── fold_impl.hpp │ │ │ │ │ ├── full_lambda.hpp │ │ │ │ │ ├── greater.hpp │ │ │ │ │ ├── greater_equal.hpp │ │ │ │ │ ├── inherit.hpp │ │ │ │ │ ├── iter_fold_if_impl.hpp │ │ │ │ │ ├── iter_fold_impl.hpp │ │ │ │ │ ├── lambda_no_ctps.hpp │ │ │ │ │ ├── less.hpp │ │ │ │ │ ├── less_equal.hpp │ │ │ │ │ ├── list.hpp │ │ │ │ │ ├── list_c.hpp │ │ │ │ │ ├── map.hpp │ │ │ │ │ ├── minus.hpp │ │ │ │ │ ├── modulus.hpp │ │ │ │ │ ├── not_equal_to.hpp │ │ │ │ │ ├── or.hpp │ │ │ │ │ ├── placeholders.hpp │ │ │ │ │ ├── plus.hpp │ │ │ │ │ ├── quote.hpp │ │ │ │ │ ├── reverse_fold_impl.hpp │ │ │ │ │ ├── reverse_iter_fold_impl.hpp │ │ │ │ │ ├── set.hpp │ │ │ │ │ ├── set_c.hpp │ │ │ │ │ ├── shift_left.hpp │ │ │ │ │ ├── shift_right.hpp │ │ │ │ │ ├── template_arity.hpp │ │ │ │ │ ├── times.hpp │ │ │ │ │ ├── unpack_args.hpp │ │ │ │ │ ├── vector.hpp │ │ │ │ │ └── vector_c.hpp │ │ │ ├── preprocessor │ │ │ │ ├── add.hpp │ │ │ │ ├── def_params_tail.hpp │ │ │ │ ├── default_params.hpp │ │ │ │ ├── enum.hpp │ │ │ │ ├── ext_params.hpp │ │ │ │ ├── filter_params.hpp │ │ │ │ ├── params.hpp │ │ │ │ ├── partial_spec_params.hpp │ │ │ │ ├── range.hpp │ │ │ │ ├── repeat.hpp │ │ │ │ ├── sub.hpp │ │ │ │ └── tuple.hpp │ │ │ ├── static_cast.hpp │ │ │ ├── template_arity.hpp │ │ │ ├── template_arity_fwd.hpp │ │ │ ├── type_wrapper.hpp │ │ │ ├── value_wknd.hpp │ │ │ └── yes_no.hpp │ │ ├── bind.hpp │ │ ├── bind_fwd.hpp │ │ ├── bool.hpp │ │ ├── bool_fwd.hpp │ │ ├── equal_to.hpp │ │ ├── eval_if.hpp │ │ ├── has_xxx.hpp │ │ ├── identity.hpp │ │ ├── if.hpp │ │ ├── int.hpp │ │ ├── int_fwd.hpp │ │ ├── integral_c.hpp │ │ ├── integral_c_fwd.hpp │ │ ├── integral_c_tag.hpp │ │ ├── is_placeholder.hpp │ │ ├── lambda.hpp │ │ ├── lambda_fwd.hpp │ │ ├── less.hpp │ │ ├── limits │ │ │ └── arity.hpp │ │ ├── logical.hpp │ │ ├── multiplies.hpp │ │ ├── next.hpp │ │ ├── next_prior.hpp │ │ ├── not.hpp │ │ ├── numeric_cast.hpp │ │ ├── or.hpp │ │ ├── placeholders.hpp │ │ ├── protect.hpp │ │ ├── quote.hpp │ │ ├── tag.hpp │ │ ├── times.hpp │ │ ├── void.hpp │ │ └── void_fwd.hpp │ ├── next_prior.hpp │ ├── noncopyable.hpp │ ├── numeric │ │ └── conversion │ │ │ ├── bounds.hpp │ │ │ ├── cast.hpp │ │ │ ├── conversion_traits.hpp │ │ │ ├── converter.hpp │ │ │ ├── converter_policies.hpp │ │ │ ├── detail │ │ │ ├── bounds.hpp │ │ │ ├── conversion_traits.hpp │ │ │ ├── converter.hpp │ │ │ ├── int_float_mixture.hpp │ │ │ ├── is_subranged.hpp │ │ │ ├── meta.hpp │ │ │ ├── numeric_cast_traits.hpp │ │ │ ├── old_numeric_cast.hpp │ │ │ ├── preprocessed │ │ │ │ ├── numeric_cast_traits_common.hpp │ │ │ │ └── numeric_cast_traits_long_long.hpp │ │ │ ├── sign_mixture.hpp │ │ │ └── udt_builtin_mixture.hpp │ │ │ ├── int_float_mixture_enum.hpp │ │ │ ├── numeric_cast_traits.hpp │ │ │ ├── sign_mixture_enum.hpp │ │ │ └── udt_builtin_mixture_enum.hpp │ ├── operators.hpp │ ├── pointee.hpp │ ├── predef │ │ ├── detail │ │ │ ├── os_detected.h │ │ │ ├── platform_detected.h │ │ │ └── test.h │ │ ├── make.h │ │ ├── os │ │ │ ├── ios.h │ │ │ └── windows.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_number.h │ ├── preprocessor │ │ ├── arithmetic │ │ │ ├── add.hpp │ │ │ ├── dec.hpp │ │ │ ├── detail │ │ │ │ ├── div_base.hpp │ │ │ │ ├── is_1_number.hpp │ │ │ │ ├── is_maximum_number.hpp │ │ │ │ ├── is_minimum_number.hpp │ │ │ │ └── maximum_number.hpp │ │ │ ├── inc.hpp │ │ │ ├── limits │ │ │ │ ├── dec_1024.hpp │ │ │ │ ├── dec_256.hpp │ │ │ │ ├── dec_512.hpp │ │ │ │ ├── inc_1024.hpp │ │ │ │ ├── inc_256.hpp │ │ │ │ └── inc_512.hpp │ │ │ ├── mod.hpp │ │ │ └── sub.hpp │ │ ├── array │ │ │ ├── data.hpp │ │ │ ├── elem.hpp │ │ │ └── size.hpp │ │ ├── cat.hpp │ │ ├── comma_if.hpp │ │ ├── comparison │ │ │ ├── equal.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 │ │ │ ├── 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 │ │ │ └── error.hpp │ │ ├── dec.hpp │ │ ├── detail │ │ │ ├── auto_rec.hpp │ │ │ ├── check.hpp │ │ │ ├── dmc │ │ │ │ └── auto_rec.hpp │ │ │ ├── is_binary.hpp │ │ │ └── limits │ │ │ │ ├── auto_rec_1024.hpp │ │ │ │ ├── auto_rec_256.hpp │ │ │ │ └── auto_rec_512.hpp │ │ ├── empty.hpp │ │ ├── enum_shifted_params.hpp │ │ ├── expr_if.hpp │ │ ├── facilities │ │ │ ├── check_empty.hpp │ │ │ ├── detail │ │ │ │ └── is_empty.hpp │ │ │ ├── empty.hpp │ │ │ ├── expand.hpp │ │ │ ├── identity.hpp │ │ │ ├── intercept.hpp │ │ │ ├── is_1.hpp │ │ │ ├── is_empty.hpp │ │ │ ├── is_empty_variadic.hpp │ │ │ ├── limits │ │ │ │ ├── intercept_1024.hpp │ │ │ │ ├── intercept_256.hpp │ │ │ │ └── intercept_512.hpp │ │ │ └── overload.hpp │ │ ├── identity.hpp │ │ ├── inc.hpp │ │ ├── iterate.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 │ │ ├── list │ │ │ ├── adt.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 │ │ │ ├── fold_left.hpp │ │ │ ├── fold_right.hpp │ │ │ ├── for_each_i.hpp │ │ │ ├── limits │ │ │ │ ├── fold_left_1024.hpp │ │ │ │ ├── fold_left_256.hpp │ │ │ │ └── fold_left_512.hpp │ │ │ └── reverse.hpp │ │ ├── logical │ │ │ ├── and.hpp │ │ │ ├── bitand.hpp │ │ │ ├── bitor.hpp │ │ │ ├── bool.hpp │ │ │ ├── compl.hpp │ │ │ ├── limits │ │ │ │ ├── bool_1024.hpp │ │ │ │ ├── bool_256.hpp │ │ │ │ └── bool_512.hpp │ │ │ └── not.hpp │ │ ├── punctuation │ │ │ ├── comma.hpp │ │ │ ├── comma_if.hpp │ │ │ ├── detail │ │ │ │ └── is_begin_parens.hpp │ │ │ └── is_begin_parens.hpp │ │ ├── repeat.hpp │ │ ├── repetition │ │ │ ├── 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_binary_params.hpp │ │ │ ├── enum_params.hpp │ │ │ ├── enum_shifted_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 │ │ ├── seq │ │ │ ├── cat.hpp │ │ │ ├── detail │ │ │ │ ├── is_empty.hpp │ │ │ │ ├── limits │ │ │ │ │ ├── split_1024.hpp │ │ │ │ │ ├── split_256.hpp │ │ │ │ │ └── split_512.hpp │ │ │ │ └── split.hpp │ │ │ ├── elem.hpp │ │ │ ├── enum.hpp │ │ │ ├── first_n.hpp │ │ │ ├── fold_left.hpp │ │ │ ├── for_each_i.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 │ │ │ │ ├── size_1024.hpp │ │ │ │ ├── size_256.hpp │ │ │ │ └── size_512.hpp │ │ │ ├── rest_n.hpp │ │ │ ├── seq.hpp │ │ │ ├── size.hpp │ │ │ ├── subseq.hpp │ │ │ └── transform.hpp │ │ ├── slot │ │ │ ├── detail │ │ │ │ ├── counter.hpp │ │ │ │ ├── def.hpp │ │ │ │ ├── shared.hpp │ │ │ │ ├── slot1.hpp │ │ │ │ ├── slot2.hpp │ │ │ │ ├── slot3.hpp │ │ │ │ ├── slot4.hpp │ │ │ │ └── slot5.hpp │ │ │ └── slot.hpp │ │ ├── stringize.hpp │ │ ├── tuple │ │ │ ├── detail │ │ │ │ └── is_single_return.hpp │ │ │ ├── eat.hpp │ │ │ ├── elem.hpp │ │ │ ├── limits │ │ │ │ ├── to_list_128.hpp │ │ │ │ ├── to_list_256.hpp │ │ │ │ └── to_list_64.hpp │ │ │ ├── rem.hpp │ │ │ ├── size.hpp │ │ │ └── to_list.hpp │ │ └── variadic │ │ │ ├── detail │ │ │ └── has_opt.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 │ ├── ptr_container │ │ ├── clone_allocator.hpp │ │ ├── detail │ │ │ ├── default_deleter.hpp │ │ │ ├── is_convertible.hpp │ │ │ ├── move.hpp │ │ │ ├── ptr_container_disable_deprecated.hpp │ │ │ ├── reversible_ptr_container.hpp │ │ │ ├── scoped_deleter.hpp │ │ │ ├── static_move_ptr.hpp │ │ │ ├── throw_exception.hpp │ │ │ └── void_ptr_iterator.hpp │ │ ├── exception.hpp │ │ ├── indirect_fun.hpp │ │ ├── nullable.hpp │ │ ├── ptr_sequence_adapter.hpp │ │ └── ptr_vector.hpp │ ├── range │ │ ├── algorithm │ │ │ └── equal.hpp │ │ ├── algorithm_ext │ │ │ └── for_each.hpp │ │ ├── as_literal.hpp │ │ ├── begin.hpp │ │ ├── concepts.hpp │ │ ├── config.hpp │ │ ├── const_iterator.hpp │ │ ├── detail │ │ │ ├── common.hpp │ │ │ ├── extract_optional_type.hpp │ │ │ ├── has_member_size.hpp │ │ │ ├── implementation_help.hpp │ │ │ ├── misc_concept.hpp │ │ │ ├── msvc_has_iterator_workaround.hpp │ │ │ ├── safe_bool.hpp │ │ │ ├── sfinae.hpp │ │ │ └── str_types.hpp │ │ ├── difference_type.hpp │ │ ├── distance.hpp │ │ ├── empty.hpp │ │ ├── end.hpp │ │ ├── functions.hpp │ │ ├── has_range_iterator.hpp │ │ ├── iterator.hpp │ │ ├── iterator_range.hpp │ │ ├── iterator_range_core.hpp │ │ ├── iterator_range_io.hpp │ │ ├── mutable_iterator.hpp │ │ ├── range_fwd.hpp │ │ ├── rbegin.hpp │ │ ├── rend.hpp │ │ ├── reverse_iterator.hpp │ │ ├── size.hpp │ │ ├── size_type.hpp │ │ └── value_type.hpp │ ├── ref.hpp │ ├── scoped_array.hpp │ ├── scoped_ptr.hpp │ ├── shared_ptr.hpp │ ├── smart_ptr │ │ ├── bad_weak_ptr.hpp │ │ ├── detail │ │ │ ├── lightweight_mutex.hpp │ │ │ ├── local_counted_base.hpp │ │ │ ├── local_sp_deleter.hpp │ │ │ ├── lwm_pthreads.hpp │ │ │ ├── lwm_std_mutex.hpp │ │ │ ├── lwm_win32_cs.hpp │ │ │ ├── operator_bool.hpp │ │ │ ├── quick_allocator.hpp │ │ │ ├── shared_count.hpp │ │ │ ├── sp_convertible.hpp │ │ │ ├── sp_counted_base.hpp │ │ │ ├── sp_counted_base_acc_ia64.hpp │ │ │ ├── sp_counted_base_aix.hpp │ │ │ ├── sp_counted_base_cw_ppc.hpp │ │ │ ├── sp_counted_base_gcc_atomic.hpp │ │ │ ├── sp_counted_base_gcc_ia64.hpp │ │ │ ├── sp_counted_base_gcc_mips.hpp │ │ │ ├── sp_counted_base_gcc_ppc.hpp │ │ │ ├── sp_counted_base_gcc_sparc.hpp │ │ │ ├── sp_counted_base_gcc_x86.hpp │ │ │ ├── sp_counted_base_nt.hpp │ │ │ ├── sp_counted_base_pt.hpp │ │ │ ├── sp_counted_base_snc_ps3.hpp │ │ │ ├── sp_counted_base_spin.hpp │ │ │ ├── sp_counted_base_std_atomic.hpp │ │ │ ├── sp_counted_base_sync.hpp │ │ │ ├── sp_counted_base_vacpp_ppc.hpp │ │ │ ├── sp_counted_base_w32.hpp │ │ │ ├── sp_counted_impl.hpp │ │ │ ├── sp_disable_deprecated.hpp │ │ │ ├── sp_has_gcc_intrinsics.hpp │ │ │ ├── sp_has_sync_intrinsics.hpp │ │ │ ├── sp_interlocked.hpp │ │ │ ├── sp_noexcept.hpp │ │ │ ├── sp_nullptr_t.hpp │ │ │ ├── sp_obsolete.hpp │ │ │ ├── sp_thread_pause.hpp │ │ │ ├── sp_thread_sleep.hpp │ │ │ ├── sp_thread_yield.hpp │ │ │ ├── sp_typeinfo_.hpp │ │ │ ├── sp_win32_sleep.hpp │ │ │ ├── spinlock.hpp │ │ │ ├── spinlock_gcc_arm.hpp │ │ │ ├── spinlock_gcc_atomic.hpp │ │ │ ├── spinlock_nt.hpp │ │ │ ├── spinlock_pool.hpp │ │ │ ├── spinlock_pt.hpp │ │ │ ├── spinlock_std_atomic.hpp │ │ │ ├── spinlock_sync.hpp │ │ │ ├── spinlock_w32.hpp │ │ │ └── yield_k.hpp │ │ ├── scoped_array.hpp │ │ ├── scoped_ptr.hpp │ │ └── shared_ptr.hpp │ ├── static_assert.hpp │ ├── swap.hpp │ ├── throw_exception.hpp │ ├── token_functions.hpp │ ├── token_iterator.hpp │ ├── tokenizer.hpp │ ├── type.hpp │ ├── type_traits │ │ ├── add_const.hpp │ │ ├── add_lvalue_reference.hpp │ │ ├── add_pointer.hpp │ │ ├── add_reference.hpp │ │ ├── add_rvalue_reference.hpp │ │ ├── add_volatile.hpp │ │ ├── alignment_of.hpp │ │ ├── conditional.hpp │ │ ├── conversion_traits.hpp │ │ ├── declval.hpp │ │ ├── detail │ │ │ ├── bool_trait_undef.hpp │ │ │ ├── config.hpp │ │ │ ├── has_binary_operator.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 │ │ │ └── yes_no_type.hpp │ │ ├── enable_if.hpp │ │ ├── function_traits.hpp │ │ ├── has_left_shift.hpp │ │ ├── has_minus.hpp │ │ ├── has_minus_assign.hpp │ │ ├── has_plus.hpp │ │ ├── has_plus_assign.hpp │ │ ├── has_right_shift.hpp │ │ ├── integral_constant.hpp │ │ ├── intrinsics.hpp │ │ ├── is_abstract.hpp │ │ ├── is_arithmetic.hpp │ │ ├── is_array.hpp │ │ ├── is_base_and_derived.hpp │ │ ├── is_base_of.hpp │ │ ├── is_class.hpp │ │ ├── is_complete.hpp │ │ ├── is_const.hpp │ │ ├── is_convertible.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_lvalue_reference.hpp │ │ ├── is_member_function_pointer.hpp │ │ ├── is_member_pointer.hpp │ │ ├── is_pod.hpp │ │ ├── is_pointer.hpp │ │ ├── is_polymorphic.hpp │ │ ├── is_reference.hpp │ │ ├── is_rvalue_reference.hpp │ │ ├── is_same.hpp │ │ ├── is_scalar.hpp │ │ ├── is_signed.hpp │ │ ├── is_union.hpp │ │ ├── is_unsigned.hpp │ │ ├── is_void.hpp │ │ ├── is_volatile.hpp │ │ ├── make_unsigned.hpp │ │ ├── make_void.hpp │ │ ├── remove_bounds.hpp │ │ ├── remove_const.hpp │ │ ├── remove_cv.hpp │ │ ├── remove_extent.hpp │ │ ├── remove_pointer.hpp │ │ ├── remove_reference.hpp │ │ ├── remove_volatile.hpp │ │ ├── type_identity.hpp │ │ └── type_with_alignment.hpp │ ├── utility.hpp │ ├── utility │ │ ├── base_from_member.hpp │ │ ├── binary.hpp │ │ ├── detail │ │ │ ├── result_of_iterate.hpp │ │ │ └── result_of_variadic.hpp │ │ ├── enable_if.hpp │ │ ├── identity_type.hpp │ │ └── result_of.hpp │ ├── version.hpp │ ├── visit_each.hpp │ └── winapi │ │ ├── basic_types.hpp │ │ ├── config.hpp │ │ ├── detail │ │ ├── footer.hpp │ │ └── header.hpp │ │ └── time.hpp │ ├── extensions │ ├── csv.c │ ├── extension-functions.c │ ├── regexp.c │ ├── series.c │ ├── sqlite3ext.h │ └── uuid.c │ └── sqlite3 │ ├── sqlite3.c │ ├── sqlite3.dd │ └── sqlite3.h ├── tests ├── testthat.R └── testthat │ ├── dat-n.txt │ ├── dat-rn.txt │ ├── helper-DBItest.R │ ├── helper-astyle.R │ ├── helper-memdb.R │ ├── helper-reexport.R │ ├── helper-tibble.R │ ├── setup.R │ ├── test-DBItest.R │ ├── test-affinity.R │ ├── test-astyle.R │ ├── test-basic-types.R │ ├── test-blob.R │ ├── test-column-info.R │ ├── test-data-type.R │ ├── test-dbClearResult.R │ ├── test-dbConnect.R │ ├── test-dbSendQuery.R │ ├── test-dbWriteTable.R │ ├── test-dbWriteTableAutoincrement.R │ ├── test-encoding.R │ ├── test-error.R │ ├── test-exception.R │ ├── test-extendedTypes.R │ ├── test-field-types.R │ ├── test-json.R │ ├── test-readonly.R │ ├── test-regularExpressions.R │ ├── test-sd.R │ ├── test-sqliteCopyDatabase.R │ ├── test-sqliteQuickColumn.R │ ├── test-transactions.R │ └── test-uuid.R └── vignettes └── RSQLite.Rmd /.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^\.github$ 2 | config.log 3 | config.cache 4 | config.status 5 | a.out.dSYM 6 | .gitignore 7 | ^.*\.Rproj$ 8 | ^\.Rproj\.user$ 9 | ^cran-comments\.md$ 10 | ^data-raw$ 11 | ^src/vendor/sqlite3/.*\.o$ 12 | ^src/vendor/sqlite3/.*\.a$ 13 | ^revdep$ 14 | ^src/.*\.d$ 15 | ^src/Makevars\.local$ 16 | ^\.metadata$ 17 | ^\.settings$ 18 | ^Debug$ 19 | ^Release$ 20 | ^src/[.].*$ 21 | ^.*[.]pro 22 | ^\.idea$ 23 | ^CMakeLists\.txt$ 24 | ^clion-test\.R$ 25 | ^_pkgdown\.yml$ 26 | ^docs$ 27 | ^README\.Rmd$ 28 | ^UPDATE\.md$ 29 | ^cmake-build-debug$ 30 | ^build\.sh$ 31 | ^codecov\.yml$ 32 | ^src/.*\.gch$ 33 | .*\.orig$ 34 | ^CRAN-RELEASE$ 35 | ^\.vscode$ 36 | ^LICENSE\.md$ 37 | ^CODE_OF_CONDUCT\.md$ 38 | ^tests/testthat/testthat-problems\.rds$ 39 | ^CRAN-SUBMISSION$ 40 | ^\.gitpod\.Dockerfile$ 41 | ^\.gitpod\.yml$ 42 | ^src/CMakeLists\.txt$ 43 | ^patch$ 44 | ^compile_commands\.json$ 45 | ^\.cache$ 46 | ^src/deps\.mk$ 47 | ^src/.*\.dd 48 | -------------------------------------------------------------------------------- /.aspell/DBI.rds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-dbi/RSQLite/f32a422845da7fa5cb85228f97d8cfb9846eb8f2/.aspell/DBI.rds -------------------------------------------------------------------------------- /.aspell/defaults.R: -------------------------------------------------------------------------------- 1 | Rd_files <- vignettes <- R_files <- description <- 2 | list(encoding = "UTF-8", 3 | language = "en", 4 | dictionaries = c("en_stats", "DBI")) 5 | -------------------------------------------------------------------------------- /.github/.gitignore: -------------------------------------------------------------------------------- 1 | /pkg.lock 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Please briefly describe your problem and what output you expect. If you have a question, please don't use this form. Instead, ask on or . 2 | 3 | Please include a minimal reproducible example (AKA a reprex). If you've never heard of a [reprex](https://reprex.tidyverse.org/) before, start by reading . 4 | 5 | --- 6 | 7 | Brief description of the problem 8 | 9 | ```r 10 | # insert reprex here 11 | ``` 12 | -------------------------------------------------------------------------------- /.github/move.yml: -------------------------------------------------------------------------------- 1 | # Configuration for move-issues bot - https://github.com/dessant/move-issues 2 | 3 | # Delete the command comment when it contains no other content 4 | deleteCommand: true 5 | 6 | # Close the source issue after moving 7 | closeSourceIssue: true 8 | 9 | # Lock the source issue after moving 10 | lockSourceIssue: false 11 | 12 | # Mention issue and comment authors 13 | mentionAuthors: true 14 | 15 | # Preserve mentions in the issue content 16 | keepContentMentions: true 17 | 18 | # Set custom aliases for targets 19 | # aliases: 20 | # r: repo 21 | # or: owner/repo 22 | -------------------------------------------------------------------------------- /.github/security.md: -------------------------------------------------------------------------------- 1 | # Process for reporting security vulnerabilities 2 | 3 | For reporting a security vulnerability, please e-mail the package maintainer at krlmlr+r@mailbox.org for further instructions. 4 | Do not include confidential information in the e-mail. 5 | -------------------------------------------------------------------------------- /.github/workflows/check/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to check an R package" 2 | inputs: 3 | results: 4 | description: Slug for check results 5 | required: true 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - uses: r-lib/actions/check-r-package@v2 11 | with: 12 | # Fails on R 3.6 on Windows, remove when this job is removed? 13 | args: 'c("--no-manual", "--as-cran", "--no-multiarch")' 14 | error-on: ${{ env.RCMDCHECK_ERROR_ON || '"note"' }} 15 | 16 | - name: Show test output 17 | if: always() 18 | run: | 19 | ## -- Show test output -- 20 | echo "::group::Test output" 21 | find check -name '*.Rout*' -exec head -n 1000000 '{}' \; || true 22 | echo "::endgroup::" 23 | shell: bash 24 | 25 | - name: Upload check results 26 | if: failure() 27 | uses: actions/upload-artifact@main 28 | with: 29 | name: ${{ inputs.results }}-results 30 | path: check 31 | -------------------------------------------------------------------------------- /.github/workflows/custom/after-install/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Custom steps to run after R packages are installed' 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | # Must happen after R is installed... 7 | - name: Define R CMD check error condition 8 | # Allow NOTEs on R 4.5 due to SET_TRUELENGTH, SET_GROWABLE_BIT and SETLENGTH from cpp11 9 | run: | 10 | if (getRversion() >= "4.5" && getRversion() < "4.6") { 11 | cat('RCMDCHECK_ERROR_ON="warning"\n', file = Sys.getenv("GITHUB_ENV"), append = TRUE) 12 | } 13 | shell: Rscript {0} 14 | -------------------------------------------------------------------------------- /.github/workflows/custom/before-install/action.yml: -------------------------------------------------------------------------------- 1 | name: 'Custom steps to run before R packages are installed' 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Define R CMD check error condition 7 | run: | 8 | echo '_R_CHECK_PKG_SIZES_=FALSE' | tee -a $GITHUB_ENV 9 | shell: bash 10 | -------------------------------------------------------------------------------- /.github/workflows/dep-suggests-matrix/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to compute a matrix with all suggested packages" 2 | outputs: 3 | matrix: 4 | description: "Generated matrix" 5 | value: ${{ steps.set-matrix.outputs.matrix }} 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - id: set-matrix 11 | run: | 12 | Rscript ./.github/workflows/dep-suggests-matrix/action.R 13 | shell: bash 14 | -------------------------------------------------------------------------------- /.github/workflows/get-extra/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to determine extra packages to be installed" 2 | outputs: 3 | packages: 4 | description: "List of extra packages" 5 | value: ${{ steps.get-extra.outputs.packages }} 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - name: Get extra packages 11 | id: get-extra 12 | run: | 13 | set -x 14 | packages=$( ( grep Config/gha/extra-packages DESCRIPTION || true ) | cut -d " " -f 2) 15 | echo packages=$packages >> $GITHUB_OUTPUT 16 | shell: bash 17 | -------------------------------------------------------------------------------- /.github/workflows/git-identity/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to set up a Git identity" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Configure Git identity 7 | run: | 8 | env | sort 9 | git config --local user.name "$GITHUB_ACTOR" 10 | git config --local user.email "$GITHUB_ACTOR@users.noreply.github.com" 11 | shell: bash 12 | -------------------------------------------------------------------------------- /.github/workflows/lock.yaml: -------------------------------------------------------------------------------- 1 | name: "Lock threads" 2 | permissions: 3 | issues: write 4 | pull-requests: write 5 | discussions: write 6 | on: 7 | workflow_dispatch: 8 | schedule: 9 | - cron: "37 2 * * *" 10 | 11 | jobs: 12 | lock: 13 | runs-on: ubuntu-24.04 14 | steps: 15 | - uses: krlmlr/lock-threads@patch-1 16 | with: 17 | github-token: ${{ github.token }} 18 | issue-inactive-days: "365" 19 | issue-lock-reason: "" 20 | issue-comment: > 21 | This old thread has been automatically locked. If you think you have 22 | found something related to this, please open a new issue and link to this 23 | old issue if necessary. 24 | -------------------------------------------------------------------------------- /.github/workflows/matrix-check/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to check a matrix with all R and OS versions, computed with the versions-matrix action" 2 | inputs: 3 | matrix: 4 | description: "Generated matrix" 5 | required: true 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - name: Install json2yaml 11 | run: | 12 | sudo npm install -g json2yaml 13 | shell: bash 14 | 15 | - run: | 16 | matrix='${{ inputs.matrix }}' 17 | if [ -n "${matrix}" ]; then 18 | echo $matrix | jq . 19 | echo $matrix | json2yaml 20 | else 21 | echo "No matrix found" 22 | fi 23 | shell: bash 24 | -------------------------------------------------------------------------------- /.github/workflows/pkgdown-build/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to build a pkgdown website" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Build site 7 | run: | 8 | pkgdown::build_site() 9 | shell: Rscript {0} 10 | -------------------------------------------------------------------------------- /.github/workflows/pkgdown-deploy/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to deploy a pkgdown website" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Deploy site 7 | uses: nick-fields/retry@v3 8 | with: 9 | timeout_minutes: 15 10 | max_attempts: 10 11 | command: | 12 | R -q -e 'pkgdown::deploy_to_branch(new_process = FALSE)' 13 | -------------------------------------------------------------------------------- /.github/workflows/rate-limit/action.yml: -------------------------------------------------------------------------------- 1 | name: "Check GitHub rate limits" 2 | inputs: 3 | token: # id of input 4 | description: GitHub token, pass secrets.GITHUB_TOKEN 5 | required: true 6 | 7 | runs: 8 | using: "composite" 9 | steps: 10 | - name: Check rate limits 11 | run: | 12 | curl -s --header "authorization: Bearer ${{ inputs.token }}" https://api.github.com/rate_limit 13 | shell: bash 14 | -------------------------------------------------------------------------------- /.github/workflows/roxygenize/action.yml: -------------------------------------------------------------------------------- 1 | name: "Action to create documentation with roxygen2" 2 | 3 | runs: 4 | using: "composite" 5 | steps: 6 | - name: Roxygenize 7 | run: | 8 | try(roxygen2::roxygenize()) 9 | shell: Rscript {0} 10 | -------------------------------------------------------------------------------- /.github/workflows/versions-matrix/action.yml: -------------------------------------------------------------------------------- 1 | name: "Actions to compute a matrix with all R and OS versions" 2 | 3 | outputs: 4 | matrix: 5 | description: "Generated matrix" 6 | value: ${{ steps.set-matrix.outputs.matrix }} 7 | 8 | runs: 9 | using: "composite" 10 | steps: 11 | - name: Install json2yaml 12 | run: | 13 | sudo npm install -g json2yaml 14 | shell: bash 15 | 16 | - id: set-matrix 17 | run: | 18 | Rscript ./.github/workflows/versions-matrix/action.R 19 | shell: bash 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | src/*.so 4 | src/*.d 5 | src/**/*.o 6 | src/**/*.a 7 | config.status 8 | a.out.dSYM 9 | autom4te.cache 10 | inst/doc 11 | /revdep/.cache.rds 12 | /.metadata 13 | /.settings 14 | /src/.* 15 | /src/*.h.gch 16 | /*.pro* 17 | /Debug/ 18 | .RData 19 | /clion-test.R 20 | /.drake 21 | .vscode/ 22 | CRAN-RELEASE 23 | tests/testthat/testthat-problems.rds 24 | CRAN-SUBMISSION 25 | /compile_commands.json 26 | /.cache/ 27 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # Generated by cynkrathis::use_cmakelists(), do not edit by hand 2 | # 3 | # Call: 4 | # quote(cynkrathis::use_cmakelists()) 5 | 6 | cmake_minimum_required(VERSION 3.14) 7 | project(RSQLite VERSION 0.1.0) 8 | 9 | set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 10 | 11 | add_subdirectory(src) 12 | -------------------------------------------------------------------------------- /R/SQLKeywords_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @include SQLiteConnection.R 2 | #' @rdname keywords-dep 3 | #' @usage NULL 4 | SQLKeywords_SQLiteConnection <- function(dbObj, ...) { 5 | .SQL92Keywords 6 | } 7 | #' @rdname keywords-dep 8 | #' @export 9 | setMethod("SQLKeywords", "SQLiteConnection", SQLKeywords_SQLiteConnection) 10 | -------------------------------------------------------------------------------- /R/SQLiteDriver.R: -------------------------------------------------------------------------------- 1 | #' @useDynLib RSQLite, .registration = TRUE 2 | #' @importFrom bit64 integer64 is.integer64 3 | #' @importFrom blob blob 4 | NULL 5 | 6 | #' Class SQLiteDriver (and methods) 7 | #' 8 | #' SQLiteDriver objects are created by [SQLite()], and used to select the 9 | #' correct method in [dbConnect()]. 10 | #' They are a superclass of the [DBIDriver-class] class, 11 | #' and used purely for dispatch. 12 | #' The "Usage" section lists the class methods overridden by \pkg{RSQLite}. 13 | #' The [dbUnloadDriver()] method is a null-op. 14 | #' 15 | #' @keywords internal 16 | #' @export 17 | setClass("SQLiteDriver", 18 | contains = "DBIDriver" 19 | ) 20 | 21 | # Set during installation time for the correct library 22 | PACKAGE_VERSION <- utils::packageVersion(utils::packageName()) 23 | -------------------------------------------------------------------------------- /R/SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' Class SQLiteResult (and methods) 2 | #' 3 | #' SQLiteDriver objects are created by [dbSendQuery()] or [dbSendStatement()], 4 | #' and encapsulate the result of an SQL statement (either `SELECT` or not). 5 | #' They are a superclass of the [DBIResult-class] class. 6 | #' The "Usage" section lists the class methods overridden by \pkg{RSQLite}. 7 | #' 8 | #' @seealso 9 | #' The corresponding generic functions 10 | #' [DBI::dbFetch()], [DBI::dbClearResult()], and [DBI::dbBind()], 11 | #' [DBI::dbColumnInfo()], [DBI::dbGetRowsAffected()], [DBI::dbGetRowCount()], 12 | #' [DBI::dbHasCompleted()], and [DBI::dbGetStatement()]. 13 | #' 14 | #' @export 15 | #' @keywords internal 16 | setClass("SQLiteResult", 17 | contains = "DBIResult", 18 | slots = list( 19 | sql = "character", 20 | ptr = "externalptr", 21 | conn = "SQLiteConnection", 22 | bigint = "character" 23 | ) 24 | ) 25 | -------------------------------------------------------------------------------- /R/compatRowNames.R: -------------------------------------------------------------------------------- 1 | compatRowNames <- function(row.names) { 2 | if (is.null(row.names)) { 3 | row.names <- FALSE 4 | } else if (is.numeric(row.names)) { 5 | warning_once("RSQLite: Passing numeric values to row.names is deprecated. Pass a logical or a column name.") 6 | row.names <- as.logical(row.names) 7 | } 8 | 9 | row.names 10 | } 11 | -------------------------------------------------------------------------------- /R/datasetsDb.R: -------------------------------------------------------------------------------- 1 | #' A sample sqlite database 2 | #' 3 | #' This database is bundled with the package, and contains all data frames 4 | #' in the datasets package. 5 | #' 6 | #' @export 7 | #' @examples 8 | #' library(DBI) 9 | #' db <- RSQLite::datasetsDb() 10 | #' dbListTables(db) 11 | #' 12 | #' dbReadTable(db, "CO2") 13 | #' dbGetQuery(db, "SELECT * FROM CO2 WHERE conc < 100") 14 | #' 15 | #' dbDisconnect(db) 16 | datasetsDb <- function() { 17 | dbConnect(SQLite(), system.file("db", "datasets.sqlite", package = "RSQLite"), 18 | flags = SQLITE_RO 19 | ) 20 | } 21 | -------------------------------------------------------------------------------- /R/dbAppendTable_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbAppendTable_SQLiteConnection <- function(conn, name, value, ..., 4 | row.names = NULL) { 5 | savepoint_id <- get_savepoint_id("dbAppendTable") 6 | dbBegin(conn, name = savepoint_id) 7 | on.exit(dbRollback(conn, name = savepoint_id)) 8 | 9 | out <- callNextMethod() 10 | 11 | on.exit(NULL) 12 | dbCommit(conn, name = savepoint_id) 13 | 14 | out 15 | } 16 | #' @rdname SQLiteConnection-class 17 | #' @export 18 | setMethod("dbAppendTable", "SQLiteConnection", dbAppendTable_SQLiteConnection) 19 | -------------------------------------------------------------------------------- /R/dbBeginTransaction.R: -------------------------------------------------------------------------------- 1 | #' Generic for creating a new transaction 2 | #' 3 | #' See method documentation for details. 4 | #' 5 | #' @export 6 | #' @param conn A `DBIConnection` object. 7 | #' @param ... Other arguments used by methods 8 | #' @keywords internal 9 | setGeneric("dbBeginTransaction", function(conn, ...) { 10 | .Deprecated("dbBegin", old = "dbBeginTransaction") 11 | dbBegin(conn, ...) 12 | }) 13 | -------------------------------------------------------------------------------- /R/dbBegin_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname sqlite-transaction 2 | #' @usage NULL 3 | dbBegin_SQLiteConnection <- function(conn, .name = NULL, ..., name = NULL) { 4 | name <- compat_name(name, .name) 5 | if (is.null(name)) { 6 | dbExecute(conn, "BEGIN") 7 | } else { 8 | dbExecute(conn, paste0("SAVEPOINT ", dbQuoteIdentifier(conn, name))) 9 | } 10 | invisible(TRUE) 11 | } 12 | #' @rdname sqlite-transaction 13 | #' @export 14 | setMethod("dbBegin", "SQLiteConnection", dbBegin_SQLiteConnection) 15 | -------------------------------------------------------------------------------- /R/dbBind_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbBind_SQLiteResult <- function(res, params, ...) { 4 | db_bind(res, as.list(params), ..., allow_named_superset = FALSE) 5 | } 6 | #' @rdname SQLiteResult-class 7 | #' @export 8 | setMethod("dbBind", "SQLiteResult", dbBind_SQLiteResult) 9 | -------------------------------------------------------------------------------- /R/dbClearResult_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbClearResult_SQLiteResult <- function(res, ...) { 4 | if (!dbIsValid(res)) { 5 | warningc("Expired, result set already closed") 6 | return(invisible(TRUE)) 7 | } 8 | result_release(res@ptr) 9 | res@conn@ref$result <- NULL 10 | invisible(TRUE) 11 | } 12 | #' @rdname SQLiteResult-class 13 | #' @export 14 | setMethod("dbClearResult", "SQLiteResult", dbClearResult_SQLiteResult) 15 | -------------------------------------------------------------------------------- /R/dbColumnInfo_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbColumnInfo_SQLiteResult <- function(res, ...) { 4 | df <- result_column_info(res@ptr) 5 | df 6 | } 7 | #' @rdname SQLiteResult-class 8 | #' @export 9 | setMethod("dbColumnInfo", "SQLiteResult", dbColumnInfo_SQLiteResult) 10 | -------------------------------------------------------------------------------- /R/dbCommit_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname sqlite-transaction 2 | #' @usage NULL 3 | dbCommit_SQLiteConnection <- function(conn, .name = NULL, ..., name = NULL) { 4 | name <- compat_name(name, .name) 5 | if (is.null(name)) { 6 | dbExecute(conn, "COMMIT") 7 | } else { 8 | dbExecute(conn, paste0("RELEASE SAVEPOINT ", dbQuoteIdentifier(conn, name))) 9 | } 10 | invisible(TRUE) 11 | } 12 | #' @rdname sqlite-transaction 13 | #' @export 14 | setMethod("dbCommit", "SQLiteConnection", dbCommit_SQLiteConnection) 15 | -------------------------------------------------------------------------------- /R/dbConnect_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLite 2 | #' @usage NULL 3 | dbConnect_SQLiteConnection <- function(drv, ...) { 4 | if (drv@dbname %in% c("", ":memory:", "file::memory:")) { 5 | stop("Can't clone a temporary database", call. = FALSE) 6 | } 7 | 8 | dbConnect(SQLite(), drv@dbname, 9 | vfs = drv@vfs, flags = drv@flags, 10 | loadable.extensions = drv@loadable.extensions 11 | ) 12 | } 13 | #' @rdname SQLite 14 | #' @export 15 | setMethod("dbConnect", "SQLiteConnection", dbConnect_SQLiteConnection) 16 | -------------------------------------------------------------------------------- /R/dbDataType_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbDataType_SQLiteConnection <- function(dbObj, obj, ...) { 4 | dbDataType(SQLite(), obj, extended_types = dbObj@extended_types, ...) 5 | } 6 | #' @rdname SQLiteConnection-class 7 | #' @export 8 | setMethod("dbDataType", "SQLiteConnection", dbDataType_SQLiteConnection) 9 | -------------------------------------------------------------------------------- /R/dbDataType_SQLiteDriver.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteDriver-class 2 | #' @usage NULL 3 | dbDataType_SQLiteDriver <- function(dbObj, obj, ..., extended_types = FALSE) { 4 | if (is.factor(obj)) { 5 | return("TEXT") 6 | } 7 | if (is.data.frame(obj)) { 8 | return(callNextMethod(dbObj, obj)) 9 | } 10 | if (is.integer64(obj)) { 11 | return("INTEGER") 12 | } 13 | if (extended_types && methods::is(obj, "Date")) { 14 | return("DATE") 15 | } 16 | if (extended_types && methods::is(obj, "POSIXct")) { 17 | return("TIMESTAMP") 18 | } 19 | if (extended_types && methods::is(obj, "hms")) { 20 | return("TIME") 21 | } 22 | 23 | switch(typeof(obj), 24 | integer = "INTEGER", 25 | double = "REAL", 26 | character = "TEXT", 27 | logical = "INTEGER", 28 | list = "BLOB", 29 | raw = "TEXT", 30 | stop("Unsupported type", call. = FALSE) 31 | ) 32 | } 33 | #' @rdname SQLiteDriver-class 34 | #' @export 35 | setMethod("dbDataType", "SQLiteDriver", dbDataType_SQLiteDriver) 36 | -------------------------------------------------------------------------------- /R/dbDisconnect_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLite 2 | #' @usage NULL 3 | dbDisconnect_SQLiteConnection <- function(conn, ...) { 4 | connection_release(conn@ptr) 5 | invisible(TRUE) 6 | } 7 | #' @rdname SQLite 8 | #' @export 9 | setMethod("dbDisconnect", "SQLiteConnection", dbDisconnect_SQLiteConnection) 10 | -------------------------------------------------------------------------------- /R/dbExistsTable_SQLiteConnection_Id.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbExistsTable_SQLiteConnection_Id <- function(conn, name, ...) { 4 | stopifnot(is(name, "Id")) 5 | 6 | id <- as.list(dbUnquoteIdentifier(conn, dbQuoteIdentifier(conn, name))[[1]]@name) 7 | schema <- id$schema 8 | table <- id$table 9 | 10 | if (!is.null(schema)) { 11 | schemas <- dbGetQuery(conn, "SELECT name FROM pragma_database_list;")$name 12 | 13 | if (!(schema %in% schemas)) { 14 | return(FALSE) 15 | } 16 | } 17 | 18 | sql <- sqliteListTablesQuery(conn, schema, SQL("$name")) 19 | rs <- dbSendQuery(conn, sql) 20 | dbBind(rs, list(name = tolower(table))) 21 | on.exit(dbClearResult(rs), add = TRUE) 22 | 23 | nrow(dbFetch(rs, 1L)) > 0 24 | } 25 | #' @rdname SQLiteConnection-class 26 | #' @export 27 | setMethod("dbExistsTable", c("SQLiteConnection", "Id"), dbExistsTable_SQLiteConnection_Id) 28 | -------------------------------------------------------------------------------- /R/dbExistsTable_SQLiteConnection_character.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbExistsTable_SQLiteConnection_character <- function(conn, name, ...) { 4 | stopifnot(length(name) == 1L) 5 | rs <- sqliteListTablesWithName(conn, name) 6 | on.exit(dbClearResult(rs), add = TRUE) 7 | 8 | nrow(dbFetch(rs, 1L)) > 0 9 | } 10 | #' @rdname SQLiteConnection-class 11 | #' @export 12 | setMethod("dbExistsTable", c("SQLiteConnection", "character"), dbExistsTable_SQLiteConnection_character) 13 | -------------------------------------------------------------------------------- /R/dbFetch_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbFetch_SQLiteResult <- function(res, n = -1, ..., 4 | row.names = pkgconfig::get_config("RSQLite::row.names.query", FALSE)) { 5 | row.names <- compatRowNames(row.names) 6 | if (length(n) != 1) stopc("`n` must be scalar") 7 | if (is.na(n)) { 8 | n <- 256L 9 | } else if (n < -1) { 10 | stopc("`n` must be nonnegative or -1") 11 | } 12 | if (is.infinite(n)) n <- -1 13 | if (trunc(n) != n) stopc("`n` must be a whole number") 14 | ret <- result_fetch(res@ptr, n = n) 15 | ret <- convert_bigint(ret, res@bigint) 16 | ret <- sqlColumnToRownames(ret, row.names) 17 | ret 18 | } 19 | #' @rdname SQLiteResult-class 20 | #' @export 21 | setMethod("dbFetch", "SQLiteResult", dbFetch_SQLiteResult) 22 | -------------------------------------------------------------------------------- /R/dbGetException_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | # dbWriteTable() 2 | # dbReadTable() 3 | # dbListTables() 4 | # dbExistsTable() 5 | # dbListFields() 6 | # dbRemoveTable() 7 | # dbBegin() 8 | # dbCommit() 9 | # dbRollback() 10 | # other 11 | #' @rdname SQLiteConnection-class 12 | #' @usage NULL 13 | dbGetException_SQLiteConnection <- function(conn, ...) { 14 | warning_once("RSQLite::dbGetException() is deprecated, please switch to using standard error handling via tryCatch().") 15 | list( 16 | errorNum = 0L, 17 | errorMsg = "OK" 18 | ) 19 | } 20 | #' @rdname SQLiteConnection-class 21 | #' @export 22 | setMethod("dbGetException", "SQLiteConnection", dbGetException_SQLiteConnection) 23 | -------------------------------------------------------------------------------- /R/dbGetInfo_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbGetInfo_SQLiteConnection <- function(dbObj, ...) { 4 | version <- RSQLite::rsqliteVersion() 5 | 6 | list( 7 | db.version = version[[2]], 8 | dbname = dbObj@dbname, 9 | username = NA, 10 | host = NA, 11 | port = NA 12 | ) 13 | } 14 | #' @rdname SQLiteConnection-class 15 | #' @export 16 | setMethod("dbGetInfo", "SQLiteConnection", dbGetInfo_SQLiteConnection) 17 | -------------------------------------------------------------------------------- /R/dbGetInfo_SQLiteDriver.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteDriver-class 2 | #' @usage NULL 3 | dbGetInfo_SQLiteDriver <- function(dbObj, ...) { 4 | version <- RSQLite::rsqliteVersion() 5 | list( 6 | driver.version = PACKAGE_VERSION, 7 | client.version = package_version(version[[2]]) 8 | ) 9 | } 10 | #' @rdname SQLiteDriver-class 11 | #' @export 12 | setMethod("dbGetInfo", "SQLiteDriver", dbGetInfo_SQLiteDriver) 13 | -------------------------------------------------------------------------------- /R/dbGetPreparedQuery.R: -------------------------------------------------------------------------------- 1 | #' @rdname query-dep 2 | #' @export 3 | setGeneric("dbGetPreparedQuery", function(conn, statement, bind.data, ...) { 4 | standardGeneric("dbGetPreparedQuery") 5 | }) 6 | -------------------------------------------------------------------------------- /R/dbGetPreparedQuery_SQLiteConnection_character_data.frame.R: -------------------------------------------------------------------------------- 1 | #' @rdname query-dep 2 | #' @usage NULL 3 | dbGetPreparedQuery_SQLiteConnection_character_data.frame <- function(conn, statement, bind.data, ...) { 4 | warning_once("RSQLite::dbGetPreparedQuery() is deprecated, please switch to DBI::dbGetQuery(params = bind.data).") 5 | 6 | res <- dbSendQuery(conn, statement) 7 | on.exit(dbClearResult(res), add = TRUE) 8 | 9 | bind.data <- as.list(bind.data) 10 | 11 | tryCatch( 12 | db_bind(res, bind.data, allow_named_superset = TRUE), 13 | error = function(e) { 14 | db_bind(res, unname(bind.data), allow_named_superset = FALSE) 15 | } 16 | ) 17 | dbFetch(res) 18 | } 19 | #' @rdname query-dep 20 | #' @export 21 | setMethod("dbGetPreparedQuery", c("SQLiteConnection", "character", "data.frame"), dbGetPreparedQuery_SQLiteConnection_character_data.frame) 22 | -------------------------------------------------------------------------------- /R/dbGetRowCount_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbGetRowCount_SQLiteResult <- function(res, ...) { 4 | result_rows_fetched(res@ptr) 5 | } 6 | #' @rdname SQLiteResult-class 7 | #' @export 8 | setMethod("dbGetRowCount", "SQLiteResult", dbGetRowCount_SQLiteResult) 9 | -------------------------------------------------------------------------------- /R/dbGetRowsAffected_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbGetRowsAffected_SQLiteResult <- function(res, ...) { 4 | result_rows_affected(res@ptr) 5 | } 6 | #' @rdname SQLiteResult-class 7 | #' @export 8 | setMethod("dbGetRowsAffected", "SQLiteResult", dbGetRowsAffected_SQLiteResult) 9 | -------------------------------------------------------------------------------- /R/dbGetStatement_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbGetStatement_SQLiteResult <- function(res, ...) { 4 | if (!dbIsValid(res)) { 5 | stopc("Expired, result set already closed") 6 | } 7 | res@sql 8 | } 9 | #' @rdname SQLiteResult-class 10 | #' @export 11 | setMethod("dbGetStatement", "SQLiteResult", dbGetStatement_SQLiteResult) 12 | -------------------------------------------------------------------------------- /R/dbHasCompleted_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbHasCompleted_SQLiteResult <- function(res, ...) { 4 | result_has_completed(res@ptr) 5 | } 6 | #' @rdname SQLiteResult-class 7 | #' @export 8 | setMethod("dbHasCompleted", "SQLiteResult", dbHasCompleted_SQLiteResult) 9 | -------------------------------------------------------------------------------- /R/dbIsValid_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | # dbIsValid() 2 | #' @rdname SQLiteConnection-class 3 | #' @usage NULL 4 | dbIsValid_SQLiteConnection <- function(dbObj, ...) { 5 | connection_valid(dbObj@ptr) 6 | } 7 | #' @rdname SQLiteConnection-class 8 | #' @export 9 | setMethod("dbIsValid", "SQLiteConnection", dbIsValid_SQLiteConnection) 10 | -------------------------------------------------------------------------------- /R/dbIsValid_SQLiteDriver.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteDriver-class 2 | #' @usage NULL 3 | dbIsValid_SQLiteDriver <- function(dbObj, ...) { 4 | TRUE 5 | } 6 | #' @rdname SQLiteDriver-class 7 | #' @export 8 | setMethod("dbIsValid", "SQLiteDriver", dbIsValid_SQLiteDriver) 9 | -------------------------------------------------------------------------------- /R/dbIsValid_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteResult-class 2 | #' @usage NULL 3 | dbIsValid_SQLiteResult <- function(dbObj, ...) { 4 | result_valid(dbObj@ptr) 5 | } 6 | #' @rdname SQLiteResult-class 7 | #' @export 8 | setMethod("dbIsValid", "SQLiteResult", dbIsValid_SQLiteResult) 9 | -------------------------------------------------------------------------------- /R/dbListResults_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' dbListResults 2 | #' 3 | #' DEPRECATED 4 | #' 5 | #' @rdname dbListResults 6 | #' @keywords internal 7 | #' @usage NULL 8 | dbListResults_SQLiteConnection <- function(conn, ...) { 9 | warning("Querying the results associated with a connection is no longer supported", 10 | call. = FALSE 11 | ) 12 | if (is.null(conn@ref$result)) { 13 | list() 14 | } else { 15 | list(conn@ref$result) 16 | } 17 | } 18 | 19 | #' @rdname dbListResults 20 | #' @keywords internal 21 | #' @export 22 | setMethod("dbListResults", "SQLiteConnection", dbListResults_SQLiteConnection) 23 | -------------------------------------------------------------------------------- /R/dbListTables_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbListTables_SQLiteConnection <- function(conn, ...) { 4 | rs <- sqliteListTables(conn) 5 | on.exit(dbClearResult(rs), add = TRUE) 6 | 7 | dbFetch(rs)$name 8 | } 9 | #' @rdname SQLiteConnection-class 10 | #' @export 11 | setMethod("dbListTables", "SQLiteConnection", dbListTables_SQLiteConnection) 12 | -------------------------------------------------------------------------------- /R/dbQuoteIdentifier_SQLiteConnection_SQL.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbQuoteIdentifier_SQLiteConnection_SQL <- function(conn, x, ...) { 4 | x 5 | } 6 | #' @rdname SQLiteConnection-class 7 | #' @export 8 | setMethod("dbQuoteIdentifier", c("SQLiteConnection", "SQL"), dbQuoteIdentifier_SQLiteConnection_SQL) 9 | -------------------------------------------------------------------------------- /R/dbQuoteIdentifier_SQLiteConnection_character.R: -------------------------------------------------------------------------------- 1 | # dbDisconnect() 2 | # dbSendQuery() 3 | # dbSendStatement() 4 | # dbDataType() 5 | # dbQuoteString() 6 | # dbQuoteIdentifier() 7 | #' @rdname SQLiteConnection-class 8 | #' @usage NULL 9 | dbQuoteIdentifier_SQLiteConnection_character <- function(conn, x, ...) { 10 | if (any(is.na(x))) { 11 | stop("Cannot pass NA to dbQuoteIdentifier()", call. = FALSE) 12 | } 13 | # Avoid fixed = TRUE due to https://github.com/r-dbi/DBItest/issues/156 14 | x <- gsub("`", "``", enc2utf8(x)) 15 | if (length(x) == 0L) { 16 | SQL(character(), names = names(x)) 17 | } else { 18 | # Not calling encodeString() here to keep things simple 19 | SQL(paste("`", x, "`", sep = ""), names = names(x)) 20 | } 21 | } 22 | #' @rdname SQLiteConnection-class 23 | #' @export 24 | setMethod("dbQuoteIdentifier", c("SQLiteConnection", "character"), dbQuoteIdentifier_SQLiteConnection_character) 25 | -------------------------------------------------------------------------------- /R/dbRemoveTable_SQLiteConnection_character.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @param temporary If `TRUE`, only temporary tables are considered. 3 | #' @param fail_if_missing If `FALSE`, `dbRemoveTable()` succeeds if the 4 | #' table doesn't exist. 5 | #' @usage NULL 6 | dbRemoveTable_SQLiteConnection_character <- function(conn, name, ..., temporary = FALSE, fail_if_missing = TRUE) { 7 | name <- check_quoted_identifier(name) 8 | name <- dbQuoteIdentifier(conn, name) 9 | 10 | if (fail_if_missing) { 11 | extra <- "" 12 | } else { 13 | extra <- "IF EXISTS " 14 | } 15 | if (temporary) { 16 | extra <- paste0(extra, "temp.") 17 | } 18 | 19 | dbExecute(conn, paste0("DROP TABLE ", extra, name)) 20 | invisible(TRUE) 21 | } 22 | #' @rdname SQLiteConnection-class 23 | #' @export 24 | setMethod("dbRemoveTable", c("SQLiteConnection", "character"), dbRemoveTable_SQLiteConnection_character) 25 | -------------------------------------------------------------------------------- /R/dbSendPreparedQuery.R: -------------------------------------------------------------------------------- 1 | #' @rdname query-dep 2 | #' 3 | #' @param conn A `DBIConnection` object. 4 | #' @param statement A SQL string 5 | #' @param bind.data A data frame 6 | #' @param ... Other arguments used by methods 7 | #' @export 8 | setGeneric("dbSendPreparedQuery", function(conn, statement, bind.data, ...) { 9 | standardGeneric("dbSendPreparedQuery") 10 | }) 11 | -------------------------------------------------------------------------------- /R/dbSendPreparedQuery_SQLiteConnection_character_data.frame.R: -------------------------------------------------------------------------------- 1 | #' @rdname query-dep 2 | #' @param bind.data A data frame of data to be bound. 3 | #' @usage NULL 4 | dbSendPreparedQuery_SQLiteConnection_character_data.frame <- function(conn, statement, bind.data, ...) { 5 | warning_once("RSQLite::dbSendPreparedQuery() is deprecated, please switch to DBI::dbSendQuery(params = bind.data).") 6 | 7 | res <- dbSendQuery(conn, statement) 8 | 9 | tryCatch( 10 | db_bind(res, unclass(bind.data), allow_named_superset = TRUE), 11 | error = function(e) { 12 | db_bind(res, unclass(unname(bind.data)), allow_named_superset = FALSE) 13 | } 14 | ) 15 | res 16 | } 17 | #' @rdname query-dep 18 | #' @export 19 | setMethod("dbSendPreparedQuery", c("SQLiteConnection", "character", "data.frame"), dbSendPreparedQuery_SQLiteConnection_character_data.frame) 20 | -------------------------------------------------------------------------------- /R/dbSendQuery_SQLiteConnection_character.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbSendQuery_SQLiteConnection_character <- function(conn, statement, params = NULL, ...) { 4 | statement <- enc2utf8(statement) 5 | 6 | if (!is.null(conn@ref$result)) { 7 | warning("Closing open result set, pending rows", call. = FALSE) 8 | dbClearResult(conn@ref$result) 9 | stopifnot(is.null(conn@ref$result)) 10 | } 11 | 12 | rs <- new("SQLiteResult", 13 | sql = statement, 14 | ptr = result_create(conn@ptr, statement), 15 | conn = conn, 16 | bigint = conn@bigint 17 | ) 18 | on.exit(dbClearResult(rs), add = TRUE) 19 | 20 | if (!is.null(params)) { 21 | dbBind(rs, params) 22 | } 23 | on.exit(NULL, add = FALSE) 24 | 25 | conn@ref$result <- rs 26 | rs 27 | } 28 | #' @rdname SQLiteConnection-class 29 | #' @export 30 | setMethod("dbSendQuery", c("SQLiteConnection", "character"), dbSendQuery_SQLiteConnection_character) 31 | -------------------------------------------------------------------------------- /R/dbUnloadDriver_SQLiteDriver.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteDriver-class 2 | #' @usage NULL 3 | dbUnloadDriver_SQLiteDriver <- function(drv, ...) { 4 | invisible(TRUE) 5 | } 6 | #' @rdname SQLiteDriver-class 7 | #' @export 8 | setMethod("dbUnloadDriver", "SQLiteDriver", dbUnloadDriver_SQLiteDriver) 9 | -------------------------------------------------------------------------------- /R/dbUnquoteIdentifier_SQLiteConnection_SQL.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | dbUnquoteIdentifier_SQLiteConnection_SQL <- function(conn, x, ...) { 4 | id_rx <- "(?:`((?:[^`]|``)+)`|([^`. ]+))" 5 | 6 | rx <- paste0( 7 | "^", 8 | "(?:|", id_rx, "[.])", 9 | "(?:|", id_rx, ")", 10 | "$" 11 | ) 12 | 13 | bad <- grep(rx, x, invert = TRUE) 14 | if (length(bad) > 0) { 15 | stop("Can't unquote ", x[bad[[1]]], call. = FALSE) 16 | } 17 | schema <- gsub(rx, "\\1\\2", x) 18 | schema <- gsub("``", "`", schema) 19 | table <- gsub(rx, "\\3\\4", x) 20 | table <- gsub("``", "`", table) 21 | 22 | ret <- Map(schema, table, f = as_table) 23 | names(ret) <- names(x) 24 | ret 25 | } 26 | #' @rdname SQLiteConnection-class 27 | #' @export 28 | setMethod("dbUnquoteIdentifier", c("SQLiteConnection", "SQL"), dbUnquoteIdentifier_SQLiteConnection_SQL) 29 | -------------------------------------------------------------------------------- /R/fetch_SQLiteResult.R: -------------------------------------------------------------------------------- 1 | #' Fetch 2 | #' 3 | #' A shortcut for \code{\link[DBI]{dbFetch}(res, n = n, row.names = FALSE)}, 4 | #' kept for compatibility reasons. 5 | #' 6 | #' @rdname fetch 7 | #' @keywords internal 8 | #' @usage NULL 9 | fetch_SQLiteResult <- function(res, n = -1, ...) { 10 | dbFetch(res, n = n, row.names = FALSE) 11 | } 12 | 13 | #' @rdname fetch 14 | #' @export 15 | setMethod("fetch", "SQLiteResult", fetch_SQLiteResult) 16 | -------------------------------------------------------------------------------- /R/initRegExp.R: -------------------------------------------------------------------------------- 1 | #' Add regular expression operator 2 | #' 3 | #' Forwarded to `initExtension(db, "regexp")` . 4 | #' 5 | #' @return Always \code{TRUE}, invisibly. 6 | #' 7 | #' @param db A \code{\linkS4class{SQLiteConnection}} object to add the 8 | #' regular expression operator into the connection. 9 | #' @export 10 | #' @keywords internal 11 | initRegExp <- function(db) { 12 | initExtension(db, "regexp") 13 | } 14 | -------------------------------------------------------------------------------- /R/isSQLKeyword_SQLiteConnection_character.R: -------------------------------------------------------------------------------- 1 | #' @rdname keywords-dep 2 | #' @usage NULL 3 | isSQLKeyword_SQLiteConnection_character <- function(dbObj, name, keywords, case, ...) { 4 | warning_once("RSQLite::isSQLKeyword() is deprecated, please switch to DBI::dbQuoteIdentifier().") 5 | isSQLKeyword.default(name, keywords = .SQL92Keywords, case) 6 | } 7 | #' @rdname keywords-dep 8 | #' @export 9 | setMethod("isSQLKeyword", signature(dbObj = "SQLiteConnection", name = "character"), isSQLKeyword_SQLiteConnection_character) 10 | -------------------------------------------------------------------------------- /R/make.db.names_SQLiteConnection_character.R: -------------------------------------------------------------------------------- 1 | #' Make R/S-Plus identifiers into legal SQL identifiers 2 | #' 3 | #' Deprecated. Please use [dbQuoteIdentifier()] instead. 4 | #' 5 | #' @keywords internal 6 | #' @rdname keywords-dep 7 | #' @usage NULL 8 | make.db.names_SQLiteConnection_character <- function(dbObj, snames, keywords, unique, allow.keywords, ...) { 9 | warning_once("RSQLite::make.db.names() is deprecated, please switch to DBI::dbQuoteIdentifier().") 10 | make.db.names.default(snames, keywords, unique, allow.keywords) 11 | } 12 | #' @rdname keywords-dep 13 | #' @export 14 | setMethod("make.db.names", signature(dbObj = "SQLiteConnection", snames = "character"), make.db.names_SQLiteConnection_character) 15 | -------------------------------------------------------------------------------- /R/pkgconfig.R: -------------------------------------------------------------------------------- 1 | pkgconfig_dummy <- function() { 2 | pkgconfig::get_config() 3 | } 4 | -------------------------------------------------------------------------------- /R/show_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | # show() 2 | #' @rdname SQLiteConnection-class 3 | #' @usage NULL 4 | show_SQLiteConnection <- function(object) { 5 | cat("\n") 6 | if (dbIsValid(object)) { 7 | cat(" Path: ", object@dbname, "\n", sep = "") 8 | cat(" Extensions: ", object@loadable.extensions, "\n", sep = "") 9 | } else { 10 | cat(" DISCONNECTED\n") 11 | } 12 | } 13 | #' @rdname SQLiteConnection-class 14 | #' @export 15 | setMethod("show", "SQLiteConnection", show_SQLiteConnection) 16 | -------------------------------------------------------------------------------- /R/sqlData_SQLiteConnection.R: -------------------------------------------------------------------------------- 1 | #' @rdname SQLiteConnection-class 2 | #' @usage NULL 3 | sqlData_SQLiteConnection <- function(con, value, 4 | row.names = pkgconfig::get_config("RSQLite::row.names.query", FALSE), 5 | ...) { 6 | value <- sql_data(value, row.names) 7 | value <- quote_string(value, con) 8 | 9 | value 10 | } 11 | #' @rdname SQLiteConnection-class 12 | #' @export 13 | setMethod("sqlData", "SQLiteConnection", sqlData_SQLiteConnection) 14 | -------------------------------------------------------------------------------- /R/utils.R: -------------------------------------------------------------------------------- 1 | vlapply <- function(X, FUN, ..., USE.NAMES = TRUE) { 2 | vapply(X = X, FUN = FUN, FUN.VALUE = logical(1L), ..., USE.NAMES = USE.NAMES) 3 | } 4 | 5 | vcapply <- function(X, FUN, ..., USE.NAMES = TRUE) { 6 | vapply(X = X, FUN = FUN, FUN.VALUE = character(1L), ..., USE.NAMES = USE.NAMES) 7 | } 8 | 9 | stopc <- function(...) { 10 | stop(..., call. = FALSE, domain = NA) 11 | } 12 | 13 | warningc <- function(...) { 14 | warning(..., call. = FALSE, domain = NA) 15 | } 16 | 17 | # memoise is used in .onLoad() 18 | warning_once <- warningc 19 | -------------------------------------------------------------------------------- /R/version.R: -------------------------------------------------------------------------------- 1 | #' RSQLite version 2 | #' 3 | #' Return the version of RSQLite. 4 | #' 5 | #' @return A character vector containing header and library versions of 6 | #' RSQLite. 7 | #' @export 8 | #' @examples 9 | #' RSQLite::rsqliteVersion() 10 | rsqliteVersion <- rsqliteVersion 11 | -------------------------------------------------------------------------------- /R/zzz.R: -------------------------------------------------------------------------------- 1 | .onLoad <- function(libname, pkgname) { 2 | warning_once <<- memoise::memoise(warning_once) 3 | } 4 | 5 | .onUnload <- function(libpath) { 6 | gc() # Force garbage collection of connections 7 | library.dynam.unload("RSQLite", libpath) 8 | } 9 | -------------------------------------------------------------------------------- /RSQLite.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | ProjectId: bee0a4bb-bd7f-442d-925c-3b49c64a0bb5 3 | 4 | RestoreWorkspace: Default 5 | SaveWorkspace: Default 6 | AlwaysSaveHistory: Default 7 | 8 | EnableCodeIndexing: Yes 9 | UseSpacesForTab: Yes 10 | NumSpacesForTab: 2 11 | Encoding: UTF-8 12 | 13 | RnwWeave: knitr 14 | LaTeX: pdfLaTeX 15 | 16 | AutoAppendNewline: Yes 17 | StripTrailingWhitespace: Yes 18 | 19 | BuildType: Package 20 | PackageUseDevtools: Yes 21 | PackageInstallArgs: --no-multiarch --with-keep.source --no-byte-compile 22 | PackageRoxygenize: rd,collate,namespace 23 | -------------------------------------------------------------------------------- /UPDATE.md: -------------------------------------------------------------------------------- 1 | # Updates 2 | 3 | Two components are shipped with the package that can be updated: 4 | 5 | - SQLite library 6 | - Datasets database 7 | 8 | Ideally the update should happen right *after* each CRAN release, so that a new SQLite version is tested for some time before it's released to CRAN. 9 | 10 | 11 | ## SQLite library 12 | 13 | 1. Download latest SQLite source by running `data-raw/upgrade.R` 14 | 15 | 1. Update `DESCRIPTION` for included version of SQLite 16 | 17 | 1. Update `NEWS` 18 | 19 | 20 | ## Datasets database 21 | 22 | RSQLite includes one SQLite database (accessible from `datasetsDb()` that contains all data frames in the datasets package. The code that created it is located in `data-raw/datasets.R`. 23 | -------------------------------------------------------------------------------- /_pkgdown.yml: -------------------------------------------------------------------------------- 1 | url: https://rsqlite.r-dbi.org 2 | 3 | template: 4 | package: dbitemplate 5 | bootstrap: 5 6 | 7 | home: 8 | links: 9 | - text: Report a security vulnerability 10 | href: https://rsqlite.r-dbi.org/security.html 11 | - text: DBI project website 12 | href: https://r-dbi.org 13 | 14 | 15 | development: 16 | mode: auto 17 | 18 | authors: 19 | Kirill Müller: 20 | href: https://krlmlr.info 21 | 22 | news: 23 | cran_dates: false 24 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | -------------------------------------------------------------------------------- /cran-comments.md: -------------------------------------------------------------------------------- 1 | RSQLite 2.4.1 2 | 3 | ## Cran Repository Policy 4 | 5 | - [x] Reviewed CRP last edited 2024-08-27. 6 | -------------------------------------------------------------------------------- /data-raw/datasets.R: -------------------------------------------------------------------------------- 1 | tables <- unique(data(package = "datasets")$results[, 3]) 2 | tables <- tables[!grepl("(", tables, fixed = TRUE)] 3 | 4 | con <- dbConnect(SQLite(), "inst/db/datasets.sqlite") 5 | for (table in tables) { 6 | df <- getExportedValue("datasets", table) 7 | if (!is.data.frame(df)) next 8 | 9 | message("Creating table: ", table) 10 | dbWriteTable(con, table, as.data.frame(df), overwrite = TRUE) 11 | } 12 | -------------------------------------------------------------------------------- /inst/db/datasets.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-dbi/RSQLite/f32a422845da7fa5cb85228f97d8cfb9846eb8f2/inst/db/datasets.sqlite -------------------------------------------------------------------------------- /man/datasetsDb.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/datasetsDb.R 3 | \name{datasetsDb} 4 | \alias{datasetsDb} 5 | \title{A sample sqlite database} 6 | \usage{ 7 | datasetsDb() 8 | } 9 | \description{ 10 | This database is bundled with the package, and contains all data frames 11 | in the datasets package. 12 | } 13 | \examples{ 14 | library(DBI) 15 | db <- RSQLite::datasetsDb() 16 | dbListTables(db) 17 | 18 | dbReadTable(db, "CO2") 19 | dbGetQuery(db, "SELECT * FROM CO2 WHERE conc < 100") 20 | 21 | dbDisconnect(db) 22 | } 23 | -------------------------------------------------------------------------------- /man/dbBeginTransaction.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/dbBeginTransaction.R 3 | \name{dbBeginTransaction} 4 | \alias{dbBeginTransaction} 5 | \title{Generic for creating a new transaction} 6 | \usage{ 7 | dbBeginTransaction(conn, ...) 8 | } 9 | \arguments{ 10 | \item{conn}{A \code{DBIConnection} object.} 11 | 12 | \item{...}{Other arguments used by methods} 13 | } 14 | \description{ 15 | See method documentation for details. 16 | } 17 | \keyword{internal} 18 | -------------------------------------------------------------------------------- /man/dbListResults.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/dbListResults_SQLiteConnection.R 3 | \name{dbListResults_SQLiteConnection} 4 | \alias{dbListResults_SQLiteConnection} 5 | \alias{dbListResults,SQLiteConnection-method} 6 | \title{dbListResults} 7 | \usage{ 8 | \S4method{dbListResults}{SQLiteConnection}(conn, ...) 9 | } 10 | \description{ 11 | DEPRECATED 12 | } 13 | \keyword{internal} 14 | -------------------------------------------------------------------------------- /man/fetch.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/fetch_SQLiteResult.R 3 | \name{fetch_SQLiteResult} 4 | \alias{fetch_SQLiteResult} 5 | \alias{fetch,SQLiteResult-method} 6 | \title{Fetch} 7 | \usage{ 8 | \S4method{fetch}{SQLiteResult}(res, n = -1, ...) 9 | } 10 | \description{ 11 | A shortcut for \code{\link[DBI]{dbFetch}(res, n = n, row.names = FALSE)}, 12 | kept for compatibility reasons. 13 | } 14 | \keyword{internal} 15 | -------------------------------------------------------------------------------- /man/initRegExp.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/initRegExp.R 3 | \name{initRegExp} 4 | \alias{initRegExp} 5 | \title{Add regular expression operator} 6 | \usage{ 7 | initRegExp(db) 8 | } 9 | \arguments{ 10 | \item{db}{A \code{\linkS4class{SQLiteConnection}} object to add the 11 | regular expression operator into the connection.} 12 | } 13 | \value{ 14 | Always \code{TRUE}, invisibly. 15 | } 16 | \description{ 17 | Forwarded to \code{initExtension(db, "regexp")} . 18 | } 19 | \keyword{internal} 20 | -------------------------------------------------------------------------------- /man/isIdCurrent.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/deprecated.R 3 | \name{isIdCurrent} 4 | \alias{isIdCurrent} 5 | \title{isIdCurrent} 6 | \usage{ 7 | isIdCurrent(obj) 8 | } 9 | \description{ 10 | Deprecated. Please use dbIsValid instead. 11 | } 12 | \keyword{internal} 13 | -------------------------------------------------------------------------------- /man/reexports.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/export.R 3 | \docType{import} 4 | \name{reexports} 5 | \alias{reexports} 6 | \alias{Id} 7 | \title{Objects exported from other packages} 8 | \keyword{internal} 9 | \description{ 10 | These objects are imported from other packages. Follow the links 11 | below to see their documentation. 12 | 13 | \describe{ 14 | \item{DBI}{\code{\link[DBI]{Id}}} 15 | }} 16 | 17 | -------------------------------------------------------------------------------- /man/rsqliteVersion.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/version.R 3 | \name{rsqliteVersion} 4 | \alias{rsqliteVersion} 5 | \title{RSQLite version} 6 | \usage{ 7 | rsqliteVersion() 8 | } 9 | \value{ 10 | A character vector containing header and library versions of 11 | RSQLite. 12 | } 13 | \description{ 14 | Return the version of RSQLite. 15 | } 16 | \examples{ 17 | RSQLite::rsqliteVersion() 18 | } 19 | -------------------------------------------------------------------------------- /man/sqliteQuickColumn.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/deprecated.R 3 | \name{sqliteQuickColumn} 4 | \alias{sqliteQuickColumn} 5 | \title{Return an entire column from a SQLite database} 6 | \usage{ 7 | sqliteQuickColumn(con, table, column) 8 | } 9 | \description{ 10 | A shortcut for 11 | \code{\link[DBI]{dbReadTable}(con, table, select.cols = column, row.names = FALSE)[[1]]}, 12 | kept for compatibility reasons. 13 | } 14 | \keyword{internal} 15 | -------------------------------------------------------------------------------- /revdep/.gitignore: -------------------------------------------------------------------------------- 1 | /.cache.rds 2 | /libs 3 | /download 4 | /cloud.noindex 5 | -------------------------------------------------------------------------------- /revdep/README.md: -------------------------------------------------------------------------------- 1 | # Revdeps 2 | 3 | ## Failed to check (3) 4 | 5 | |package |version |error |warning |note | 6 | |:------------|:-------|:-----|:-------|:----| 7 | |iNZightPlots |2.15.3 |1 | | | 8 | |SEERaBomb |2019.2 |1 | | | 9 | |SGP |2.2-0.0 |1 | | | 10 | 11 | -------------------------------------------------------------------------------- /revdep/cran.md: -------------------------------------------------------------------------------- 1 | ## revdepcheck results 2 | 3 | We checked 217 reverse dependencies, comparing R CMD check results across CRAN and dev versions of this package. 4 | 5 | * We saw 0 new problems 6 | * We failed to check 3 packages 7 | 8 | Issues with CRAN packages are summarised below. 9 | 10 | ### Failed to check 11 | 12 | * iNZightPlots (NA) 13 | * SEERaBomb (NA) 14 | * SGP (NA) 15 | -------------------------------------------------------------------------------- /revdep/drake-analyze.R: -------------------------------------------------------------------------------- 1 | library(tidyverse) 2 | 3 | all <- drake::readd(compare_all) 4 | 5 | error <- map_chr(map(all, class), 1) == "try-error" 6 | 7 | succeeded <- all[!error] 8 | 9 | withr::with_output_sink("revdep/new-problems.md", revdepcheck::revdep_report_problems(results = succeeded)) 10 | -------------------------------------------------------------------------------- /revdep/drake-deps.R: -------------------------------------------------------------------------------- 1 | source("revdep/drake-base.R") 2 | 3 | drake::make(plan_deps) %>% vis_drake_graph() 4 | -------------------------------------------------------------------------------- /revdep/problems.md: -------------------------------------------------------------------------------- 1 | *Wow, no problems at all. :)* -------------------------------------------------------------------------------- /src/.gitignore: -------------------------------------------------------------------------------- 1 | *.o* 2 | *.o 3 | *.so 4 | *.dll 5 | -------------------------------------------------------------------------------- /src/DbColumn.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | DbColumn.o: \ 3 | DbColumn.cpp \ 4 | DbColumn.h \ 5 | DbColumnDataSource.h \ 6 | DbColumnDataSourceFactory.h \ 7 | DbColumnDataType.h \ 8 | DbColumnStorage.h \ 9 | RSQLite.h \ 10 | pch.h \ 11 | .Rconfig 12 | -------------------------------------------------------------------------------- /src/DbColumnDataSource.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "DbColumnDataSource.h" 3 | 4 | DbColumnDataSource::DbColumnDataSource(const int j_) : 5 | j(j_) 6 | { 7 | } 8 | 9 | DbColumnDataSource::~DbColumnDataSource() { 10 | } 11 | 12 | int DbColumnDataSource::get_j() const { 13 | return j; 14 | } 15 | -------------------------------------------------------------------------------- /src/DbColumnDataSource.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | DbColumnDataSource.o: \ 3 | DbColumnDataSource.cpp \ 4 | DbColumnDataSource.h \ 5 | DbColumnDataType.h \ 6 | RSQLite.h \ 7 | pch.h \ 8 | .Rconfig 9 | -------------------------------------------------------------------------------- /src/DbColumnDataSource.h: -------------------------------------------------------------------------------- 1 | #ifndef DB_COLUMNDATASOURCE_H 2 | #define DB_COLUMNDATASOURCE_H 3 | 4 | #include "DbColumnDataType.h" 5 | 6 | class DbColumnDataSource { 7 | const int j; 8 | 9 | protected: 10 | DbColumnDataSource(const int j); 11 | 12 | public: 13 | virtual ~DbColumnDataSource(); 14 | 15 | public: 16 | virtual DATA_TYPE get_data_type() const = 0; 17 | virtual DATA_TYPE get_decl_data_type() const = 0; 18 | 19 | virtual bool is_null() const = 0; 20 | 21 | virtual int fetch_bool() const = 0; 22 | virtual int fetch_int() const = 0; 23 | virtual int64_t fetch_int64() const = 0; 24 | virtual double fetch_real() const = 0; 25 | virtual SEXP fetch_string() const = 0; 26 | virtual SEXP fetch_blob() const = 0; 27 | virtual double fetch_date() const = 0; 28 | virtual double fetch_datetime_local() const = 0; 29 | virtual double fetch_datetime() const = 0; 30 | virtual double fetch_time() const = 0; 31 | 32 | protected: 33 | int get_j() const; 34 | }; 35 | 36 | #endif //DB_COLUMNDATASOURCE_H 37 | -------------------------------------------------------------------------------- /src/DbColumnDataSourceFactory.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "DbColumnDataSourceFactory.h" 3 | 4 | DbColumnDataSourceFactory::DbColumnDataSourceFactory() { 5 | } 6 | 7 | DbColumnDataSourceFactory::~DbColumnDataSourceFactory() { 8 | } 9 | -------------------------------------------------------------------------------- /src/DbColumnDataSourceFactory.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | DbColumnDataSourceFactory.o: \ 3 | DbColumnDataSourceFactory.cpp \ 4 | DbColumnDataSourceFactory.h \ 5 | RSQLite.h \ 6 | pch.h \ 7 | .Rconfig 8 | -------------------------------------------------------------------------------- /src/DbColumnDataSourceFactory.h: -------------------------------------------------------------------------------- 1 | #ifndef DB_COLUMNDATASOURCEFACTORY_H 2 | #define DB_COLUMNDATASOURCEFACTORY_H 3 | 4 | class DbColumnDataSource; 5 | 6 | class DbColumnDataSourceFactory { 7 | protected: 8 | DbColumnDataSourceFactory(); 9 | 10 | public: 11 | virtual ~DbColumnDataSourceFactory(); 12 | 13 | public: 14 | virtual DbColumnDataSource* create(const int j) = 0; 15 | }; 16 | 17 | #endif //DB_COLUMNDATASOURCEFACTORY_H 18 | -------------------------------------------------------------------------------- /src/DbColumnDataType.h: -------------------------------------------------------------------------------- 1 | #ifndef RSQLITE_COLUMNDATATYPE_H 2 | #define RSQLITE_COLUMNDATATYPE_H 3 | 4 | enum DATA_TYPE { 5 | DT_UNKNOWN, 6 | DT_BOOL, 7 | DT_INT, 8 | DT_INT64, 9 | DT_REAL, 10 | DT_STRING, 11 | DT_BLOB, 12 | DT_DATE, 13 | DT_DATETIME, 14 | DT_DATETIMETZ, 15 | DT_TIME 16 | }; 17 | 18 | #endif // RSQLITE_COLUMNDATATYPE_H 19 | -------------------------------------------------------------------------------- /src/DbColumnStorage.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | DbColumnStorage.o: \ 3 | DbColumnDataSource.h \ 4 | DbColumnDataType.h \ 5 | DbColumnStorage.cpp \ 6 | DbColumnStorage.h \ 7 | RSQLite.h \ 8 | integer64.h \ 9 | pch.h \ 10 | .Rconfig 11 | -------------------------------------------------------------------------------- /src/DbConnection.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | DbConnection.o: \ 3 | DbConnection.cpp \ 4 | DbConnection.h \ 5 | RSQLite.h \ 6 | pch.h \ 7 | sqlite3-cpp.h \ 8 | .Rconfig 9 | -------------------------------------------------------------------------------- /src/DbDataFrame.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | DbDataFrame.o: \ 3 | DbColumn.h \ 4 | DbColumnDataSource.h \ 5 | DbColumnDataSourceFactory.h \ 6 | DbColumnDataType.h \ 7 | DbColumnStorage.h \ 8 | DbDataFrame.cpp \ 9 | DbDataFrame.h \ 10 | RSQLite.h \ 11 | pch.h \ 12 | .Rconfig 13 | -------------------------------------------------------------------------------- /src/DbDataFrame.h: -------------------------------------------------------------------------------- 1 | #ifndef DB_DATAFRAME_H 2 | #define DB_DATAFRAME_H 3 | 4 | #include 5 | #include 6 | #include "DbColumnDataType.h" 7 | 8 | class DbColumn; 9 | class DbColumnDataSourceFactory; 10 | 11 | class DbDataFrame { 12 | boost::scoped_ptr factory; 13 | const int n_max; 14 | int i; 15 | boost::container::stable_vector data; 16 | std::vector names; 17 | 18 | public: 19 | DbDataFrame(DbColumnDataSourceFactory* factory, 20 | std::vector names, 21 | const int n_max_, 22 | const std::vector& types); 23 | virtual ~DbDataFrame(); 24 | 25 | public: 26 | void set_col_values(); 27 | bool advance(); 28 | 29 | cpp11::list get_data(); 30 | cpp11::list get_data(std::vector& types); 31 | size_t get_ncols() const; 32 | 33 | private: 34 | void finalize_cols(); 35 | }; 36 | 37 | 38 | #endif //DB_DATAFRAME_H 39 | -------------------------------------------------------------------------------- /src/DbResult.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | DbResult.o: \ 3 | DbColumnDataType.h \ 4 | DbConnection.h \ 5 | DbResult.cpp \ 6 | DbResult.h \ 7 | DbResultImpl.h \ 8 | DbResultImplDecl.h \ 9 | RSQLite.h \ 10 | SqliteResultImpl.h \ 11 | pch.h \ 12 | sqlite3-cpp.h \ 13 | .Rconfig 14 | -------------------------------------------------------------------------------- /src/DbResultImpl.h: -------------------------------------------------------------------------------- 1 | #include "SqliteResultImpl.h" 2 | -------------------------------------------------------------------------------- /src/DbResultImplDecl.h: -------------------------------------------------------------------------------- 1 | class SqliteResultImpl; 2 | typedef SqliteResultImpl DbResultImpl; 3 | -------------------------------------------------------------------------------- /src/Makevars: -------------------------------------------------------------------------------- 1 | # BOOST_NO_AUTO_PTR: https://github.com/eddelbuettel/bh/issues/57#issuecomment-406261595 2 | PKG_CPPFLAGS=-Ivendor \ 3 | -DRSQLITE_USE_BUNDLED_SQLITE \ 4 | -DSQLITE_ENABLE_RTREE \ 5 | -DSQLITE_ENABLE_FTS3 \ 6 | -DSQLITE_ENABLE_FTS3_PARENTHESIS \ 7 | -DSQLITE_ENABLE_FTS5 \ 8 | -DSQLITE_ENABLE_JSON1 \ 9 | -DSQLITE_ENABLE_STAT4 \ 10 | -DSQLITE_SOUNDEX \ 11 | -DSQLITE_USE_URI=1 \ 12 | -DSQLITE_MAX_LENGTH=2147483647 \ 13 | -DHAVE_USLEEP=1 14 | 15 | PKG_CXXFLAGS=$(CXX_VISIBILITY) 16 | PKG_CFLAGS=$(C_VISIBILITY) 17 | 18 | PKG_LIBS = vendor/sqlite3/sqlite3.o 19 | 20 | .PHONY: all 21 | 22 | all: $(SHLIB) 23 | 24 | $(SHLIB): $(PKG_LIBS) 25 | 26 | # This file is available only during development. 27 | # For the tarball, we create an empty file. 28 | deps.mk: 29 | touch -r $$(ls -t *.cpp | head -n 1) "$@" 30 | 31 | include deps.mk 32 | -------------------------------------------------------------------------------- /src/RSQLite.h: -------------------------------------------------------------------------------- 1 | #ifndef RSQLite_RSQLite_H 2 | #define RSQLite_RSQLite_H 3 | 4 | #include "cpp11.hpp" 5 | #include 6 | 7 | #include 8 | 9 | // CRAN request 10 | #ifndef BOOST_NO_AUTO_PTR 11 | #define BOOST_NO_AUTO_PTR 12 | #endif 13 | 14 | // Included here because they need -Wno-error, 15 | // which is active only for precompiled headers on my system 16 | #include 17 | #include 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /src/SqliteColumnDataSource.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | SqliteColumnDataSource.o: \ 3 | DbColumnDataSource.h \ 4 | DbColumnDataType.h \ 5 | RSQLite.h \ 6 | SqliteColumnDataSource.cpp \ 7 | SqliteColumnDataSource.h \ 8 | affinity.h \ 9 | integer64.h \ 10 | pch.h \ 11 | sqlite3-cpp.h \ 12 | .Rconfig 13 | -------------------------------------------------------------------------------- /src/SqliteColumnDataSourceFactory.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "SqliteColumnDataSourceFactory.h" 3 | #include "SqliteColumnDataSource.h" 4 | 5 | SqliteColumnDataSourceFactory::SqliteColumnDataSourceFactory(sqlite3_stmt* stmt_, bool with_alt_types_) : 6 | stmt(stmt_), 7 | with_alt_types(with_alt_types_) 8 | { 9 | } 10 | 11 | SqliteColumnDataSourceFactory::~SqliteColumnDataSourceFactory() { 12 | } 13 | 14 | DbColumnDataSource* SqliteColumnDataSourceFactory::create(const int j) { 15 | return new SqliteColumnDataSource(stmt, j, with_alt_types); 16 | } 17 | -------------------------------------------------------------------------------- /src/SqliteColumnDataSourceFactory.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | SqliteColumnDataSourceFactory.o: \ 3 | DbColumnDataSource.h \ 4 | DbColumnDataSourceFactory.h \ 5 | DbColumnDataType.h \ 6 | RSQLite.h \ 7 | SqliteColumnDataSource.h \ 8 | SqliteColumnDataSourceFactory.cpp \ 9 | SqliteColumnDataSourceFactory.h \ 10 | pch.h \ 11 | sqlite3-cpp.h \ 12 | .Rconfig 13 | -------------------------------------------------------------------------------- /src/SqliteColumnDataSourceFactory.h: -------------------------------------------------------------------------------- 1 | #ifndef RSQLITE_SQLITECOLUMNFACTORY_H 2 | #define RSQLITE_SQLITECOLUMNFACTORY_H 3 | 4 | #include "sqlite3-cpp.h" 5 | #include "DbColumnDataSourceFactory.h" 6 | 7 | class SqliteColumnDataSourceFactory : public DbColumnDataSourceFactory { 8 | sqlite3_stmt* stmt; 9 | bool with_alt_types; 10 | 11 | public: 12 | SqliteColumnDataSourceFactory(sqlite3_stmt* stmt_, bool with_alt_types_); 13 | ~SqliteColumnDataSourceFactory(); 14 | 15 | public: 16 | DbColumnDataSource* create(const int j); 17 | }; 18 | 19 | #endif //RSQLITE_SQLITECOLUMNFACTORY_H 20 | -------------------------------------------------------------------------------- /src/SqliteDataFrame.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "SqliteDataFrame.h" 3 | #include "SqliteColumnDataSourceFactory.h" 4 | 5 | 6 | SqliteDataFrame::SqliteDataFrame(sqlite3_stmt* stmt, std::vector names, const int n_max_, 7 | const std::vector& types, bool with_alt_types) : 8 | DbDataFrame(new SqliteColumnDataSourceFactory(stmt, with_alt_types), names, n_max_, types) 9 | { 10 | } 11 | 12 | SqliteDataFrame::~SqliteDataFrame() { 13 | } 14 | -------------------------------------------------------------------------------- /src/SqliteDataFrame.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | SqliteDataFrame.o: \ 3 | DbColumnDataSourceFactory.h \ 4 | DbColumnDataType.h \ 5 | DbDataFrame.h \ 6 | RSQLite.h \ 7 | SqliteColumnDataSourceFactory.h \ 8 | SqliteDataFrame.cpp \ 9 | SqliteDataFrame.h \ 10 | pch.h \ 11 | sqlite3-cpp.h \ 12 | .Rconfig 13 | -------------------------------------------------------------------------------- /src/SqliteDataFrame.h: -------------------------------------------------------------------------------- 1 | #ifndef RSQLITE_SQLITEDATAFRAME_H 2 | #define RSQLITE_SQLITEDATAFRAME_H 3 | 4 | #include "sqlite3-cpp.h" 5 | #include "DbDataFrame.h" 6 | 7 | class SqliteDataFrame : public DbDataFrame { 8 | public: 9 | SqliteDataFrame(sqlite3_stmt* stmt, std::vector names, const int n_max_, const std::vector& types, 10 | bool with_alt_types); 11 | virtual ~SqliteDataFrame(); 12 | }; 13 | 14 | #endif //RSQLITE_SQLITEDATAFRAME_H 15 | -------------------------------------------------------------------------------- /src/SqliteResult.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "SqliteResult.h" 3 | #include "SqliteResultImpl.h" 4 | 5 | 6 | 7 | // Construction //////////////////////////////////////////////////////////////// 8 | 9 | SqliteResult::SqliteResult(const DbConnectionPtr& pConn, const std::string& sql) : 10 | DbResult(pConn) 11 | { 12 | impl.reset(new DbResultImpl(pConn, sql)); 13 | } 14 | 15 | 16 | DbResult* SqliteResult::create_and_send_query(const DbConnectionPtr& con, const std::string& sql) { 17 | return new SqliteResult(con, sql); 18 | } 19 | 20 | // Publics ///////////////////////////////////////////////////////////////////// 21 | 22 | cpp11::strings SqliteResult::get_placeholder_names() const { 23 | return impl->get_placeholder_names(); 24 | } 25 | -------------------------------------------------------------------------------- /src/SqliteResult.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | SqliteResult.o: \ 3 | DbColumnDataType.h \ 4 | DbResult.h \ 5 | DbResultImplDecl.h \ 6 | RSQLite.h \ 7 | SqliteResult.cpp \ 8 | SqliteResult.h \ 9 | SqliteResultImpl.h \ 10 | pch.h \ 11 | sqlite3-cpp.h \ 12 | .Rconfig 13 | -------------------------------------------------------------------------------- /src/SqliteResult.h: -------------------------------------------------------------------------------- 1 | #ifndef __RSQLITE_SQLITE_RESULT__ 2 | #define __RSQLITE_SQLITE_RESULT__ 3 | 4 | #include 5 | #include "DbResult.h" 6 | 7 | // DbResult -------------------------------------------------------------------- 8 | 9 | class SqliteResult : public DbResult { 10 | protected: 11 | SqliteResult(const DbConnectionPtr& pConn, const std::string& sql); 12 | 13 | public: 14 | static DbResult* create_and_send_query(const DbConnectionPtr& con, const std::string& sql); 15 | 16 | public: 17 | cpp11::strings get_placeholder_names() const; 18 | }; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /src/SqliteResultImpl.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | SqliteResultImpl.o: \ 3 | DbColumnDataType.h \ 4 | DbColumnStorage.h \ 5 | DbConnection.h \ 6 | DbDataFrame.h \ 7 | RSQLite.h \ 8 | SqliteDataFrame.h \ 9 | SqliteResultImpl.cpp \ 10 | SqliteResultImpl.h \ 11 | integer64.h \ 12 | pch.h \ 13 | sqlite3-cpp.h \ 14 | .Rconfig 15 | -------------------------------------------------------------------------------- /src/affinity.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | affinity.o: \ 3 | affinity.c \ 4 | affinity.h \ 5 | .Rconfig 6 | -------------------------------------------------------------------------------- /src/affinity.h: -------------------------------------------------------------------------------- 1 | #ifndef __AFFINITY_H__ 2 | #define __AFFINITY_H__ 3 | 4 | #ifdef __cplusplus 5 | extern "C" { 6 | #endif 7 | 8 | #define SQLITE_AFF_BLOB 'A' 9 | #define SQLITE_AFF_TEXT 'B' 10 | #define SQLITE_AFF_NUMERIC 'C' 11 | #define SQLITE_AFF_INTEGER 'D' 12 | #define SQLITE_AFF_REAL 'E' 13 | 14 | char sqlite3AffinityType(const char* zIn); 15 | 16 | #ifdef __cplusplus 17 | } // extern "C" { 18 | #endif 19 | 20 | #endif // #ifndef __AFFINITY_H__ 21 | -------------------------------------------------------------------------------- /src/connection.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | connection.o: \ 3 | DbConnection.h \ 4 | RSQLite.h \ 5 | connection.cpp \ 6 | pch.h \ 7 | sqlite3-cpp.h \ 8 | .Rconfig 9 | -------------------------------------------------------------------------------- /src/cpp11.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | cpp11.o: \ 3 | DbConnection.h \ 4 | DbResult.h \ 5 | DbResultImplDecl.h \ 6 | RSQLite.h \ 7 | RSQLite_types.h \ 8 | SqliteResult.h \ 9 | cpp11.cpp \ 10 | sqlite3-cpp.h \ 11 | .Rconfig 12 | -------------------------------------------------------------------------------- /src/deps.mk: -------------------------------------------------------------------------------- 1 | # Dependencies 2 | include $(OBJECTS:.o=.dd) 3 | include $(PKG_LIBS:.o=.dd) 4 | 5 | # Include only local dependencies for smaller footprint 6 | # Add trailing backslash and sort 7 | # Add a dependency to .Rconfig for each file 8 | %.dd: %.d 9 | sed -r 's/([^ ]) ([^ \\])/\1 \\\n \2/g' $< | sed -r '/^ ([/]|vendor|[.][.])/D;$$s/([^\\])$$/\1 \\/' | { echo "# Generated by deps.mk, do not edit by hand and do not add dependencies to system headers"; read -r header; printf '%s\n' "$$header"; LOCALE=C sort; echo " .Rconfig"; } > $@ 10 | 11 | # Ensure that all objects are rebuilt if the R configuration (or version, part of that) changes 12 | $(SHLIB): .Rconfig 13 | 14 | .Rconfig: FORCE 15 | @R CMD config --all > .Rconfig.current 16 | @if ! cmp -s .Rconfig .Rconfig.current; then \ 17 | echo "R config changed; updating .Rconfig"; \ 18 | mv .Rconfig.current .Rconfig; \ 19 | else \ 20 | rm .Rconfig.current; \ 21 | fi 22 | 23 | FORCE: 24 | -------------------------------------------------------------------------------- /src/ext-csv.c: -------------------------------------------------------------------------------- 1 | #define SQLITE_CORE 2 | #include 3 | #define sqlite3_csv_init attribute_visible sqlite3_csv_init 4 | 5 | #include "vendor/extensions/csv.c" 6 | -------------------------------------------------------------------------------- /src/ext-csv.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | ext-csv.o: \ 3 | ext-csv.c \ 4 | .Rconfig 5 | -------------------------------------------------------------------------------- /src/ext-math.c: -------------------------------------------------------------------------------- 1 | #define SQLITE_CORE 2 | #define sqlite3_extension_init sqlite3_math_init 3 | #include 4 | // File obtained from https://www.sqlite.org/contrib and tweaked 5 | // Not integrated into upgrade.R yet because upstream hasn't changed for a long time 6 | #include "vendor/extensions/extension-functions.c" 7 | -------------------------------------------------------------------------------- /src/ext-math.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | ext-math.o: \ 3 | ext-math.c \ 4 | .Rconfig 5 | -------------------------------------------------------------------------------- /src/ext-regexp.c: -------------------------------------------------------------------------------- 1 | #define SQLITE_CORE 2 | #include 3 | #define sqlite3_regexp_init attribute_visible sqlite3_regexp_init 4 | 5 | #include "vendor/extensions/regexp.c" 6 | -------------------------------------------------------------------------------- /src/ext-regexp.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | ext-regexp.o: \ 3 | ext-regexp.c \ 4 | .Rconfig 5 | -------------------------------------------------------------------------------- /src/ext-series.c: -------------------------------------------------------------------------------- 1 | #define SQLITE_CORE 2 | #include 3 | #define sqlite3_series_init attribute_visible sqlite3_series_init 4 | 5 | #include "vendor/extensions/series.c" 6 | -------------------------------------------------------------------------------- /src/ext-series.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | ext-series.o: \ 3 | ext-series.c \ 4 | .Rconfig 5 | -------------------------------------------------------------------------------- /src/ext-uuid.c: -------------------------------------------------------------------------------- 1 | #define SQLITE_CORE 2 | #include 3 | #define sqlite3_uuid_init attribute_visible sqlite3_uuid_init 4 | 5 | #include "vendor/extensions/uuid.c" 6 | -------------------------------------------------------------------------------- /src/ext-uuid.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | ext-uuid.o: \ 3 | ext-uuid.c \ 4 | .Rconfig 5 | -------------------------------------------------------------------------------- /src/extensions.cpp: -------------------------------------------------------------------------------- 1 | #include "pch.h" 2 | #include "DbConnection.h" 3 | 4 | 5 | [[cpp11::register]] 6 | void extension_load(cpp11::external_pointer con, const std::string& file, const std::string& entry_point) { 7 | char* zErrMsg = NULL; 8 | int rc = sqlite3_load_extension((*con)->conn(), file.c_str(), entry_point.c_str(), &zErrMsg); 9 | if (rc != SQLITE_OK) { 10 | std::string err_msg = zErrMsg; 11 | sqlite3_free(zErrMsg); 12 | cpp11::stop("Failed to load extension: %s", err_msg.c_str()); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/extensions.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | extensions.o: \ 3 | DbConnection.h \ 4 | RSQLite.h \ 5 | extensions.cpp \ 6 | pch.h \ 7 | sqlite3-cpp.h \ 8 | .Rconfig 9 | -------------------------------------------------------------------------------- /src/import-file.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | import-file.o: \ 3 | import-file.c \ 4 | .Rconfig 5 | -------------------------------------------------------------------------------- /src/integer64.h: -------------------------------------------------------------------------------- 1 | #ifndef RPOSTGRES_INTEGER64_H 2 | #define RPOSTGRES_INTEGER64_H 3 | 4 | #define INT64SXP REALSXP 5 | 6 | #define NA_INTEGER64 (int64_t(0x8000000000000000)) 7 | 8 | inline int64_t* INTEGER64(SEXP x) { 9 | return reinterpret_cast(REAL(x)); 10 | } 11 | 12 | #endif // RPOSTGRES_INTEGER64_H 13 | -------------------------------------------------------------------------------- /src/pch.h: -------------------------------------------------------------------------------- 1 | #include "RSQLite.h" 2 | -------------------------------------------------------------------------------- /src/result.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | result.o: \ 3 | DbConnection.h \ 4 | DbResult.h \ 5 | DbResultImplDecl.h \ 6 | RSQLite.h \ 7 | RSQLite_types.h \ 8 | SqliteResult.h \ 9 | pch.h \ 10 | result.cpp \ 11 | sqlite3-cpp.h \ 12 | .Rconfig 13 | -------------------------------------------------------------------------------- /src/rsqlite.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "pch.h" 4 | #include "sqlite3-cpp.h" 5 | 6 | [[cpp11::register]] 7 | cpp11::strings rsqliteVersion() { 8 | using namespace cpp11::literals; 9 | return 10 | cpp11::strings({ 11 | "header"_nm = SQLITE_VERSION, 12 | "library"_nm = sqlite3_libversion() 13 | }); 14 | } 15 | 16 | [[cpp11::register]] 17 | void init_logging(const std::string& log_level) { 18 | plog::init_r(log_level); 19 | } 20 | -------------------------------------------------------------------------------- /src/rsqlite.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | rsqlite.o: \ 3 | RSQLite.h \ 4 | pch.h \ 5 | rsqlite.cpp \ 6 | sqlite3-cpp.h \ 7 | .Rconfig 8 | -------------------------------------------------------------------------------- /src/sqlite3-cpp.h: -------------------------------------------------------------------------------- 1 | #ifndef __RSQLITE_SQLITE_H 2 | #define __RSQLITE_SQLITE_H 3 | 4 | #include 5 | 6 | // If you see "error: expected initializer before ‘sqlite_uint64’", 7 | // please patch sqlite3.h by running (from the root directory): 8 | // 9 | // patch -p1 < src-raw/sqlite3.patch 10 | 11 | #define SQLITE_INT64_TYPE int64_t 12 | #define SQLITE_UINT64_TYPE uint64_t 13 | 14 | #include "vendor/sqlite3/sqlite3.h" 15 | 16 | #endif // #ifndef __RSQLITE_SQLITE_H 17 | -------------------------------------------------------------------------------- /src/vendor/boost/algorithm/string/config.hpp: -------------------------------------------------------------------------------- 1 | // Boost string_algo library config.hpp header file ---------------------------// 2 | 3 | // Copyright Pavol Droba 2002-2003. 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/ for updates, documentation, and revision history. 10 | 11 | #ifndef BOOST_STRING_CONFIG_HPP 12 | #define BOOST_STRING_CONFIG_HPP 13 | 14 | #include 15 | #include 16 | 17 | #ifdef BOOST_STRING_DEDUCED_TYPENAME 18 | # error "macro already defined!" 19 | #endif 20 | 21 | #define BOOST_STRING_TYPENAME BOOST_DEDUCED_TYPENAME 22 | 23 | // Metrowerks workaround 24 | #if BOOST_WORKAROUND(__MWERKS__, <= 0x3003) // 8.x 25 | #pragma parse_func_templ off 26 | #endif 27 | 28 | #endif // BOOST_STRING_CONFIG_HPP 29 | -------------------------------------------------------------------------------- /src/vendor/boost/call_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/utility for most recent version including documentation. 7 | 8 | // See boost/detail/call_traits.hpp 9 | // for full copyright notices. 10 | 11 | #ifndef BOOST_CALL_TRAITS_HPP 12 | #define BOOST_CALL_TRAITS_HPP 13 | 14 | #ifndef BOOST_CONFIG_HPP 15 | #include 16 | #endif 17 | 18 | #include 19 | 20 | #endif // BOOST_CALL_TRAITS_HPP 21 | -------------------------------------------------------------------------------- /src/vendor/boost/checked_delete.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_CHECKED_DELETE_HPP 10 | #define BOOST_CHECKED_DELETE_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/checked_delete.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /src/vendor/boost/compressed_pair.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/utility for most recent version including documentation. 7 | 8 | // See boost/detail/compressed_pair.hpp 9 | // for full copyright notices. 10 | 11 | #ifndef BOOST_COMPRESSED_PAIR_HPP 12 | #define BOOST_COMPRESSED_PAIR_HPP 13 | 14 | #ifndef BOOST_CONFIG_HPP 15 | #include 16 | #endif 17 | 18 | #include 19 | 20 | #endif // BOOST_COMPRESSED_PAIR_HPP 21 | -------------------------------------------------------------------------------- /src/vendor/boost/concept/detail/backward_compatibility.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2009. Distributed under the Boost 2 | // 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 | #ifndef BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP 5 | # define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP 6 | 7 | namespace boost 8 | { 9 | namespace concepts {} 10 | 11 | # if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD) 12 | namespace concept = concepts; 13 | # endif 14 | } // namespace boost::concept 15 | 16 | #endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP 17 | -------------------------------------------------------------------------------- /src/vendor/boost/concept/detail/concept_undef.hpp: -------------------------------------------------------------------------------- 1 | // Copyright David Abrahams 2006. Distributed under the Boost 2 | // 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 | # undef BOOST_concept_typename 5 | # undef BOOST_concept 6 | -------------------------------------------------------------------------------- /src/vendor/boost/config/abi/borland_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 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 | # pragma option pop 7 | #pragma nopushoptwarn 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/vendor/boost/config/abi/msvc_prefix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 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 | // 7 | // Boost binaries are built with the compiler's default ABI settings, 8 | // if the user changes their default alignment in the VS IDE then their 9 | // code will no longer be binary compatible with the bjam built binaries 10 | // unless this header is included to force Boost code into a consistent ABI. 11 | // 12 | // Note that inclusion of this header is only necessary for libraries with 13 | // separate source, header only libraries DO NOT need this as long as all 14 | // translation units are built with the same options. 15 | // 16 | #if defined(_M_X64) 17 | # pragma pack(push,16) 18 | #else 19 | # pragma pack(push,8) 20 | #endif 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/vendor/boost/config/abi/msvc_suffix.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 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 | #pragma pack(pop) 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/vendor/boost/config/abi_prefix.hpp: -------------------------------------------------------------------------------- 1 | // abi_prefix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 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 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 10 | # define BOOST_CONFIG_ABI_PREFIX_HPP 11 | #else 12 | # error double inclusion of header boost/config/abi_prefix.hpp is an error 13 | #endif 14 | 15 | #include 16 | 17 | // this must occur after all other includes and before any code appears: 18 | #ifdef BOOST_HAS_ABI_HEADERS 19 | # include BOOST_ABI_PREFIX 20 | #endif 21 | 22 | #if defined( BOOST_BORLANDC ) 23 | #pragma nopushoptwarn 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /src/vendor/boost/config/abi_suffix.hpp: -------------------------------------------------------------------------------- 1 | // abi_sufffix header -------------------------------------------------------// 2 | 3 | // (c) Copyright John Maddock 2003 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 | // This header should be #included AFTER code that was preceded by a #include 10 | // . 11 | 12 | #ifndef BOOST_CONFIG_ABI_PREFIX_HPP 13 | # error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp 14 | #else 15 | # undef BOOST_CONFIG_ABI_PREFIX_HPP 16 | #endif 17 | 18 | // the suffix header occurs after all of our code: 19 | #ifdef BOOST_HAS_ABI_HEADERS 20 | # include BOOST_ABI_SUFFIX 21 | #endif 22 | 23 | #if defined( BOOST_BORLANDC ) 24 | #pragma nopushoptwarn 25 | #endif 26 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/config/no_tr1/complex.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 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/complex is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_COMPLEX 14 | # define BOOST_CONFIG_COMPLEX 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_COMPLEX_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_COMPLEX_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/vendor/boost/config/no_tr1/memory.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 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/memory is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_MEMORY 14 | # define BOOST_CONFIG_MEMORY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_MEMORY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_MEMORY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_MEMORY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/vendor/boost/config/no_tr1/utility.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2005. 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/utility is in the 9 | // include search path. We have to do this to avoid circular 10 | // dependencies: 11 | // 12 | 13 | #ifndef BOOST_CONFIG_UTILITY 14 | # define BOOST_CONFIG_UTILITY 15 | 16 | # ifndef BOOST_TR1_NO_RECURSION 17 | # define BOOST_TR1_NO_RECURSION 18 | # define BOOST_CONFIG_NO_UTILITY_RECURSION 19 | # endif 20 | 21 | # include 22 | 23 | # ifdef BOOST_CONFIG_NO_UTILITY_RECURSION 24 | # undef BOOST_TR1_NO_RECURSION 25 | # undef BOOST_CONFIG_NO_UTILITY_RECURSION 26 | # endif 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/amigaos.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 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 | #define BOOST_PLATFORM "AmigaOS" 9 | 10 | #define BOOST_DISABLE_THREADS 11 | #define BOOST_NO_CWCHAR 12 | #define BOOST_NO_STD_WSTRING 13 | #define BOOST_NO_INTRINSIC_WCHAR_T 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/beos.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 | // BeOS specific config options: 9 | 10 | #define BOOST_PLATFORM "BeOS" 11 | 12 | #define BOOST_NO_CWCHAR 13 | #define BOOST_NO_CWCTYPE 14 | #define BOOST_HAS_UNISTD_H 15 | 16 | #define BOOST_HAS_BETHREADS 17 | 18 | #ifndef BOOST_DISABLE_THREADS 19 | # define BOOST_HAS_THREADS 20 | #endif 21 | 22 | // boilerplate code: 23 | #include 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/cray.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2011. 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 | 7 | // See http://www.boost.org for most recent version. 8 | 9 | // SGI Irix specific config options: 10 | 11 | #define BOOST_PLATFORM "Cray" 12 | 13 | // boilerplate code: 14 | #define BOOST_HAS_UNISTD_H 15 | #include 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/irix.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 | 8 | // See http://www.boost.org for most recent version. 9 | 10 | // SGI Irix specific config options: 11 | 12 | #define BOOST_PLATFORM "SGI Irix" 13 | 14 | #define BOOST_NO_SWPRINTF 15 | // 16 | // these are not auto detected by POSIX feature tests: 17 | // 18 | #define BOOST_HAS_GETTIMEOFDAY 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | 21 | #ifdef __GNUC__ 22 | // GNU C on IRIX does not support threads (checked up to gcc 3.3) 23 | # define BOOST_DISABLE_THREADS 24 | #endif 25 | 26 | // boilerplate code: 27 | #define BOOST_HAS_UNISTD_H 28 | #include 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/qnxnto.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Jim Douglas 2005. 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 | // QNX specific config options: 9 | 10 | #define BOOST_PLATFORM "QNX" 11 | 12 | #define BOOST_HAS_UNISTD_H 13 | #include 14 | 15 | // QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h 16 | // or log1p and expm1: 17 | #undef BOOST_HAS_NL_TYPES_H 18 | #undef BOOST_HAS_LOG1P 19 | #undef BOOST_HAS_EXPM1 20 | 21 | #define BOOST_HAS_PTHREADS 22 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 23 | 24 | #define BOOST_HAS_GETTIMEOFDAY 25 | #define BOOST_HAS_CLOCK_GETTIME 26 | #define BOOST_HAS_NANOSLEEP 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/vms.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Artyom Beilis 2010. 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 | #ifndef BOOST_CONFIG_PLATFORM_VMS_HPP 7 | #define BOOST_CONFIG_PLATFORM_VMS_HPP 8 | 9 | #define BOOST_PLATFORM "OpenVMS" 10 | 11 | #undef BOOST_HAS_STDINT_H 12 | #define BOOST_HAS_UNISTD_H 13 | #define BOOST_HAS_NL_TYPES_H 14 | #define BOOST_HAS_GETTIMEOFDAY 15 | #define BOOST_HAS_DIRENT_H 16 | #define BOOST_HAS_PTHREADS 17 | #define BOOST_HAS_NANOSLEEP 18 | #define BOOST_HAS_CLOCK_GETTIME 19 | #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 20 | #define BOOST_HAS_LOG1P 21 | #define BOOST_HAS_EXPM1 22 | #define BOOST_HAS_THREADS 23 | #undef BOOST_HAS_SCHED_YIELD 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/wasm.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright John Maddock 2020. 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 | // WASM specific config options: 9 | 10 | #define BOOST_PLATFORM "Wasm" 11 | 12 | #ifdef __has_include 13 | #if __has_include() 14 | # define BOOST_HAS_UNISTD_H 15 | #endif 16 | #endif 17 | 18 | // boilerplate code: 19 | #include 20 | // 21 | // fenv lacks the C++11 macros: 22 | // 23 | #define BOOST_NO_FENV_H 24 | -------------------------------------------------------------------------------- /src/vendor/boost/config/platform/zos.hpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2017 Dynatrace 2 | // 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 | // See http://www.boost.org for most recent version. 8 | 9 | // Platform setup for IBM z/OS. 10 | 11 | #define BOOST_PLATFORM "IBM z/OS" 12 | 13 | #include // For __UU, __C99, __TR1, ... 14 | 15 | #if defined(__UU) 16 | # define BOOST_HAS_GETTIMEOFDAY 17 | #endif 18 | 19 | #if defined(_OPEN_THREADS) || defined(__SUSV3_THR) 20 | # define BOOST_HAS_PTHREADS 21 | # define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE 22 | # define BOOST_HAS_THREADS 23 | #endif 24 | 25 | #if defined(__SUSV3) || defined(__SUSV3_THR) 26 | # define BOOST_HAS_SCHED_YIELD 27 | #endif 28 | 29 | #define BOOST_HAS_SIGACTION 30 | #define BOOST_HAS_UNISTD_H 31 | #define BOOST_HAS_DIRENT_H 32 | #define BOOST_HAS_NL_TYPES_H 33 | -------------------------------------------------------------------------------- /src/vendor/boost/container/detail/config_end.hpp: -------------------------------------------------------------------------------- 1 | ////////////////////////////////////////////////////////////////////////////// 2 | // 3 | // (C) Copyright Ion Gaztanaga 2005-2013. 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 | #if defined BOOST_MSVC 11 | #pragma warning (pop) 12 | #endif 13 | 14 | #if defined(BOOST_GCC) && (BOOST_GCC >= 40600) 15 | #pragma GCC diagnostic pop 16 | #endif 17 | -------------------------------------------------------------------------------- /src/vendor/boost/core/is_same.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_CORE_IS_SAME_HPP_INCLUDED 2 | #define BOOST_CORE_IS_SAME_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | // is_same::value is true when T1 == T2 11 | // 12 | // Copyright 2014 Peter Dimov 13 | // 14 | // Distributed under the Boost Software License, Version 1.0. 15 | // See accompanying file LICENSE_1_0.txt or copy at 16 | // http://www.boost.org/LICENSE_1_0.txt 17 | 18 | #include 19 | 20 | namespace boost 21 | { 22 | 23 | namespace core 24 | { 25 | 26 | template< class T1, class T2 > struct is_same 27 | { 28 | BOOST_STATIC_CONSTANT( bool, value = false ); 29 | }; 30 | 31 | template< class T > struct is_same< T, T > 32 | { 33 | BOOST_STATIC_CONSTANT( bool, value = true ); 34 | }; 35 | 36 | } // namespace core 37 | 38 | } // namespace boost 39 | 40 | #endif // #ifndef BOOST_CORE_IS_SAME_HPP_INCLUDED 41 | -------------------------------------------------------------------------------- /src/vendor/boost/core/use_default.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2019 Glen Joseph Fernandes 3 | (glenjofe@gmail.com) 4 | 5 | Distributed under the Boost Software License, Version 1.0. 6 | (http://www.boost.org/LICENSE_1_0.txt) 7 | */ 8 | #ifndef BOOST_CORE_USE_DEFAULT_HPP 9 | #define BOOST_CORE_USE_DEFAULT_HPP 10 | 11 | namespace boost { 12 | 13 | struct use_default { }; 14 | 15 | } /* boost */ 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /src/vendor/boost/date_time/date_defs.hpp: -------------------------------------------------------------------------------- 1 | #ifndef DATE_TIME_DATE_DEFS_HPP 2 | #define DATE_TIME_DATE_DEFS_HPP 3 | 4 | /* Copyright (c) 2002,2003 CrystalClear Software, Inc. 5 | * Use, modification and distribution is subject to the 6 | * Boost Software License, Version 1.0. (See accompanying 7 | * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 8 | * Author: Jeff Garland 9 | * $Date$ 10 | */ 11 | 12 | 13 | namespace boost { 14 | namespace date_time { 15 | 16 | //! An enumeration of weekday names 17 | enum weekdays {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}; 18 | 19 | //! Simple enum to allow for nice programming with Jan, Feb, etc 20 | enum months_of_year {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,NotAMonth,NumMonths}; 21 | 22 | } } //namespace date_time 23 | 24 | 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /src/vendor/boost/date_time/posix_time/time_period.hpp: -------------------------------------------------------------------------------- 1 | #ifndef POSIX_TIME_PERIOD_HPP___ 2 | #define POSIX_TIME_PERIOD_HPP___ 3 | 4 | /* Copyright (c) 2002,2003 CrystalClear Software, Inc. 5 | * Use, modification and distribution is subject to the 6 | * Boost Software License, Version 1.0. (See accompanying 7 | * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 8 | * Author: Jeff Garland 9 | * $Date$ 10 | */ 11 | 12 | #include "boost/date_time/period.hpp" 13 | #include "boost/date_time/posix_time/posix_time_duration.hpp" 14 | #include "boost/date_time/posix_time/ptime.hpp" 15 | 16 | namespace boost { 17 | namespace posix_time { 18 | 19 | //! Time period type 20 | /*! \ingroup time_basics 21 | */ 22 | typedef date_time::period time_period; 23 | 24 | 25 | } }//namespace posix_time 26 | 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /src/vendor/boost/date_time/special_defs.hpp: -------------------------------------------------------------------------------- 1 | #ifndef DATE_TIME_SPECIAL_DEFS_HPP__ 2 | #define DATE_TIME_SPECIAL_DEFS_HPP__ 3 | 4 | /* Copyright (c) 2002,2003 CrystalClear Software, Inc. 5 | * Use, modification and distribution is subject to the 6 | * Boost Software License, Version 1.0. (See accompanying 7 | * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) 8 | * Author: Jeff Garland 9 | * $Date$ 10 | */ 11 | 12 | namespace boost { 13 | namespace date_time { 14 | 15 | enum special_values {not_a_date_time, 16 | neg_infin, pos_infin, 17 | min_date_time, max_date_time, 18 | not_special, NumSpecialValues}; 19 | 20 | 21 | } } //namespace date_time 22 | 23 | 24 | #endif 25 | 26 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/is_placeholder.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED 2 | #define BOOST_IS_PLACEHOLDER_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined( _MSC_VER ) && ( _MSC_VER >= 1020 ) 7 | # pragma once 8 | #endif 9 | 10 | 11 | // is_placeholder.hpp - TR1 is_placeholder metafunction 12 | // 13 | // Copyright (c) 2006 Peter Dimov 14 | // 15 | // Distributed under the Boost Software License, Version 1.0. 16 | // 17 | // See accompanying file LICENSE_1_0.txt or copy at 18 | // http://www.boost.org/LICENSE_1_0.txt 19 | 20 | 21 | namespace boost 22 | { 23 | 24 | template< class T > struct is_placeholder 25 | { 26 | enum _vt { value = 0 }; 27 | }; 28 | 29 | } // namespace boost 30 | 31 | #endif // #ifndef BOOST_IS_PLACEHOLDER_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /src/vendor/boost/iterator/detail/config_undef.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright Thomas Witt 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 | 6 | // no include guard multiple inclusion intended 7 | 8 | // 9 | // This is a temporary workaround until the bulk of this is 10 | // available in boost config. 11 | // 23/02/03 thw 12 | // 13 | 14 | #undef BOOST_NO_IS_CONVERTIBLE 15 | #undef BOOST_NO_IS_CONVERTIBLE_TEMPLATE 16 | #undef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY 17 | #undef BOOST_NO_LVALUE_RETURN_DETECTION 18 | #undef BOOST_NO_ONE_WAY_ITERATOR_INTEROP 19 | 20 | #ifdef BOOST_ITERATOR_CONFIG_DEF 21 | # undef BOOST_ITERATOR_CONFIG_DEF 22 | #else 23 | # error missing or nested #include config_def 24 | #endif 25 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/always.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED 3 | #define BOOST_MPL_ALWAYS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | namespace boost { namespace mpl { 22 | 23 | template< typename Value > struct always 24 | { 25 | template< 26 | BOOST_MPL_PP_DEFAULT_PARAMS(BOOST_MPL_LIMIT_METAFUNCTION_ARITY, typename T, na) 27 | > 28 | struct apply 29 | { 30 | typedef Value type; 31 | }; 32 | }; 33 | 34 | BOOST_MPL_AUX_ARITY_SPEC(0, always) 35 | 36 | }} 37 | 38 | #endif // BOOST_MPL_ALWAYS_HPP_INCLUDED 39 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/arg_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_ARG_FWD_HPP_INCLUDED 4 | 5 | // Copyright Peter Dimov 2001-2002 6 | // Copyright Aleksey Gurtovoy 2001-2004 7 | // 8 | // Distributed under the Boost Software License, Version 1.0. 9 | // (See accompanying file LICENSE_1_0.txt or copy at 10 | // http://www.boost.org/LICENSE_1_0.txt) 11 | // 12 | // See http://www.boost.org/libs/mpl for documentation. 13 | 14 | // $Id$ 15 | // $Date$ 16 | // $Revision$ 17 | 18 | #include 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | 23 | template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct arg; 24 | 25 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 26 | BOOST_MPL_AUX_ADL_BARRIER_DECL(arg) 27 | 28 | #endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/arg_typedef.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \ 21 | || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 22 | 23 | # define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) typedef T name; 24 | 25 | #else 26 | 27 | # define BOOST_MPL_AUX_ARG_TYPEDEF(T, name) /**/ 28 | 29 | #endif 30 | 31 | #endif // BOOST_MPL_AUX_ARG_TYPEDEF_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/arrays.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2003-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES) \ 21 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 | && ( BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) \ 23 | || BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \ 24 | ) 25 | 26 | # define BOOST_MPL_CFG_NO_DEPENDENT_ARRAY_TYPES 27 | 28 | #endif 29 | 30 | #endif // BOOST_MPL_AUX_CONFIG_ARRAYS_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/bcc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2008 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date: 2004-09-02 10:41:37 -0500 (Thu, 02 Sep 2004) $ 15 | // $Revision: 24874 $ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_BCC590_WORKAROUNDS) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && BOOST_WORKAROUND(BOOST_BORLANDC, >= 0x590) \ 22 | && BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) 23 | 24 | # define BOOST_MPL_CFG_BCC590_WORKAROUNDS 25 | 26 | #endif 27 | 28 | #endif // BOOST_MPL_AUX_CONFIG_BCC_HPP_INCLUDED 29 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/ctps.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if !defined(BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC) \ 21 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 22 | && BOOST_WORKAROUND(BOOST_BORLANDC, < 0x582) 23 | 24 | # define BOOST_MPL_CFG_NO_NONTYPE_TEMPLATE_PARTIAL_SPEC 25 | 26 | #endif 27 | 28 | // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined in 29 | 30 | #endif // BOOST_MPL_AUX_CONFIG_CTPS_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) 22 | 23 | # define BOOST_MPL_CFG_DMC_AMBIGUOUS_CTPS 24 | 25 | #endif 26 | 27 | #endif // BOOST_MPL_AUX_CONFIG_DMC_AMBIGUOUS_CTPS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/forwarding.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x610)) 22 | 23 | # define BOOST_MPL_CFG_NO_NESTED_FORWARDING 24 | 25 | #endif 26 | 27 | #endif // BOOST_MPL_AUX_CONFIG_FORWARDING_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/gcc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if defined(__GNUC__) && !defined(__EDG_VERSION__) 18 | # define BOOST_MPL_CFG_GCC ((__GNUC__ << 8) | __GNUC_MINOR__) 19 | #else 20 | # define BOOST_MPL_CFG_GCC 0 21 | #endif 22 | 23 | #endif // BOOST_MPL_AUX_CONFIG_GCC_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/gpu.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED 4 | 5 | // Copyright Eric Niebler 2014 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_GPU_ENABLED) \ 20 | 21 | # define BOOST_MPL_CFG_GPU_ENABLED BOOST_GPU_ENABLED 22 | 23 | #endif 24 | 25 | #if defined __CUDACC__ 26 | 27 | # define BOOST_MPL_CFG_GPU 1 28 | 29 | #else 30 | 31 | # define BOOST_MPL_CFG_GPU 0 32 | 33 | #endif 34 | 35 | #endif // BOOST_MPL_AUX_CONFIG_GPU_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/intel.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | 18 | // BOOST_INTEL_CXX_VERSION is defined here: 19 | #include 20 | 21 | #endif // BOOST_MPL_AUX_CONFIG_INTEL_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/msvc.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | 18 | // BOOST_MSVC is defined here: 19 | #include 20 | 21 | #endif // BOOST_MPL_AUX_CONFIG_MSVC_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/msvc_typename.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) 21 | # define BOOST_MSVC_TYPENAME 22 | #else 23 | # define BOOST_MSVC_TYPENAME typename 24 | #endif 25 | 26 | #endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/overload_resolution.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION) \ 20 | && !defined(BOOST_MPL_PREPROCESSING_MODE) \ 21 | && ( BOOST_WORKAROUND(BOOST_BORLANDC, < 0x590) \ 22 | || BOOST_WORKAROUND(__MWERKS__, < 0x3001) \ 23 | ) 24 | 25 | # define BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION 26 | 27 | #endif 28 | 29 | #endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/pp_counter.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2006 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_AUX_PP_COUNTER) 18 | # include 19 | # if BOOST_WORKAROUND(BOOST_MSVC, >= 1300) 20 | # define BOOST_MPL_AUX_PP_COUNTER() __COUNTER__ 21 | # else 22 | # define BOOST_MPL_AUX_PP_COUNTER() __LINE__ 23 | # endif 24 | #endif 25 | 26 | #endif // BOOST_MPL_AUX_CONFIG_PP_COUNTER_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/static_constant.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_PREPROCESSING_MODE) 18 | // BOOST_STATIC_CONSTANT is defined here: 19 | # include 20 | #else 21 | // undef the macro for the preprocessing mode 22 | # undef BOOST_STATIC_CONSTANT 23 | #endif 24 | 25 | #endif // BOOST_MPL_AUX_CONFIG_STATIC_CONSTANT_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/use_preprocessed.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | // #define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS 18 | 19 | #endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/config/workaround.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_AUX_CONFIG_WORKAROUND_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/has_apply.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | namespace boost { namespace mpl { namespace aux { 21 | #if !defined(BOOST_MPL_CFG_NO_HAS_APPLY) 22 | BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false) 23 | #else 24 | template< typename T, typename fallback_ = false_ > 25 | struct has_apply 26 | : fallback_ 27 | { 28 | }; 29 | #endif 30 | }}} 31 | 32 | #endif // BOOST_MPL_AUX_HAS_APPLY_HPP_INCLUDED 33 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/has_tag.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | namespace boost { namespace mpl { namespace aux { 20 | BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false) 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_HAS_TAG_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/has_type.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | namespace boost { namespace mpl { namespace aux { 20 | BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true) 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_HAS_TYPE_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/lambda_arity_param.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if !defined(BOOST_MPL_CFG_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) 20 | # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) 21 | #else 22 | # define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param 23 | #endif 24 | 25 | #endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED 26 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/msvc_never_true.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | #if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) 21 | 22 | namespace boost { namespace mpl { namespace aux { 23 | 24 | template< typename T > 25 | struct msvc_never_true 26 | { 27 | enum { value = false }; 28 | }; 29 | 30 | }}} 31 | 32 | #endif // BOOST_MSVC 33 | 34 | #endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED 35 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/na_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | // n.a. == not available 22 | struct na 23 | { 24 | typedef na type; 25 | enum { value = 0 }; 26 | }; 27 | 28 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 29 | BOOST_MPL_AUX_ADL_BARRIER_DECL(na) 30 | 31 | #endif // BOOST_MPL_AUX_NA_FWD_HPP_INCLUDED 32 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/nttp_decl.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if defined(BOOST_MPL_CFG_NTTP_BUG) 20 | 21 | typedef bool _mpl_nttp_bool; 22 | typedef int _mpl_nttp_int; 23 | typedef unsigned _mpl_nttp_unsigned; 24 | typedef long _mpl_nttp_long; 25 | 26 | # include 27 | # define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(_mpl_nttp_,T) x /**/ 28 | 29 | #else 30 | 31 | # define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ 32 | 33 | #endif 34 | 35 | #endif // BOOST_MPL_AUX_NTTP_DECL_HPP_INCLUDED 36 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // *Preprocessed* version of the main "template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/bcc551/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2004 3 | // 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 | // Preprocessed version of "boost/mpl/quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2008 3 | // 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 | // *Preprocessed* version of the main "quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/bcc_pre590/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // *Preprocessed* version of the main "template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/msvc60/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2004 3 | // 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 | // Preprocessed version of "boost/mpl/quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2000-2004 3 | // 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 | // Preprocessed version of "boost/mpl/quote.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/no_ttp/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | namespace boost { namespace mpl { namespace aux { 13 | 14 | template< bool > 15 | struct template_arity_impl 16 | { 17 | template< typename F > struct result_ 18 | : mpl::int_< -1 > 19 | { 20 | }; 21 | }; 22 | 23 | template<> 24 | struct template_arity_impl 25 | { 26 | template< typename F > struct result_ 27 | : F::arity 28 | { 29 | }; 30 | }; 31 | 32 | template< typename F > 33 | struct template_arity 34 | : template_arity_impl< ::boost::mpl::aux::has_rebind::value > 35 | ::template result_ 36 | { 37 | }; 38 | 39 | }}} 40 | 41 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessed/plain/template_arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | // Copyright Aleksey Gurtovoy 2001-2004 3 | // 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 | // Preprocessed version of "boost/mpl/aux_/template_arity.hpp" header 10 | // -- DO NOT modify by hand! 11 | 12 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/preprocessor/range.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2002-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #define BOOST_MPL_PP_RANGE_ITEM(z,n,_) (n) 22 | 23 | #define BOOST_MPL_PP_RANGE(first, length) \ 24 | BOOST_PP_SEQ_SUBSEQ( \ 25 | BOOST_PP_REPEAT(BOOST_PP_ADD(first,length), BOOST_MPL_PP_RANGE_ITEM, _), \ 26 | first, length \ 27 | ) \ 28 | /**/ 29 | 30 | #endif // BOOST_MPL_AUX_PREPROCESSOR_RANGE_HPP_INCLUDED 31 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/static_cast.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x561)) \ 20 | || BOOST_WORKAROUND(__GNUC__, < 3) \ 21 | || BOOST_WORKAROUND(__MWERKS__, <= 0x3001) 22 | # define BOOST_MPL_AUX_STATIC_CAST(T, expr) (T)(expr) 23 | #else 24 | # define BOOST_MPL_AUX_STATIC_CAST(T, expr) static_cast(expr) 25 | #endif 26 | 27 | #endif // BOOST_MPL_AUX_STATIC_CAST_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/aux_/template_arity_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | namespace boost { namespace mpl { namespace aux { 18 | 19 | template< typename F > struct template_arity; 20 | 21 | }}} 22 | 23 | #endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED 24 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/bool_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_BOOL_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_BOOL_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | template< bool C_ > struct bool_; 22 | 23 | // shorcuts 24 | typedef bool_ true_; 25 | typedef bool_ false_; 26 | 27 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 28 | 29 | BOOST_MPL_AUX_ADL_BARRIER_DECL(bool_) 30 | BOOST_MPL_AUX_ADL_BARRIER_DECL(true_) 31 | BOOST_MPL_AUX_ADL_BARRIER_DECL(false_) 32 | 33 | #endif // BOOST_MPL_BOOL_FWD_HPP_INCLUDED 34 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/equal_to.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_EQUAL_TO_HPP_INCLUDED 3 | #define BOOST_MPL_EQUAL_TO_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #define AUX778076_OP_NAME equal_to 18 | #define AUX778076_OP_TOKEN == 19 | #include 20 | 21 | #endif // BOOST_MPL_EQUAL_TO_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/int.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INT_HPP_INCLUDED 3 | #define BOOST_MPL_INT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #define AUX_WRAPPER_VALUE_TYPE int 20 | #include 21 | 22 | #endif // BOOST_MPL_INT_HPP_INCLUDED 23 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/int_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INT_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_INT_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | 20 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 21 | 22 | template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_; 23 | 24 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 25 | BOOST_MPL_AUX_ADL_BARRIER_DECL(int_) 26 | 27 | #endif // BOOST_MPL_INT_FWD_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/integral_c_tag.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 3 | #define BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | 18 | #include 19 | #include 20 | 21 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 22 | struct integral_c_tag { BOOST_STATIC_CONSTANT(int, value = 0); }; 23 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 24 | BOOST_MPL_AUX_ADL_BARRIER_DECL(integral_c_tag) 25 | 26 | #endif // BOOST_MPL_INTEGRAL_C_TAG_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/lambda.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED 3 | #define BOOST_MPL_LAMBDA_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #if !defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) 22 | # include 23 | #else 24 | # include 25 | # include 26 | # define BOOST_MPL_CFG_NO_IMPLICIT_METAFUNCTIONS 27 | #endif 28 | 29 | #endif // BOOST_MPL_LAMBDA_HPP_INCLUDED 30 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/less.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LESS_HPP_INCLUDED 3 | #define BOOST_MPL_LESS_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #define AUX778076_OP_NAME less 18 | #define AUX778076_OP_TOKEN < 19 | #include 20 | 21 | #endif // BOOST_MPL_LESS_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/limits/arity.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 3 | #define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #if !defined(BOOST_MPL_LIMIT_METAFUNCTION_ARITY) 18 | # define BOOST_MPL_LIMIT_METAFUNCTION_ARITY 5 19 | #endif 20 | 21 | #endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/logical.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED 3 | #define BOOST_MPL_LOGICAL_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | #include 19 | #include 20 | 21 | #endif // BOOST_MPL_LOGICAL_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/next.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_NEXT_HPP_INCLUDED 3 | #define BOOST_MPL_NEXT_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | #endif // BOOST_MPL_NEXT_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/times.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_TIMES_HPP_INCLUDED 3 | #define BOOST_MPL_TIMES_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2000-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #define AUX778076_OP_NAME times 18 | #define AUX778076_OP_TOKEN * 19 | #include 20 | 21 | #endif // BOOST_MPL_TIMES_HPP_INCLUDED 22 | -------------------------------------------------------------------------------- /src/vendor/boost/mpl/void_fwd.hpp: -------------------------------------------------------------------------------- 1 | 2 | #ifndef BOOST_MPL_VOID_FWD_HPP_INCLUDED 3 | #define BOOST_MPL_VOID_FWD_HPP_INCLUDED 4 | 5 | // Copyright Aleksey Gurtovoy 2001-2004 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 | // See http://www.boost.org/libs/mpl for documentation. 12 | 13 | // $Id$ 14 | // $Date$ 15 | // $Revision$ 16 | 17 | #include 18 | 19 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_OPEN 20 | 21 | struct void_; 22 | 23 | BOOST_MPL_AUX_ADL_BARRIER_NAMESPACE_CLOSE 24 | BOOST_MPL_AUX_ADL_BARRIER_DECL(void_) 25 | 26 | #endif // BOOST_MPL_VOID_FWD_HPP_INCLUDED 27 | -------------------------------------------------------------------------------- /src/vendor/boost/noncopyable.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_NONCOPYABLE_HPP 10 | #define BOOST_NONCOPYABLE_HPP 11 | 12 | // The header file at this path is deprecated; 13 | // use boost/core/noncopyable.hpp instead. 14 | 15 | #include 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /src/vendor/boost/numeric/conversion/bounds.hpp: -------------------------------------------------------------------------------- 1 | // (c) Copyright Fernando Luis Cacciola Carballal 2000-2004 2 | // Use, modification, and distribution is subject to the Boost Software 3 | // License, 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 library home page at http://www.boost.org/libs/numeric/conversion 7 | // 8 | // Contact the author at: fernando_cacciola@hotmail.com 9 | // 10 | #ifndef BOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP 11 | #define BOOST_NUMERIC_CONVERSION_BOUNDS_12NOV2002_HPP 12 | 13 | #include "boost/numeric/conversion/detail/bounds.hpp" 14 | 15 | namespace boost { namespace numeric 16 | { 17 | 18 | template 19 | struct bounds : boundsdetail::get_impl::type 20 | {} ; 21 | 22 | } } // namespace boost::numeric 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /src/vendor/boost/numeric/conversion/int_float_mixture_enum.hpp: -------------------------------------------------------------------------------- 1 | // (c) Copyright Fernando Luis Cacciola Carballal 2000-2004 2 | // Use, modification, and distribution is subject to the Boost Software 3 | // License, 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 library home page at http://www.boost.org/libs/numeric/conversion 7 | // 8 | // Contact the author at: fernando_cacciola@hotmail.com 9 | // 10 | #ifndef BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP 11 | #define BOOST_NUMERIC_CONVERSION_INT_FLOAT_MIXTURE_ENUM_FLC_12NOV2002_HPP 12 | 13 | namespace boost { namespace numeric 14 | { 15 | enum int_float_mixture_enum 16 | { 17 | integral_to_integral 18 | ,integral_to_float 19 | ,float_to_integral 20 | ,float_to_float 21 | } ; 22 | 23 | } } // namespace boost::numeric 24 | 25 | #endif 26 | // 27 | /////////////////////////////////////////////////////////////////////////////////////////////// 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/vendor/boost/numeric/conversion/sign_mixture_enum.hpp: -------------------------------------------------------------------------------- 1 | // (c) Copyright Fernando Luis Cacciola Carballal 2000-2004 2 | // Use, modification, and distribution is subject to the Boost Software 3 | // License, 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 library home page at http://www.boost.org/libs/numeric/conversion 7 | // 8 | // Contact the author at: fernando_cacciola@hotmail.com 9 | // 10 | #ifndef BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP 11 | #define BOOST_NUMERIC_CONVERSION_SIGN_MIXTURE_ENUM_FLC_12NOV2002_HPP 12 | 13 | namespace boost { namespace numeric 14 | { 15 | enum sign_mixture_enum 16 | { 17 | unsigned_to_unsigned 18 | ,signed_to_signed 19 | ,signed_to_unsigned 20 | ,unsigned_to_signed 21 | } ; 22 | 23 | } } // namespace boost::numeric 24 | 25 | #endif 26 | // 27 | /////////////////////////////////////////////////////////////////////////////////////////////// 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/vendor/boost/numeric/conversion/udt_builtin_mixture_enum.hpp: -------------------------------------------------------------------------------- 1 | // (c) Copyright Fernando Luis Cacciola Carballal 2000-2004 2 | // Use, modification, and distribution is subject to the Boost Software 3 | // License, 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 library home page at http://www.boost.org/libs/numeric/conversion 7 | // 8 | // Contact the author at: fernando_cacciola@hotmail.com 9 | // 10 | #ifndef BOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP 11 | #define BOOST_NUMERIC_CONVERSION_UDT_BUILTIN_MIXTURE_ENUM_FLC_12NOV2002_HPP 12 | 13 | namespace boost { namespace numeric 14 | { 15 | enum udt_builtin_mixture_enum 16 | { 17 | builtin_to_builtin 18 | ,builtin_to_udt 19 | ,udt_to_builtin 20 | ,udt_to_udt 21 | } ; 22 | 23 | } } // namespace boost::numeric 24 | 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/range/detail/misc_concept.hpp: -------------------------------------------------------------------------------- 1 | // Boost.Range library concept checks 2 | // 3 | // Copyright Neil Groves 2009. Use, modification and distribution 4 | // are subject to 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 | #ifndef BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED 9 | #define BOOST_RANGE_DETAIL_MISC_CONCEPT_HPP_INCLUDED 10 | 11 | #include 12 | 13 | namespace boost 14 | { 15 | namespace range_detail 16 | { 17 | template 18 | class SameTypeConcept 19 | { 20 | public: 21 | BOOST_CONCEPT_USAGE(SameTypeConcept) 22 | { 23 | same_type(a,b); 24 | } 25 | private: 26 | template void same_type(T,T) {} 27 | T1 a; 28 | T2 b; 29 | }; 30 | } 31 | } 32 | 33 | #endif // include guard 34 | -------------------------------------------------------------------------------- /src/vendor/boost/range/detail/str_types.hpp: -------------------------------------------------------------------------------- 1 | // Boost.Range library 2 | // 3 | // Copyright Thorsten Ottosen 2006. Use, modification and 4 | // distribution is subject to the Boost Software License, Version 5 | // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | // For more information, see http://www.boost.org/libs/range/ 9 | // 10 | 11 | #ifndef BOOST_RANGE_DETAIL_STR_TYPES_HPP 12 | #define BOOST_RANGE_DETAIL_STR_TYPES_HPP 13 | 14 | #include 15 | #include 16 | 17 | namespace boost 18 | { 19 | template< class T > 20 | struct range_mutable_iterator 21 | { 22 | typedef T* type; 23 | }; 24 | 25 | template< class T > 26 | struct range_const_iterator 27 | { 28 | typedef const T* type; 29 | }; 30 | 31 | template< class T > 32 | struct range_size 33 | { 34 | typedef std::size_t type; 35 | }; 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /src/vendor/boost/range/empty.hpp: -------------------------------------------------------------------------------- 1 | // Boost.Range library 2 | // 3 | // Copyright Thorsten Ottosen 2003-2004. Use, modification and 4 | // distribution is subject to the Boost Software License, Version 5 | // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | // For more information, see http://www.boost.org/libs/range/ 9 | // 10 | 11 | #ifndef BOOST_RANGE_EMPTY_HPP 12 | #define BOOST_RANGE_EMPTY_HPP 13 | 14 | #if defined(_MSC_VER) 15 | # pragma once 16 | #endif 17 | 18 | #include 19 | #include 20 | #include 21 | 22 | namespace boost 23 | { 24 | 25 | template< class T > 26 | inline bool empty( const T& r ) 27 | { 28 | return boost::begin( r ) == boost::end( r ); 29 | } 30 | 31 | } // namespace 'boost' 32 | 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /src/vendor/boost/range/functions.hpp: -------------------------------------------------------------------------------- 1 | // Boost.Range library 2 | // 3 | // Copyright Thorsten Ottosen 2003-2006. Use, modification and 4 | // distribution is subject to the Boost Software License, Version 5 | // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | // For more information, see http://www.boost.org/libs/range/ 9 | // 10 | 11 | #ifndef BOOST_RANGE_FUNCTIONS_HPP 12 | #define BOOST_RANGE_FUNCTIONS_HPP 13 | 14 | #if defined(_MSC_VER) 15 | # pragma once 16 | #endif 17 | 18 | #include 19 | #include 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /src/vendor/boost/range/iterator_range.hpp: -------------------------------------------------------------------------------- 1 | // Boost.Range library 2 | // 3 | // Copyright Neil Groves 2009. 4 | // Use, modification and distribution is subject to the Boost Software 5 | // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | // For more information, see http://www.boost.org/libs/range/ 9 | // 10 | #ifndef BOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED 11 | #define BOOST_RANGE_ITERATOR_RANGE_HPP_INCLUDED 12 | 13 | #include "boost/range/iterator_range_core.hpp" 14 | #include "boost/range/iterator_range_io.hpp" 15 | 16 | #endif // include guard 17 | -------------------------------------------------------------------------------- /src/vendor/boost/range/value_type.hpp: -------------------------------------------------------------------------------- 1 | // Boost.Range library 2 | // 3 | // Copyright Thorsten Ottosen 2003-2004. Use, modification and 4 | // distribution is subject to the Boost Software License, Version 5 | // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | // 8 | // For more information, see http://www.boost.org/libs/range/ 9 | // 10 | 11 | #ifndef BOOST_RANGE_VALUE_TYPE_HPP 12 | #define BOOST_RANGE_VALUE_TYPE_HPP 13 | 14 | #if defined(_MSC_VER) 15 | # pragma once 16 | #endif 17 | 18 | #include 19 | #include 20 | 21 | #include 22 | 23 | namespace boost 24 | { 25 | template< class T > 26 | struct range_value : iterator_value< typename range_iterator::type > 27 | { }; 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/scoped_array.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED 2 | #define BOOST_SCOPED_ARRAY_HPP_INCLUDED 3 | 4 | // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. 5 | // Copyright (c) 2001, 2002 Peter Dimov 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. (See 8 | // accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/smart_ptr/ for documentation. 12 | 13 | #include 14 | 15 | #endif // #ifndef BOOST_SCOPED_ARRAY_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /src/vendor/boost/scoped_ptr.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED 2 | #define BOOST_SCOPED_PTR_HPP_INCLUDED 3 | 4 | // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. 5 | // Copyright (c) 2001, 2002 Peter Dimov 6 | // 7 | // Distributed under the Boost Software License, Version 1.0. (See 8 | // accompanying file LICENSE_1_0.txt or copy at 9 | // http://www.boost.org/LICENSE_1_0.txt) 10 | // 11 | // See http://www.boost.org/libs/smart_ptr/ for documentation. 12 | 13 | #include 14 | 15 | #endif // #ifndef BOOST_SCOPED_PTR_HPP_INCLUDED 16 | -------------------------------------------------------------------------------- /src/vendor/boost/shared_ptr.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SHARED_PTR_HPP_INCLUDED 2 | #define BOOST_SHARED_PTR_HPP_INCLUDED 3 | 4 | // 5 | // shared_ptr.hpp 6 | // 7 | // (C) Copyright Greg Colvin and Beman Dawes 1998, 1999. 8 | // Copyright (c) 2001-2008 Peter Dimov 9 | // 10 | // Distributed under the Boost Software License, Version 1.0. (See 11 | // accompanying file LICENSE_1_0.txt or copy at 12 | // http://www.boost.org/LICENSE_1_0.txt) 13 | // 14 | // See http://www.boost.org/libs/smart_ptr/ for documentation. 15 | // 16 | 17 | #include 18 | 19 | #endif // #ifndef BOOST_SHARED_PTR_HPP_INCLUDED 20 | -------------------------------------------------------------------------------- /src/vendor/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_GCC_INTRINSICS_HPP_INCLUDED 2 | #define BOOST_SMART_PTR_DETAIL_SP_HAS_GCC_INTRINSICS_HPP_INCLUDED 3 | 4 | // MS compatible compilers support #pragma once 5 | 6 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 7 | # pragma once 8 | #endif 9 | 10 | 11 | // boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp 12 | // 13 | // Copyright 2020 Peter Dimov 14 | // Distributed under the Boost Software License, Version 1.0. 15 | // https://www.boost.org/LICENSE_1_0.txt 16 | // 17 | // Defines the BOOST_SP_HAS_GCC_INTRINSICS macro if the __atomic_* 18 | // intrinsics are available. 19 | 20 | 21 | #if defined( __ATOMIC_RELAXED ) && defined( __ATOMIC_ACQUIRE ) && defined( __ATOMIC_RELEASE ) && defined( __ATOMIC_ACQ_REL ) 22 | 23 | # define BOOST_SP_HAS_GCC_INTRINSICS 24 | 25 | #endif 26 | 27 | #endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_HAS_GCC_INTRINSICS_HPP_INCLUDED 28 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/type.hpp: -------------------------------------------------------------------------------- 1 | // (C) Copyright David Abrahams 2001. 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 BOOST_TYPE_DWA20010120_HPP 7 | # define BOOST_TYPE_DWA20010120_HPP 8 | 9 | namespace boost { 10 | 11 | // Just a simple "type envelope". Useful in various contexts, mostly to work 12 | // around some MSVC deficiencies. 13 | template 14 | struct type {}; 15 | 16 | } 17 | 18 | #endif // BOOST_TYPE_DWA20010120_HPP 19 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/utility.hpp: -------------------------------------------------------------------------------- 1 | // Boost utility.hpp header file -------------------------------------------// 2 | 3 | // Copyright 1999-2003 Aleksey Gurtovoy. Use, modification, and distribution are 4 | // subject to the Boost Software License, Version 1.0. (See accompanying file 5 | // LICENSE_1_0.txt or a copy at .) 6 | 7 | // See for the library's home page. 8 | 9 | #ifndef BOOST_UTILITY_HPP 10 | #define BOOST_UTILITY_HPP 11 | 12 | // Use of this header is discouraged and it will be deprecated. 13 | // Please include one or more of the headers below instead. 14 | 15 | #include 16 | #include 17 | #include 18 | 19 | #include 20 | #include 21 | #include 22 | #include 23 | 24 | #endif // BOOST_UTILITY_HPP 25 | -------------------------------------------------------------------------------- /src/vendor/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 | -------------------------------------------------------------------------------- /src/vendor/boost/visit_each.hpp: -------------------------------------------------------------------------------- 1 | // Boost.Signals library 2 | 3 | // Copyright Douglas Gregor 2001-2003. Use, modification and 4 | // distribution is subject to the Boost Software License, Version 5 | // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 6 | // http://www.boost.org/LICENSE_1_0.txt) 7 | 8 | // For more information, see http://www.boost.org/libs/signals 9 | 10 | #ifndef BOOST_VISIT_EACH_HPP 11 | #define BOOST_VISIT_EACH_HPP 12 | 13 | namespace boost { 14 | template 15 | inline void visit_each(Visitor& visitor, const T& t, long) 16 | { 17 | visitor(t); 18 | } 19 | 20 | template 21 | inline void visit_each(Visitor& visitor, const T& t) 22 | { 23 | visit_each(visitor, t, 0); 24 | } 25 | } 26 | 27 | #endif // BOOST_VISIT_EACH_HPP 28 | -------------------------------------------------------------------------------- /src/vendor/boost/winapi/detail/footer.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright Andrey Semashev 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_WINAPI_ENABLE_WARNINGS) 9 | 10 | #if defined(_MSC_VER) && !(defined(__INTEL_COMPILER) || defined(__clang__)) 11 | 12 | #pragma warning(pop) 13 | 14 | #elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) \ 15 | && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 16 | 17 | #pragma GCC diagnostic pop 18 | 19 | #endif 20 | 21 | #endif // !defined(BOOST_WINAPI_ENABLE_WARNINGS) 22 | -------------------------------------------------------------------------------- /src/vendor/boost/winapi/detail/header.hpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright Andrey Semashev 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_WINAPI_ENABLE_WARNINGS) 9 | 10 | #if defined(_MSC_VER) && !(defined(__INTEL_COMPILER) || defined(__clang__)) 11 | 12 | #pragma warning(push, 3) 13 | // nonstandard extension used : nameless struct/union 14 | #pragma warning(disable: 4201) 15 | // Inconsistent annotation for 'X' 16 | #pragma warning(disable: 28251) 17 | 18 | #elif defined(__GNUC__) && !(defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)) \ 19 | && (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 20 | 21 | #pragma GCC diagnostic push 22 | // ISO C++ 1998 does not support 'long long' 23 | //#pragma GCC diagnostic ignored "-Wlong-long" 24 | 25 | #endif 26 | 27 | #endif // !defined(BOOST_WINAPI_ENABLE_WARNINGS) 28 | -------------------------------------------------------------------------------- /src/vendor/sqlite3/sqlite3.dd: -------------------------------------------------------------------------------- 1 | # Generated by deps.mk, do not edit by hand and do not add dependencies to system headers 2 | sqlite3.o: \ 3 | .Rconfig 4 | -------------------------------------------------------------------------------- /tests/testthat.R: -------------------------------------------------------------------------------- 1 | # This file is part of the standard setup for testthat. 2 | # It is recommended that you do not modify it. 3 | # 4 | # Where should you do additional test configuration? 5 | # Learn more about the roles of various files in: 6 | # * https://r-pkgs.org/tests.html 7 | # * https://testthat.r-lib.org/reference/test_package.html#special-files 8 | 9 | library(testthat) 10 | library(RSQLite) 11 | 12 | test_check("RSQLite") 13 | -------------------------------------------------------------------------------- /tests/testthat/dat-n.txt: -------------------------------------------------------------------------------- 1 | a|b 2 | 1|x 3 | 2|y 4 | 3|z 5 | \N|E 6 | -------------------------------------------------------------------------------- /tests/testthat/dat-rn.txt: -------------------------------------------------------------------------------- 1 | a|b 2 | 1|x 3 | 2|y 4 | 3|z 5 | \N|E 6 | 7 | -------------------------------------------------------------------------------- /tests/testthat/helper-DBItest.R: -------------------------------------------------------------------------------- 1 | # Also copied into DBI 2 | tryCatch(skip = function(e) message(conditionMessage(e)), { 3 | skip_on_cran() 4 | skip_if_not_installed("DBItest") 5 | 6 | DBItest::make_context( 7 | RSQLite::SQLite(), 8 | list(dbname = tempfile("DBItest", fileext = ".sqlite")), 9 | tweaks = DBItest::tweaks( 10 | dbitest_version = "1.8.1", 11 | constructor_relax_args = TRUE, 12 | placeholder_pattern = c("?", "$1", "$name", ":name"), 13 | date_cast = function(x) paste0("'", x, "'"), 14 | time_cast = function(x) paste0("'", x, "'"), 15 | timestamp_cast = function(x) paste0("'", x, "'"), 16 | logical_return = function(x) as.integer(x), 17 | date_typed = FALSE, 18 | time_typed = FALSE, 19 | timestamp_typed = FALSE 20 | ), 21 | name = "RSQLite" 22 | ) 23 | }) 24 | -------------------------------------------------------------------------------- /tests/testthat/helper-memdb.R: -------------------------------------------------------------------------------- 1 | memory_db <- function() { 2 | DBI::dbConnect(SQLite(), ":memory:") 3 | } 4 | -------------------------------------------------------------------------------- /tests/testthat/helper-reexport.R: -------------------------------------------------------------------------------- 1 | if (Sys.getenv("NOT_CRAN") != "" && Sys.getenv("CI") == "" && interactive()) { 2 | # Created with: 3 | methods::getGenerics(asNamespace("DBI")) %>% 4 | grep("^db[A-Z]", ., value = TRUE) %>% 5 | setdiff(c("dbCallProc", "dbListConnections", "dbSetDataMappings", "dbGetException")) %>% 6 | paste0("#' @exportMethod ", ., "\nNULL\n", collapse = "\n") %>% 7 | paste0( 8 | "# Generated by helper-reexport.R, do not edit by hand\n\n", 9 | ., 10 | "\n#' @export\nDBI::Id\n" 11 | ) %>% 12 | cat(file = "../../R/export.R") 13 | } 14 | -------------------------------------------------------------------------------- /tests/testthat/helper-tibble.R: -------------------------------------------------------------------------------- 1 | list_df <- function(...) { 2 | df <- list(...) 3 | if (length(df) > 0) { 4 | attr(df, "row.names") <- .set_row_names(length(df[[1]])) 5 | } else { 6 | attr(df, "row.names") <- .set_row_names(0L) 7 | } 8 | class(df) <- "data.frame" 9 | df 10 | } 11 | -------------------------------------------------------------------------------- /tests/testthat/setup.R: -------------------------------------------------------------------------------- 1 | rlang::local_options(test_package_name = "RSQLite", .frame = teardown_env()) 2 | -------------------------------------------------------------------------------- /tests/testthat/test-DBItest.R: -------------------------------------------------------------------------------- 1 | # Also copied into DBI 2 | skip_on_cran() 3 | skip_if_not_installed("DBItest") 4 | 5 | DBItest::test_all( 6 | skip = c( 7 | if (getRversion() < "4.0") "stream_bind_too_many" 8 | ) 9 | ) 10 | -------------------------------------------------------------------------------- /tests/testthat/test-astyle.R: -------------------------------------------------------------------------------- 1 | test_that("source code formatting", { 2 | expect_warning(astyle("--dry-run"), NA) 3 | }) 4 | -------------------------------------------------------------------------------- /tests/testthat/test-column-info.R: -------------------------------------------------------------------------------- 1 | test_that("can extract column info", { 2 | db <- memory_db() 3 | on.exit(dbDisconnect(db)) 4 | 5 | df <- data.frame( 6 | a = 1L, b = 2, c = "three", d = I(list(raw(4))), 7 | stringsAsFactors = FALSE 8 | ) 9 | dbWriteTable(db, "test", df) 10 | 11 | res <- dbSendQuery(db, "SELECT * FROM test") 12 | info <- dbColumnInfo(res) 13 | dbClearResult(res) 14 | 15 | expect_equal( 16 | info, 17 | data.frame( 18 | name = names(df), 19 | type = vapply(df, typeof, character(1)), 20 | stringsAsFactors = FALSE, 21 | row.names = NULL 22 | ) 23 | ) 24 | }) 25 | -------------------------------------------------------------------------------- /tests/testthat/test-dbClearResult.R: -------------------------------------------------------------------------------- 1 | test_that("warning on dbFetch if result set open", { 2 | con <- dbConnect(SQLite(), ":memory:") 3 | on.exit(dbDisconnect(con)) 4 | 5 | res <- dbSendQuery(con, "SELECT 1;") 6 | expect_false(dbHasCompleted(res)) 7 | 8 | expect_warning(dbGetQuery(con, "SELECT 1;"), "pending rows") 9 | 10 | expect_warning(dbClearResult(res), "Expired") 11 | }) 12 | 13 | test_that("accessing cleared result throws error", { 14 | con <- dbConnect(SQLite(), ":memory:") 15 | on.exit(dbDisconnect(con)) 16 | 17 | res <- dbSendQuery(con, "SELECT 1;") 18 | dbClearResult(res) 19 | 20 | expect_error(dbFetch(res), "Invalid result set") 21 | expect_error(dbGetInfo(res), "closed") 22 | }) 23 | -------------------------------------------------------------------------------- /tests/testthat/test-json.R: -------------------------------------------------------------------------------- 1 | test_that("JSON types function", { 2 | con <- dbConnect(SQLite()) 3 | on.exit(dbDisconnect(con), add = TRUE) 4 | 5 | gotJson <- dbGetQuery(con, 'SELECT json(\'{"this":"is","a":["test"]}\')') 6 | expect_equal(gotJson[1, ], '{"this":"is","a":["test"]}') 7 | 8 | jsonArray <- dbGetQuery(con, "SELECT json_array(1,2,3,4)") 9 | expect_equal(jsonArray[1, ], "[1,2,3,4]") 10 | }) 11 | -------------------------------------------------------------------------------- /tests/testthat/test-readonly.R: -------------------------------------------------------------------------------- 1 | test_that("read-only databases forbid writes", { 2 | con <- dbConnect(SQLite(), ":memory:", flags = SQLITE_RO) 3 | on.exit(dbDisconnect(con), add = TRUE) 4 | 5 | expect_error( 6 | dbWriteTable(con, "mtcars", mtcars), 7 | "attempt to write a readonly database", 8 | fixed = TRUE 9 | ) 10 | }) 11 | -------------------------------------------------------------------------------- /tests/testthat/test-sd.R: -------------------------------------------------------------------------------- 1 | test_that("sd for multiple and single values", { 2 | con <- dbConnect(SQLite(), ":memory:") 3 | on.exit(dbDisconnect(con)) 4 | initExtension(con) 5 | 6 | res <- dbGetQuery( 7 | con, 8 | "SELECT stdev(a) FROM (SELECT 1 AS a UNION ALL SELECT 2 UNION ALL SELECT 3)" 9 | ) 10 | expect_equal(res[[1]], sd(1:3)) 11 | 12 | res <- dbGetQuery( 13 | con, 14 | "SELECT stdev(a) FROM (SELECT 1 AS a)" 15 | ) 16 | expect_true(is.na(res[[1]])) 17 | 18 | res <- dbGetQuery( 19 | con, 20 | "SELECT variance(a) FROM (SELECT 1 AS a)" 21 | ) 22 | expect_true(is.na(res[[1]])) 23 | }) 24 | -------------------------------------------------------------------------------- /tests/testthat/test-sqliteQuickColumn.R: -------------------------------------------------------------------------------- 1 | set.seed(0x977) 2 | 3 | test_that("sqliteQuickColumn round trips cleanly", { 4 | mk_blob <- function(n) as.raw(sample(0:255, n, replace = TRUE)) 5 | 6 | df <- data.frame( 7 | a = letters[1:10], 8 | b = rnorm(10), 9 | c = sample(1:10), 10 | d = blob::as_blob(lapply(1:10, function(x) mk_blob(sample(10:256, 1)))), 11 | stringsAsFactors = FALSE 12 | ) 13 | 14 | db <- dbConnect(SQLite(), dbname = ":memory:") 15 | on.exit(dbDisconnect(db), add = TRUE) 16 | 17 | dbWriteTable(db, "t", df) 18 | 19 | expect_equal(sqliteQuickColumn(db, "t", "a"), df$a) 20 | expect_equal(sqliteQuickColumn(db, "t", "b"), df$b) 21 | expect_equal(sqliteQuickColumn(db, "t", "c"), df$c) 22 | expect_equal(sqliteQuickColumn(db, "t", "d"), df$d) 23 | }) 24 | -------------------------------------------------------------------------------- /tests/testthat/test-uuid.R: -------------------------------------------------------------------------------- 1 | test_that("adding support for uuid functions", { 2 | con <- dbConnect( 3 | SQLite() 4 | ) 5 | 6 | on.exit( 7 | dbDisconnect(con), 8 | add = TRUE 9 | ) 10 | 11 | expect_true( 12 | initExtension( 13 | db = con, 14 | extension = "uuid") 15 | ) 16 | 17 | res1 <- dbGetQuery( 18 | conn = con, 19 | statement = 'SELECT uuid();' 20 | ) 21 | 22 | expect_true( 23 | object = nchar(res1[[1]][1]) == 36L 24 | ) 25 | 26 | res2 <- dbGetQuery( 27 | conn = con, 28 | statement = 'SELECT uuid();' 29 | ) 30 | 31 | expect_true( 32 | object = !identical(res1[[1]][1], res2[[1]][1]) 33 | ) 34 | 35 | }) 36 | --------------------------------------------------------------------------------