matt-42 / silicon

A high performance, middleware oriented C++14 http web framework please use matt-42/lithium instead
http://siliconframework.org
MIT License
1.72k stars 138 forks source link

Compile time errors #31

Closed tex closed 8 years ago

tex commented 8 years ago

Hello, I'm getting these errors. Any idea what is wrong?

clang version 3.8.1 (tags/RELEASE_381/final) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/bin

msvobod :: tmp/silicon-orig.git/examples ‹master› » make               
-- Boost version: 1.61.0
-- Found the following Boost libraries:
--   system
--   thread
--   date_time
--   program_options
--   filesystem
--   chrono
--   atomic
-- Configuring done
-- Generating done
-- Build files have been written to: /home/milan/tmp/silicon-orig.git/examples
[ 12%] Building CXX object CMakeFiles/blog.dir/blog.cc.o
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:1:
/home/milan/tmp/silicon-orig.git/examples/../silicon/backends/mhd.hh:163:43: error: unknown type name 'json_string'
    void decode_post_parameter_urlencoded(json_string*, T& res, const std::string& s) const
                                          ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/backends/mhd.hh:165:19: error: use of undeclared identifier 'json_string'
      json_decode<json_string>(res, s);
                  ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:5:
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:19:14: error: use of undeclared identifier 'foreach2'
      return foreach2(o) | [&] (auto& m)
             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:41:46: note: in instantiation of function template specialization 'sl::sql_orm_internals::(anonymous
      class)::operator()<iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>,
      iod::sio<> >, s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > >, s::_auto_increment_t>' requested here
    using remove_auto_increment_t = decltype(remove_members_with_attribute(std::declval<T>(), _auto_increment));
                                             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:57:32: note: in instantiation of template type alias 'remove_auto_increment_t' requested here
    typedef sql_orm_internals::remove_auto_increment_t<O> without_auto_inc_type;
                               ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:25:22: note: in instantiation of template class 'sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >' requested here
    typedef typename ORMI::object_type O; // O without primary keys for create procedure.
                     ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:74:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:76:22)>, iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:82:17)>,
      iod::assign_exp<s::_write_access_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:86:21)> >' requested here
  _user = sql_crud<user_orm>(
          ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:5:
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:31:14: error: use of undeclared identifier 'foreach2'
      return foreach2(o) | [&] (auto& m)
             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:45:45: note: in instantiation of function template specialization 'sl::sql_orm_internals::(anonymous
      class)::operator()<iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>,
      iod::sio<> >, s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > >, s::_primary_key_t>' requested here
    using extract_primary_keys_t = decltype(extract_members_with_attribute(std::declval<T>(), _primary_key));
                                            ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:60:32: note: in instantiation of template type alias 'extract_primary_keys_t' requested here
    typedef sql_orm_internals::extract_primary_keys_t<O> PKS;
                               ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:25:22: note: in instantiation of template class 'sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >' requested here
    typedef typename ORMI::object_type O; // O without primary keys for create procedure.
                     ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:74:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:76:22)>, iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:82:17)>,
      iod::assign_exp<s::_write_access_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:86:21)> >' requested here
  _user = sql_crud<user_orm>(
          ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:5:
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:19:14: error: use of undeclared identifier 'foreach2'
      return foreach2(o) | [&] (auto& m)
             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:43:48: note: in instantiation of function template specialization 'sl::sql_orm_internals::(anonymous
      class)::operator()<int, s::_read_only_t>' requested here
    using remove_read_only_fields_t = decltype(remove_members_with_attribute(std::declval<T>(), _read_only));
                                               ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:28:32: note: in instantiation of template type alias 'remove_read_only_fields_t' requested here
    typedef sql_orm_internals::remove_read_only_fields_t<O> update_type;
                               ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:74:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:76:22)>, iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:82:17)>,
      iod::assign_exp<s::_write_access_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:86:21)> >' requested here
  _user = sql_crud<user_orm>(
          ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:5:
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:19:14: error: use of undeclared identifier 'foreach2'
      return foreach2(o) | [&] (auto& m)
             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:41:46: note: in instantiation of function template specialization 'sl::sql_orm_internals::(anonymous
      class)::operator()<int, s::_auto_increment_t>' requested here
    using remove_auto_increment_t = decltype(remove_members_with_attribute(std::declval<T>(), _auto_increment));
                                             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:29:32: note: in instantiation of template type alias 'remove_auto_increment_t' requested here
    typedef sql_orm_internals::remove_auto_increment_t<update_type> insert_type;
                               ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:74:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:76:22)>, iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:82:17)>,
      iod::assign_exp<s::_write_access_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:86:21)> >' requested here
  _user = sql_crud<user_orm>(
          ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:1:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/backends/mhd.hh:11:
In file included from /usr/local/include/iod/json.hh:16:
In file included from /usr/local/include/iod/sio.hh:292:
/usr/local/include/iod/sio_utils.hh:66:64: error: no matching function for call to 'exp_to_variable'
      sio<std::remove_const_t<std::remove_reference_t<decltype(exp_to_variable(args))>>...>
                                                               ^~~~~~~~~~~~~~~
/home/milan/tmp/silicon-orig.git/examples/../silicon/http_route.hh:28:22: note: in instantiation of function template specialization 'iod::D<int>' requested here
    typedef decltype(D(std::declval<P>()...)) sio_type;
                     ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:70:24: note: in instantiation of function template specialization 'sl::post_parameters<int>' requested here
      POST / _create * post_parameters(insert_type()) =
                       ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:74:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:76:22)>, iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:82:17)>,
      iod::assign_exp<s::_write_access_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:86:21)> >' requested here
  _user = sql_crud<user_orm>(
          ^
/usr/local/include/iod/sio_utils.hh:30:12: note: candidate template ignored: could not match 'variable<type-parameter-0-0>' against 'int'
  const V& exp_to_variable(const variable<V>& v)
           ^
/usr/local/include/iod/sio_utils.hh:36:12: note: candidate template ignored: could not match 'symbol<type-parameter-0-0>' against 'int'
  const S& exp_to_variable(const symbol<S>& s)
           ^
/usr/local/include/iod/sio_utils.hh:42:8: note: candidate template ignored: could not match 'function_call_exp<type-parameter-0-0, type-parameter-0-1...>' against 'int'
  auto exp_to_variable(const function_call_exp<S, ARGS...>& e)
       ^
/usr/local/include/iod/sio_utils.hh:49:8: note: candidate template ignored: could not match 'assign_exp<type-parameter-0-0, type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<S, V>& e)
       ^
/usr/local/include/iod/sio_utils.hh:56:8: note: candidate template ignored: could not match 'assign_exp<function_call_exp<type-parameter-0-0, type-parameter-0-2...>,
      type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<function_call_exp<S, ARGS...>, V>& e)
       ^
/usr/local/include/iod/sio_utils.hh:69:24: error: no matching function for call to 'exp_to_variable'
    return result_type(exp_to_variable(args)...);
                       ^~~~~~~~~~~~~~~
/usr/local/include/iod/sio_utils.hh:30:12: note: candidate template ignored: could not match 'variable<type-parameter-0-0>' against 'int'
  const V& exp_to_variable(const variable<V>& v)
           ^
/usr/local/include/iod/sio_utils.hh:36:12: note: candidate template ignored: could not match 'symbol<type-parameter-0-0>' against 'int'
  const S& exp_to_variable(const symbol<S>& s)
           ^
/usr/local/include/iod/sio_utils.hh:42:8: note: candidate template ignored: could not match 'function_call_exp<type-parameter-0-0, type-parameter-0-1...>' against 'int'
  auto exp_to_variable(const function_call_exp<S, ARGS...>& e)
       ^
/usr/local/include/iod/sio_utils.hh:49:8: note: candidate template ignored: could not match 'assign_exp<type-parameter-0-0, type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<S, V>& e)
       ^
/usr/local/include/iod/sio_utils.hh:56:8: note: candidate template ignored: could not match 'assign_exp<function_call_exp<type-parameter-0-0, type-parameter-0-2...>,
      type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<function_call_exp<S, ARGS...>, V>& e)
       ^
/usr/local/include/iod/sio_utils.hh:66:64: error: no matching function for call to 'exp_to_variable'
      sio<std::remove_const_t<std::remove_reference_t<decltype(exp_to_variable(args))>>...>
                                                               ^~~~~~~~~~~~~~~
/home/milan/tmp/silicon-orig.git/examples/../silicon/http_route.hh:29:36: note: in instantiation of function template specialization 'iod::D<int &>' requested here
    return post_params_t<sio_type>(D(p...));
                                   ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:70:24: note: in instantiation of function template specialization 'sl::post_parameters<int>' requested here
      POST / _create * post_parameters(insert_type()) =
                       ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:74:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_login_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >,
      s::_password_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:76:22)>, iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:82:17)>,
      iod::assign_exp<s::_write_access_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:86:21)> >' requested here
  _user = sql_crud<user_orm>(
          ^
/usr/local/include/iod/sio_utils.hh:30:12: note: candidate template ignored: could not match 'variable<type-parameter-0-0>' against 'int'
  const V& exp_to_variable(const variable<V>& v)
           ^
/usr/local/include/iod/sio_utils.hh:36:12: note: candidate template ignored: could not match 'symbol<type-parameter-0-0>' against 'int'
  const S& exp_to_variable(const symbol<S>& s)
           ^
/usr/local/include/iod/sio_utils.hh:42:8: note: candidate template ignored: could not match 'function_call_exp<type-parameter-0-0, type-parameter-0-1...>' against 'int'
  auto exp_to_variable(const function_call_exp<S, ARGS...>& e)
       ^
/usr/local/include/iod/sio_utils.hh:49:8: note: candidate template ignored: could not match 'assign_exp<type-parameter-0-0, type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<S, V>& e)
       ^
/usr/local/include/iod/sio_utils.hh:56:8: note: candidate template ignored: could not match 'assign_exp<function_call_exp<type-parameter-0-0, type-parameter-0-2...>,
      type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<function_call_exp<S, ARGS...>, V>& e)
       ^
/usr/local/include/iod/sio_utils.hh:69:24: error: no matching function for call to 'exp_to_variable'
    return result_type(exp_to_variable(args)...);
                       ^~~~~~~~~~~~~~~
/usr/local/include/iod/sio_utils.hh:30:12: note: candidate template ignored: could not match 'variable<type-parameter-0-0>' against 'int'
  const V& exp_to_variable(const variable<V>& v)
           ^
/usr/local/include/iod/sio_utils.hh:36:12: note: candidate template ignored: could not match 'symbol<type-parameter-0-0>' against 'int'
  const S& exp_to_variable(const symbol<S>& s)
           ^
/usr/local/include/iod/sio_utils.hh:42:8: note: candidate template ignored: could not match 'function_call_exp<type-parameter-0-0, type-parameter-0-1...>' against 'int'
  auto exp_to_variable(const function_call_exp<S, ARGS...>& e)
       ^
/usr/local/include/iod/sio_utils.hh:49:8: note: candidate template ignored: could not match 'assign_exp<type-parameter-0-0, type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<S, V>& e)
       ^
/usr/local/include/iod/sio_utils.hh:56:8: note: candidate template ignored: could not match 'assign_exp<function_call_exp<type-parameter-0-0, type-parameter-0-2...>,
      type-parameter-0-1>' against 'int'
  auto exp_to_variable(const assign_exp<function_call_exp<S, ARGS...>, V>& e)
       ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:5:
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:19:14: error: use of undeclared identifier 'foreach2'
      return foreach2(o) | [&] (auto& m)
             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:41:46: note: in instantiation of function template specialization 'sl::sql_orm_internals::(anonymous
      class)::operator()<iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t>
      >, s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > >,
      s::_auto_increment_t>' requested here
    using remove_auto_increment_t = decltype(remove_members_with_attribute(std::declval<T>(), _auto_increment));
                                             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:57:32: note: in instantiation of template type alias 'remove_auto_increment_t' requested here
    typedef sql_orm_internals::remove_auto_increment_t<O> without_auto_inc_type;
                               ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:25:22: note: in instantiation of template class 'sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
      s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >' requested here
    typedef typename ORMI::object_type O; // O without primary keys for create procedure.
                     ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:92:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
      s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >,
      iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:94:17)>, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:98:22)>, iod::assign_exp<s::_write_access_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:102:21)> >' requested here
  _post = sql_crud<post_orm>(
          ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:5:
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:31:14: error: use of undeclared identifier 'foreach2'
      return foreach2(o) | [&] (auto& m)
             ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:45:45: note: in instantiation of function template specialization 'sl::sql_orm_internals::(anonymous
      class)::operator()<iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t>
      >, s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > >,
      s::_primary_key_t>' requested here
    using extract_primary_keys_t = decltype(extract_members_with_attribute(std::declval<T>(), _primary_key));
                                            ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:60:32: note: in instantiation of template type alias 'extract_primary_keys_t' requested here
    typedef sql_orm_internals::extract_primary_keys_t<O> PKS;
                               ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:25:22: note: in instantiation of template class 'sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
      s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >' requested here
    typedef typename ORMI::object_type O; // O without primary keys for create procedure.
                     ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:92:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
      s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >,
      iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:94:17)>, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:98:22)>, iod::assign_exp<s::_write_access_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:102:21)> >' requested here
  _post = sql_crud<post_orm>(
          ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
In file included from /home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:5:
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:43:48: error: no matching function for call to object of type 'sl::sql_orm_internals::(lambda at
      /home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:16:42)'
    using remove_read_only_fields_t = decltype(remove_members_with_attribute(std::declval<T>(), _read_only));
                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:28:32: note: in instantiation of template type alias 'remove_read_only_fields_t' requested here
    typedef sql_orm_internals::remove_read_only_fields_t<O> update_type;
                               ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:92:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
      s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >,
      iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:94:17)>, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:98:22)>, iod::assign_exp<s::_write_access_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:102:21)> >' requested here
  _post = sql_crud<post_orm>(
          ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:16:42: note: candidate template ignored: substitution failure [with $0 = int, $1 = s::_read_only_t]
    auto remove_members_with_attribute = [] (const auto& o, const auto& a)
                                         ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:41:46: error: no matching function for call to object of type 'sl::sql_orm_internals::(lambda at
      /home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:16:42)'
    using remove_auto_increment_t = decltype(remove_members_with_attribute(std::declval<T>(), _auto_increment));
                                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:29:32: note: in instantiation of template type alias 'remove_auto_increment_t' requested here
    typedef sql_orm_internals::remove_auto_increment_t<update_type> insert_type;
                               ^
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:92:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
      s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >,
      iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:94:17)>, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:98:22)>, iod::assign_exp<s::_write_access_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:102:21)> >' requested here
  _post = sql_crud<post_orm>(
          ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/middlewares/sql_orm.hh:16:42: note: candidate template ignored: substitution failure
      [with $0 = int, $1 = s::_auto_increment_t]
    auto remove_members_with_attribute = [] (const auto& o, const auto& a)
                                         ^
In file included from /home/milan/tmp/silicon-orig.git/examples/blog.cc:4:
In file included from /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:2:
/home/milan/tmp/silicon-orig.git/examples/../silicon/sql_crud.hh:70:24: error: no matching function for call to 'post_parameters'
      POST / _create * post_parameters(insert_type()) =
                       ^~~~~~~~~~~~~~~
/home/milan/tmp/silicon-orig.git/examples/blog_api.hh:92:11: note: in instantiation of function template specialization 'sl::sql_crud<sl::sql_orm<sl::sqlite_connection,
      iod::sio<s::_id_t::variable_type<int, iod::sio<s::_auto_increment_t, s::_primary_key_t> >, s::_user_id_t::variable_type<int, iod::sio<s::_read_only_t> >,
      s::_title_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> >, s::_body_t::variable_type<std::__cxx11::basic_string<char>, iod::sio<> > > >,
      iod::assign_exp<s::_validate_t, (lambda at /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:94:17)>, iod::assign_exp<s::_before_create_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:98:22)>, iod::assign_exp<s::_write_access_t, (lambda at
      /home/milan/tmp/silicon-orig.git/examples/blog_api.hh:102:21)> >' requested here
  _post = sql_crud<post_orm>(
          ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/http_route.hh:27:8: note: candidate template ignored: substitution failure [with P = <int>]
  auto post_parameters(P... p) {
       ^
/home/milan/tmp/silicon-orig.git/examples/../silicon/http_route.hh:33:8: note: candidate template ignored: could not match 'sio<type-parameter-0-0...>' against 'int'
  auto post_parameters(sio<P...> o) {
       ^
15 errors generated.
make[2]: *** [CMakeFiles/blog.dir/build.make:63: CMakeFiles/blog.dir/blog.cc.o] Chyba 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/blog.dir/all] Chyba 2
make: *** [Makefile:84: all] Chyba 2
matt-42 commented 8 years ago

Did you update iod to the latest version ?

tex commented 8 years ago

That was it. Thank you very much! :-)