J'ai besoin d'imprimer des noms de gabarits en retrait à des fins de débogage. Par exemple, au lieu d'une seule ligne, je voudrais indentez nom comme celui-ci:Nom du template C++ pretty print
boost::phoenix::actor<
boost::phoenix::composite<
boost::phoenix::less_eval,
boost::fusion::vector<
boost::phoenix::argument<0>,
boost::phoenix::argument<1>,
je commencé à écrire mon propre mais commence à être compliqué. Existe-t-il une solution existante?
S'il n'y en a pas, pouvez-vous m'aider à terminer ma mise en œuvre? Je l'afficherai si c'est le cas.
Merci
c'est ce que typeid.name ressemble,
boost::phoenix::actor<boost::phoenix::composite<boost::phoenix::less_eval,
boost::fusion::vector<boost::phoenix::argument<0>,
boost::phoenix::composite<boost::phoenix::multiplies_eval,
boost::fusion::vector<boost::phoenix::argument<1>, boost::phoenix::argument<2>,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void >, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_, boost::fusion::void_, boost::fusion::void_,
boost::fusion::void_> > >
ceci est mon objectif
6 boost::phoenix::actor<
7 boost::phoenix::composite<
8 boost::phoenix::less_eval,
9 boost::fusion::vector<
10 boost::phoenix::argument<0>,
11 boost::phoenix::composite<
12 boost::phoenix::multiplies_eval,
13 boost::fusion::vector<
14 boost::phoenix::argument<1>,
15 boost::phoenix::argument<2>,
16 boost::fusion::void_,
17 boost::fusion::void_,
18 boost::fusion::void_,
19 boost::fusion::void_,
20 boost::fusion::void_,
21 boost::fusion::void_,
22 boost::fusion::void_,
23 boost::fusion::void >, // indentation messed up
24 boost::fusion::void_,
25 boost::fusion::void_,
26 boost::fusion::void_,
27 boost::fusion::void_,
28 boost::fusion::void_,
29 boost::fusion::void_,
30 boost::fusion::void_,
31 boost::fusion::void_
32 >
33 >
34 >
pour que je puisse réellement lire la déclaration
D'où proviennent ces noms de modèles que vous essayez d'imprimer? Est-ce que vous les créez vous-même, ou que vous analysez une entrée préexistante, ou ... La solution dépend non seulement de ce que vous essayez de produire, mais aussi de l'origine de l'entrée pour cette sortie. –
Comment ce post est-il corrélé avec votre réponse ci-dessous? –
Il semble qu'il essaie d'imprimer une trace de pile. Mais il veut que les types de modèles soient plus beaux, alors il cherche à les remplacer par des versions qui incluent des espaces supplémentaires, y compris des retours à la ligne. –