Bonjour,
J'ai actuellement un namespace Utils avec des fonctions toutes seules.
En particulier, j'ai cette fonction :
Qui fonctionne très bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 template <typename T> T from_string (string & str, bool convert = false) { istringstream iss (str); T t; convert ? (iss >> hex >> t) : (iss >> t); return t; }
Pourtant, dans une de mes classes, je fais :
Et là c'est le drame :
Code : Sélectionner tout - Visualiser dans une fenêtre à part int state = Utils::from_string<int>(str.substr(2));Comment peut-il ignorer le Utils:: juste devant ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part error: no matching function for call to 'from_string(std::string, bool)'
Deuxième problème, voici une classe toute bête :
J'ai les erreurs suivantes lorsque je veux faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class Packet { public: explicit Packet (string packet) { _stream << packet; } template<class T> Packet & operator<< (T val) { _stream << val; return *this; } string to_string () const { return _stream.str(); } private: std::ostringstream _stream; };
Code : Sélectionner tout - Visualiser dans une fenêtre à part fonction(Packet ("XX"));Très franchement je suis un peu paumé, après avoir essayé des tas de trucs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ios_base.h|790|error: 'std::ios_base::ios_base(const std::ios_base&)' is private| iosfwd|47|error: within this context| iosfwd|71|note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here | streambuf|770|error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private| iosfwd|63|error: within this context| note: synthesized method 'Packet::Packet(const Packet&)' first required here | <== lorsque je fais comme le code juste au-dessus
Une idée ?
Partager