TY - CHAP AU - Pataki, Norbert AU - Mihalicza, József AU - Szűgyi, Zalán AU - Májer, Viktor AU - Porkoláb, Zoltán ED - Egri-Nagy, Attila ED - Kovács, Emőd ED - Kovásznai, Gergely ED - Kusper, Gábor ED - Tómács, Tibor TI - Features of C++ Template Metaprograms T2 - Proceedings of the 8th International Conference on Applied Informatics, ICAI 2010 PB - Eszterházy Károly College CY - Eger SN - 9789639894723 PY - 2010 SP - 451 EP - 451 PG - 1 UR - https://m2.mtmt.hu/api/publication/1996678 ID - 1996678 N1 - Vol. 2 LA - English DB - MTMT ER - TY - CONF AU - Pataki, Norbert AU - Kozsik, Tamás AU - Porkoláb, Zoltán ED - Olajos, Péter ED - Tómács, Tibor ED - Kovács, Emőd TI - Properties of C++ template metaprograms T2 - Proceedings of the 7th International Conference on Applied Informatics PB - Eszterházy Károly College C1 - Eger PY - 2007 SP - 265 EP - 270 PG - 6 UR - https://m2.mtmt.hu/api/publication/1648366 ID - 1648366 N1 - rev: Zbl 1183.68147 Vol. 2. AB - Summary: Verifying properties of programs is a common way to ensure the proper behaviour of those programs. Invariants, pre- and postconditions are program properties often used when proving correctness of programs. \par C++ Template MetaPrograms (TMPs) are special progams interpreted by the compiler. Metaprograms are widely used for the following purposes: executing algorithms in compile-time, optimizing runtime programs and emitting compilation errors and warnings to enforce certain semantic checks. \par In this paper we step to ``meta- meta-level'': we present a technique to make safer C++ TMPs with static asserts. We describe how to check invariants, pre- and postconditions of TMPs and enforce the compiler to refuse metaprograms if any of the specified program properties is dissatisfied. We present some examples where semantic errors in TMPs are revealed by our method. LA - English DB - MTMT ER -