Цитата(kurtis @ Dec 22 2010, 00:15)

Общий смысл в том, что в функции создается статический объект, ссылка на который, потом возвращается туда куда нам надо.
Всё так, только инициализируется этот объект именно в момент вызова функции (собственно, для гарантии наличия, функция-то может вызываться и из других конструкторов), что тянет за собой дополнительную флаговую переменную со смыслом
bool initialised; и соответствующий код. А при отсутствии (это я уже о gcc) -fno-threadsafe-statics там ещё и мьютексы __cxa_guard_*
В мелких мелкоконтроллерах жаба давить начинает.
Цитата(kurtis @ Dec 22 2010, 00:15)

Мне такой трюк нужен был только однажды, да и то, потом как-то обошлось, поменял немного архитектуру.