compile-time-regular-expressions icon indicating copy to clipboard operation
compile-time-regular-expressions copied to clipboard

Solving #109 with redundant inclusion guards

Open jmramosr opened this issue 5 years ago • 2 comments
trafficstars

Using redundant include guards to minimize the compilation time

C Preprocessor inclusions could explode the compilation time (even with pragma once!)

The basic idea comes from an old, dusty C++ book called Large Scale C++ Software Design, page 83-88.

Expanding the evaluate method indicated in the issue #109, everytime the ? in 0?1?2?3?4?5?6?7?8?9? is parsed, a new template instantiation begins, reading all the files again in the #includes, and increasing exponentially the compilation time.

I didn't use any redundant include guards in the standard header files. They could be used into them, too, in order to reduce even more the compilation times.

Test case: 0?1?2?3?4?5?6?7?8?9? Even worst compile time test case: a?b?c?d?e?f?g?h?i?j?l?m?n?o?p?q?r?s?t?u?v?w?x?y?z?

jmramosr avatar Sep 16 '20 14:09 jmramosr

Do you have some measurements? This seems really sketchy.

hanickadot avatar Sep 16 '20 14:09 hanickadot

Ok, I read the book on pages you sent, the chapter is talking about preprocessor, not about templates.

hanickadot avatar Sep 16 '20 20:09 hanickadot