| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Эквивалент out keyword в C++ |
| Автор: marcusmae 27.2.2007, 00:59 |
| Всем привет Сабж. Самое очевидное направление поиска заключается в том, чтобы открыть MSDN на какой-нибудь функции типа TryGetValue(TKey key, out TValue value) и посмотреть, как записывается её C++ -ный прототип. Но что-то я устал и/или ничего не понял : некий OutAttribute, который кажется мало относящимся к out-у. В общем, подскажите, пожалуйста, как на C++ записать прототип функции, эквивалентная запись которой на C# имеет модификатор out при одном из параметров. |
| Автор: Mymik 27.2.2007, 08:38 |
| передавать параметр по ссылке... |
| Автор: Idsa 27.2.2007, 11:49 | ||||||
Это аналог ref. Out же обязывает, чтобы переменной было присвоено значение внутри функции:
Рефлектор же C# функцию
преобразовал в C++ вот так:
|
| Автор: marcusmae 27.2.2007, 12:48 | ||
| Idsa, спасибо, но что-то всё-равно несовсем ясно : Во-первых, новый синтаксис обязывает ставить крышку вместо __gc* :
Во-вторых, при такой записи второй параметр имеет тип System.ValueType*, хотя по идее должен был бы быть виден, как out int. Поясните, плз. |
| Автор: Idsa 27.2.2007, 12:52 |
| Сам я на MC++ не пишу, так что ничего точного сказать не могу. То, что не согласуется синтаксис, - нормально: это ведь всего лишь рефлектор. Думаю, главное в этом примере - атрибут [Out]. Остальное уже можно приладить |
| Автор: Любитель 4.3.2007, 01:09 | ||
| 1. Рефлектор даёт код для MC++, а не C++/CLI (хотя поседний поддерживает ужасный старый синтаксис) 2. А варианты:
не прокатят? (сам не пробовал - сейчас негде). |
| Автор: marcusmae 4.3.2007, 02:42 | ||||||||
Господа, Вы будете смеяться, но ответ следующий :
эквивалентно
а
эквивалентно
Знак процента. И долго же я думал |