Вы не можете вернуть ссылку на временный объект, который вы создали в стеке. Я буду уничтожен к тому времени, когда ваша функция вернется, и ваше приложение будет аварийно завершено.
Если вы намерены сделать что-то подобное, вам придется возвращаться по значению, а не по ссылке, т.е.
stringSet Target::dirList( const dirType type ) const
Очевидно, что это может повлиять на производительность, так как вам, скорее всего, придется вызывать конструктор копирования для других ваших ссылок. Альтернативой было бы избежать создания временного объекта в стеке. В зависимости от вашего приложения, вы можете сделать это несколькими способами, например, иметь простой пул, из которого вы получаете временные объекты и в какой-то момент занимающийся сборкой мусора, или вы можете заставить dirList принять заполняемый аргумент stringSet по вашей функции.
В лучшем случае - разве вы не можете просто установить постоянную настройку по умолчанию где-нибудь? Должен ли он быть уникальным для каждого звонка?