powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / auto_ptr или new + delete
24 сообщений из 74, страница 3 из 3
auto_ptr или new + delete
    #34397914
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinесли короче, резюмирую то, что мне пытались объяснить про auto_ptr
1) это либо затычка либо интерфейс (сами они еще не поняли)
2) это громозко (в плане конечного кода) и плохо контролируется
3) это БАЛЬШОЙ универсальный менеджер (+неконтролируемый)
4) накладываются ограничения.

аффтопитезь: объект либо именован, либо не существует
Вообще, в некоторых случаях я писал свой класс, который был более легковесным аналогом вектора. Темплейт, создающий динамический массив из элементов.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
template<typename Item, typename Counter = unsigned long> struct Table{
	Item* items;
	Counter size;
	table(Counter _size): size(_size){
		items = new Item[_size];
	}
	table(Counter _size, Item* src): size(_size){
		items = new Item[_size];
		for (Counter i =  0 ; i < size; i++){
			items[i] = src[i];
		}
	}
	//мне это не сильно нужно, но для удобства...
	Item& operator[](Counter index){
		return items[index];
	}
	/*Item* operator[](Counter index){
		return &items[index];
	}   */
	~table(void){
		delete[]  items;
	}
};
Эту штуку я писал только по тому, что временных массивов у меня была куча и мне было лень их все отслеживать, расписывая для каждого delete[]. Но создавать обертку для одной переменной - извините, не совсем понимаю...
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34397917
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV

это можно назвать короче, "manager" (memory mgr). я уже про это говорил.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34397918
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin ErV
Можно вопрос? А зачем вам вообще SAFE_DELETE?


new так же как и элементарный calloc (malloc) возвращяют 0 при отсутствии памяти.
если вы НЕ использовали указатель (даже не занулили), то это ошибка ВАШЕГО кода, которая и приводит к утечкам.
Я имел в виду следующее - если вам возвращается 0, зачем вам SAFE_DELETE? Что он делает? Нулевые указатели можно удалять, и это не дает ошибок.
Код: plaintext
1.
2.
3.
4.
void main(void){
	int *p =  0 ;
	delete[] p;
}
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34397925
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV Aklin ErV
Можно вопрос? А зачем вам вообще SAFE_DELETE?


new так же как и элементарный calloc (malloc) возвращяют 0 при отсутствии памяти.
если вы НЕ использовали указатель (даже не занулили), то это ошибка ВАШЕГО кода, которая и приводит к утечкам.
Я имел в виду следующее - если вам возвращается 0, зачем вам SAFE_DELETE? Что он делает? Нулевые указатели можно удалять, и это не дает ошибок.
Код: plaintext
1.
2.
3.
4.
void main(void){
	int *p =  0 ;
	delete[] p;
}


точно не помню, можно ли удалять нулевые указатели, но обнуление точно помогает.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34397933
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinточно не помню, можно ли удалять нулевые указатели, но обнуление точно помогает.
И ещё раз цитирую:
C++_reference
Using delete on a pointer to an object not allocated with new gives unpredictable results. You can, however, use delete on a pointer with the value 0. This provision means that, when new returns 0 on failure, deleting the result of a failed new operation is harmless . See The new and delete Operators for more information.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34397941
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создавать функции типа SAFE_DELETE только если обьект освобождается как-то по-другому, например, если это COM объект, для освобождения которого надо вызвать release, а вызов Release() с нулевого указателя даст, ясен пень, AccessViolation.
Кстати, есть более (ИМХО) удобный вариант, чем макросы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
template <class C>void safeRelease(C*& p){
	if (p){
		p->Release();
		p =  0 ;
	}
}

template <typename T> void safeDelete(T*& p){
	delete p;
	p =  0 ;
}

template <typename T> void safeDeleteArray(T*& p){
	delete[] p;
	p =  0 ;
}
Просто в случае с макросом есть 100% гарантия того, что он каждый раз будет целиком вставлен в код, а в случае с темплейтами есть вероятность того, что для каждого типа аргумента будет сгенерирована отдельная функция, т.е. код станет меньше.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34398764
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не Анатолий, ручки не сложу Сначала про new
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
# include <iostream>
# include <iomanip>
int main()
{
  int sz = int( 2 . *  1024  *  1024  *  1024  - 1 );
  unsigned char* buf = new unsigned char[sz];
  buf = new unsigned char[sz];                                // повторить нужное число раз для получения нужного эффекта
  if (buf)
    std::cout << "Allocated" << std::endl;
  else
    std::cout << "not allocated" << std::endl;
}
а это вывод от задачи скомпилированной gcc (3.4.5)
Код: plaintext
1.
2.
3.
terminate called after throwing an instance of 'std::bad_alloc'
  what():  St9bad_alloc
Aborted
Это камешек в огород Visual C ну не стандартный он. Так что на Unix вас ждет масса сюрпризов:-))) Специально залез в Язык программирования C++ Бьерн Страусструп Специальное издание п 6.2.6.2
Что касается кода который я привожу? не надо воспринимать его буквально от а-я. Это всего лишь попытка смоделировать ситуацию, не более того. ( см ). Я просто пытался показать что происходит если генерацию исключения и его обработку разделяют несколько уровней вложенности в которых также динамически создаются объекты.
Теперь на счет auto_ptr. Люблю я людей рассуждающих о вкусе устриц не разу их не попробовав. Хоть бы из любопытсва взяли и посмотрели что это. Ну ладно коротенько перескажем это маленький шаблон - обертка(proxy) вся задача которого отслеживать время жизни указателя. У него масса недостатков. и одно гигантское достоинство - он стандартный.
А что касается кривизны кривизны моих рук и не знания что делать выданным мне инструментом. Ну это по крайней мере безосновательно
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34398835
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded

для gcc есть рабочий free и calloc(malloc).
что касается того что я не пробовал auto_ptr вы глубоко залуждаетесь, провел два часа в этой беседе и пока не понял никаких плюсов, зато написал (см. выше) "запутанный код" и "неконтролируемость".
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34398872
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin blinded

для gcc есть рабочий free и calloc(malloc).
что касается того что я не пробовал auto_ptr вы глубоко залуждаетесь, провел два часа в этой беседе и пока не понял никаких плюсов, зато написал (см. выше) "запутанный код" и "неконтролируемость".
Ну мы же не на С свами пишем. Да и отделение выделения памяти от вызова конструктора ни к чему хорошему не приведет,
Ну что до запутанности кода и неконтролируемости - это вы не научились им подьзоваться. Кстати должен вас огорчить, в грядущий стандартбудет включено несколько новых smart указателей.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34398937
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedТеперь на счет auto_ptr. Люблю я людей рассуждающих о вкусе устриц не разу их не попробовав. Хоть бы из любопытсва взяли и посмотрели что это.
Посмотрел. Не понравилось - криво и неудобно, замедляет код при частом обращении к указателю.

blinded
У него масса недостатков. и одно гигантское достоинство - он стандартный.

Ну и что, что стандартный? Вы когда (если) под Win пишете, вы GlobalAlloc, например используете? Он тоже (для Win) стандартный...
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399374
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded

другими словами ничего нового сказть никто больше может.
кроме того мне никто не запрещает сделать макрос по конструкции try{new...}...{...} например SAFE_NEW.

это дудет переносимо и не станет обращаться к внешним библиотекам.

кстати, new не только стандартный, он еще и есть основа языка си, а auto_ptr - лишь оболочка (затычка) которую поставляют ко всем компиляторам.
это то же, если бы к кажжлму компилятору я бы прибавлял еще "hello world" функцию или вроде того.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399654
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С тех пор как я начал пользоваться умными у меня стало значительно меньше ошибок связанных с неправильной работой с памятью. Вообще помоему это очень полезная вещь.
ErV
Посмотрел. Не понравилось - криво и неудобно, замедляет код при частом обращении к указателю.

Я когда-то смотрел, на gcc (версию уже не помню). При отключенной оптимизации есть замедление, а при включенной никакого замедления нет, std::auto_ptr и boost_scoped_ptr работают так же как обычный указатель. boost::shared_ptr работает медленнее.

Aklin
другими словами ничего нового сказть никто больше может.
кроме того мне никто не запрещает сделать макрос по конструкции try{new...}...{...} например SAFE_NEW.

это дудет переносимо и не станет обращаться к внешним библиотекам.

И чем это лучше auto_ptr-а? Он тоже стандартен, переносим и не требует внешних библиотек. Кому нужны эти макросы?
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399665
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_KИ чем это лучше auto_ptr-а? Он тоже стандартен, переносим и не требует внешних библиотек. Кому нужны эти макросы?

std то вы подключаете.
макросы? gcc ругается, если нет памяти, и это обходиться макросами.
простое и понятное рещение. не запутывающее код. причем контроль остается на том же уровне.
свобода не изменяентся также.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399718
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
std то вы подключаете.


Если я пишу на C++ то я подключаю стандартную бублиотеку С++ независимо от того использую я auto_ptr или не использую. auto_ptr это небольшой шаблон, в который оборачивается указатель, никаких библиотек он не использует.

Aklin
макросы? gcc ругается, если нет памяти, и это обходиться макросами.
простое и понятное рещение. не запутывающее код. причем контроль остается на том же уровне.
свобода не изменяентся также.

Мне не кажется что это проще и понятнее чем std::auto_ptr или boost::scoped_ptr.
То что контроль не остается на том же уровне это как-раз и помогает избежать многих ошибок с указателями.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399736
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_K
подыдожу, что бы все поняли, о чем идет речь
1) те, кто используют auto_ptr не знают что это : интерфейсм или затычка
2) кто-то сказал, что это манагер. я уже говорил, что собственные манагеры быстрее, понятней и удобней
3) контроль над программой падает.

также мне интересен вопрос о переносу указателей через третьи руки.
скажем
a=new
b=a
c=b
причем c из другой функции.
что на это ответит auto_ptr ?
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399891
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
подыдожу, что бы все поняли, о чем идет речь
1) те, кто используют auto_ptr не знают что это : интерфейсм или затычка
2) кто-то сказал, что это манагер. я уже говорил, что собственные манагеры быстрее, понятней и удобней
3) контроль над программой падает.


1) Можете называть как хотите (интефейс, затычка, менеджер) суть от этого не изменится.
2) Если ваш менеджер понятнее и удобнее для вас, то это не значит что он будет
понятнее и удобне для всех. А будет ли собственный менеджер будет быстрее это еще не известно.
3) Контроль над программой не падает, он наоборот увеличивается.

Aklin
также мне интересен вопрос о переносу указателей через третьи руки.
скажем
a=new
b=a
c=b
причем c из другой функции.
что на это ответит auto_ptr ?


Отличный пример! 3 указателя на одну область памяти, можно легко запитаться и освободить память 2 раза или использовать указатель на уже освобожденную память, или просто забыть освободить память, или еще что-нибудь.
Объясните конкретнее, что именно вы хотите сделать, тогда можно будет решить, какой из умных указателей здесь лучше применить.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399932
Aklin
1) те, кто используют auto_ptr не знают что это: интерфейсм или затычка

определение интерфейса мне известно
растолкуйте пожалуйста термин "затычка", дабы не было разночтений

2) кто-то сказал, что это манагер. я уже говорил, что собственные манагеры быстрее, понятней и удобней

"манагер" "манагеру" рознь: бывают разные задачи и стратегии их решения
что именно вы имели в виду? а то похоже на "сравнение теплого с мягким"

плюс вам не кажется что "понятней и удобней" это прежде всего дело вкуса и привычек?
а вот "быстрее" нуждается в обосновании

3) контроль над программой падает.

что есть "падения контроля" в контексте применения auto_ptr?
поведение объекта класса внутри области видимости четко детерменированно

также мне интересен вопрос о переносу указателей через третьи руки.

а можно содержательный компилируемый пример?
т.е. проблема + ваш вариант ее решения

йожу понятно, что не зачем пихать auto_ptr во все дыры, только там где полезно
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399938
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sandro_K1) Можете называть как хотите (интефейс, затычка, менеджер) суть от этого не изменится.
2) Если ваш менеджер понятнее и удобнее для вас, то это не значит что он будет
понятнее и удобне для всех. А будет ли собственный менеджер будет быстрее это еще не известно.
3) Контроль над программой не падает, он наоборот увеличивается.

1) это СОВЕРШЕННО разные понятия
-интерфейс - для удобства программирования, код, который многий исзользуют, но в отдельнм файле + интерфейс
-затычка - закрытие некой дыры (+урезние возможностей)
-менеджер - центрированное управление
2) специальный менеджер для отдельно взятой задачи быстрее и понятней для всех, кто ее пишет. (auto_ptr - швейцарский ножик)
3)когда я поигрался с auto_ptr: я вот не понимаю, в какой момент будут удалены те или иные куски. и не нашел, кто бы мне это указал.

Sandro_KОтличный пример! 3 указателя на одну область памяти, можно легко запитаться и освободить память 2 раза или использовать указатель на уже освобожденную память, или просто забыть освободить память, или еще что-нибудь.
Объясните конкретнее, что именно вы хотите сделать, тогда можно будет решить, какой из умных указателей здесь лучше применить.
вы АСБОЛЮТНО ничего не поняли. если я использую свой меенеджер или не исользую его вообще, то память беру и освобождаю только там, где МНЕ это надо. меня интересовала точка зрения auto_ptr.

также еще интересен вопрос:
Код: plaintext
1.
2.
char* s = new char [ 20000 ];
char* s1=s;
char *s2 = s+ 1000 ;

или
Код: plaintext
1.
2.
3.
char *s = new char [ 2000 ];
strcpy(,,,)
s += strlen(s);
что удалит auto_ptr ???
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399953
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin
также мне интересен вопрос о переносу указателей через третьи руки.
скажем
a=new
b=a
c=b
причем c из другой функции.
что на это ответит auto_ptr?объект будет доступен через с, а код SAFE_DELETE(a); SAFE_DELETE(b); SAFE_DELETE(c); сломает кучу.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34399978
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklinвы АСБОЛЮТНО ничего не поняли. если я использую свой меенеджер или не исользую его вообще, то память беру и освобождаю только там, где МНЕ это надо. меня интересовала точка зрения auto_ptr.если на пальцах, то удаляет объект, когда ты его перестаёшь использовать.
Aklin
также еще интересен вопрос:
Код: plaintext
1.
2.
char* s = new char [ 20000 ];
char* s1=s;
char *s2 = s+ 1000 ;

или
Код: plaintext
1.
2.
3.
char *s = new char [ 2000 ];
strcpy(,,,)
s += strlen(s);
что удалит auto_ptr ???std::string?
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34400025
Sandro_K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin

Я вижу в совершенно не понимаете как работает auto_ptr, и для чего он нужен. Советую сначала разобраться, что же такое умные указатели, а потом уже утверждать нужны они или не нужны.
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34400069
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aklin Sandro_K
подыдожу, что бы все поняли, о чем идет речь
1) те, кто используют auto_ptr не знают что это : интерфейсм или затычка
2) кто-то сказал, что это манагер. я уже говорил, что собственные манагеры быстрее, понятней и удобней
3) контроль над программой падает.

также мне интересен вопрос о переносу указателей через третьи руки.
скажем
a=new
b=a
c=b
причем c из другой функции.
что на это ответит auto_ptr ?
1) а что вы понимаете под одним и другим. А по научному это называется proxy
2) ну вообще-то под менеджером памяти понимается отличное от того о чем вы сдесь говорили. тот пример ErV это не менеджер памяти - это proxy. Ну то что они понятней - это смотря кому, автору - да, тем кто его использует в темную - нет. И в этом отношении я отдам предпочтение стандартному классу.
3) интересно что подумает ваш приемник, когда увидит ваш доморощенный proxy написанный под конкретный случай?
А насчет указателей там все просто
Код: plaintext
1.
2.
3.
4.
                             
auto_ptr<T> a = new T();      // ОШИБКА!!!
auto_ptr<T> a(new T());       // ok
auto_ptr<T> b = a;               // b.ptr = a.ptr; a.ptr =0;
Неужто так сложно ?
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34400952
ErV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded
Код: plaintext
1.
2.
3.
4.
                             
auto_ptr<T> a = new T();      // ОШИБКА!!!
auto_ptr<T> a(new T());       // ok
auto_ptr<T> b = a;               // b.ptr = a.ptr; a.ptr =0;
Неужто так сложно ?
На мой взгляд очень неудобно, и не стоит использовать по следующей причине:
1) Нарушает стандартное поведение операторов C++. Я думаю, что любого нормального программера повергнет в изумлеение, если в выражении int i = 3; int a = i; printf("i: %d, a: %d",i,a); i к моменту вызовва printf будет равно нулю. Именно это делает auto_ptr;
2) вы выше показали пример, в котором используется auto_ptr. Получается, что auto_ptr нельзя присвоить "не auto_ptr" указатель. Для меня, например, это был бы довольно логичный вариант инициализации. По-моему, это недочет убивает все его достоинства (которых я так особо и не улицезрел) - вместо нормального указателя получается помесь указателя, ссылки и локальной переменной... Память в момент присваивания было бы не так уж сложно высвободить.
3) чтобы решить проблемы с забытыми массивами, может тогда уже сразу заюзать смарт-поинтеры? Нормально реализованные, которые бы поддерживали подсчет ссылок на область, и динамически создавали бы дубликат исходного вариант области при попытке доступа к ней на запись. Вот этот вариант я ещё могу понять.
Кстати, что вам мешает с auto_ptr сделать вот это:
Код: plaintext
1.
2.
3.
auto_ptr<int> i(new int( 123 ));
auto_ptr<int> j = i;
*i =  0 ; //accessViolation, не так ли?
Это уже поинтересней утечки памяти...
...
Рейтинг: 0 / 0
auto_ptr или new + delete
    #34401143
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ErV blinded
Код: plaintext
1.
2.
3.
4.
                             
auto_ptr<T> a = new T();      // ОШИБКА!!!
auto_ptr<T> a(new T());       // ok
auto_ptr<T> b = a;               // b.ptr = a.ptr; a.ptr =0;
Неужто так сложно ?
На мой взгляд очень неудобно, и не стоит использовать по следующей причине:
1) Нарушает стандартное поведение операторов C++. Я думаю, что любого нормального программера повергнет в изумлеение, если в выражении int i = 3; int a = i; printf("i: %d, a: %d",i,a); i к моменту вызовва printf будет равно нулю. Именно это делает auto_ptr;
2) вы выше показали пример, в котором используется auto_ptr. Получается, что auto_ptr нельзя присвоить "не auto_ptr" указатель. Для меня, например, это был бы довольно логичный вариант инициализации. По-моему, это недочет убивает все его достоинства (которых я так особо и не улицезрел) - вместо нормального указателя получается помесь указателя, ссылки и локальной переменной... Память в момент присваивания было бы не так уж сложно высвободить.
3) чтобы решить проблемы с забытыми массивами, может тогда уже сразу заюзать смарт-поинтеры? Нормально реализованные, которые бы поддерживали подсчет ссылок на область, и динамически создавали бы дубликат исходного вариант области при попытке доступа к ней на запись. Вот этот вариант я ещё могу понять.
Кстати, что вам мешает с auto_ptr сделать вот это:
Код: plaintext
1.
2.
3.
auto_ptr<int> i(new int( 123 ));
auto_ptr<int> j = i;
*i =  0 ; //accessViolation, не так ли?
Это уже поинтересней утечки памяти...
1)Да несколько непривычно, вот только надо внимательнее смотреть на сигнатуру у всех
SomeClass& operator=(const SomeClass&);
а у этого она иная
SomeClass& operator=(SomeClass&)
ну так это проблема довольно распространенная.
2)это почему же нельзя, вот так все правильно
Код: plaintext
1.
2.
auto_ptr<T> a;
a = new T(); 
Причина - конструктор auto_ptr<T>::auto_ptr(T*) - объявлен как explicit
3) Да ктобы спорил что быть счастливым и богатым лучше чем бедным и больным. Одна беда нестандартные они, знаешь как донимает когда у тебя несколько сторонних пакетов, в каждом из которых свой smart pointer? Вот примут C++0x полегчаетю А вот создание дубликата это вообще-то не семантика указателя. Да и что делать с опретором -> он ведь не указатель на константный объект, а вот читать лм вы будете или писать не ясно. Да и подсчет ссылок это уже не что-то невесомое, особенно в многопоточной задачке. (хотя опять же готов пойти на жертвы)
А что касается segmentation violation, это да, это плохо. Но это вопрос исторический. Это гуру напутали, а потом решили что так правильнее, чем ошибки в стандартных алгоритмах
...
Рейтинг: 0 / 0
24 сообщений из 74, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / auto_ptr или new + delete
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]