Use CPP to choose whether to use DefaultSignatures

Eliminates some code duplication. Closes #5.