diff --git a/.appveyor.yml b/.appveyor.yml index ba2387cf..adadfdb7 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,10 +1,12 @@ -os: Visual Studio 2015 +os: + - Visual Studio 2015 + - Visual Studio 2017 platform: - x64 configuration: - - Debug + #- Debug - Release matrix: diff --git a/README.md b/README.md index d06ae11e..48839d43 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ See [Changes](ChangeLog.md) 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) 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) diff --git a/include/sqlpp11/having.h b/include/sqlpp11/having.h index a5fcfa6c..d2cd2e8b 100644 --- a/include/sqlpp11/having.h +++ b/include/sqlpp11/having.h @@ -181,6 +181,12 @@ namespace sqlpp static_check_t::value, assert_having_dynamic_statement_dynamic_t>, check_having_t>; + template + constexpr auto are_all_parameters_expressions() -> bool + { + return logic::all_t::value...>::value; + } + // NO HAVING YET struct no_having_t { @@ -237,7 +243,7 @@ namespace sqlpp // template // using _check = logic::all_t::value...>; template - struct _check : logic::all_t::value...> + struct _check : std::integral_constant()> { }; diff --git a/include/sqlpp11/statement.h b/include/sqlpp11/statement.h index 34af1dcc..f3fccf49 100644 --- a/include/sqlpp11/statement.h +++ b/include/sqlpp11/statement.h @@ -54,6 +54,12 @@ namespace sqlpp namespace detail { + template + constexpr auto is_any_policy_missing() -> bool + { + return logic::any_t::value...>::value; + } + template struct statement_policies_t { @@ -122,11 +128,10 @@ namespace sqlpp } using _value_type = - typename std::conditional::value...>::value, - value_type_of<_result_type_provider>, - 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 - >::type; + typename std::conditional(), + 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 + value_type_of<_result_type_provider>>::type; using _traits = make_traits<_value_type, tag_if::value>>;