#pragma once #include // std::vector #include // std::tuple #include // std::forward #include "functional/cxx_universal.h" #include "functional/cxx_type_traits_polyfill.h" namespace sqlite_orm { namespace internal { template struct values_t { using args_tuple = std::tuple; args_tuple tuple; }; template SQLITE_ORM_INLINE_VAR constexpr bool is_values_v = polyfill::is_specialization_of_v; template using is_values = polyfill::bool_constant>; template struct dynamic_values_t { std::vector vector; }; } template internal::values_t values(Args... args) { return {{std::forward(args)...}}; } template internal::dynamic_values_t values(std::vector vector) { return {{std::move(vector)}}; } }