[libc++] Implement format_error.

This is the first step at implementing <format>. It adds the <format> header
and implements the `format_error`. class.

Implemnts parts of:
-P0645 Text Formatting

Reviewed By: ldionne, #libc, miscco, curdeius

Differential Revision: https://reviews.llvm.org/D92214

GitOrigin-RevId: 081c1db02dd2b48cf736d44862f7d7e8c2869577
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index c482068..5beb81e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -12,6 +12,7 @@
   condition_variable.cpp
   condition_variable_destructor.cpp
   exception.cpp
+  format.cpp
   functional.cpp
   future.cpp
   hash.cpp
diff --git a/src/format.cpp b/src/format.cpp
new file mode 100644
index 0000000..8ae9554
--- /dev/null
+++ b/src/format.cpp
@@ -0,0 +1,15 @@
+//===------------------------- format.cpp ---------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "format"
+
+_LIBCPP_BEGIN_NAMESPACE_STD
+
+format_error::~format_error() noexcept = default;
+
+_LIBCPP_END_NAMESPACE_STD