Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce compile time by allowing explicit template instantiations #2

Open
philippgs opened this issue Mar 23, 2017 · 1 comment
Open

Comments

@philippgs
Copy link
Member

We need to investigate how to allow explicit template instantiations of API constructs in user applications in order to reduce the compile time. Specifically, we need to check whether such explicit template instantiations are compatible with in-class member function definitions to keep the code clean and readable.

@HerbertJordan
Copy link
Member

For explicit instantiations of member functions definitions need to be provided outside the class definition, separated from its declaration.

However, explicit external template instantiations need to be declared within the same name as the template class itself. This makes it a less practical approach for reducing the compile time of user code. User code would have to extend User API constructs to get control over template instantiations.

We are investigating alternative means for reducing the compile time. The main idea is to reduce the amount of classes and functions that are required to be instantiated when working with meshes.

philippgs pushed a commit to philippgs/allscale_api_travis_playground that referenced this issue Apr 3, 2017
philippgs pushed a commit to philippgs/allscale_api_travis_playground that referenced this issue Apr 3, 2017
philippgs pushed a commit to philippgs/allscale_api_travis_playground that referenced this issue Apr 3, 2017
philippgs pushed a commit to philippgs/allscale_api_travis_playground that referenced this issue Apr 3, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants