[Bug c++/84269] More suggestions for missing #include

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Mar 22 15:53:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84269

--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to David Malcolm from comment #8)
> We ought to suggest including <utility> for this, and probably various other
> stdlib templates.

This should cover most of the common ones:

<istream> std::istream
<ostream> std::ostream
<fstream> std::fstream, std::ofstream, std::ifstream
<sstream> std::stringstream, std::istringstream, std::ostringstream
<string> std::string, std::basic_string
<utility> std::pair, std::make_pair
<list> std::list
<deque> std::deque
<vector> std::vector
<map> std::map, std::multimap
<set> std::set, std::multiset
<stack> std::stack
<queue> std::queue, std::priority_queue
<complex> std::complex
<bitset> std::bitset
<iterator> std::iterator_traits, std::distance, std::advance,
           std::reverse_iterator, std::back_inserter, std::front_inserter,
           std::inserter, std::ostream_iterator, std::istream_iterator,
           std::ostreambuf_iterator, std::istreambuf_iterator

Since C++11:
<array> std::array
<forward_list> std::forward_list
<functional> std::hash, std::mem_fn, std::bind, std::function
<memory> std::unique_ptr, std::shared_ptr
<tuple> std::tuple, std::tuple_size, std::tuple_element
<utility> std::forward, std::move, std::declval
<unordered_map> std::unordered_map, std::unordered_multimap
<unordered_set> std::unordered_set, std::unordered_multiset
<mutex> std::mutex, std::timed_mutex, std::recursive_mutex,
        std::recursive_timed_mutex, std::once_flag, std::call_once, 
        std::lock, std::try_lock, std::lock_guard, std::unique_lock
<condition_variable> std::condition_variable, std::condition_variable_any
<thread> std::thread
<atomic> std::atomic, std::atomic_flag
<future> std::future, std::promise, std::packaged_task, std::async
<iterator> std::next, std::prev, std::move_iterator, std::begin, std::end

Since C++14:
<shared_mutex> std::shared_timed_mutex

Since C++17:
<string_view> std::string_view
<any> std::any, std::any_cast, std::make_any
<optional> std::optional, std::make_optional
<variant> std::variant, std::visit
<mutex> std::scoped_lock
<shared_mutex> std::shared_mutex


More information about the Gcc-bugs mailing list