mirror of
https://github.com/rbock/sqlpp11.git
synced 2024-11-16 04:47:18 +08:00
Removed where(true).
This commit is contained in:
parent
15247504f2
commit
8079015d2c
@ -154,70 +154,6 @@ namespace sqlpp
|
||||
};
|
||||
};
|
||||
|
||||
#ifdef SQLPP_ALLOW_NAKED_BOOL_EXPRESSION
|
||||
template <>
|
||||
struct where_data_t<void, bool>
|
||||
{
|
||||
bool _condition;
|
||||
};
|
||||
|
||||
// WHERE(BOOL)
|
||||
template <>
|
||||
struct where_t<void, bool>
|
||||
{
|
||||
using _traits = make_traits<no_value_t, tag::is_where>;
|
||||
using _nodes = detail::type_vector<>;
|
||||
|
||||
// Data
|
||||
using _data_t = where_data_t<void, bool>;
|
||||
|
||||
// Member implementation with data and methods
|
||||
template <typename Policies>
|
||||
struct _impl_t
|
||||
{
|
||||
// workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2173269
|
||||
_impl_t() = default;
|
||||
_impl_t(const _data_t& data) : _data(data)
|
||||
{
|
||||
}
|
||||
|
||||
_data_t _data;
|
||||
};
|
||||
|
||||
// Base template to be inherited by the statement
|
||||
template <typename Policies>
|
||||
struct _base_t
|
||||
{
|
||||
using _data_t = where_data_t<void, bool>;
|
||||
|
||||
// workaround for msvc bug https://connect.microsoft.com/VisualStudio/Feedback/Details/2173269
|
||||
template <typename... Args>
|
||||
_base_t(Args&&... args)
|
||||
: where{std::forward<Args>(args)...}
|
||||
{
|
||||
}
|
||||
|
||||
_impl_t<Policies> where;
|
||||
_impl_t<Policies>& operator()()
|
||||
{
|
||||
return where;
|
||||
}
|
||||
const _impl_t<Policies>& operator()() const
|
||||
{
|
||||
return where;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
static auto _get_member(T t) -> decltype(t.where)
|
||||
{
|
||||
return t.where;
|
||||
}
|
||||
|
||||
using _consistency_check = consistent_t;
|
||||
};
|
||||
};
|
||||
#endif
|
||||
|
||||
template <>
|
||||
struct where_data_t<void, unconditional_t>
|
||||
{
|
||||
@ -392,23 +328,14 @@ namespace sqlpp
|
||||
assert_where_t,
|
||||
consistent_t>::type;
|
||||
|
||||
#ifdef SQLPP_ALLOW_NAKED_BOOL_EXPRESSION
|
||||
template <typename T = void>
|
||||
auto where(bool b) const -> _new_statement_t<std::true_type, where_t<void, bool>>
|
||||
auto where(bool) const -> bad_statement
|
||||
{
|
||||
return {static_cast<const derived_statement_t<Policies>&>(*this), where_data_t<void, bool>{b}};
|
||||
static_assert(wrong_t<T>::value,
|
||||
".where(bool) is not allowed any more. Please use unconditionally() to replace "
|
||||
".where(true). Use sqlpp::value(bool) if you really want to use a bool here");
|
||||
return {};
|
||||
}
|
||||
#else
|
||||
template <typename T = void>
|
||||
auto where(bool b) const -> bad_statement
|
||||
{
|
||||
static_assert(
|
||||
wrong_t<T>::value,
|
||||
"where(bool) is deprecated, please use unconditionally() or #define SQLPP_ALLOW_NAKED_BOOL_EXPRESSION "
|
||||
"for a grace period");
|
||||
return {static_cast<const derived_statement_t<Policies>&>(*this), where_data_t<void, bool>{b}};
|
||||
}
|
||||
#endif
|
||||
|
||||
auto unconditionally() const -> _new_statement_t<std::true_type, where_t<void, unconditional_t>>
|
||||
{
|
||||
@ -469,22 +396,6 @@ namespace sqlpp
|
||||
}
|
||||
};
|
||||
|
||||
#ifdef SQLPP_ALLOW_NAKED_BOOL_EXPRESSION
|
||||
template <typename Context>
|
||||
struct serializer_t<Context, where_data_t<void, bool>>
|
||||
{
|
||||
using _serialize_check = consistent_t;
|
||||
using T = where_data_t<void, bool>;
|
||||
|
||||
static Context& _(const T& t, Context& context)
|
||||
{
|
||||
if (not t._condition)
|
||||
context << " WHERE NULL";
|
||||
return context;
|
||||
}
|
||||
};
|
||||
#endif
|
||||
|
||||
template <typename Context>
|
||||
struct serializer_t<Context, where_data_t<void, unconditional_t>>
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user