compile time assert and counting args with cpp