Bonjour,

Voici les classes héritées:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
template<typename Cast, typename IdType>
struct shared_pointer
{
	typedef std::shared_ptr<Cast> ptr;
	typedef IdType id_t;
};
Puis,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
class sprite: public shared_pointer<sprite, long_t>
Et enfin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
class complete_sprite: sprite
Et maintenant, quand je tente de creer un objet de type complete_sprite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
complete_sprite::ptr complete_sprite::create(
        const sf::Texture& texture,
        const std::vector<std::string>& groups,
        const std::string& first_group,
        short_t frames,
        functor left_click,
        functor right_click,
        functor double_lclick,
        functor double_rclick
    )
{
    return std::make_shared<complete_sprite>(texture, groups, first_group, frames, left_click, right_click, double_lclick, double_rclick);
}
Le compilateur me sors:
/media/data/dev/projects/Tools/game/sprites/complete.cpp|37|error: could not convert ‘std::make_shared(_Args&& ...) [with _Tp = game::sprites::complete_sprite; _Args = {const sf::Texture&, const std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&, const std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, unsigned char&, std::function<void(game::sprites::sprite&)>&, std::function<void(game::sprites::sprite&)>&, std::function<void(game::sprites::sprite&)>&, std::function<void(game::sprites::sprite&)>&}]((* & groups), (* & first_group), (* & frames), (* & left_click), (* & right_click), (* & double_lclick), (* & double_rclick))’ from ‘std::shared_ptr<game::sprites::complete_sprite>’ to ‘shared_pointer<game::sprites::sprite, long unsigned int>::ptr {aka std::shared_ptr<game::sprites::sprite>}’|
Ou pour faire plus court...
error: could not convert

‘std::make_shared(_Args&& ...)((* & groups), (* & first_group), (* & frames), (* & left_click), (* & right_click), (* & double_lclick), (* & double_rclick))’

from

‘std::shared_ptr<game::sprites::complete_sprite>’

to

‘shared_pointer<game::sprites::sprite, long unsigned int>::ptr {aka std::shared_ptr<game::sprites::sprite>}’|
Qu'est-ce qui cloche ?

Merci, nico