Contrôle des passages à la ligne dans les chaînes d'en-tête et de fin

Les chaînes d'en-tête et de fin dans un bloc de macro ne sont générés que lorsque nécessaire. Si le bloc ne renvoie rien, les chaînes d'en-tête et de fin n'apparaissent pas, ce qui peut aider à contrôler la création de nouvelles lignes.

Exemple
Le texte et les nouvelles ligne dans l'en-tête et la fin de chaque boucle .foreach_item ne sont imprimés que si la collection n'est pas vide. Lorsque ce template est appliqué à une classe avec des attributs mais sans opération, le texte // Opérations et les nouvelles lignes spécifiées avant et après la liste des opérations ne sont pas imprimés :
class "%Code%" {
 .foreach_item(Attributes, // Attributes\n,\n\n)
 %DataType% %Code%
  .if (%InitialValue%)
 = %InitialValue%
  .endif
 .next(\n)
 .foreach_item(Operations, // Operations\n,\n\n)
 %ReturnType% %Code%(...)
 .next(\n)
<Source>
}
Résultat :
class "C1" {// Attributes
 int a1 = 10
 int a2
 int a3 = 5
 int a4

<Source>
}
Remarque : Pour imprimer un espace vide entre l'accolade et la chaîne // Attributs, vous devez encadrer la chaîne d'en-tête de guillemets :
.foreach_item(Attributes," // Attributes\n",\n)