C++/CLI и is
От: hooky-mars  
Дата: 09.06.10 06:13
Оценка:
Всем привет!

Есть ли в C++/CLI что то на подобие оператора is в C#?
Re: C++/CLI и is
От: dabeat_bf Украина http://alexmogurenko.com
Дата: 09.06.10 06:34
Оценка:
Здравствуйте, hooky-mars, Вы писали:

HM>Есть ли в C++/CLI что то на подобие оператора is в C#?


dynamic_cast?
Re[2]: C++/CLI и is
От: hooky-mars  
Дата: 09.06.10 06:37
Оценка: :))
_>dynamic_cast?
Не вот нашол http://msdn.microsoft.com/library/85af44e9
Re[3]: C++/CLI и is
От: dabeat_bf Украина http://alexmogurenko.com
Дата: 09.06.10 06:41
Оценка:
Здравствуйте, hooky-mars, Вы писали:

_>>dynamic_cast?

HM>Не вот нашол http://msdn.microsoft.com/library/85af44e9

как не, если там сделано через dynamic_cast ?
Re: C++/CLI и is
От: dmitry_npi Россия  
Дата: 09.06.10 06:48
Оценка:
Здравствуйте, hooky-mars, Вы писали:

HM>Всем привет!


HM>Есть ли в C++/CLI что-то наподобие оператора is в C#?


dynamic_cast

MSDN:

// dynamic_cast_clr.cpp
// compile with: /clr
using namespace System;

void PrintObjectType( Object^o ) {
   if( dynamic_cast<String^>(o) )
      Console::WriteLine("Object is a String");
   else if( dynamic_cast<int^>(o) )
      Console::WriteLine("Object is an int");
}

int main() {
   Object^o1 = "hello";
   Object^o2 = 10;

   PrintObjectType(o1);
   PrintObjectType(o2);
}
Атмосферная музыка — www.aventuel.net
Re[4]: C++/CLI и is
От: hooky-mars  
Дата: 09.06.10 06:52
Оценка:
_>как не, если там сделано через dynamic_cast ?
Ну да
Re[2]: C++/CLI и is
От: hooky-mars  
Дата: 09.06.10 06:53
Оценка:
А разве if проверяет на nillptr? У меня с этим были проблемы. Приходилось явно указывать.
Re[3]: C++/CLI и is
От: dmitry_npi Россия  
Дата: 09.06.10 09:29
Оценка:
Здравствуйте, hooky-mars, Вы писали:

HM>А разве if проверяет на nillptr? У меня с этим были проблемы. Приходилось явно указывать.


Пример у меня компилится (msdn все-таки).

Кроме того, имеет место следующее (/clr):

#include <stdlib.h>
...
    nullptr == (void*)0;  // ок
    nullptr == 0;      // ошибка
        nullptr == NULL;   // ошибка



nullptr can be used anywhere a handle or a native pointer can be used.

кроме

nullptr is not a type and is not supported for use with:
sizeof
typeid
typeobj
throw nullptr (although throw (Object ^)nullptr; will work)

Атмосферная музыка — www.aventuel.net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.