cpp_stl generator does not use type kaitai::kstruct* for m_data, if only 1 switch-on and default case
Let's assume a ksy similar to this:

```yml
seq:
      - id: record_type
        type: u2
      - id: record_body
        type:
          switch-on: record_type
          cases:
            0x1111: packet1
            #0x1112: packet2     # <--- must be defined
            _: record_body_unknown

types:
  packet1:
    seq:
      - id: id
        type: u4
      - id: data
        size-eos: true
        
#  packet2:
#    seq:
#      - id: magic1
#        contents: [0xcd, 0xcd]
#      - id: id
#        type: u4
#      - id: data
#        size-eos: true

  record_body_unknown:
    seq:
      - id: data
        size-eos: true
```

When thre is only `packet1` and the default case `record_body_unknown` in the switch-on `record_type`, then `m_data` member will have the type `packet1*`. If the `packet2` is enabled, then the type is `kaitai:kstruct*`. The type must be `kaitai::kstruct*` because of the generated `packet1* data()` method, which cannot return a `record_body_unknown*` member. This leads to a compiler error.
However the return value of the `data()` method automatically changes by enabling `packet2`, too.

As there is a work-around known, this issue probably does not have a high priority.
