Salut, ayant presque terminé mon système de sérialisation, je suis confronté à un dernier problème et je me demande quelle est la meilleur façon de le résoudre.
J'essaye d'écrire et lire une énumération dans un flux, j'ai essayé ce code, malheureusement, cela ne fonctionne pas :
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 template <typename E, class... D, class = typename std::enable_if<!std::is_fundamental<D>::value>::type, class = typename std::enable_if<std::is_enum<E>::value>::type> void operator() (E& data, D...) { buffer<<data<<std::endl; }
Code cpp : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 template <typename E, class... D, class = typename std::enable_if<!std::is_fundamental<E>::value>::type, class = typename std::enable_if<std::is_enum<E>::value>::type> void operator()(E& data, D...) { buffer>>data; char space; buffer.get(space); }
Mais ça ne fonctionne pas.
Puis je écrire une énumération et lire directement une énumération dans un ifstream ou bien suis je obligé de passer par un système qui écrit un entier pour chaque valeur de l'énumération,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 /usr/local/include/odfaeg/Core/archive.h|647|error: cannot bind std::istream {aka std::basic_istream<char>} lvalue to std::basic_istream<char>&&|
Bref, quel est la façon la meilleure façon de faire ?
Partager