Problem with variable length struct
I'm trying to decode an structure defined as:

(The `packed64` type is actually a `vlq_base128_le`)

**backtrace_body**

Name | Type
------|-------
offset_cookie  | packed64
offset | packed64

**Frame type:**

Name | Type
------ | -------------
tid | packed64
body | one or more repetitions of `backtrace_body`
_End of message_ | `1` encoded as a packed64

I'm supposed to keep decoding body_type structs until I find the number 1 (ie, until `body_type.body_id` is 1). 

```yaml
meta:
  id: backtrace
  endian: le
  imports:
    - vlq_base128_le

seq:
    - id: tid
      type: vlq_base_128_le
    - id: body
      type: backtrace_body
      repeat: until
      repeat-until: _.offset_cookie.value == 1

types:
  nothing: {}

  backtrace_body:
    seq:
      - id: offset_cookie
        type: vlq_base_128_le
        doc: Executable or library at the offset
      - id: offset
        doc: Offset in the backtrace
        type:
          switch-on: offset_cookie.value
          cases:
            1:  nothing
            _:  vlq_base_128_le
```

My idea being that `offset` would be an empty object and wouldn't consume data from the string if the special number `1` is found in the `offset` field. I couldn't figure out any other way of keeping decoding the struct until that special value/terminator was hit.

In the webide I can parse my sample data and everything seems to be fine but when I generate the cpp code I'm interested in I get an error compiling the code:

```
/home/pnavarro/tests/parser/backtrace.cpp: In constructor 'backtrace_t::backtrace_t(kaitai::kstream*, kaitai::kstruct*, backtrace_t*)':
/home/pnavarro/tests/parser/backtrace.cpp:9:91: warning: unused parameter 'p__root' [-Wunused-parameter]
/home/pnavarro/tests/parser/backtrace.cpp: In member function 'void backtrace_t::backtrace_body_t::_read()':
/home/pnavarro/tests/parser/backtrace.cpp:66:47: error: cannot convert 'vlq_base_128_le_t*' to 'backtrace_t::nothing_t*' in assignment
```

The generated code is
```c++
void backtrace_t::backtrace_body_t::_read() {
    m_offset_cookie = new vlq_base_128_le_t(m__io);
    switch (offset_cookie()->value()) {
    case 1: {
        m_offset = new nothing_t(m__io, this, m__root);
        break;
    }
    default: {
        m_offset = new vlq_base_128_le_t(m__io);
        break;
    }
    }
}
```
The error is at:
```c++
        m_offset = new vlq_base_128_le_t(m__io);
```

In backtrace.h I see that m_offset has been defined as a `nothing_t*`:
```c++
    private:
        vlq_base_128_le_t* m_offset_cookie;
        nothing_t* m_offset;
        backtrace_t* m__root;
```

Am I doing the right thing? Is it correct that I'm assigning my `nothing` type to the second member of the struct?





