blob: 9dcb0e0d171298e68603d1563cb30200d76203d1 [file]
// { dg-do run { target c++20 } }
// { dg-require-filesystem-ts "" }
#include <filesystem>
#include <iterator>
#include <testsuite_hooks.h>
// LWG 3719. Directory iterators should be usable with default sentinel
void
test_dir_iter()
{
std::filesystem::directory_iterator d0;
VERIFY( d0 == std::default_sentinel );
std::filesystem::directory_iterator d1(".");
VERIFY( d1 != std::default_sentinel );
static_assert( noexcept(d0 == std::default_sentinel) );
static_assert( noexcept(d0 != std::default_sentinel) );
}
void
test_recursive_dir_iter()
{
std::filesystem::recursive_directory_iterator d0;
VERIFY( d0 == std::default_sentinel );
std::filesystem::recursive_directory_iterator d1(".");
VERIFY( d1 != std::default_sentinel );
static_assert( noexcept(d0 == std::default_sentinel) );
static_assert( noexcept(d0 != std::default_sentinel) );
}
int main()
{
test_dir_iter();
test_recursive_dir_iter();
}