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