Вы получаете много вещей, которые прибывают в C++ 0x. Но кроме той общности, некоторые лучшие специфические особенности являются простым regex библиотека , библиотека кастинга для кастинг от строк до ints (Лексический бросок):
int iResult = 0;
try
{
iResult = lexical_cast("4");
}
catch(bad_lexical_cast &)
{
cout << "Unable to cast string to int";
}
А библиотека даты/времени , среди других...
using namespace boost::gregorian;
date weekstart(2002,Feb,1);
date thursday_next = next_weekday(weekstart, Thursday); // following Thursday
существует также интерфейс Python (Повышение Python), лексический анализатор/синтаксический анализатор DSL (Дух Повышения):
// A grammar in C++ for equations
group = '(' >> expression >> ')';
factor = integer | group;
term = factor >> *(('*' >> factor) | ('/' >> factor));
expression = term >> *(('+' >> term) | ('-' >> term));
и это просто царапает поверхность...
Для целей P / Invoke, подобных вам перечисленных, вы должны использовать IntPtr.Zero
вместо NULL
. Обратите внимание, что это не эквивалентно ключевому слову C # null
.
Вы не можете присвоить null типу значения. Тип-ссылка может быть нулевым, например, не относящимся к экземпляру объекта, но тип-значение всегда имеет значение.
IntPtr.Zero - это просто постоянное значение, представляющее нулевой указатель.