powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Автоматическая локальная переменная
10 сообщений из 60, страница 3 из 3
Автоматическая локальная переменная
    #38344646
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРА это 14612735
Код: plaintext
1.
chudo(i) = 1;


вобще не С++

Фейспалм.

ДохтаРВы хотите в рекурсии плодить нити ?
Да не вопрос , плодите на здоровье , эти нити будут иметь свои стеки
что в цикле , что в рекурсии вы получите количество автоматических
стеков равное количеству нитей.

Фейспалм.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Короче, ещё раз всем спасибо, кто отписался в теме, я с этой темы сваливаю.
То, что я хотел и ради чего я открывал тему я уже получил.
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38344654
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
LumixWhite OwlА теперь объясни еще почему (и главное кем!) запрещено пользоваться переменными внутри функции?

Ну вот началось! Это ведь очередная вариация на тему "таких надо увольнять", "такого в реальных проектах не бывает" и т.п.
Чё опять какую-нибудь картинку тупую запостить?
Троллинг детектед...
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38344661
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
LumixВот я нарисовал, чтобы понятнее было.Понятней вот от этого? Фейспалм
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38345284
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
будьте добры расскажите как компилятор это съест ?

Код: plaintext
1.
2.
3.
4.
class Chudo { ... } chudo;
// объявление класса и тут же переменной этого класса. ДОпустимая конструкция.
chudo = 1;
// присваивание переменной.




А это
Код: plaintext
1.
chudo(i) = 1;


вобще не С++

функция или функциональный объект возвращает ссылку на что-то , этому чему-то присваивается 1.
Вообще, С++ не занимается разборами что там и как, в принципе это допустимая конструкция.

chudo(i) = 1 -- выражение, присваивание (1) этому, это -- ( chudo(i) ) . В зависимости от того, что такое chudo(i), это может иметь или не иметь смысл.

Но всё вполне валидно.
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38345288
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тему предлагаю прикрыть. Далее идёт неконструктив.
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38347831
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА это
Код: plaintext
1.
chudo(i) = 1;


вобще не С++

функция или функциональный объект возвращает ссылку на что-то , этому чему-то присваивается 1.
Вообще, С++ не занимается разборами что там и как, в принципе это допустимая конструкция.

chudo(i) = 1 -- выражение, присваивание (1) этому, это -- ( chudo(i) ) . В зависимости от того, что такое chudo(i), это может иметь или не иметь смысл.

Но всё вполне валидно.

Прошу прощения ,у меня остался не высненным следующий вопрос.
Судя по сингнатурами
chudo(i) есть некий
Код: plaintext
1.
sometypeX Chedo::operator(sometypeY i)();


То есть функция-метод.
Я не нашел в стандарте, что функция-метод может быть L-value для данного случая.

Давайте расставим точки над Ё для понимания.

согласен посыпать голову пеплом, если
в стандарте найдется разрешение функции-методу быть L-value при операциях присвоения
из константы.
А еще лучше, если там будет описан механизм создания всяких автоматических переменных, вызовов
конструкторов копирования...... итд тп
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38348037
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаРесть некий
Код: plaintext
1.
sometypeX Chedo::operator(sometypeY i)();


То есть функция-метод.
Я не нашел в стандарте, что функция-метод может быть L-value для данного случая.

Давайте расставим точки над Ё для понимания.
... если
в стандарте найдется разрешение функции-методу быть L-value при операциях присвоения
из константы.
А еще лучше, если там будет описан механизм создания всяких автоматических переменных, вызовов
конструкторов копирования...... итд тп


Давай пойдём от обратного ... Где в стандарте написано, что это НЕЛЬЗЯ делать?
Любая функция (кроме специальных) может возвращать всё, что угодно.
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38348188
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДохтаРесть некий
Код: plaintext
1.
sometypeX Chedo::operator(sometypeY i)();


То есть функция-метод.
Я не нашел в стандарте, что функция-метод может быть L-value для данного случая.

Давайте расставим точки над Ё для понимания.
... если
в стандарте найдется разрешение функции-методу быть L-value при операциях присвоения
из константы.
А еще лучше, если там будет описан механизм создания всяких автоматических переменных, вызовов
конструкторов копирования...... итд тп


Давай пойдём от обратного ... Где в стандарте написано, что это НЕЛЬЗЯ делать?
Любая функция (кроме специальных) может возвращать всё, что угодно.

возвращать то может, но Rvalue ,

а я про Lvalue говорю и спрашиваю ,
давайте это не путать.

Можете в качестве доказательства своей правоты привести компилируемый пример.
Class Chudo {} ; chudo;
chudo(i) = 1;

Что бы компилятор съел такую конструкцию где функция-метод является Lvalue .
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38348226
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДохтаР, ну ты даешь:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
struct foo {
    enum {marker_count = 4};
    int a[marker_count];
    int& operator()(size_t index) {return a[index];};
};

foo f;
f(0) = 1;
...
Рейтинг: 0 / 0
Автоматическая локальная переменная
    #38348310
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ШироковДохтаР, ну ты даешь:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
struct foo {
    enum {marker_count = 4};
    int a[marker_count];
    int& operator()(size_t index) {return a[index];};
};

foo f;
f(0) = 1;



Согласен , убедили , посыпаю голову пеплом .
...
Рейтинг: 0 / 0
10 сообщений из 60, страница 3 из 3
Форумы / C++ [игнор отключен] [закрыт для гостей] / Автоматическая локальная переменная
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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