In any case, you shouldn't have code like playwav("some_sound.wav"); though -- more like:
Sound* some_sound = loadwav("some_sound.wav"); //filename processing paid once, pointer obtained
playwav(some_sound); // no details of filesystem involved per frame
oh trust me, i don't! <g>
its more like playwav(some_sound_pointer);
but i'd like to be able to use some more human readable format such as playwav(some_sound_name);
preferably without a slow lookup, making everything data driven, or enum'ing everything, but those seem to be the only options.
i guess enums would be no more typing than some sort of lookup table, but more typing than coding up a simple string lookup function.
otoh, simply keeping a side list of filenames and their indexes isn't that big a deal, i may just stick with that for non-data driven stuff. its less typing than enums.