Умные указатели для Windows Mobile 6 SDK - PullRequest
2 голосов
/ 21 декабря 2008

Я не могу получить std :: tr1 :: shared_ptr для моего проекта WinMobile, поскольку STL для WinCE поддерживается другой командой в Microsoft :( aarrgh ...

Кто-нибудь работал с другим поточно-ориентированным умным указателем подсчета ссылок? Я на самом деле использую яспер, что кажется хорошим.

Большое спасибо.

Ответы [ 5 ]

4 голосов
/ 21 декабря 2008

Я бы также порекомендовал boost :: shared_ptr. Вы можете сделать то же, что я сделал для библиотеки, и использовать #define для переключения между std :: tr1 :: shared_ptr и boost :: shared_ptr, в зависимости от возможностей компилятора. Таким образом, ваш код не нужно изменять [много раз], если / когда команда CE добавит поддержку tr1. Просто мой 2с.

3 голосов
/ 21 декабря 2008

Повышение интеллектуальных указателей . В частности boost :: shared_ptr . Я уверен, что они поддерживаются для вашей платформы. Вот откуда появился tr1 :: shared_ptr.

2 голосов
/ 21 декабря 2008

Вы смотрели на STLPort или Dinkum TR1 библиотеку ? Оба имеют гораздо более полный порт для CE.

0 голосов
/ 21 декабря 2008

Да, я думаю об использовании shared_ptr, но Visual C ++ 2008 не имеет его под std :: tr1 для сборок WinCE, поэтому, возможно, я посмотрю эти альтернативы, спасибо. Я доволен yasper :: ptr, но сомневаюсь, что он безопасен для потоков.

0 голосов
/ 21 декабря 2008

yasper :: ptr похоже на Boost Smart Pointers, хотя shared_ptr, конечно, имеет больше возможностей.

В недостаточной документации yasper :: ptr приведен пример назначения указателя:

 //preferred  
ptr<SomeClass> p1(new SomeClass);

 //less safe  
ptr<SomeClass> p2 = new SomeClass; 

Почему второе было бы «менее безопасным»?

...