すとんりぱーさんのすすめてた
https://ezoeryou.github.io/cpp-intro
江添亮さんのC++入門を動かしてみた。コンパイル済みヘッダー(precompiled header)
all.h
#include <cstddef>
#include <limits>
#include <climits>
#include <cfloat>
#include <cstdint>
#include <cstdlib>
#include <new>
#include <typeinfo>
#include <exception>
#include <initializer_list>
#include <cstdalign>
#include <stdexcept>
#include <cassert>
#include <cerrno>
#include <system_error>
#include <string>
#if __has_include(<string_view>)
# include <string_view>
#endif
#include <array>
#include <deque>
#include <forward_list>
#include <list>
#include <vector>
#include <map>
#include <set>
#include <unordered_map>
#include <unordered_set>
#include <queue>
#include <stack>
#include <iterator>
#include <algorithm>
#include <cfenv>
#include <random>
#include <numeric>
#include <cmath>
#include <iosfwd>
#include <iostream>
#include <ios>
#include <streambuf>
#include <istream>
#include <ostream>
#include <iomanip>
#include <sstream>
#include <fstream>
#if __has_include(<filesystem>)
# include <filesystem>
#endif
#include <cstdio>
#include <cinttypes>
#include <regex>
#include <atomic>
#include <thread>
#include <mutex>
#include <shared_mutex>
#include <condition_variable>
#include <future>
using namespace std::literals ;
main.cpp
#include <iostream>
int main()
{
std::cout << "hello C++ World" ;
}
cd_use_compiled_header.cmd timeでの時間計測は自分の環境ではうまくいかない。
cd %~dp0
dir
g++ -std=c++17 -Wall --pedantic-errors -x c++-header -o all.h.gch all.h
dir
g++ -std=c++17 -Wall --pedantic-errors -include all.h -o program.exe main.cpp
program.exe
cmd /k
結果
C:\samples\ehararyu_cpp_sample\cpp>cd C:\samples\ehararyu_cpp_sample\cpp\
C:\samples\ehararyu_cpp_sample\cpp>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 9699-BA6D です
C:\samples\ehararyu_cpp_sample\cpp のディレクトリ
2024/09/22 05:45 <DIR> .
2024/09/22 04:37 <DIR> ..
2024/09/22 04:51 1,217 all.h
2024/09/22 05:14 195 cd_use_compiled_header.cmd
2024/09/22 04:41 79 main.cpp
2024/09/22 05:14 <DIR> step1
2024/09/22 05:14 <DIR> step2
2024/09/22 05:45 <DIR> step3
3 個のファイル 1,491 バイト
5 個のディレクトリ 3,792,160,215,040 バイトの空き領域
C:\samples\ehararyu_cpp_sample\cpp>g++ -std=c++17 -Wall --pedantic-errors -x c++-header -o all.h.gch all.h
C:\samples\ehararyu_cpp_sample\cpp>dir
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 9699-BA6D です
C:\samples\ehararyu_cpp_sample\cpp のディレクトリ
2024/09/22 05:47 <DIR> .
2024/09/22 04:37 <DIR> ..
2024/09/22 04:51 1,217 all.h
2024/09/22 05:47 45,898,292 all.h.gch
2024/09/22 05:14 195 cd_use_compiled_header.cmd
2024/09/22 04:41 79 main.cpp
2024/09/22 05:14 <DIR> step1
2024/09/22 05:14 <DIR> step2
2024/09/22 05:45 <DIR> step3
4 個のファイル 45,899,783 バイト
5 個のディレクトリ 3,792,114,200,576 バイトの空き領域
C:\samples\ehararyu_cpp_sample\cpp>g++ -std=c++17 -Wall --pedantic-errors -include all.h -o program.exe main.cpp
C:\samples\ehararyu_cpp_sample\cpp>program.exe
hello C++ World
C:\samples\ehararyu_cpp_sample\cpp>cmd /k
C:\samples\ehararyu_cpp_sample\cpp>