C++N4910:2022 tag follower 200人超えました。ありがとうございます。
夜までに226人に増えていました。
20220723追記 300人超えました。ありがとうございます。
WD: C++N4910:2022 working draft
tag | year | articles | follow |
---|---|---|---|
C++N4911:https://qiita.com/tags/c++n4910 | 2022 | 515 | 312 |
C++N4741:https://qiita.com/tags/c++n4741 | 2018 | 306 | 8 |
C++N4606:https://qiita.com/tags/c++n4606 | 2016 | 106 | 1 |
C++N3242:https://qiita.com/tags/c++n4741 | 2011 | 26 | 1 |
OpenQiitaというアプリで、最初1週間のタグの投稿数ペスト10を表示するらしいです。
Open Qiita tag best 10
その中に、C++N4910:2022が7位で入っていることが原因かもしれません。
また、最新のC言語規格の原文の読み方がわかるからかもしれません。
いずれにしても、11年前からはじめて、4回目になるコンパイル実験の成果が出てきたのかもしれません。
C++N3242:2011, 1人, C++N4606:2016, 1人, C++N4741:2018, 8人,そして今回3桁。小寺浩司さん、西山大介さん、柏原一雄さん、#OpenQiita の週間タグベストテン7位と、@torifukukaiou さんの記事と、コメントくださった方のおかげ。感謝。
C++N4910:2022 Standard Working Draft on ISO/IEC 14882(0) sample code compile list
C++N4741:2018
C++N4741:2018 Standard Working Draft on ISO/IEC 14882 sample code compile list
C++N4606:2016
C++N4606:2016 Standard Working Draft on ISO/IEC 14882(1) sample code compile list
C++N3242, 2011 sample code compile list on clang++, g++ and vc++
予定
- 1度目のコンパイルを完了する
- 編集の方針を一貫性を持たせる
途中からいろいろ手直しした書式がある。最初から統一する。 - コンパイルできそうな断片のある節を追加する。
1回目でも途中から10箇所くらいは、Example、Noteの断片でないものをコンパイルできるようにした。見直しをかねて、まず、コンパイルできそうな断片を探す。 - 過去のWDのコンパイル結果と比較して、コンパイルエラーが取れそうなところを探す。
過去のURLを追記する。 - 一覧にも過去の対比表を掲載する。
- Template関連の書籍をコンパイルしてみて、コンパイルエラーの撮り方を習熟してから2度目の見直しをする。
一覧
また一覧が十分に作れていません。ひとまず、タグの方をご利用ください。
C++N4910:2022 Standard Working Draft on ISO/IEC 14882(0) sample code compile list
最終的には、過去のWDなどの一覧との対比ができるようにする予定です。
作業手順
どのように記事を作っているかを紹介します。
githubで全自動で行う際の課題を洗い出します。
1. 見出しの右半分をコピペ
一つ前の記事の見出しのC++N4910:2022以降をコピペします。
2. 順次番号を1加算(increment)します。
3. ページ番号cpp の番号を変更します。
同じページ番号で複数の記事のファイルを作る場合は、
a,b,c,d,とアルファベットを更新していきます。
一つの記事で複数のファイルを利用する場合も同様です。
4. 見出しの左半分をWDからコピペ
見出しの途中でほかの部分もコピーしてしまう場合がある。
原則、右端と左端を別々にコピペする。
作業が一つ増える。
5. タグをコピペ
全く同じタグを使っている。
C++N4910 AdventCalendar2022 DoCAP Docker coding
6. 本文をコピペ
ソースコード見出し、ソースコード該当ファイル分、ソースコードファイル名、見出し出力用データ、コンパール結果は、全く同一であり、それらを抜いたファイルコピペする。対策は、一番多い対策のものを再利用。
7. ソースコード見出しをコピペ
8. 見出し出力用データをコピペ
上記2つは全く同じ文字列を使う。コピー1度、ペースト2度
9. ソースコードファイル名
ページ番号.cppを使う。
1文字から3文字入力のため手打ちする。
10. ソースコード該当ファイル分
WDから一度のコピペを原則とする。
ただし、該当部分以外をコピーしようとする場合には、2度以上に分割してコピペすることがある。
全自動化の際の課題は、コピペした際に、改行などが消えてしまうことです。
// コメントの後につながるとコンパイル対象から外れてしまいます。
原本の行数を数え、ペースト先の行数にあうように改行をいれる算法が必要かもしれません。
11. // コメント追記または行削除
ソースコード以外の部分を削除するか、該当行を削除する。
今回から、なるべく// コメントにして後から読んだ時にわかるようにしようとしている。
全自動化する場合は、行わない方がよいでしょう。
処理結果が妥当かどうかを確かめるためにも。
12. 明らかにコンパイルエラーになりそうな箇所の修正
ソースコード中
variable-name
のように、-を使ったり、
see below
のように空白を開けていて、コンパイルエラーが明らかな場合は、-, 空白を_に置き換えて、コンパイルエラーを減らすようにしている。
全自動化する場合には、どういうコンパイルエーラはどう直すという算法を入れるといいかもしれません。
13 ソースコードをブラウザからコピー
ブラウザで編集しているソースコードをdocker:ubuntu:bashのコマンドプロンプトにコピペできるように、ひとまずコピー
14 vi ファイル名
ペースト先のファイルをviコマンドで編集可能にする。
15 ファイルにペースト
16 エスケープ:wq で保存
17 clgc.sh スクリプトを呼び出し(コマンドヒストリで)
clgc.sh スクリプトでビルド。
一部、最新版のコンパイラでないと意味のあるコンパイルができそうにない場合は、clang++, g++行をコピペで生成
18 コマンドヒストリのファイル名を変更しビルド
6割が1文字変更、1割が1文字追加、2割が2文字変更、1割が3文字変更。
19 4種類のうち1種類でもコンパイルエラーがなければ、コンパイル結果をブラウザにコピペ
20 Qiitaに投稿を押す
21 確認ダイアログのボタンを押す。
正常時で約21ステップ。
error時を記述
19a 3分で治せるビルドエラーかもしれないと思ったら手を加える
コメント行にし忘れた
違うExampleが同じ変数名を利用している:1,2,3,4の番号を変数に加える。9以上になった場合によってはa,b,c,dを付け加える
変数名等がエラー:12. 明らかにコンパイルエラーになりそうな箇所の修正と同じ
変数名等がエラー:宣言を入れればコンパイルエラーが取れそうな場合は入れて見る。
例: #define see_below int
)や}や;が不足している。:コピペの際に会合がなくなり、コメントの後ろにいっていたり、コピペの際に、一文字だけコピーできないことがしばしばあり。
20a astyle で整形してみる。
{}()の数の違いなどがすぐに見て取れる。
コンパイルする前に整形することもある。
21a 再ビルド
多い時で5回くらいやりなおしたことがある。
回数 | 百分比 |
---|---|
0 | 30 |
1 | 25 |
2 | 20 |
3 | 15 |
4 | 12 |
5 | 8 |
3回を超えると3分を超えるかも。
参考資料(reference)
@torifukukaiou【毎日自動更新】AdventCalendar2022 タグ LGTMランキング!
@kazuo_reve 私が効果を確認した「小川メソッド」
自己参照(self reference)
DoCAP(ドゥーキャップ)って何ですか?
小川メソッド 覚え(書きかけ)
最近赤丸急上昇中のタグ(Qiita)
C++N4910:2022 tag follower 200人超えました。ありがとうございます。
Open Qiita tag best 10
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.