f7a148304a
Some of these are not truly "pure" because they access the file system, e.g. exists and file_size, but they do not modify anything and are only useful for the return value. If you really want to use one of those functions just to check whether an error is reported (either via an exception or an error_code& argument) you can still do so, but you need to cast the discarded result to void. Several tests need such a change, because they were indeed only calling the functions to check for expected errors. libstdc++-v3/ChangeLog: * include/bits/fs_ops.h: Add nodiscard to all pure functions. * include/experimental/bits/fs_ops.h: Likewise. * testsuite/27_io/filesystem/operations/all.cc: Do not discard results of absolute and canonical. * testsuite/27_io/filesystem/operations/absolute.cc: Cast discarded result to void. * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. * testsuite/27_io/filesystem/operations/exists.cc: Likewise. * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. * testsuite/27_io/filesystem/operations/read_symlink.cc: Likewise. * testsuite/27_io/filesystem/operations/status.cc: Likewise. * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise. * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Likewise. * testsuite/experimental/filesystem/operations/canonical.cc: Likewise. * testsuite/experimental/filesystem/operations/exists.cc: Likewise. * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise. * testsuite/experimental/filesystem/operations/read_symlink.cc: Likewise. * testsuite/experimental/filesystem/operations/temp_directory_path.cc: Likewise. |
||
---|---|---|
.. | ||
algorithmfwd.h | ||
align.h | ||
alloc_traits.h | ||
allocated_ptr.h | ||
allocator.h | ||
atomic_base.h | ||
atomic_futex.h | ||
atomic_timed_wait.h | ||
atomic_wait.h | ||
basic_ios.h | ||
basic_ios.tcc | ||
basic_string.h | ||
basic_string.tcc | ||
boost_concept_check.h | ||
c++0x_warning.h | ||
c++config | ||
char_traits.h | ||
charconv.h | ||
chrono.h | ||
codecvt.h | ||
concept_check.h | ||
cow_string.h | ||
cpp_type_traits.h | ||
deque.tcc | ||
enable_special_members.h | ||
erase_if.h | ||
forward_list.h | ||
forward_list.tcc | ||
fs_dir.h | ||
fs_fwd.h | ||
fs_ops.h | ||
fs_path.h | ||
fstream.tcc | ||
functexcept.h | ||
functional_hash.h | ||
gslice_array.h | ||
gslice.h | ||
hashtable_policy.h | ||
hashtable.h | ||
indirect_array.h | ||
invoke.h | ||
ios_base.h | ||
istream.tcc | ||
iterator_concepts.h | ||
list.tcc | ||
locale_classes.h | ||
locale_classes.tcc | ||
locale_conv.h | ||
locale_facets_nonio.h | ||
locale_facets_nonio.tcc | ||
locale_facets.h | ||
locale_facets.tcc | ||
localefwd.h | ||
mask_array.h | ||
max_size_type.h | ||
memory_resource.h | ||
memoryfwd.h | ||
mofunc_impl.h | ||
move_only_function.h | ||
move.h | ||
new_allocator.h | ||
node_handle.h | ||
ostream_insert.h | ||
ostream.tcc | ||
parse_numbers.h | ||
postypes.h | ||
predefined_ops.h | ||
ptr_traits.h | ||
quoted_string.h | ||
random.h | ||
random.tcc | ||
range_access.h | ||
ranges_algo.h | ||
ranges_algobase.h | ||
ranges_base.h | ||
ranges_cmp.h | ||
ranges_uninitialized.h | ||
ranges_util.h | ||
refwrap.h | ||
regex_automaton.h | ||
regex_automaton.tcc | ||
regex_compiler.h | ||
regex_compiler.tcc | ||
regex_constants.h | ||
regex_error.h | ||
regex_executor.h | ||
regex_executor.tcc | ||
regex_scanner.h | ||
regex_scanner.tcc | ||
regex.h | ||
regex.tcc | ||
semaphore_base.h | ||
shared_ptr_atomic.h | ||
shared_ptr_base.h | ||
shared_ptr.h | ||
slice_array.h | ||
specfun.h | ||
sstream.tcc | ||
std_abs.h | ||
std_function.h | ||
std_mutex.h | ||
std_thread.h | ||
stl_algo.h | ||
stl_algobase.h | ||
stl_bvector.h | ||
stl_construct.h | ||
stl_deque.h | ||
stl_function.h | ||
stl_heap.h | ||
stl_iterator_base_funcs.h | ||
stl_iterator_base_types.h | ||
stl_iterator.h | ||
stl_list.h | ||
stl_map.h | ||
stl_multimap.h | ||
stl_multiset.h | ||
stl_numeric.h | ||
stl_pair.h | ||
stl_queue.h | ||
stl_raw_storage_iter.h | ||
stl_relops.h | ||
stl_set.h | ||
stl_stack.h | ||
stl_tempbuf.h | ||
stl_tree.h | ||
stl_uninitialized.h | ||
stl_vector.h | ||
stream_iterator.h | ||
streambuf_iterator.h | ||
streambuf.tcc | ||
string_view.tcc | ||
stringfwd.h | ||
this_thread_sleep.h | ||
uniform_int_dist.h | ||
unique_lock.h | ||
unique_ptr.h | ||
unordered_map.h | ||
unordered_set.h | ||
uses_allocator_args.h | ||
uses_allocator.h | ||
utility.h | ||
valarray_after.h | ||
valarray_array.h | ||
valarray_array.tcc | ||
valarray_before.h | ||
vector.tcc |