Re: Статические безымянные объекты
От: slava_phirsov Россия  
Дата: 20.10.14 09:58
Оценка:
Здравствуйте, x-code, Вы писали:

XC>когда мы пишем в функции

XC>
const char *t = "Hello world";

XC>всем понятно что сама строка "Hello world" существует не на стеке, а в статической памяти.


Формально — никто этого не гарантирует Компилятор или линковщик может ее вообще не включать в результирующий файл, если сочтет, что она не используется


XC>И есть ли какие-то преемлемые решения создания безымянных статических объектов произвольного типа прямо в выражении?

XC>Пока едиственное что пришло в голову — вот такое, и завернуть это в макрос
XC>
D* d = []()->D* { static D _d("Hello"); return &_d;}();



Не проще ли использовать кошерный static, не придумывая подобных костылей? Вообще, чего ради весь сыр-бор, так часто требуется?
Люди! Люди, смотрите, я сошел с ума! Люди! Возлюбите друг друга! (вы чувствуете, какой бред?)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.