[llvm] Create a CharSetConverter class with both iconv and icu support. (PR #138893)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Wed May 7 16:59:20 PDT 2025
================
@@ -0,0 +1,141 @@
+//===-- CharSet.h - Characters set conversion class ---------------*- C++ -*-=//
+//
+// 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
+//
+//===----------------------------------------------------------------------===//
+///
+/// \file
+/// This file provides a utility class to convert between different character
+/// set encodings.
+///
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_SUPPORT_CHARSET_H
+#define LLVM_SUPPORT_CHARSET_H
+
+#include "llvm/ADT/SmallString.h"
+#include "llvm/ADT/StringRef.h"
+#include "llvm/Config/config.h"
+#include "llvm/Support/ErrorOr.h"
+
+#include <string>
+#include <system_error>
+
+namespace llvm {
+
+template <typename T> class SmallVectorImpl;
+
+namespace details {
+class CharSetConverterImplBase {
----------------
s-barannikov wrote:
Ideally, this should be moved out of public header into cpp file or implementation header.
The class can be forward declared, but you will have to move `~CharSetConverter()` to cpp as well.
https://github.com/llvm/llvm-project/pull/138893
More information about the llvm-commits
mailing list