LINUX.ORG.RU

История изменений

Исправление Begemoth, (текущая версия) :

не боишься что потратишь в 2 раза больше памяти на копию строки?

1. QString хранит строки QChar, не конкретизируя кодировку этих QChar'ов. ТС хочет вывести строку в системной кодировке, как ты обойдёшься в общем случае без создания копии строки в нужной кодировке?

2. В 2 раза больше памяти чем ТС я не израсходую, будет различаться только момент уничтожения этой копии.

чому бы тогда вообще не запретить new? А то мало ли чего они там нагородят, противные :-)

Так вот в С++14 добавят std::make_unique и этот new будет нужен только для реализации классов непосредственно управляющих распределением памяти (умные указатели, векторы, списки и т.д.). Стиви, голым new не рекомендуют пользоваться уже дано, даже выражение типа foo(new A, new B) может привести к утечке памяти (при том что foo, удаляет полученные объекты или иным способом заботится об этом).

Исходная версия Begemoth, :

не боишься что потратишь в 2 раза больше памяти на копию строки?

1. QString хранит строки QChar, не конкретизируя кодировку этих QChar'ов. ТС хочет вывести строку в системной кодировке, как ты обойдёшься в общем случае без создания копии строки в нужной кодировке?

2. В 2 раза больше памяти чем ТС я не израсходую, будет различаться только момент уничтожения этой копии.

чому бы тогда вообще не запретить new? А то мало ли чего они там нагородят, противные :-)

Так вот в С++14 добавят std::make_unique и этот new будет нужен только для реализации классов непосредственно управляющих распределением памяти (умные указатели, векторы, списки и т.д.). Стиви голым new не рекомендуют пользоваться уже дано, даже выражение типа foo(new A, new B) может привести к утечке памяти (при том что foo, удаляет полученные объекты или иным способом заботится об этом).