Bonjour,
Voici les classes héritées:
Puis,
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; };
Et enfin
Code : Sélectionner tout - Visualiser dans une fenêtre à part class sprite: public shared_pointer<sprite, long_t>
Et maintenant, quand je tente de creer un objet de type complete_sprite:
Code : Sélectionner tout - Visualiser dans une fenêtre à part class complete_sprite: sprite
Le compilateur me sors:
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); }
Ou pour faire plus court.../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>}’|
Qu'est-ce qui cloche ?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>}’|
Merci, nico
Partager