Most of the headers are wrapped in line such as:
#ifdef __cplusplus
extern "C" {
#endif
and the associated closure - see this as an example:
https://github.com/raspberrypi/pico-extras/blob/master/src/rp2_common/pico_audio_i2s/include/pico/audio_i2s.h#L23-L25
this is missing from usb_device.h which makes for having to wrap the include statement - a simple, but not pretty workaround.
Is there a reason this has been omitted deliberately? If not I'll happily raise a PR to include it, and do a sweep of all the other headers to ensure they're consistent.
Thanks!
RIchard