#include <charm++.h>
Chare classes have generated specializations that call PUPs for their parents, SDAG, etc. The default case is an explicit specialization so that corner cases I haven't handled are more likely to produce linker errors, rather than potentially running incorrectly.
The specialized templates are structs for reasons explained by http://www.gotw.ca/publications/mill17.htm
Definition at line 431 of file charm++.h.