There are a variety of techniques for implementing lazy evaluation when using C++. What's stopping you from using these approaches, or using an existing library like Boost Phoenix?
It does have `std::async`, which is in the general direction of being close.