This reverts commit 75b195cc4c. I've moved the specialisations out of the class to fix the g++ compilation.
75b195cc4c