回答編集履歴

3

追記

2024/06/27 08:30

投稿

fana
fana

スコア11894

test CHANGED
@@ -59,3 +59,34 @@
59
59
 
60
60
  #endif
61
61
  ```
62
+
63
+ ---
64
+
65
+ これもう,ライブラリの方はこうしてしまって……
66
+
67
+ ```C++
68
+ //(ライブラリのヘッダ)
69
+ namespace my_library
70
+ {
71
+ struct Settings
72
+ {
73
+ int max_line_width = 80;
74
+ };
75
+
76
+ //なんということでしょう!
77
+ extern Settings settings; //実体は定義しないという荒業!!
78
+ }
79
+ ```
80
+
81
+ `settings` はユーザに定義させる,というのは暴挙だろうか…?
82
+
83
+ ```C++
84
+ //(ユーザのコード)
85
+
86
+ //my_library を使うならば settings をどこかで定義してね!っていう
87
+ namespace my_library
88
+ {
89
+ Settings settings{}; //デフォルト値で良いならこんな.
90
+ };
91
+ ```
92
+

2

追記

2024/06/27 02:49

投稿

fana
fana

スコア11894

test CHANGED
@@ -35,3 +35,27 @@
35
35
 
36
36
  int main(){ ... }
37
37
  ```
38
+
39
+ ---
40
+
41
+ あるいは,ユーザがこんなヘッダでも書くとか…
42
+ (アクロバティック感がマッハすぎて,自分では決してやりたくない気がしないでもないが)
43
+
44
+ ```C++
45
+ #include "my_library.hpp"
46
+
47
+ #ifdef DEBUGGING
48
+
49
+ int UserMain();
50
+
51
+ int main()
52
+ {
53
+ my_library::max_line_width = 100;
54
+ return UserMain();
55
+ }
56
+
57
+ //Wow!!
58
+ #define main UserMain
59
+
60
+ #endif
61
+ ```

1

微修正

2024/06/27 01:56

投稿

fana
fana

スコア11894

test CHANGED
@@ -26,8 +26,9 @@
26
26
  とかなんとか書いておくのだとダメなのだろうか? とか思うのですが,どうなのでしょうか?
27
27
  (不格好だからダメとか?)
28
28
 
29
+ 使う側としてはこんな感じ:
29
30
  ```C++
30
- //※ユーザが設定値を変えたい場合にはマクロ定義を書く.
31
+ //※ユーザが設定値を変えたい場合にはマクロ定義を書く.
31
32
  #define MAX_LINE_WIDTH (100)
32
33
 
33
34
  #include "my_library.h" //↑のライブラリのヘッダ