Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2012, 14:27   #21
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
возвращаешь ссылку на автоматически выделенную память
Мне пример понравился. Мой компилятор конечно сообщает,что warning C4172: returning address of local variable or temporary. Но нужно ведь было показать принципиальную возможность.
Код:
template<class T, size_t N>
T (&Create(  T (&arr)[N] )   )[N]
{
	return arr; 
}
EUGY вне форума Ответить с цитированием
Старый 01.04.2012, 14:52   #22
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2EUGY
принципиальную возможность чего? возврата невалидной ссылки из функции?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 01.04.2012, 14:56   #23
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Пример того, как функция принимает ссылку на массив и возвращает ссылку на массив, а не указатель. То что в "черном ящике" функции неудачный код с переменной auto, дело десятое.
EUGY вне форума Ответить с цитированием
Старый 01.04.2012, 15:03   #24
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2EUGY
Цитата:
Пример того, как функция принимает ссылку на массив и возвращает ссылку на массив, а не указатель
этот пример можно увидеть в любом нормальном учебнике по с++. ничего хитрого в этом нет.
"поциент" же утверждает, что его вышеприведенный код валиден
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 01.04.2012, 15:11   #25
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2EUGY
этот пример можно увидеть в любом нормальном учебнике по с++. ничего хитрого в этом нет.
"поциент" же утверждает, что его вышеприведенный код валиден
1. Там ещё можно увидеть сообщения аля "это не возможно".
2. Я не утверждал, что код корректный. Я утверждал, что не стоит делать предположений относительно моих знаний о языке, не зная зачем мне этот код понадобился. А так же - о корректности кода, не зная, зачем этот код понадобился.

Но ты как всегда сделал предположение из собственных домыслов.
_Bers вне форума Ответить с цитированием
Старый 01.04.2012, 15:12   #26
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2EUGY

этот пример можно увидеть в любом нормальном учебнике по с++. ничего хитрого в этом нет.
"поциент" же утверждает, что его вышеприведенный код валиден
А Вы об этом. Ну, видимо _Bers его писал в ответ на то, что какой-то автор утверждал, что невозможно вернуть ссылку на массив.
Я вижу, что возвращается локальная tmp, Вы это видите, _Bers это видит.
Кто спорит?

Последний раз редактировалось EUGY; 01.04.2012 в 15:27. Причина: //
EUGY вне форума Ответить с цитированием
Старый 01.04.2012, 15:24   #27
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2EUGY
он привел его как пример, что функция может целиком вернуть массив)

изначальный вопрос
Цитата:
С++ не может весь массив целиком возвратить а только его адрес в памяти.
его ответ
Цитата:
Ты не прав. Все он может.
я это интерпретировал как: ты не прав. С++ может целиком возвратить весь массив.

далее он пишет
Цитата:
Выше я привел тебе пример реального рабочего кода.
т.е он действительно верит, что его код валиден.

пс. если было бы написано нечто типа
Код:
template <class T, size_t N>
T (&Copy(T (&dest)[N], const T (&src)[N] ))[N]
{
	for (size_t i=0;i<N;++i ) { dest[i] = src[i]; }
	return dest; 
}
я бы и слова не сказал. и пример возврата ссылки на массив присутствует, и код ВАЛИДЕН
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 01.04.2012, 15:27   #28
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2_Bers
Цитата:
Я не утверждал, что код корректный
поциент путается в показаниях?
Цитата:
Выше я привел тебе пример реального рабочего кода.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 01.04.2012, 15:41   #29
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от pproger Посмотреть сообщение
2_Bers
поциент путается в показаниях?
Можешь скомпилировать. Этот код работает. Он возвращает ссылку на массив.

У "доктора", кажется трудности с пониманием простых вещей.
_Bers вне форума Ответить с цитированием
Старый 01.04.2012, 15:42   #30
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2_Bers
он возвращает ссылку на УНИЧТОЖЕННЫЙ массив! от это ссылки больше нет НИКАКОГО толка
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объявить массив через функцию. (С++) Alendorff Помощь студентам 11 20.02.2012 18:22
Передача указателей на массив в функцию. nibir Общие вопросы C/C++ 14 06.07.2011 13:24
Как передать Динамический массив в функцию? RainCat Помощь студентам 4 13.04.2011 11:25
Массив используя функцию и процедуру. Profan4ik Помощь студентам 1 30.05.2010 14:06
Передача указателя на массив в функцию loser Общие вопросы C/C++ 2 19.02.2010 19:41