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 931cbe0f2SLouis Dionne // UNSUPPORTED: c++03 10f7b43230SLouis Dionne 11f7b43230SLouis Dionne // <filesystem> 12f7b43230SLouis Dionne 13f7b43230SLouis Dionne // class path 14f7b43230SLouis Dionne 15f7b43230SLouis Dionne // typedef ... value_type; 16f7b43230SLouis Dionne // typedef basic_string<value_type> string_type; 17f7b43230SLouis Dionne // static constexpr value_type preferred_separator = ...; 18f7b43230SLouis Dionne 19cc89063bSNico Weber #include "filesystem_include.h" 20fcc0964eSNikolas Klauser #include <cassert> 21*1d50cf98SNikolas Klauser #include <string> 22*1d50cf98SNikolas Klauser #include <type_traits> 23f7b43230SLouis Dionne 24f7b43230SLouis Dionne #include "test_macros.h" 25f7b43230SLouis Dionne 26f7b43230SLouis Dionne main(int,char **)27f7b43230SLouis Dionneint main(int, char**) { 28f7b43230SLouis Dionne using namespace fs; 293784bdf2SMartin Storsjö #ifdef _WIN32 303784bdf2SMartin Storsjö ASSERT_SAME_TYPE(path::value_type, wchar_t); 313784bdf2SMartin Storsjö #else 32f7b43230SLouis Dionne ASSERT_SAME_TYPE(path::value_type, char); 333784bdf2SMartin Storsjö #endif 34f7b43230SLouis Dionne ASSERT_SAME_TYPE(path::string_type, std::basic_string<path::value_type>); 35f7b43230SLouis Dionne { 36f7b43230SLouis Dionne ASSERT_SAME_TYPE(const path::value_type, decltype(path::preferred_separator)); 373784bdf2SMartin Storsjö #ifdef _WIN32 383784bdf2SMartin Storsjö static_assert(path::preferred_separator == '\\', ""); 393784bdf2SMartin Storsjö #else 40f7b43230SLouis Dionne static_assert(path::preferred_separator == '/', ""); 413784bdf2SMartin Storsjö #endif 42f7b43230SLouis Dionne // Make preferred_separator ODR used by taking its address. 433784bdf2SMartin Storsjö const path::value_type* dummy = &path::preferred_separator; 44f7b43230SLouis Dionne ((void)dummy); 45f7b43230SLouis Dionne } 46f7b43230SLouis Dionne 47f7b43230SLouis Dionne return 0; 48f7b43230SLouis Dionne } 49