diff --git a/include/sqlpp11/basic_expression_operators.h b/include/sqlpp11/basic_expression_operators.h index 23dd5b6c..8c4ae0dd 100644 --- a/include/sqlpp11/basic_expression_operators.h +++ b/include/sqlpp11/basic_expression_operators.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2015, Roland Bock + * Copyright (c) 2013-2016, Roland Bock * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, @@ -41,42 +41,23 @@ namespace sqlpp { - SQLPP_PORTABLE_STATIC_ASSERT(assert_valid_rhs_comparison_operand_t, "invalid rhs operand in comparison"); + SQLPP_PORTABLE_STATIC_ASSERT(assert_comparison_valid_rhs_operand_t, "invalid rhs operand in comparison"); + SQLPP_PORTABLE_STATIC_ASSERT(assert_comparison_lhs_rhs_differ_t, "identical lhs and rhs operand types in comparison"); - template - using check_rhs_comparison_operand_t = + template + using check_rhs_comparison_operand_t = static_combined_check_t< static_check_t<(is_expression_t>::value // expressions are OK or is_multi_expression_t>::value) // multi-expressions like ANY are // OK for comparisons, too and - LhsValueType::template _is_valid_operand< + value_type_of::template _is_valid_operand< sqlpp::wrap_operand_t>::value, // the correct value type is required, of course - assert_valid_rhs_comparison_operand_t>; + assert_comparison_valid_rhs_operand_t>, + static_check_t::value, assert_comparison_lhs_rhs_differ_t>>; - SQLPP_PORTABLE_STATIC_ASSERT(assert_valid_in_arguments_t, "at least one operand of in() is not valid"); - - template - using check_rhs_in_arguments_t = - static_check_t::value...>::value, - assert_valid_in_arguments_t>; - - namespace detail - { - template class Expr, typename Lhs> - struct new_unary_expression_impl - { - using type = bad_statement; - }; - - template