Problemas ao usar ponteiros opacos no Objective C ++

A resposta paraessa pergunta explica que ponteiros opacos são uma boa maneira de incluir variáveis de membro C ++ em um cabeçalho Objective C ++. Estou recebendo erros de compilação ao tentar seguir o exemplo. Aqui está o código relevante do meu cabeçalho, com os erros correspondentes do compilador mostrados como comentários:

struct ADSR_opaque; // error: forward declaration of 'struct ADSR_opaque'

@interface LoopyPulser : NSObject{

    float _pulseRate;
    UInt32 tickInterval;
    UInt32 step;
    InMemoryAudioFile * audioFilePlayer;
    ADSR_opaque* env; //  error: expected specifier-qualifier-list before 'ADSR_opaque'
    Pattern * pattern;
    float loopLengthRatio;
    float volume;
}

Há algo simples que estou fazendo errado aqui?

questionAnswers(2)

yourAnswerToTheQuestion