Похоже, что Microsoft Parallel Patterns Library (PPL) теперь действительно кроссплатформенная!
Похоже, что с недавним изменением Microsoft последней версии их C ++ REST SDK (Касабланка) они теперь поддерживают все платформы (Windows / Mac / Linux / Android и iOS).
Интересно то, что этот REST SDK также связывает версию библиотеки параллельных шаблонов (PPL), однако она находится в пространстве имен pplx (обратите внимание на x).
Так что вместо:
#include <ppltasks.h>
.. его ...
#include <pplx/pplxtasks.h>
Как вы можете видеть на странице Microsoft MSDN здесь: http://msdn.microsoft.com/en-us/library/jj950081.aspx они используют задачи PPLX и связывают их с помощью синтаксиса .then ().
пример кода со страницы выше:
// Creates an HTTP request and prints the length of the response stream.
pplx::task<void> HTTPStreamingAsync()
{
http_client client(L"http://www.fourthcoffee.com");
// Make the request and asynchronously process the response.
return client.request(methods::GET).then([](http_response response)
{
// Print the status code.
std::wostringstream ss;
ss << L"Server returned returned status code " << response.status_code() << L'.' << std::endl;
std::wcout << ss.str();
// TODO: Perform actions here reading from the response stream.
auto bodyStream = response.body();
// In this example, we print the length of the response to the console.
ss.str(std::wstring());
ss << L"Content length is " << response.headers().content_length() << L" bytes." << std::endl;
std::wcout << ss.str();
});
/* Sample output:
Server returned returned status code 200.
Content length is 63803 bytes.
*/
}
Также в этом году на CPPCon 2014 в выступлении под названием «Использование C ++ для подключения к веб-службам» демонстрируется использование Casablanca и PPLX от eclipse, работающих на Android.
Это видео здесь: https://www.youtube.com/watch?v=WvaxcicwIss#t=1638
Наконец, Casablanca REST SDK можно найти здесь: https://casablanca.codeplex.com/