C++ won't accept code generated for custom process function
My KSY,
```yaml
seq:
  [...]
  raw_bytes:
    seq:
    - id: data
      process: hex_encoder
      size-eos: true
   [...]
```
produces this code,
```cpp
void myrecords_t::raw_bytes_t::_read() {
    m__raw_data = m__io->read_bytes_full();
    hex_encoder_t _process__raw_data();
    m_data = _process__raw_data.decode(m__raw_data);
}
```
to which the C++ compiler (`Apple LLVM version 10.0.0 (clang-1000.11.45.2)`) reacts as follows:
```
<filename.cpp>:4587:37: warning: empty parentheses interpreted as a function declaration [-Wvexing-parse]
    hex_encoder_t _process__raw_data();
                                    ^~
<filename.cpp>:4587:37: note: replace parentheses with an initializer to declare a variable
    hex_encoder_t _process__raw_data();
                                    ^~
                                    {}
<filename.cpp>:4588:14: error: base of member reference is a function; perhaps you meant to call it with no arguments?
    m_data = _process__raw_data.decode(m__raw_data);
             ^~~~~~~~~~~~~~~~~~
                               ()
1 warning and 1 error generated.
```
Apparently because the declaration of `_process__raw_data` is ambiguous:  the compiler is taking it as a function declaration instead of an object instantiation with no arguments.

Am I doing something wrong, or am I just the first one to use a custom process plug-in from C++?

If, in fact, I am the first, I'd like to put in a plug for changing the custom process function interface -- instead of taking its argument by value, I'd suggest that it receive a reference to a `const`, which would avoid copying the input:

```cpp
virtual std::string decode(const std::string& src) = 0;
```

(I think it would also be good to have it _return_ a `const` reference, as well, but that may be a more modern C++ concept than it is your intent to support.)