C ++ STL: включая все библиотеки?

0

Как включить все библиотеки stl в мой код c++, а не включать их отдельно. Например -

#include <queue>
#include <containers> 

Простой способ включить их все. Пожалуйста помоги?

  • 8
    Почему ты бы так поступил?
  • 1
    Если вы делаете это, я рекомендую поместить их в предварительно скомпилированный заголовок.
Показать ещё 5 комментариев
Теги:

5 ответов

4

Вы не можете, но можете просто составить список и поместить их в заголовок с защитой заголовка c.

// C++ Full Standard Header Include
#include <cstdlib>
#include <csignal>
#include <csetjmp>
#include <cstdarg>
#include <typeinfo>
#include <typeindex>
#include <type_traits>
#include <bitset>
#include <functional>
#include <utility>
#include <ctime>
#include <chrono>
#include <cstddef>
#include <initializer_list>
#include <tuple>
#include <new>
#include <memory>
#include <scoped_allocator>
#include <climits>
#include <cfloat>
#include <cstdint>
#include <cinttypes>
#include <limits>
#include <exception>
#include <stdexcept>
#include <cassert>
#include <system_error>
#include <cerrno>
#include <cctype>
#include <cwctype>
#include <cstring>
#include <cwstring>
#include <cwchar>
#include <cuchar>
#include <string>
#include <array>
#include <vector>
#include <deque>
#include <list>
#include <forward_list>
#include <set>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <stack>
#include <queue>
#include <algorithm>
#include <iterator>
#include <cmath>
#include <complex>
#include <valarray>
#include <random>
#include <numeric>
#include <ratio>
#include <cfenv>
#include <iosfwd>
#include <ios>
#include <istream>
#include <ostream>
#include <iostream>
#include <fstream>
#include <sstream>
#include <strstream>
#include <iomanip>
#include <streambuf>
#include <cstdio>
#include <locale>
#include <clocale>
#include <codecvt>
#include <regex>
#include <atomic>
#include <thread>
#include <mutex>
#include <future>
#include <condition_variable>
#include <ciso646>
#include <ccomplex>
#include <ctgmath>
#include <cstdalign>
#include <cstdbool>

Это должен быть полный список :) (С++ 11 тоже должен быть активным). Возможно, вы захотите удалить те, которые устарели (не должно быть много/вы все равно получите предупреждение), а те, которые вы не используете потому что они особенные/старые/новые

  • 0
    +1 за показ того, что это будет неприятно ...
  • 0
    это может быть очень полезно для студентов, которые все еще не должны беспокоиться о вопросах «что я должен включить»
1

libstdc++ документирует заголовочный файл с именем stdc++.h который включает большинство (не всех) стандартных заголовков на основе языкового диалекта (например, ни libstdc++, ни libc++, похоже, не реализуют <cuchar>). На этой странице приведены инструкции по созданию предварительно скомпилированного заголовка.

Насколько я знаю, libc++ не имеет stdc++.h.

В Visual Studio C++ канонический прекомпилированный заголовок - stdafx.h. Вы можете взять содержимое stdc++.h и скопировать/вставить его, если хотите. Вам нужно будет изменить директивы #ifdef которые проверяют языковой диалект. В MSVC __cplusplus видимому, определяется чем-то бесполезным, как 199711. _MSC_VER может быть _MSC_VER при определении статуса функций C++ 11.

Чтобы использовать его в GCC, #include <bits/stdc++.h>.

0
#include <bits/stdc++.h>

эта библиотека включает в себя большинство заголовков STL (особенно контейнеров)

0

В большинстве случаев нет никакого способа и не нужно делать это. Если у вас есть более одного файла c++, вы можете создать заголовочный файл, который включает все, что вам нужно, и включить этот единственный заголовок во все ваши c++ файлы - этот подход также помогает использовать предварительно скомпилированные заголовки.

0

Вы должны включать только те файлы заголовков, которые вам нужны, потому что, когда препроцессор проходит через исходный файл, он заменит все файлы заголовков фактическим содержимым. Поэтому всегда старайтесь минимизировать использование заголовков в вашей программе...

  • 1
    Это не ответ, а комментарий.
  • 2
    Иногда лучший ответ - «не делай этого».
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню