G>[in] и [out] — что за С++ расширения? где в msdn это задокументированно? можно и нужно ли юзать обычному кодеру?
ну ....
по русски — это типа комменты. Означает [in] — значение должно быть передано в функцию тобой, [out]- дай пустую строку или кусок памяти и функция, когда отработает, тебе его заполнит данными.
Rpt>по русски — это типа комменты. Означает [in] — значение должно быть передано в функцию тобой, [out]- дай пустую строку или кусок памяти и функция, когда отработает, тебе его заполнит данными
где они описаны? что это вообще стандарт, keyword, magic words etc и каким боком относится к c++? надо ли их использовать? существуют ли ещё такие же magic words?
Здравствуйте, greenloki, Вы писали:
G>vc7.1
G>[in] и [out] — что за С++ расширения? где в msdn это задокументированно? можно и нужно ли юзать обычному кодеру?
Я правильно понимаю, что это возможность из Managed C++? А к языку C++ это не имеет никакого отношения? И было бы просто супер, если бы компилятор ругался на такие аттрибуты аргументов функций?
Здравствуйте, saddva, Вы писали:
S>Здравствуйте, Chipsеt, Вы писали:
S>[...]
C>>Это из C++/CLI.
S>Я правильно понимаю, что это возможность из Managed C++? А к языку C++ это не имеет никакого отношения? И было бы просто супер, если бы компилятор ругался на такие аттрибуты аргументов функций?
Не совсем Managed C++ (другой язык немного), но это тоже managed Т.е. тебе нужен компилятор C++->IL и если какой-нибудь
GNU GCC ругается, значит в нём что-то не то
Здравствуйте, saddva, Вы писали:
V>>idl+midl S>Т.е. все аттрибуты аргументов из MIDL можно использовать для аргументов обычных C++ функций?
если речь идёт о CLI/C++
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
V>>>idl+midl S>>Т.е. все аттрибуты аргументов из MIDL можно использовать для аргументов обычных C++ функций? V>если речь идёт о CLI/C++
не все
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
[out] это idl атрибут, к компиляции в режиме clr (managed c++, http://www.winterdom.com/cppclifaq/archives/000421.html) это не имеет отношения так как там используется другой атрибут — [Out], который в native c++ не компилируется. idl я так понимаю это отдельный компилятор, отдельные файлы и другой синтаксис, тогда почему в обычном сишном исходнике можно вытворять такие фокусы? что делает компилятор если видит такую конструкцию, просто игнорирует или это имеет какое-то воздействие на процесс? (не верится что игнорирует так как компилятор поддерживает [out] только в определнной позиции, значит это зачем-то надо)
Re: [in] и [out] перед аргументами
От:
Аноним
Дата:
02.05.06 10:38
Оценка:
Почему все так уверены, что это фича managed C++.
IMHO это какой-то шедевр от MS, который позволяет не писать idl файл, а генерить его из C++.
(embedded idl, чтоли?)
Там есть и другие слова, кроме in и out http://msdn2.microsoft.com/en-us/library/f520z3b3(VS.80).aspx
Здравствуйте, Аноним, Вы писали:
А>Почему все так уверены, что это фича managed C++. А>IMHO это какой-то шедевр от MS, который позволяет не писать idl файл, а генерить его из C++. А>(embedded idl, чтоли?) А>Там есть и другие слова, кроме in и out А>http://msdn2.microsoft.com/en-us/library/f520z3b3(VS.80).aspx
И они не правы и ты не прав. Эта фича работает и не в аттрибутивном проекте. Причем работает даже при /Za. Причем нет даже никаких варнингов при /W4
It is always bad to give advices, but you will be never forgiven for a good one.
Oscar Wilde
Re[3]: [in] и [out] перед аргументами
От:
Аноним
Дата:
02.05.06 11:34
Оценка:
Здравствуйте, ekamaloff, Вы писали:
E>Здравствуйте, Аноним, Вы писали:
А>>Почему все так уверены, что это фича managed C++. А>>IMHO это какой-то шедевр от MS, который позволяет не писать idl файл, а генерить его из C++. А>>(embedded idl, чтоли?) А>>Там есть и другие слова, кроме in и out А>>http://msdn2.microsoft.com/en-us/library/f520z3b3(VS.80).aspx
E>И они не правы и ты не прав. Эта фича работает и не в аттрибутивном проекте. Причем работает даже при /Za. Причем нет даже никаких варнингов при /W4
По-моему атрибутивный от не атрибутивного отличается только тем, как генерит новые классы визард. Так что с чего бы ей не работать ...
ну и что теперь просто терпеть эту фичу? или можно как-то заюзать? например как мне с пользой заюзать in out атрибуты в обычных native c++ функциях? (допустим переносимость мне не нужна)