0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-16 12:51:13 +08:00

More moves

And introduced sqlpp::enable_if_t
This commit is contained in:
Roland Bock 2024-07-30 06:45:00 +02:00
parent 79da114c00
commit b9eca7db17
39 changed files with 126 additions and 66 deletions

View File

@ -26,8 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_over.h> #include <sqlpp11/core/aggregate_function/enable_over.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
namespace sqlpp namespace sqlpp
@ -74,7 +74,7 @@ namespace sqlpp
template <typename T> template <typename T>
using check_avg_arg = using check_avg_arg =
std::enable_if_t<(is_numeric<T>::value or is_boolean<T>::value) and not contains_aggregate_function_t<T>::value>; ::sqlpp::enable_if_t<(is_numeric<T>::value or is_boolean<T>::value) and not contains_aggregate_function_t<T>::value>;
template <typename T, typename = check_avg_arg<T>> template <typename T, typename = check_avg_arg<T>>
auto avg(T t) -> avg_t<noop, T> auto avg(T t) -> avg_t<noop, T>

View File

@ -26,8 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_over.h> #include <sqlpp11/core/aggregate_function/enable_over.h>
#include <sqlpp11/core/clause/select_flags.h> #include <sqlpp11/core/clause/select_flags.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
@ -77,7 +77,7 @@ namespace sqlpp
template <typename T> template <typename T>
using check_count_arg = using check_count_arg =
std::enable_if_t<values_are_comparable<T, T>::value and not contains_aggregate_function_t<T>::value>; ::sqlpp::enable_if_t<values_are_comparable<T, T>::value and not contains_aggregate_function_t<T>::value>;
template <typename T, typename = check_count_arg<T>> template <typename T, typename = check_count_arg<T>>
auto count(T t) -> count_t<noop, T> auto count(T t) -> count_t<noop, T>

View File

@ -26,8 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_over.h> #include <sqlpp11/core/aggregate_function/enable_over.h>
#include <sqlpp11/core/clause/select_flags.h> #include <sqlpp11/core/clause/select_flags.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
@ -76,7 +76,7 @@ namespace sqlpp
template <typename T> template <typename T>
using check_max_arg = using check_max_arg =
std::enable_if_t<values_are_comparable<T, T>::value and not contains_aggregate_function_t<T>::value>; ::sqlpp::enable_if_t<values_are_comparable<T, T>::value and not contains_aggregate_function_t<T>::value>;
template <typename T, typename = check_max_arg<T>> template <typename T, typename = check_max_arg<T>>
auto max(T t) -> max_t<noop, T> auto max(T t) -> max_t<noop, T>

View File

@ -26,8 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_over.h> #include <sqlpp11/core/aggregate_function/enable_over.h>
#include <sqlpp11/core/clause/select_flags.h> #include <sqlpp11/core/clause/select_flags.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
@ -76,7 +76,7 @@ namespace sqlpp
template <typename T> template <typename T>
using check_min_arg = using check_min_arg =
std::enable_if_t<values_are_comparable<T, T>::value and not contains_aggregate_function_t<T>::value>; ::sqlpp::enable_if_t<values_are_comparable<T, T>::value and not contains_aggregate_function_t<T>::value>;
template <typename T, typename = check_min_arg<T>> template <typename T, typename = check_min_arg<T>>
auto min(T t) -> min_t<noop, T> auto min(T t) -> min_t<noop, T>

View File

@ -26,8 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_comparison.h> #include <sqlpp11/core/operator/enable_comparison.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
namespace sqlpp namespace sqlpp
@ -59,7 +59,7 @@ namespace sqlpp
struct nodes_of<over_t<Expr>>: public nodes_of<Expr> {}; struct nodes_of<over_t<Expr>>: public nodes_of<Expr> {};
template<typename Expr> template<typename Expr>
using check_over_args = std::enable_if_t<contains_aggregate_function_t<Expr>::value>; using check_over_args = ::sqlpp::enable_if_t<contains_aggregate_function_t<Expr>::value>;
template <typename Context, typename Expr> template <typename Context, typename Expr>
Context& serialize(Context& context, const over_t<Expr>& t) Context& serialize(Context& context, const over_t<Expr>& t)

View File

@ -26,8 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_over.h> #include <sqlpp11/core/aggregate_function/enable_over.h>
#include <sqlpp11/core/clause/select_flags.h> #include <sqlpp11/core/clause/select_flags.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
@ -77,7 +77,7 @@ namespace sqlpp
template <typename T> template <typename T>
using check_sum_arg = using check_sum_arg =
std::enable_if_t<(is_numeric<T>::value or is_boolean<T>::value) and not contains_aggregate_function_t<T>::value>; ::sqlpp::enable_if_t<(is_numeric<T>::value or is_boolean<T>::value) and not contains_aggregate_function_t<T>::value>;
template <typename T, typename = check_sum_arg<T>> template <typename T, typename = check_sum_arg<T>>
auto sum(T t) -> sum_t<noop, T> auto sum(T t) -> sum_t<noop, T>

View File

@ -26,8 +26,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_comparison.h> #include <sqlpp11/core/operator/enable_comparison.h>
#include <sqlpp11/core/operator/as_expression.h> #include <sqlpp11/core/operator/as_expression.h>
#include <sqlpp11/core/operator/assign_expression.h> #include <sqlpp11/core/operator/assign_expression.h>
#include <sqlpp11/core/basic/column_fwd.h> #include <sqlpp11/core/basic/column_fwd.h>

View File

@ -26,7 +26,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_comparison.h> #include <sqlpp11/core/operator/enable_comparison.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/alias_provider.h> #include <sqlpp11/core/alias_provider.h>
#include <sqlpp11/core/detail/type_set.h> #include <sqlpp11/core/detail/type_set.h>

View File

@ -26,7 +26,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_join.h> #include <sqlpp11/core/basic/enable_join.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/basic/table_alias.h> #include <sqlpp11/core/basic/table_alias.h>
#include <sqlpp11/core/basic/all_of.h> #include <sqlpp11/core/basic/all_of.h>

View File

@ -26,7 +26,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_join.h> #include <sqlpp11/core/basic/enable_join.h>
#include <sqlpp11/core/basic/table_columns.h> #include <sqlpp11/core/basic/table_columns.h>
#include <sqlpp11/core/detail/type_set.h> #include <sqlpp11/core/detail/type_set.h>
#include <sqlpp11/core/serialize.h> #include <sqlpp11/core/serialize.h>

View File

@ -50,7 +50,7 @@ namespace sqlpp
}; };
template <typename T> template <typename T>
using check_value_arg = std::enable_if_t<not std::is_same<value_type_of_t<T>, no_value_t>::value and values_are_comparable<T, T>::value>; using check_value_arg = ::sqlpp::enable_if_t<not std::is_same<value_type_of_t<T>, no_value_t>::value and values_are_comparable<T, T>::value>;
template <typename Context, typename T> template <typename Context, typename T>
Context& serialize(Context& context, const value_t<T>& t) Context& serialize(Context& context, const value_t<T>& t)

View File

@ -28,7 +28,7 @@
#include <utility> #include <utility>
#include <sqlpp11/core/enable_join.h> #include <sqlpp11/core/basic/enable_join.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
namespace sqlpp namespace sqlpp

View File

@ -34,7 +34,7 @@
#include <sqlpp11/core/no_data.h> #include <sqlpp11/core/no_data.h>
#include <sqlpp11/core/query/policy_update.h> #include <sqlpp11/core/query/policy_update.h>
#include <sqlpp11/core/portable_static_assert.h> #include <sqlpp11/core/portable_static_assert.h>
#include <sqlpp11/core/simple_column.h> #include <sqlpp11/core/clause/simple_column.h>
#include <sqlpp11/core/query/statement.h> #include <sqlpp11/core/query/statement.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>

View File

@ -27,8 +27,8 @@
*/ */
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_join.h> #include <sqlpp11/core/basic/enable_join.h>
namespace sqlpp namespace sqlpp
{ {

View File

@ -31,7 +31,7 @@
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/parameter_list.h> #include <sqlpp11/core/parameter_list.h>
#include <sqlpp11/core/database/prepared_update.h> #include <sqlpp11/core/database/prepared_update.h>
#include <sqlpp11/core/single_table.h> #include <sqlpp11/core/clause/single_table.h>
#include <sqlpp11/core/clause/update_list.h> #include <sqlpp11/core/clause/update_list.h>
#include <sqlpp11/core/noop.h> #include <sqlpp11/core/noop.h>
#include <sqlpp11/core/clause/where.h> #include <sqlpp11/core/clause/where.h>

View File

@ -34,15 +34,23 @@
#define CXX_STD_VER __cplusplus #define CXX_STD_VER __cplusplus
#endif #endif
#if CXX_STD_VER >= 201402L
namespace sqlpp namespace sqlpp
{ {
template <typename T, typename... Args> using ::std::make_unique;
std::unique_ptr<T> make_unique(Args&&... args) }
{
#if CXX_STD_VER >= 201402L
return std::make_unique<T>(std::forward<Args>(args)...);
#else #else
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
#endif namespace sqlpp
} {
template <typename T, typename... Args>
std::unique_ptr<T> make_unique(Args&&... args)
{
return std::unique_ptr<T>(new T(std::forward<Args>(args)...));
}
} // namespace sqlpp } // namespace sqlpp
#endif

View File

@ -0,0 +1,51 @@
#pragma once
/*
* Copyright (c) 2024, Roland Bock
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice, this
* list of conditions and the following disclaimer in the documentation and/or
* other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <type_traits>
#ifdef _MSVC_LANG
#define CXX_STD_VER _MSVC_LANG
#else
#define CXX_STD_VER __cplusplus
#endif
#if CXX_STD_VER >= 201703L
namespace sqlpp
{
using ::std::enable_if_t;
} // namespace sqlpp
#else
namespace sqlpp
{
template <bool Condition, typename Type = void>
using enable_if_t = typename ::std::enable_if<Condition, Type>::type;
} // namespace sqlpp
#endif

View File

@ -61,7 +61,7 @@ namespace sqlpp
} }
template<typename T> template<typename T>
using check_lower_args = std::enable_if_t<is_text<T>::value>; using check_lower_args = ::sqlpp::enable_if_t<is_text<T>::value>;
template <typename T, typename = check_lower_args<T>> template <typename T, typename = check_lower_args<T>>
auto lower(T t) -> lower_t<T> auto lower(T t) -> lower_t<T>

View File

@ -69,7 +69,7 @@ namespace sqlpp
} }
template<typename T> template<typename T>
using check_trim_args = std::enable_if_t<is_text<T>::value>; using check_trim_args = ::sqlpp::enable_if_t<is_text<T>::value>;
template <typename T, typename = check_trim_args<T>> template <typename T, typename = check_trim_args<T>>
auto trim(T t) -> trim_t<T> auto trim(T t) -> trim_t<T>

View File

@ -61,7 +61,7 @@ namespace sqlpp
} }
template<typename T> template<typename T>
using check_upper_args = std::enable_if_t<is_text<T>::value>; using check_upper_args = ::sqlpp::enable_if_t<is_text<T>::value>;
template <typename T, typename = check_upper_args<T>> template <typename T, typename = check_upper_args<T>>
auto upper(T t) -> upper_t<T> auto upper(T t) -> upper_t<T>

View File

@ -80,7 +80,7 @@ namespace sqlpp
} }
template <typename Select> template <typename Select>
using check_any_args = std::enable_if_t<has_value_type<Select>::value>; using check_any_args = ::sqlpp::enable_if_t<has_value_type<Select>::value>;
template <typename ...Policies, typename = check_any_args<statement_t<Policies...>>> template <typename ...Policies, typename = check_any_args<statement_t<Policies...>>>
auto any(statement_t<Policies...> t) -> any_t<statement_t<Policies...>> auto any(statement_t<Policies...> t) -> any_t<statement_t<Policies...>>

View File

@ -29,8 +29,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <utility> #include <utility>
#include <sqlpp11/core/noop.h> #include <sqlpp11/core/noop.h>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/enable_comparison.h> #include <sqlpp11/core/operator/enable_comparison.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
namespace sqlpp namespace sqlpp
@ -56,7 +56,7 @@ namespace sqlpp
}; };
template <typename L, typename R> template <typename L, typename R>
using check_arithmetic_args = std::enable_if_t<is_numeric<L>::value and is_numeric<R>::value>; using check_arithmetic_args = ::sqlpp::enable_if_t<is_numeric<L>::value and is_numeric<R>::value>;
#warning: need to document that this is on purpose (not integral, or unsigned integral, or floating_point) because it is difficult to know for the library to know what the actual result type will be (it is difficult to guess in C++ already, and it is probably different from DB vendor to vendor). #warning: need to document that this is on purpose (not integral, or unsigned integral, or floating_point) because it is difficult to know for the library to know what the actual result type will be (it is difficult to guess in C++ already, and it is probably different from DB vendor to vendor).
template <typename L, typename Operator, typename R> template <typename L, typename Operator, typename R>
@ -142,7 +142,7 @@ namespace sqlpp
} }
template <typename L, typename R> template <typename L, typename R>
using check_concatenation_args = std::enable_if_t<is_text<L>::value and is_text<R>::value>; using check_concatenation_args = ::sqlpp::enable_if_t<is_text<L>::value and is_text<R>::value>;
template <typename L, typename R, typename = check_concatenation_args<L, R>> template <typename L, typename R, typename = check_concatenation_args<L, R>>
constexpr auto operator+(L l, R r) -> arithmetic_expression<L, concatenation, R> constexpr auto operator+(L l, R r) -> arithmetic_expression<L, concatenation, R>
@ -200,7 +200,7 @@ namespace sqlpp
}; };
template <typename L, typename R> template <typename L, typename R>
using check_modulus_args = std::enable_if_t<(is_integral<L>::value or is_unsigned_integral<L>::value) and (is_integral<R>::value or is_unsigned_integral<R>::value)>; using check_modulus_args = ::sqlpp::enable_if_t<(is_integral<L>::value or is_unsigned_integral<L>::value) and (is_integral<R>::value or is_unsigned_integral<R>::value)>;
template <typename L, typename R, typename = check_modulus_args<L, R>> template <typename L, typename R, typename = check_modulus_args<L, R>>
constexpr auto operator%(L l, R r) -> arithmetic_expression<L, modulus, R> constexpr auto operator%(L l, R r) -> arithmetic_expression<L, modulus, R>

View File

@ -73,7 +73,7 @@ namespace sqlpp
return context; return context;
} }
template <typename Expr, typename AliasProvider> template <typename Expr, typename AliasProvider>
using check_as_args = std::enable_if_t< using check_as_args = ::sqlpp::enable_if_t<
has_value_type<Expr>::value and not is_alias_t<Expr>::value and has_name<AliasProvider>::value has_value_type<Expr>::value and not is_alias_t<Expr>::value and has_name<AliasProvider>::value
>; >;

View File

@ -51,10 +51,10 @@ namespace sqlpp
template <typename L, typename R> template <typename L, typename R>
using check_assign_args = using check_assign_args =
std::enable_if_t<values_are_comparable<L, R>::value and (can_be_null<L>::value or not can_be_null<R>::value)>; ::sqlpp::enable_if_t<values_are_comparable<L, R>::value and (can_be_null<L>::value or not can_be_null<R>::value)>;
template <typename L> template <typename L>
using check_assign_default_args = std::enable_if_t<has_default<L>::value>; using check_assign_default_args = ::sqlpp::enable_if_t<has_default<L>::value>;
template <typename L, typename Operator, typename R> template <typename L, typename Operator, typename R>
struct is_assignment<assign_expression<L, Operator, R>> : public std::true_type {}; struct is_assignment<assign_expression<L, Operator, R>> : public std::true_type {};

View File

@ -26,7 +26,7 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/ */
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/logic.h> #include <sqlpp11/core/logic.h>
@ -49,7 +49,7 @@ namespace sqlpp
template <typename L, typename R1, typename R2> template <typename L, typename R1, typename R2>
using check_between_args = using check_between_args =
std::enable_if_t<values_are_comparable<L, R1>::value and values_are_comparable<L, R2>::value>; ::sqlpp::enable_if_t<values_are_comparable<L, R1>::value and values_are_comparable<L, R2>::value>;
template <typename L, typename R1, typename R2> template <typename L, typename R1, typename R2>
struct value_type_of<between_expression<L, R1, R2>> struct value_type_of<between_expression<L, R1, R2>>
@ -78,7 +78,7 @@ namespace sqlpp
template <typename L, typename... Args> template <typename L, typename... Args>
constexpr auto in(L l, Args... args) constexpr auto in(L l, Args... args)
-> std::enable_if_t<((sizeof...(Args) > 0) and ... and values_are_compatible_v<L, Args>), between_t<L, Args...>> -> ::sqlpp::enable_if_t<((sizeof...(Args) > 0) and ... and values_are_compatible_v<L, Args>), between_t<L, Args...>>
{ {
return between_t<L, Args...>{l, std::tuple{args...}}; return between_t<L, Args...>{l, std::tuple{args...}};
} }

View File

@ -28,7 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <type_traits> #include <type_traits>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/noop.h> #include <sqlpp11/core/noop.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
@ -65,7 +65,7 @@ namespace sqlpp
}; };
template <typename L, typename R> template <typename L, typename R>
using check_bit_expression_args = std::enable_if_t<is_integral<L>::value and (is_integral<R>::value or is_unsigned_integral<R>::value)>; using check_bit_expression_args = ::sqlpp::enable_if_t<is_integral<L>::value and (is_integral<R>::value or is_unsigned_integral<R>::value)>;
#if 0 #if 0
template <typename L, typename Operator, typename R> template <typename L, typename Operator, typename R>

View File

@ -28,7 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <utility> #include <utility>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/operator/any.h> #include <sqlpp11/core/operator/any.h>
#include <sqlpp11/core/noop.h> #include <sqlpp11/core/noop.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
@ -50,7 +50,7 @@ namespace sqlpp
}; };
template <typename L, typename R> template <typename L, typename R>
using check_comparison_args = std::enable_if_t<values_are_comparable<L, R>::value>; using check_comparison_args = ::sqlpp::enable_if_t<values_are_comparable<L, R>::value>;
template <typename L, typename Operator, typename R> template <typename L, typename Operator, typename R>
struct value_type_of<comparison_expression<L, Operator, R>> struct value_type_of<comparison_expression<L, Operator, R>>
@ -258,7 +258,7 @@ namespace sqlpp
}; };
template <typename L, typename R> template <typename L, typename R>
using check_like_args = std::enable_if_t<is_text<L>::value and is_text<R>::value>; using check_like_args = ::sqlpp::enable_if_t<is_text<L>::value and is_text<R>::value>;
template <typename L, typename R, typename = check_comparison_args<L, R>> template <typename L, typename R, typename = check_comparison_args<L, R>>
constexpr auto like(L l, R r) -> comparison_expression<L, op_like, R> constexpr auto like(L l, R r) -> comparison_expression<L, op_like, R>

View File

@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <type_traits> #include <type_traits>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
namespace sqlpp namespace sqlpp
{ {
@ -49,7 +49,7 @@ namespace sqlpp
}; };
template <typename Select> template <typename Select>
using check_exists_arg = std::enable_if_t<is_statement_t<Select>::value and has_result_row_t<Select>::value>; using check_exists_arg = ::sqlpp::enable_if_t<is_statement_t<Select>::value and has_result_row_t<Select>::value>;
template <typename Select> template <typename Select>
struct value_type_of<exists_expression<Select>> struct value_type_of<exists_expression<Select>>

View File

@ -29,7 +29,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <tuple> #include <tuple>
#include <vector> #include <vector>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/logic.h> #include <sqlpp11/core/logic.h>
#include <sqlpp11/core/interpret_tuple.h> #include <sqlpp11/core/interpret_tuple.h>
@ -70,7 +70,7 @@ namespace sqlpp
template <typename L, typename... Args> template <typename L, typename... Args>
using check_in_args = using check_in_args =
std::enable_if_t<(sizeof...(Args) != 0) and logic::all_t<values_are_comparable<L, Args>::value...>::value>; ::sqlpp::enable_if_t<(sizeof...(Args) != 0) and logic::all_t<values_are_comparable<L, Args>::value...>::value>;
template <typename L, typename Operator, typename R> template <typename L, typename Operator, typename R>
struct value_type_of<in_expression<L, Operator, std::vector<R>>> struct value_type_of<in_expression<L, Operator, std::vector<R>>>

View File

@ -28,7 +28,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <type_traits> #include <type_traits>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/query/dynamic.h> #include <sqlpp11/core/query/dynamic.h>
#include <sqlpp11/core/noop.h> #include <sqlpp11/core/noop.h>
//#include <sqlpp11/embrace.h> //#include <sqlpp11/embrace.h>
@ -55,7 +55,7 @@ namespace sqlpp
}; };
template <typename L, typename R> template <typename L, typename R>
using check_logical_args = std::enable_if_t<is_boolean<L>::value and is_boolean<R>::value>; using check_logical_args = ::sqlpp::enable_if_t<is_boolean<L>::value and is_boolean<R>::value>;
template <typename L, typename Operator, typename R> template <typename L, typename Operator, typename R>
struct value_type_of<logical_expression<L, Operator, R>> struct value_type_of<logical_expression<L, Operator, R>>

View File

@ -55,7 +55,7 @@ namespace sqlpp
}; };
template <typename L> template <typename L>
using check_sort_order_args = std::enable_if_t<values_are_comparable<L, L>::value>; using check_sort_order_args = ::sqlpp::enable_if_t<values_are_comparable<L, L>::value>;
template <typename L> template <typename L>
struct nodes_of<sort_order_expression<L>> struct nodes_of<sort_order_expression<L>>

View File

@ -27,7 +27,7 @@
*/ */
#include <sqlpp11/core/type_traits.h> #include <sqlpp11/core/type_traits.h>
#include <sqlpp11/core/enable_as.h> #include <sqlpp11/core/operator/enable_as.h>
#include <sqlpp11/core/serialize.h> #include <sqlpp11/core/serialize.h>
namespace sqlpp namespace sqlpp
@ -88,7 +88,7 @@ namespace sqlpp
} }
template <typename Expr> template <typename Expr>
using check_dynamic_args = std::enable_if_t<has_value_type<Expr>::value>; using check_dynamic_args = ::sqlpp::enable_if_t<has_value_type<Expr>::value>;
template <typename Expr, typename = check_dynamic_args<Expr>> template <typename Expr, typename = check_dynamic_args<Expr>>
auto dynamic(bool condition, Expr t) -> dynamic_t<Expr> auto dynamic(bool condition, Expr t) -> dynamic_t<Expr>

View File

@ -36,6 +36,7 @@
#include <sqlpp11/core/name_tag.h> #include <sqlpp11/core/name_tag.h>
#include <sqlpp11/core/compat/optional.h> #include <sqlpp11/core/compat/optional.h>
#include <sqlpp11/core/compat/string_view.h> #include <sqlpp11/core/compat/string_view.h>
#include <sqlpp11/core/compat/type_traits.h>
#include <sqlpp11/core/compat/span.h> #include <sqlpp11/core/compat/span.h>
#include <sqlpp11/core/consistent.h> #include <sqlpp11/core/consistent.h>
#include <sqlpp11/core/portable_static_assert.h> #include <sqlpp11/core/portable_static_assert.h>