mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-04-29 20:23:55 +00:00
* Add unicode support tests * Add unicode parse tests * Implement #14 * Slim down Windows.h * Fix documentation comments * Fix clang-tidy and cpplint * Update README * Fix clang-tidy * Fix to_path not being available on linux * Add roundtrip encoding tests * style: pre-commit.ci fixes * Fix pre-commit.ci * Fix codacy * Exclude parse_unicode which should not contain a newline from pre-commit * Remove a test which breaks CI * Fix build in CI * Replace broken execute_with tests * Fix wide string conversions on all systems * Fix system args on apple * style: pre-commit.ci fixes * Fix some includes * Fix wrong size calculation and comments * Add guards around codecvt * Fix _Pragma not recognized on MSVC * Fix bad macro check * Fix include * Fix narrow and widen when codecvt is missing * Fix some weird bug in old MSVC * Add dependent applications to meson-build * Fix precompilation * Fix lint * Fix coverage * Update README * style: pre-commit.ci fixes * Fix lint * Fix coverage * Fix optional braces offending clang * Remove copied comments from Windows.h * Suppress flawfinder detects * Fix cmake config tests failing because of a missing lib * chore: update copyright on new files to 2023 Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> * style: pre-commit.ci fixes Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Henry Schreiner <henryschreineriii@gmail.com>
55 lines
1.6 KiB
C++
55 lines
1.6 KiB
C++
// Copyright (c) 2017-2023, University of Cincinnati, developed by Henry Schreiner
|
|
// under NSF AWARD 1414736 and by the respective contributors.
|
|
// All rights reserved.
|
|
//
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
#pragma once
|
|
|
|
#include <CLI/Macros.hpp>
|
|
|
|
// [CLI11:public_includes:set]
|
|
#include <string>
|
|
// [CLI11:public_includes:end]
|
|
|
|
// [CLI11:encoding_includes:verbatim]
|
|
#ifdef CLI11_CPP17
|
|
#include <string_view>
|
|
#endif // CLI11_CPP17
|
|
|
|
#if defined CLI11_HAS_FILESYSTEM && CLI11_HAS_FILESYSTEM > 0
|
|
#include <filesystem>
|
|
#include <string_view> // NOLINT(build/include)
|
|
#endif // CLI11_HAS_FILESYSTEM
|
|
// [CLI11:encoding_includes:end]
|
|
|
|
namespace CLI {
|
|
// [CLI11:encoding_hpp:verbatim]
|
|
|
|
/// Convert a wide string to a narrow string.
|
|
CLI11_INLINE std::string narrow(const std::wstring &str);
|
|
CLI11_INLINE std::string narrow(const wchar_t *str);
|
|
CLI11_INLINE std::string narrow(const wchar_t *str, std::size_t size);
|
|
|
|
/// Convert a narrow string to a wide string.
|
|
CLI11_INLINE std::wstring widen(const std::string &str);
|
|
CLI11_INLINE std::wstring widen(const char *str);
|
|
CLI11_INLINE std::wstring widen(const char *str, std::size_t size);
|
|
|
|
#ifdef CLI11_CPP17
|
|
CLI11_INLINE std::string narrow(std::wstring_view str);
|
|
CLI11_INLINE std::wstring widen(std::string_view str);
|
|
#endif // CLI11_CPP17
|
|
|
|
#if defined CLI11_HAS_FILESYSTEM && CLI11_HAS_FILESYSTEM > 0
|
|
/// Convert a char-string to a native path correctly.
|
|
CLI11_INLINE std::filesystem::path to_path(std::string_view str);
|
|
#endif // CLI11_HAS_FILESYSTEM
|
|
|
|
// [CLI11:encoding_hpp:end]
|
|
} // namespace CLI
|
|
|
|
#ifndef CLI11_COMPILE
|
|
#include "impl/Encoding_inl.hpp"
|
|
#endif
|