Add C++ Template Metaprogramming Backend #39
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I added C++ template metaprogramming(TMP) backend.
You can test this backend by the following command:
This backend generates a C++ program that performs a compile-time computation like C++14 constexpr backend.
However, TMP is much more restricted than C++14 constexpr.
The largest restriction is that a huge amount of memory is needed to compile a program generated by this backend.
For example,
g++
uses about 3GB memory to compile a C++ template program translated from a simple program:The more complex program you want to run, the more memory is needed.
Thus, unfortunately, 8cc translated by this backend does not work at all.