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.
Fixes issue: #80
The issue is that:
According to the cpp standard, an explicit instantiation is only allowed to appear once in the entire program.
https://en.cppreference.com/w/cpp/language/class_template
Some gcc compilers will fail if this is not the case.
The challenge is that the member functions of the templated classes have been defined in multiple files (engine_run.cpp, engine_printer.cpp, engine_init.cpp, engine_step_report.cpp). The solution is to only explicitly instantiate the class in
engine_init.cpp
and then only instantiate rest of the functions in the other files.See:
https://stackoverflow.com/questions/21534435/separate-compilation-and-template-explicit-instantiation