mirror of
https://github.com/rbock/sqlpp11.git
synced 2024-11-15 20:31:16 +08:00
Compile with both, MSVC 2015 and 2017
Make MSVC 2017 accept the code as well MSVC still has problems with variadic templates... Adjust README, do not do debug build (reduce load for appveyor)
This commit is contained in:
parent
8113a5f1fc
commit
7422cb9e3b
@ -1,10 +1,12 @@
|
|||||||
os: Visual Studio 2015
|
os:
|
||||||
|
- Visual Studio 2015
|
||||||
|
- Visual Studio 2017
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
- x64
|
- x64
|
||||||
|
|
||||||
configuration:
|
configuration:
|
||||||
- Debug
|
#- Debug
|
||||||
- Release
|
- Release
|
||||||
|
|
||||||
matrix:
|
matrix:
|
||||||
|
@ -17,7 +17,7 @@ See [Changes](ChangeLog.md)
|
|||||||
Status:
|
Status:
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Branch / Compiler | clang-3.4, gcc-4.9, Xcode-7 | MSVC 2015 | Test Coverage
|
Branch / Compiler | clang-3.4, gcc-4.9, Xcode-7 | MSVC 2015/2017 | Test Coverage
|
||||||
------------------| -------------------------------|-------------|---------------
|
------------------| -------------------------------|-------------|---------------
|
||||||
master | [![Build Status](https://travis-ci.org/rbock/sqlpp11.svg?branch=master)](https://travis-ci.org/rbock/sqlpp11?branch=master) | [![Build status](https://ci.appveyor.com/api/projects/status/eid7mwqgavo0h61h/branch/master?svg=true)](https://ci.appveyor.com/project/rbock/sqlpp11/branch/master) | [![Coverage Status](https://coveralls.io/repos/rbock/sqlpp11/badge.svg?branch=master)](https://coveralls.io/r/rbock/sqlpp11?branch=master)
|
master | [![Build Status](https://travis-ci.org/rbock/sqlpp11.svg?branch=master)](https://travis-ci.org/rbock/sqlpp11?branch=master) | [![Build status](https://ci.appveyor.com/api/projects/status/eid7mwqgavo0h61h/branch/master?svg=true)](https://ci.appveyor.com/project/rbock/sqlpp11/branch/master) | [![Coverage Status](https://coveralls.io/repos/rbock/sqlpp11/badge.svg?branch=master)](https://coveralls.io/r/rbock/sqlpp11?branch=master)
|
||||||
develop | [![Build Status](https://travis-ci.org/rbock/sqlpp11.svg?branch=develop)](https://travis-ci.org/rbock/sqlpp11?branch=develop) | [![Build status](https://ci.appveyor.com/api/projects/status/eid7mwqgavo0h61h/branch/develop?svg=true)](https://ci.appveyor.com/project/rbock/sqlpp11/branch/develop) | [![Coverage Status](https://coveralls.io/repos/rbock/sqlpp11/badge.svg?branch=develop)](https://coveralls.io/r/rbock/sqlpp11?branch=develop)
|
develop | [![Build Status](https://travis-ci.org/rbock/sqlpp11.svg?branch=develop)](https://travis-ci.org/rbock/sqlpp11?branch=develop) | [![Build status](https://ci.appveyor.com/api/projects/status/eid7mwqgavo0h61h/branch/develop?svg=true)](https://ci.appveyor.com/project/rbock/sqlpp11/branch/develop) | [![Coverage Status](https://coveralls.io/repos/rbock/sqlpp11/badge.svg?branch=develop)](https://coveralls.io/r/rbock/sqlpp11?branch=develop)
|
||||||
|
@ -181,6 +181,12 @@ namespace sqlpp
|
|||||||
static_check_t<not std::is_same<Database, void>::value, assert_having_dynamic_statement_dynamic_t>,
|
static_check_t<not std::is_same<Database, void>::value, assert_having_dynamic_statement_dynamic_t>,
|
||||||
check_having_t<Expression>>;
|
check_having_t<Expression>>;
|
||||||
|
|
||||||
|
template <typename... Exprs>
|
||||||
|
constexpr auto are_all_parameters_expressions() -> bool
|
||||||
|
{
|
||||||
|
return logic::all_t<is_expression_t<Exprs>::value...>::value;
|
||||||
|
}
|
||||||
|
|
||||||
// NO HAVING YET
|
// NO HAVING YET
|
||||||
struct no_having_t
|
struct no_having_t
|
||||||
{
|
{
|
||||||
@ -237,7 +243,7 @@ namespace sqlpp
|
|||||||
// template <typename... T>
|
// template <typename... T>
|
||||||
// using _check = logic::all_t<is_expression_t<T>::value...>;
|
// using _check = logic::all_t<is_expression_t<T>::value...>;
|
||||||
template <typename... T>
|
template <typename... T>
|
||||||
struct _check : logic::all_t<is_expression_t<T>::value...>
|
struct _check : std::integral_constant<bool, are_all_parameters_expressions<T...>()>
|
||||||
{
|
{
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -54,6 +54,12 @@ namespace sqlpp
|
|||||||
|
|
||||||
namespace detail
|
namespace detail
|
||||||
{
|
{
|
||||||
|
template <typename... Policies>
|
||||||
|
constexpr auto is_any_policy_missing() -> bool
|
||||||
|
{
|
||||||
|
return logic::any_t<is_missing_t<Policies>::value...>::value;
|
||||||
|
}
|
||||||
|
|
||||||
template <typename Db = void, typename... Policies>
|
template <typename Db = void, typename... Policies>
|
||||||
struct statement_policies_t
|
struct statement_policies_t
|
||||||
{
|
{
|
||||||
@ -122,11 +128,10 @@ namespace sqlpp
|
|||||||
}
|
}
|
||||||
|
|
||||||
using _value_type =
|
using _value_type =
|
||||||
typename std::conditional<logic::none_t<is_missing_t<Policies>::value...>::value,
|
typename std::conditional<is_any_policy_missing<Policies...>(),
|
||||||
value_type_of<_result_type_provider>,
|
no_value_t, // if a required statement part is missing (e.g. columns in a select),
|
||||||
no_value_t // if a required statement part is missing (e.g. columns in a select),
|
|
||||||
// then the statement cannot be used as a value
|
// then the statement cannot be used as a value
|
||||||
>::type;
|
value_type_of<_result_type_provider>>::type;
|
||||||
|
|
||||||
using _traits =
|
using _traits =
|
||||||
make_traits<_value_type, tag_if<tag::is_expression, not std::is_same<_value_type, no_value_t>::value>>;
|
make_traits<_value_type, tag_if<tag::is_expression, not std::is_same<_value_type, no_value_t>::value>>;
|
||||||
|
Loading…
Reference in New Issue
Block a user