[in] и [out] перед аргументами
От: greenloki  
Дата: 01.05.06 13:40
Оценка: 6 (1)
vc7.1

void foo1([out] char* test)
{
}

void foo2([in] char* test)
{
}

void foo3([in][out] char* test)
{
}

[in] и [out] — что за С++ расширения? где в msdn это задокументированно? можно и нужно ли юзать обычному кодеру?
Re: [in] и [out] перед аргументами
От: Rpt  
Дата: 01.05.06 13:47
Оценка:
Здравствуйте, greenloki, Вы писали:


G>[in] и [out] — что за С++ расширения? где в msdn это задокументированно? можно и нужно ли юзать обычному кодеру?

ну ....
по русски — это типа комменты. Означает [in] — значение должно быть передано в функцию тобой, [out]- дай пустую строку или кусок памяти и функция, когда отработает, тебе его заполнит данными.
Re[2]: [in] и [out] перед аргументами
От: greenloki  
Дата: 01.05.06 13:55
Оценка:
Rpt>по русски — это типа комменты. Означает [in] — значение должно быть передано в функцию тобой, [out]- дай пустую строку или кусок памяти и функция, когда отработает, тебе его заполнит данными
где они описаны? что это вообще стандарт, keyword, magic words etc и каким боком относится к c++? надо ли их использовать? существуют ли ещё такие же magic words?
Re[3]: [in] и [out] перед аргументами
От: greenloki  
Дата: 01.05.06 13:58
Оценка:
я в смятении, если это нигде не описано, то в скобках может быть всё что угодно вплоть до [format c:]
Re: [in] и [out] перед аргументами
От: Chipsеt Россия http://merlinko.com
Дата: 01.05.06 14:15
Оценка:
Здравствуйте, greenloki, Вы писали:

G>vc7.1


G>[in] и [out] — что за С++ расширения? где в msdn это задокументированно? можно и нужно ли юзать обычному кодеру?


Это из C++/CLI.
http://fool.exler.ru/sm/val.gif"Всё что не убивает нас, делает нас сильнее..."
Re: [in] и [out] перед аргументами
От: Vain Россия google.ru
Дата: 01.05.06 14:39
Оценка:
Здравствуйте, greenloki, Вы писали:

G>void foo1([out] char* test)

G>{
G>}
idl+midl
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: [in] и [out] перед аргументами
От: saddva  
Дата: 01.05.06 14:42
Оценка:
Здравствуйте, Chipsеt, Вы писали:

[...]

C>Это из C++/CLI.


Я правильно понимаю, что это возможность из Managed C++? А к языку C++ это не имеет никакого отношения? И было бы просто супер, если бы компилятор ругался на такие аттрибуты аргументов функций?
Re[2]: [in] и [out] перед аргументами
От: saddva  
Дата: 01.05.06 14:49
Оценка:
Здравствуйте, Vain, Вы писали:

V>Здравствуйте, greenloki, Вы писали:


G>>void foo1([out] char* test)

G>>{
G>>}
V>idl+midl

Т.е. все аттрибуты аргументов из MIDL можно использовать для аргументов обычных C++ функций?
Re[3]: [in] и [out] перед аргументами
От: Chipsеt Россия http://merlinko.com
Дата: 01.05.06 14:55
Оценка:
Здравствуйте, saddva, Вы писали:

S>Здравствуйте, Chipsеt, Вы писали:


S>[...]


C>>Это из C++/CLI.


S>Я правильно понимаю, что это возможность из Managed C++? А к языку C++ это не имеет никакого отношения? И было бы просто супер, если бы компилятор ругался на такие аттрибуты аргументов функций?


Не совсем Managed C++ (другой язык немного), но это тоже managed Т.е. тебе нужен компилятор C++->IL и если какой-нибудь
GNU GCC ругается, значит в нём что-то не то
... << RSDN@Home 1.2.0 alpha rev. 648>>
http://fool.exler.ru/sm/val.gif"Всё что не убивает нас, делает нас сильнее..."
Re[3]: [in] и [out] перед аргументами
От: Vain Россия google.ru
Дата: 01.05.06 14:59
Оценка:
Здравствуйте, saddva, Вы писали:

V>>idl+midl

S>Т.е. все аттрибуты аргументов из MIDL можно использовать для аргументов обычных C++ функций?
если речь идёт о CLI/C++
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[4]: [in] и [out] перед аргументами
От: Vain Россия google.ru
Дата: 01.05.06 15:01
Оценка:
Здравствуйте, Vain, Вы писали:

V>>>idl+midl

S>>Т.е. все аттрибуты аргументов из MIDL можно использовать для аргументов обычных C++ функций?
V>если речь идёт о CLI/C++
не все
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: [in] и [out] перед аргументами
От: greenloki  
Дата: 02.05.06 09:46
Оценка:
[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
Re[2]: [in] и [out] перед аргументами
От: ekamaloff Великобритания  
Дата: 02.05.06 10:42
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Почему все так уверены, что это фича 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


По-моему атрибутивный от не атрибутивного отличается только тем, как генерит новые классы визард. Так что с чего бы ей не работать ...
Re: [in] и [out] перед аргументами
От: greenloki  
Дата: 04.05.06 00:58
Оценка:
ну и что теперь просто терпеть эту фичу? или можно как-то заюзать? например как мне с пользой заюзать in out атрибуты в обычных native c++ функциях? (допустим переносимость мне не нужна)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.