cpp: fix for shared pointer dereferencing in pack
cpp: Switch to using non-pointers in Dispatchers