Ответ 1
Не совсем, если я читаю эту std:: асинхронную документацию правильно.
Функция aync/await С# 5 включает сложное преобразование компилятора асинхронного метода, так что вы можете писать код, который выглядит довольно синхронно, но имеет точки асинхронности. Компилятор создает для вас конечный автомат, создает соответствующие обратные вызовы и т.д.
EDIT: Хотя я ранее считал, что std::async
просто заставил вас явно передать обратный вызов, он выглядит более примитивным, чем это. В любом случае, я считаю, что это в основном/полностью функция библиотеки, тогда как асинхронные методы С# 5 - это в основном языковая функция с поддержкой библиотеки.
EDIT: Как уже отмечалось в комментариях, выглядит на своем пути для VС++...