0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-15 20:31:16 +08:00

Fixed compile error for clang-3.4 and gcc-4.8

This commit is contained in:
rbock 2015-07-05 13:40:06 +02:00
parent 8886551d04
commit 34376bdd28
5 changed files with 20 additions and 10 deletions

View File

@ -43,6 +43,16 @@ namespace sqlpp
using _alias_t = typename AliasProvider::_alias_t;
expression_alias_t(Expression expression):
_expression(expression)
{}
expression_alias_t(const expression_alias_t&) = default;
expression_alias_t(expression_alias_t&&) = default;
expression_alias_t& operator=(const expression_alias_t&) = default;
expression_alias_t& operator=(expression_alias_t&&) = default;
~expression_alias_t() = default;
Expression _expression;
};

View File

@ -40,7 +40,7 @@ namespace sqlpp
template<typename T>
struct as_column_tuple
{
static std::tuple<auto_alias_t<T>> _(T t) { return std::tuple<auto_alias_t<T>>{ auto_alias_t<T>{t} }; }
static std::tuple<auto_alias_t<T>> _(T t) { return std::tuple<auto_alias_t<T>>(auto_alias_t<T>{t}); }
};
template<typename T>
@ -70,6 +70,12 @@ namespace sqlpp
template<template<typename First, typename...> class Target, typename First, typename T>
using copy_tuple_args_t = typename copy_tuple_args_impl<Target, First, T>::type;
template<typename... Columns>
auto column_tuple_merge(Columns... columns) -> decltype(std::tuple_cat(as_column_tuple<Columns>::_(columns)...))
{
return std::tuple_cat(as_column_tuple<Columns>::_(columns)...);
}
}
}

View File

@ -129,8 +129,8 @@ namespace sqlpp
{
template<typename... Columns>
using make_multi_column_t =
detail::copy_tuple_args_t<multi_column_t, void,
decltype(std::tuple_cat(detail::as_column_tuple<Columns>::_(std::declval<Columns>())...))>;
copy_tuple_args_t<multi_column_t, void,
decltype(column_tuple_merge(std::declval<Columns>()...))>;
}
template<typename... Columns>

View File

@ -338,17 +338,10 @@ namespace sqlpp
namespace detail
{
template<typename... Columns>
auto column_tuple_merge(Columns... columns) -> decltype(std::tuple_cat(as_column_tuple<Columns>::_(columns)...))
{
return std::tuple_cat(as_column_tuple<Columns>::_(columns)...);
}
template<typename Database, typename... Columns>
using make_select_column_list_t =
copy_tuple_args_t<select_column_list_t, Database,
decltype(column_tuple_merge(std::declval<Columns>()...))>;
}
struct no_select_column_list_t

View File

@ -36,6 +36,7 @@ int Interpret(int, char**)
test::TabFoo f;
test::TabBar t;
select(t.alpha.as(t.beta));
serialize(insert_into(t).columns(t.beta, t.gamma), printer).str();
{