1f7b43230SLouis Dionne 2f7b43230SLouis Dionne //===----------------------------------------------------------------------===// 3f7b43230SLouis Dionne // 4f7b43230SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5f7b43230SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 6f7b43230SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7f7b43230SLouis Dionne // 8f7b43230SLouis Dionne //===----------------------------------------------------------------------===// 9f7b43230SLouis Dionne 10*ac8c9f1eSLouis Dionne // UNSUPPORTED: c++03, c++11, c++14 11c352fa74SLouis Dionne // UNSUPPORTED: availability-filesystem-missing 12f7b43230SLouis Dionne 13f7b43230SLouis Dionne // <filesystem> 14f7b43230SLouis Dionne 15f7b43230SLouis Dionne // class path 16f7b43230SLouis Dionne 17f7b43230SLouis Dionne // const value_type* c_str() const noexcept; 18f7b43230SLouis Dionne 19*ac8c9f1eSLouis Dionne #include <filesystem> 20f7b43230SLouis Dionne #include <cassert> 21c352fa74SLouis Dionne #include <string> 22c352fa74SLouis Dionne #include <type_traits> 23f7b43230SLouis Dionne 242f2ed477SMark de Wever #include "assert_macros.h" 25f7b43230SLouis Dionne #include "test_macros.h" 26*ac8c9f1eSLouis Dionne namespace fs = std::filesystem; 27f7b43230SLouis Dionne main(int,char **)28c352fa74SLouis Dionneint main(int, char**) { 29f7b43230SLouis Dionne using namespace fs; 30f7b43230SLouis Dionne const char* const value = "hello world"; 31f7b43230SLouis Dionne const std::string str_value = value; 323784bdf2SMartin Storsjö const fs::path::string_type pathstr_value(str_value.begin(), str_value.end()); 33f7b43230SLouis Dionne { // Check signature 34f7b43230SLouis Dionne path p(value); 35f7b43230SLouis Dionne ASSERT_SAME_TYPE(path::value_type const*, decltype(p.c_str())); 36f7b43230SLouis Dionne ASSERT_NOEXCEPT(p.c_str()); 37f7b43230SLouis Dionne } 38f7b43230SLouis Dionne { 39f7b43230SLouis Dionne path p(value); 403784bdf2SMartin Storsjö assert(p.c_str() == pathstr_value); 41f7b43230SLouis Dionne assert(p.native().c_str() == p.c_str()); 42f7b43230SLouis Dionne } 43f7b43230SLouis Dionne 44f7b43230SLouis Dionne return 0; 45f7b43230SLouis Dionne } 46