Parece que los patrones paralelos de Microsoft Biblioteca (PPL) ahora es verdaderamente multiplataforma!
Parece que con el reciente cambio radical en Microsoft, la última versión de su C++ REST SDK (Casablanca) ahora admiten todas las plataformas (Windows/Mac/Linux/Android e iOS).
Lo que es de interés, es que este SDK de REST también incluye una versión de la Biblioteca de patrones paralelos (PPL), sin embargo, está en el espacio de nombres de pplx (observe la x).
Así que en lugar de:
#include <ppltasks.h>
..its ...
#include <pplx/pplxtasks.h>
Como se puede ver en la página de Microsoft MSDN aquí: http://msdn.microsoft.com/en-us/library/jj950081.aspx que están utilizando tareas PPLX y encadenar con .then() sintaxis
ejemplo de código de arriba página:
// 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.
*/
}
también desde este año 2014 CPPCon una charla titulada "Uso de C++ para conectarse a servicios Web" muestra el uso de Casablanca y el PPLX de Eclipse que se ejecuta en Android.
Ese video está aquí: https://www.youtube.com/watch?v=WvaxcicwIss#t=1638
Por último, el RESTO SDK Casablanca se puede encontrar aquí: https://casablanca.codeplex.com/
Cuál es el punto? Ya hay varios soportes para programación paralela en Unix, ¿cuál cree que sería la ventaja de esas bibliotecas de MS que no están disponibles, por ejemplo, en Boost? – DarkDust
TBB de Intel implementa un subconjunto de PPL (sin Agentes Asynchrounous) y está disponible en plataformas POSIX. Por supuesto, utiliza su propio motor paralelo e implementa interfaces PPL encima. –
relacionado con extensiones administradas. PPL no usa extensiones administradas. Hasta donde yo sé, es la base de código estándar C++ 11. El código fuente está disponible ya que está basado en una plantilla – Ghita