template avec argument template
Bonjour !
Je cale devant une erreur de GCC, j'aurais besoin de vos lumières.
Donc j'ai une classe qui contient un pointeur naturiste, et une fonction qui est censée le creer !
Code:
1 2 3 4 5 6 7 8 9
| template<typename Protocol>
class session
{
protected:
handlers::packet_handler_impl* m_handler;
public:
template<template<typename, typename, bool> class Handler, typename Engine, bool EnableClient, typename... Args>
session<Protocol>* create_handler(Args&... args) { m_handler = new Handler<Protocol, Engine, EnableClient>(args...); return this; }
}; |
Ensuite, j'ai donc une classe "handler", certe moche...
Code:
1 2
| template<typename Protocol, typename Engine, bool EnableClient>
class basic_client: public packet_handler<basic_client<Protocol, Engine, EnableClient>> { }; |
Et je creer le handler de cette facon:
Code:
(new sessions::client<Protocol>(*new_socket))->create_handler<handlers::basic_client<Protocol, null_class, disable_client>, null_class, disable_client>(new_socket)
null_class est une classe vide, class dummy {};
Le compilo me sort alors... quand je creer le handler
Citation:
/media/data/dev/projects/baws/baws/net/server_engine_inl.h|37|error: expected ‘(’ before ‘,’ token|
/media/data/dev/projects/baws/baws/net/server_engine_inl.h|37|error: expected primary-expression before ‘,’ token|
Sauriez vous m'eclairer? :D
nico