The following code ends up in an infinite loop in process() apparently because of the samplerate 0 in the ProcessSpec. I suggest adding a jassert in the process method to catch this. (Or why not in the Oscillator::prepare also…)
dsp::Oscillator<float> osc(std::sinf);
AudioBuffer<float> buffer(1, 512);
dsp::ProcessSpec spec;
spec.maximumBlockSize = 512;
spec.numChannels = 1;
spec.sampleRate = 0;
osc.prepare(spec);
osc.process(dsp::ProcessContextReplacing<float>(dsp::AudioBlock<float>(buffer)));
std::cout << "finished\n";
