There is no standard-compliant way for the user to construct a future_error prior to C++17. C++11 and C++14 depict an exposition-only public constructor taking a std::error_code, and some implementations provide such a constructor.