alsa::pcm pcm; pcm.get_config().set(FOO).set(BAR); If there is something that doesn't apply to a pcm instance, the C++ API could provide an instance of a pcm_any object and call that instead: alsa::pcm_any.get_config().set(FOO).set(BAR); [...] HTH, --=20 Aldrin Martoq