mirror of
https://github.com/boostorg/config.git
synced 2026-03-07 14:24:10 +01:00
Compare commits
1852 Commits
boost-1.18
...
boost-1.62
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
606cc77268 | ||
|
|
7d7c25bb26 | ||
|
|
64780152fa | ||
|
|
a5f23185bd | ||
|
|
d4a4885ed9 | ||
|
|
a094c078ad | ||
|
|
b457022699 | ||
|
|
c4de2d0013 | ||
|
|
a9e325b2e0 | ||
|
|
dff5971974 | ||
|
|
a17bb6c8da | ||
|
|
830192fc35 | ||
|
|
09beda8c1a | ||
|
|
226bee3010 | ||
|
|
221f4da6d1 | ||
|
|
b24ad05ffe | ||
|
|
befe61c5f0 | ||
|
|
76f6cdc453 | ||
|
|
65fa2a46f2 | ||
|
|
7c7c58417b | ||
|
|
ea80234d5f | ||
|
|
4fc32ad70a | ||
|
|
fb27cce043 | ||
|
|
a7620c98b5 | ||
|
|
b9e69e9fa1 | ||
|
|
295fff9a10 | ||
|
|
01ae016b52 | ||
|
|
4faca9e9e7 | ||
|
|
534ee17f3f | ||
|
|
743dc92612 | ||
|
|
71214fe310 | ||
|
|
f84f27c366 | ||
|
|
733e24c081 | ||
|
|
9ea6b3fb49 | ||
|
|
77d86bcf16 | ||
|
|
1ce7d756ff | ||
|
|
9018b7b58d | ||
|
|
efefba30ee | ||
|
|
84f2fb19d1 | ||
|
|
9dd2b3afff | ||
|
|
2090da494e | ||
|
|
6d46b18e3b | ||
|
|
b1df465870 | ||
|
|
af5351f42b | ||
|
|
8abd28004a | ||
|
|
f384d058f9 | ||
|
|
95b158b454 | ||
|
|
73ee4f5b03 | ||
|
|
e5b21fb9b4 | ||
|
|
a332112317 | ||
|
|
74bcf32eca | ||
|
|
05d55111e4 | ||
|
|
94a3bf4f12 | ||
|
|
19f66e8992 | ||
|
|
478ab51c8a | ||
|
|
ca7967820b | ||
|
|
26c91920e2 | ||
|
|
cdc5750155 | ||
|
|
ad3141cebd | ||
|
|
85288108c0 | ||
|
|
d0dbbc3d56 | ||
|
|
7d67f4171f | ||
|
|
a2616b4f3f | ||
|
|
a17884f425 | ||
|
|
f23f3a4bb7 | ||
|
|
3ff780f2a9 | ||
|
|
c99044f492 | ||
|
|
2656ae42d4 | ||
|
|
e14893a9fc | ||
|
|
cdcb3fc1aa | ||
|
|
2ee108b81f | ||
|
|
458869dd03 | ||
|
|
ca01235304 | ||
|
|
0070534348 | ||
|
|
034817c492 | ||
|
|
d05131f7e2 | ||
|
|
7b9e5f8d6b | ||
|
|
5cc1746cab | ||
|
|
b794a7162b | ||
|
|
15fa6fd8b9 | ||
|
|
a8f96e4b6e | ||
|
|
776bc8ac10 | ||
|
|
854a785483 | ||
|
|
a66898d292 | ||
|
|
d5839ad09b | ||
|
|
dfef189197 | ||
|
|
dd26419a25 | ||
|
|
79950d0293 | ||
|
|
6b767b0e09 | ||
|
|
e472f46438 | ||
|
|
5bf05c9fbb | ||
|
|
160de8b513 | ||
|
|
0bbfcc22f4 | ||
|
|
4c08407c86 | ||
|
|
5dff05e8d9 | ||
|
|
16f491d48d | ||
|
|
26258e676d | ||
|
|
15d56c9cff | ||
|
|
5ccb1b6c5f | ||
|
|
5a9c919ef6 | ||
|
|
ecb017fd33 | ||
|
|
54e8de973f | ||
|
|
2f24d9811f | ||
|
|
da03881bfb | ||
|
|
ce9a0f17c8 | ||
|
|
7e6d65e361 | ||
|
|
584a711c7a | ||
|
|
3ca81f1095 | ||
|
|
b351a9a1ed | ||
|
|
4f80398754 | ||
|
|
32ea03d6fb | ||
|
|
cd72cbe273 | ||
|
|
046b9d95e0 | ||
|
|
ae443e33fa | ||
|
|
3fa00f8adb | ||
|
|
d14f46f77b | ||
|
|
e0e1deca08 | ||
|
|
b283567200 | ||
|
|
fa954b8b61 | ||
|
|
89fd23ad0a | ||
|
|
f125f5829a | ||
|
|
0ca0adc3b3 | ||
|
|
4ec6a18686 | ||
|
|
a0f7b67145 | ||
|
|
ad22b77738 | ||
|
|
fa0e91cf21 | ||
|
|
03673b1d20 | ||
|
|
55ea43b454 | ||
|
|
d7e258faf5 | ||
|
|
a2ad620450 | ||
|
|
88167ee705 | ||
|
|
8787f6b071 | ||
|
|
f1639e00ce | ||
|
|
5169ec9d57 | ||
|
|
8a811db6e0 | ||
|
|
d5694b49e2 | ||
|
|
d44dbf69a4 | ||
|
|
579bc09dab | ||
|
|
871df563bb | ||
|
|
337cf92b49 | ||
|
|
abaaea2f29 | ||
|
|
1c48f8e6f2 | ||
|
|
fada9f5ee2 | ||
|
|
975a488549 | ||
|
|
c573e85173 | ||
|
|
5366f899e9 | ||
|
|
b03afe92be | ||
|
|
d5e99748aa | ||
|
|
5cd585bfa2 | ||
|
|
6f5c1113af | ||
|
|
52518f3946 | ||
|
|
9c653f5e57 | ||
|
|
06aa40a5d1 | ||
|
|
44028a148c | ||
|
|
1b6d6d9aa1 | ||
|
|
6038d5fd7e | ||
|
|
f7091f4784 | ||
|
|
c329a34407 | ||
|
|
122a60c77f | ||
|
|
7118c0d2a7 | ||
|
|
85fea8fe0a | ||
|
|
a04ee99c15 | ||
|
|
b8bfae2e75 | ||
|
|
719392271a | ||
|
|
1e4124d6cd | ||
|
|
70096c5d80 | ||
|
|
22be8fffcf | ||
|
|
5050ae481f | ||
|
|
4df98ad40a | ||
|
|
db66a9f051 | ||
|
|
224d70f02a | ||
|
|
42cc344212 | ||
|
|
dcbb032aa3 | ||
|
|
42446e02d2 | ||
|
|
78e67031e3 | ||
|
|
ec1f5273be | ||
|
|
52882f7327 | ||
|
|
d9026f1d45 | ||
|
|
c8ff40531c | ||
|
|
35360b6c07 | ||
|
|
2a51a64b84 | ||
|
|
eaa5c714c8 | ||
|
|
e725ad9776 | ||
|
|
dd6e9405b8 | ||
|
|
75f4069bad | ||
|
|
f9bfac1297 | ||
|
|
5e78d55d0e | ||
|
|
b811dd40ae | ||
|
|
35faf7816c | ||
|
|
003d33725e | ||
|
|
5838168061 | ||
|
|
441311c950 | ||
|
|
f43ed77973 | ||
|
|
a8868e82e0 | ||
|
|
32237deddc | ||
|
|
b36566fe04 | ||
|
|
de968af32a | ||
|
|
196a4baae0 | ||
|
|
71fa89f5e1 | ||
|
|
d978d31117 | ||
|
|
d3c1db5436 | ||
|
|
04acb85f7a | ||
|
|
16a4fc7f6a | ||
|
|
85dba1d5ee | ||
|
|
8b174c0617 | ||
|
|
b32c1340b7 | ||
|
|
94d0eaf177 | ||
|
|
d73e56cdea | ||
|
|
7a7a7077b6 | ||
|
|
951e2b00dc | ||
|
|
2690cb8b39 | ||
|
|
1066b2a582 | ||
|
|
4dc7c66c4d | ||
|
|
eec8085549 | ||
|
|
053f0e420a | ||
|
|
2662b12166 | ||
|
|
82457fadb7 | ||
|
|
04c139e40f | ||
|
|
e659a7e487 | ||
|
|
6b2d9b249e | ||
|
|
05604f00d0 | ||
|
|
2abc483055 | ||
|
|
6a0c4aeb34 | ||
|
|
0df91c0665 | ||
|
|
85dde189ac | ||
|
|
9a1f46fbbc | ||
|
|
be328aa19b | ||
|
|
ef0fbe981a | ||
|
|
2d297754ad | ||
|
|
a49bdd43c0 | ||
|
|
81acb3f788 | ||
|
|
3138b2b747 | ||
|
|
c2f8e6adf6 | ||
|
|
2c0d0ed559 | ||
|
|
ad3d4cf5af | ||
|
|
6ea485e9f1 | ||
|
|
c71a4c7980 | ||
|
|
f0136c5911 | ||
|
|
54d53f307f | ||
|
|
ab45a2c7e6 | ||
|
|
e0a53a3a84 | ||
|
|
9a872e7a88 | ||
|
|
f94465534b | ||
|
|
884b53b563 | ||
|
|
3087b80a77 | ||
|
|
34e1c7416b | ||
|
|
5fb0343fa8 | ||
|
|
d43db8b388 | ||
|
|
7eb1b741b1 | ||
|
|
51da22f6ff | ||
|
|
4cf1376ec2 | ||
|
|
6c89538f2e | ||
|
|
8e4d98da1e | ||
|
|
28832f792f | ||
|
|
c5d40ff6da | ||
|
|
02dd6bf9b3 | ||
|
|
50487a6d85 | ||
|
|
2638e71dc4 | ||
|
|
f0c99f7b7f | ||
|
|
7948d33e78 | ||
|
|
051fbf2cc7 | ||
|
|
97618dc66a | ||
|
|
1a72dfeffe | ||
|
|
db9540d98d | ||
|
|
6fdfceaefa | ||
|
|
d6ad9e200e | ||
|
|
2bbe588a3f | ||
|
|
cea06346a2 | ||
|
|
dad7bc5b30 | ||
|
|
4c372d8807 | ||
|
|
23cf56a53f | ||
|
|
9eb1e6aefe | ||
|
|
5493717a9f | ||
|
|
a335429d5c | ||
|
|
e008ddb971 | ||
|
|
ce67ff8eb6 | ||
|
|
498b17520a | ||
|
|
98194c6309 | ||
|
|
d98fbdc66b | ||
|
|
acd12c5578 | ||
|
|
2bab1f37ff | ||
|
|
e17e4fe621 | ||
|
|
cb470782cf | ||
|
|
059715dda1 | ||
|
|
373e516ff5 | ||
|
|
89481ebd34 | ||
|
|
2a14f482e6 | ||
|
|
080cd5d4cb | ||
|
|
d6ada0eb0c | ||
|
|
e50fa7d4ee | ||
|
|
e68c78a3c4 | ||
|
|
628cb70df7 | ||
|
|
a8b414ef67 | ||
|
|
5eb02cba79 | ||
|
|
2f3debf876 | ||
|
|
0b75c06eee | ||
|
|
920a41ee54 | ||
|
|
a8616a783b | ||
|
|
efdf53a42c | ||
|
|
f178656381 | ||
|
|
6204b62acd | ||
|
|
66e3988921 | ||
|
|
0e7f67a96d | ||
|
|
5bfc97ec8d | ||
|
|
345c127227 | ||
|
|
24ea68b00e | ||
|
|
e0350ea5a9 | ||
|
|
0c9ae76f94 | ||
|
|
f136c7a620 | ||
|
|
1b1273d98c | ||
|
|
dbd1afb2ef | ||
|
|
67694454c0 | ||
|
|
0722b90137 | ||
|
|
de5d29fa8e | ||
|
|
7a0711230b | ||
|
|
a431ef5b54 | ||
|
|
59eda005d1 | ||
|
|
3c532ab1cd | ||
|
|
5867dcf011 | ||
|
|
c77099ac7b | ||
|
|
8dea5a2fcf | ||
|
|
fabcdfc385 | ||
|
|
f9e8a68af2 | ||
|
|
07dfe3f70d | ||
|
|
d33a702806 | ||
|
|
a98eefc1e1 | ||
|
|
bb2e640ae1 | ||
|
|
4d8c6207ba | ||
|
|
ae7bad9e9a | ||
|
|
7aab77e042 | ||
|
|
58e595c560 | ||
|
|
a2e4d5c776 | ||
|
|
3ec979d6ce | ||
|
|
6ea9267941 | ||
|
|
900d7d65ee | ||
|
|
36712e5063 | ||
|
|
6c81172a0e | ||
|
|
6e0823298a | ||
|
|
c9041c7dd4 | ||
|
|
866cd7fbb8 | ||
|
|
67b7f4c37f | ||
|
|
2e9c31c942 | ||
|
|
c4f36aa425 | ||
|
|
77419b2d62 | ||
|
|
677edcd343 | ||
|
|
7819651167 | ||
|
|
7b7a7ebd34 | ||
|
|
62a8b9f858 | ||
|
|
eca14f6383 | ||
|
|
e5b943aaca | ||
|
|
24c34d47f1 | ||
|
|
4ffe04359e | ||
|
|
8c89e17c4f | ||
|
|
56f83da122 | ||
|
|
a3b5a3129e | ||
|
|
0ca5fbb950 | ||
|
|
07f056e30b | ||
|
|
6bc60a5b88 | ||
|
|
7fded5db01 | ||
|
|
0712c3fb73 | ||
|
|
0afb64c810 | ||
|
|
c5e74ef6b4 | ||
|
|
6eadf18b0c | ||
|
|
48f3621ddc | ||
|
|
1b2df6436c | ||
|
|
b1415e1864 | ||
|
|
d7e348c88c | ||
|
|
ee950b6b3c | ||
|
|
de769d81f0 | ||
|
|
3ac70e7726 | ||
|
|
a35e65284b | ||
|
|
e8936c8049 | ||
|
|
183e2f2db1 | ||
|
|
68272cf96a | ||
|
|
5f3d94e4d2 | ||
|
|
ca17e7fe8a | ||
|
|
4c29ce672b | ||
|
|
e9c3612560 | ||
|
|
32b125612c | ||
|
|
d52482247c | ||
|
|
658e372ef6 | ||
|
|
809f64b63a | ||
|
|
d205efbb1b | ||
|
|
06445cd39c | ||
|
|
7035bef2c7 | ||
|
|
72dff45159 | ||
|
|
917a870b63 | ||
|
|
86b46bb01e | ||
|
|
160fa0ec40 | ||
|
|
ac11ae9890 | ||
|
|
c89ac48295 | ||
|
|
0b75ce0405 | ||
|
|
8a5dfefeb6 | ||
|
|
654762003e | ||
|
|
855d4ae40f | ||
|
|
0b8b87a632 | ||
|
|
05f286dde4 | ||
|
|
80ffbcb8c3 | ||
|
|
c58ee35f24 | ||
|
|
3dd3a9c46c | ||
|
|
aad8233b4b | ||
|
|
6671ba8b24 | ||
|
|
3284d4eb3e | ||
|
|
e853f2714c | ||
|
|
2547ba8d8c | ||
|
|
d9d19688a1 | ||
|
|
9c117007ba | ||
|
|
820909bc48 | ||
|
|
aa82a32942 | ||
|
|
f7a37d1d2e | ||
|
|
d196de8eb0 | ||
|
|
8660f77552 | ||
|
|
0f47923626 | ||
|
|
08392fd952 | ||
|
|
9ea9842ace | ||
|
|
f27ef7207a | ||
|
|
e9ebccdb74 | ||
|
|
902102ee69 | ||
|
|
9647c8ddb4 | ||
|
|
60684bfc2e | ||
|
|
4979026137 | ||
|
|
fbbb46a5f3 | ||
|
|
800d3d5416 | ||
|
|
86ca46f142 | ||
|
|
c75b0e9d8b | ||
|
|
0762a554c6 | ||
|
|
743fa7e129 | ||
|
|
958c9f8a51 | ||
|
|
1c3cec7a15 | ||
|
|
62b1bb07d2 | ||
|
|
b0ed886eaa | ||
|
|
650c926c48 | ||
|
|
50c736c9ab | ||
|
|
c9c7c832c1 | ||
|
|
30f4ab53e5 | ||
|
|
49fc1e99ef | ||
|
|
ceafb39c24 | ||
|
|
ba89303d51 | ||
|
|
9a1d43cbfc | ||
|
|
5668e9060b | ||
|
|
c4e0b79c9d | ||
|
|
1ad0f79233 | ||
|
|
105b70ae25 | ||
|
|
deedcb848f | ||
|
|
1a1d2f17eb | ||
|
|
19d3287bf6 | ||
|
|
67f6b934f1 | ||
|
|
da1b36cedc | ||
|
|
0e563f0db8 | ||
|
|
c26a532032 | ||
|
|
54353a7d89 | ||
|
|
9334a55617 | ||
|
|
7ea00f059e | ||
|
|
0a34d7b07e | ||
|
|
153f0c9fb3 | ||
|
|
806db13db7 | ||
|
|
c81d5731c3 | ||
|
|
d0cbc105e2 | ||
|
|
12fccda6e6 | ||
|
|
143464f5be | ||
|
|
47aa363f9f | ||
|
|
f207dd034b | ||
|
|
19dc5405d6 | ||
|
|
07dc9f9e9e | ||
|
|
330ac02c14 | ||
|
|
ffee60eade | ||
|
|
637cd1e6db | ||
|
|
06441f70b8 | ||
|
|
0bad5603bd | ||
|
|
8b864b2362 | ||
|
|
0f32bdc0e0 | ||
|
|
6f11f6b53f | ||
|
|
5d792c13e7 | ||
|
|
c42fbefc03 | ||
|
|
abe73ce723 | ||
|
|
36502dd372 | ||
|
|
1e272f1fa1 | ||
|
|
9d25f012ab | ||
|
|
f0b6a525e0 | ||
|
|
66790b7714 | ||
|
|
23579c60d2 | ||
|
|
411399ec60 | ||
|
|
75d100a4ac | ||
|
|
1c3d02c469 | ||
|
|
c4960dfdb8 | ||
|
|
f419d4ffd5 | ||
|
|
1bc3e46574 | ||
|
|
d8973bac08 | ||
|
|
5925c5a12e | ||
|
|
8e79155e47 | ||
|
|
721150455a | ||
|
|
bfcd758518 | ||
|
|
9cfe4710d7 | ||
|
|
583ed60886 | ||
|
|
bffa0772d8 | ||
|
|
1f5100001f | ||
|
|
40f3f33d19 | ||
|
|
a61cda699e | ||
|
|
dc806c09b2 | ||
|
|
3ce54f0e8b | ||
|
|
12910d6cb6 | ||
|
|
fb518941cc | ||
|
|
d4c041fbcc | ||
|
|
afa86fb99d | ||
|
|
082f493831 | ||
|
|
28333566ee | ||
|
|
806733e22c | ||
|
|
16c1d684c0 | ||
|
|
02602b9139 | ||
|
|
f6a50c0ed9 | ||
|
|
e1f956a762 | ||
|
|
97b4d85e75 | ||
|
|
d6a0e39484 | ||
|
|
a9f844c192 | ||
|
|
2b85686b48 | ||
|
|
55fa3a8e88 | ||
|
|
50a562867e | ||
|
|
c8e0bbdd8a | ||
|
|
a0272a7c68 | ||
|
|
72f0f5bd7d | ||
|
|
689a8247e0 | ||
|
|
6e9c372d91 | ||
|
|
c87231f411 | ||
|
|
13f7c64272 | ||
|
|
807f342f2d | ||
|
|
513a54edea | ||
|
|
f1d572cf03 | ||
|
|
c75a778214 | ||
|
|
d53238e902 | ||
|
|
31b0edb997 | ||
|
|
bdfa0e0600 | ||
|
|
3fd02775bb | ||
|
|
fdf239f069 | ||
|
|
1e12433f93 | ||
|
|
ec9c529210 | ||
|
|
4d142c758c | ||
|
|
30b8968ff8 | ||
|
|
eca2375d5f | ||
|
|
145a453580 | ||
|
|
38b6fbc1e7 | ||
|
|
ed2aaa3651 | ||
|
|
bc0114f7c8 | ||
|
|
9740187eec | ||
|
|
4f11d6f2af | ||
|
|
1b1589b54d | ||
|
|
49aa704b3e | ||
|
|
ecdb77c48a | ||
|
|
318629fbae | ||
|
|
c4b13231ba | ||
|
|
043059d96b | ||
|
|
c77cda2ea4 | ||
|
|
20b319483f | ||
|
|
44e8ed4c2f | ||
|
|
36db37a70a | ||
|
|
dc5535edbd | ||
|
|
2058930b04 | ||
|
|
38fbec8fc6 | ||
|
|
d9a9dbbaae | ||
|
|
816c3e22ec | ||
|
|
e0d8861745 | ||
|
|
9b4dd29693 | ||
|
|
c84a7b363f | ||
|
|
e8f9424ec5 | ||
|
|
9d2a5f4d44 | ||
|
|
efbd9a2552 | ||
|
|
eb15b40323 | ||
|
|
8a0c28bb29 | ||
|
|
ca0b295449 | ||
|
|
95068b4510 | ||
|
|
5e8f4347fd | ||
|
|
9e23fbc66f | ||
|
|
6074729601 | ||
|
|
33437e724e | ||
|
|
f52f0273a9 | ||
|
|
1d157f3544 | ||
|
|
d0ae31f7f9 | ||
|
|
85751c6911 | ||
|
|
157c39e544 | ||
|
|
d2514efeca | ||
|
|
cb74c3b9e9 | ||
|
|
4dfddca1e5 | ||
|
|
8036af59ab | ||
|
|
0ccfe4244e | ||
|
|
662b7ff800 | ||
|
|
9150db8f0f | ||
|
|
c402b154c9 | ||
|
|
12fcc9cde1 | ||
|
|
900126573f | ||
|
|
66d9f7dc00 | ||
|
|
139bd2213b | ||
|
|
8e51b05e1f | ||
|
|
5f9b522ede | ||
|
|
e1657372eb | ||
|
|
8009780247 | ||
|
|
98bba8b5f2 | ||
|
|
5b96a1a80e | ||
|
|
a5086b75d7 | ||
|
|
b7ff4bb2aa | ||
|
|
6f18ead6db | ||
|
|
4c382635a1 | ||
|
|
5d04c0e793 | ||
|
|
7be7a49cef | ||
|
|
e8ee9a7843 | ||
|
|
06520772ae | ||
|
|
3b7ff73e9d | ||
|
|
8828d82d4d | ||
|
|
7f68d14175 | ||
|
|
7bd78dda03 | ||
|
|
b1b219f0c1 | ||
|
|
2301e858aa | ||
|
|
b899a529a5 | ||
|
|
5ae1de8cec | ||
|
|
2c19eb21d6 | ||
|
|
e7dd982de7 | ||
|
|
17dcf6492b | ||
|
|
306a33a922 | ||
|
|
40cd11baa9 | ||
|
|
1dabccc96a | ||
|
|
ad7edb7b3a | ||
|
|
ffece3e93c | ||
|
|
18be7dcf00 | ||
|
|
2b7da15387 | ||
|
|
0bcba7df38 | ||
|
|
a9a6cecaa3 | ||
|
|
d7e03fe7a0 | ||
|
|
72e2d4c24f | ||
|
|
1c37e1a994 | ||
|
|
a4c133c6ce | ||
|
|
c897810096 | ||
|
|
8dd107358b | ||
|
|
c68266c486 | ||
|
|
07e1c7cda5 | ||
|
|
37b4152dc5 | ||
|
|
c5a77c1521 | ||
|
|
20a331cd0e | ||
|
|
81e3542d70 | ||
|
|
dd3ebc8776 | ||
|
|
4c07c44225 | ||
|
|
371171ef97 | ||
|
|
86102c32ef | ||
|
|
56d410f014 | ||
|
|
730e354c65 | ||
|
|
2dfa0e4dd2 | ||
|
|
7448397653 | ||
|
|
98d2f9fc1d | ||
|
|
7f7fe4095d | ||
|
|
29fd4a0f96 | ||
|
|
f69f4f250a | ||
|
|
89924b0478 | ||
|
|
cb41a836d1 | ||
|
|
8a0e258984 | ||
|
|
101aaca178 | ||
|
|
cea6510410 | ||
|
|
beaef16287 | ||
|
|
9a80704462 | ||
|
|
050da29d47 | ||
|
|
2edb55f8ad | ||
|
|
03877f5805 | ||
|
|
795abaa3e3 | ||
|
|
0fcc6c06df | ||
|
|
df7e235df6 | ||
|
|
31642cc433 | ||
|
|
34092fc1c1 | ||
|
|
01dc0e99a0 | ||
|
|
4f8c319871 | ||
|
|
f6a6f20736 | ||
|
|
dcfc12f91e | ||
|
|
cdfbdb2a72 | ||
|
|
eeb7991cba | ||
|
|
8445752e75 | ||
|
|
0b1c0b33b3 | ||
|
|
66b9affdd8 | ||
|
|
2ea9ef4841 | ||
|
|
ed7120adb8 | ||
|
|
1efc29c864 | ||
|
|
7b3a8ec37e | ||
|
|
69e5377957 | ||
|
|
952b57fa7d | ||
|
|
804e7170e1 | ||
|
|
a7148f1932 | ||
|
|
e391ef7ce0 | ||
|
|
a1865a712d | ||
|
|
b12a7589b9 | ||
|
|
c32a3915db | ||
|
|
90760b4c2f | ||
|
|
580f4e72f7 | ||
|
|
547d713ef7 | ||
|
|
1614645b5c | ||
|
|
a29c3edc9b | ||
|
|
fb93903c02 | ||
|
|
bbb4a34504 | ||
|
|
3ce24d6389 | ||
|
|
bb3e68b516 | ||
|
|
7535b8d150 | ||
|
|
4423219649 | ||
|
|
20653705ab | ||
|
|
195a8e3004 | ||
|
|
a81a14cd75 | ||
|
|
4f7a0d3814 | ||
|
|
9a9ef3a20b | ||
|
|
dba9cf164a | ||
|
|
fe294afd78 | ||
|
|
0fedb0bd92 | ||
|
|
edab200d72 | ||
|
|
1aa27f2bc1 | ||
|
|
1e03292d1e | ||
|
|
4f9f6b89e7 | ||
|
|
1121b83e3a | ||
|
|
7ebb1ca9b5 | ||
|
|
c99164cf39 | ||
|
|
543cbd8760 | ||
|
|
0e321900b2 | ||
|
|
c02ec6995d | ||
|
|
dca79a5e17 | ||
|
|
9edaeb4998 | ||
|
|
1121d53a1d | ||
|
|
290d765e3f | ||
|
|
06e164db69 | ||
|
|
55cdba0324 | ||
|
|
1a1ed6f02a | ||
|
|
c3d5e03a89 | ||
|
|
283b3fca54 | ||
|
|
28b8d54fcd | ||
|
|
71fb00764a | ||
|
|
906168561a | ||
|
|
648508cb89 | ||
|
|
4dc7205bd6 | ||
|
|
ceeb9d5366 | ||
|
|
e65ec6d169 | ||
|
|
345c804440 | ||
|
|
fbb893adf0 | ||
|
|
e5ab506c4c | ||
|
|
fc0159a81b | ||
|
|
9a30ee0146 | ||
|
|
8a4e26e378 | ||
|
|
ff9a447c71 | ||
|
|
3f189bf191 | ||
|
|
e5b586dc02 | ||
|
|
f3cefbd8a3 | ||
|
|
5f838e66a5 | ||
|
|
160db0eaa6 | ||
|
|
4d398922b4 | ||
|
|
49e17b082e | ||
|
|
1f0f1c2dcf | ||
|
|
915cd05f0e | ||
|
|
2b40995d16 | ||
|
|
5425bedbb4 | ||
|
|
40a0eeeef0 | ||
|
|
ab638ef45d | ||
|
|
5b72dbb856 | ||
|
|
956b95a48f | ||
|
|
d4a9554db0 | ||
|
|
56da3bb7ea | ||
|
|
ff36d0b7c5 | ||
|
|
fce2db3875 | ||
|
|
4ce3e43a4e | ||
|
|
f19e192f68 | ||
|
|
3d7932ae61 | ||
|
|
a134372b3e | ||
|
|
bbf9896006 | ||
|
|
481fb45917 | ||
|
|
623579d64c | ||
|
|
62b3bc6d77 | ||
|
|
85b12318f5 | ||
|
|
7634ba7ec2 | ||
|
|
b8b5426bc3 | ||
|
|
1061e15f3e | ||
|
|
1311f5d3bf | ||
|
|
95b42f805d | ||
|
|
dcd49febca | ||
|
|
e2f6dc9127 | ||
|
|
4542714613 | ||
|
|
1995aad2de | ||
|
|
08ebe416a1 | ||
|
|
f41b288087 | ||
|
|
80569d1e82 | ||
|
|
888fd57252 | ||
|
|
9b529bbc11 | ||
|
|
7c0cb1b744 | ||
|
|
f433ffab10 | ||
|
|
b36825755a | ||
|
|
94713abf79 | ||
|
|
84e49b5e52 | ||
|
|
ff22ac28c7 | ||
|
|
5e1d3de510 | ||
|
|
fb86556f48 | ||
|
|
234c863553 | ||
|
|
a947601d79 | ||
|
|
02792885e1 | ||
|
|
21c71acd6c | ||
|
|
c1ae43050e | ||
|
|
25678a5700 | ||
|
|
69917116b8 | ||
|
|
b54ad840b1 | ||
|
|
51a1ad1c2b | ||
|
|
1f380a1a88 | ||
|
|
ae573fa3cc | ||
|
|
f162205691 | ||
|
|
fed1f22c6d | ||
|
|
d17f79ab80 | ||
|
|
5230022c0e | ||
|
|
99e762c031 | ||
|
|
890f65d372 | ||
|
|
4464cf9f47 | ||
|
|
0c1feee19f | ||
|
|
668b3fccae | ||
|
|
e2e2e4a6fb | ||
|
|
18af1c798d | ||
|
|
70f95b9245 | ||
|
|
4dc213e6e2 | ||
|
|
7254f02010 | ||
|
|
b9ead6a415 | ||
|
|
3e7eb180ed | ||
|
|
2e99752a98 | ||
|
|
5bc1a8e9fb | ||
|
|
580762f388 | ||
|
|
b124875c50 | ||
|
|
bb8216ed39 | ||
|
|
d35bde21e8 | ||
|
|
43f24c36f7 | ||
|
|
0ecdbd11d5 | ||
|
|
8cfb7c01d1 | ||
|
|
7318513e8e | ||
|
|
c9829c3a02 | ||
|
|
39807d1b97 | ||
|
|
20a6d47804 | ||
|
|
f781c30712 | ||
|
|
325f2a121c | ||
|
|
027571bf6e | ||
|
|
7254d6c9c8 | ||
|
|
d657b0116e | ||
|
|
396307d8f5 | ||
|
|
65bc9ac1a1 | ||
|
|
6daf564807 | ||
|
|
cbe407e189 | ||
|
|
134eac75ac | ||
|
|
b54dc0fca5 | ||
|
|
2c1d61fbd7 | ||
|
|
3f50fc1231 | ||
|
|
ca7bd18565 | ||
|
|
203833a212 | ||
|
|
19a43a6de4 | ||
|
|
1e287543f2 | ||
|
|
62ed60c780 | ||
|
|
dac1a5bf21 | ||
|
|
9600237dca | ||
|
|
6056bfabcb | ||
|
|
39b41a8708 | ||
|
|
389cd2ba69 | ||
|
|
2dc1512b9b | ||
|
|
69bf6c4ad6 | ||
|
|
b6760d3082 | ||
|
|
d9ea70034c | ||
|
|
f05b7f57d5 | ||
|
|
3d32b20f45 | ||
|
|
44945314ec | ||
|
|
808dc4fec6 | ||
|
|
e1bfdd03e4 | ||
|
|
b013e0cb2c | ||
|
|
80947fe560 | ||
|
|
28b846cf72 | ||
|
|
40979e6651 | ||
|
|
e40b9c07c0 | ||
|
|
d7c99eb56a | ||
|
|
e201687ac4 | ||
|
|
17114cb4a3 | ||
|
|
bc468c0c2a | ||
|
|
714548f437 | ||
|
|
10f2b7c60e | ||
|
|
960f3b5e8e | ||
|
|
a04de07542 | ||
|
|
ae3c247f55 | ||
|
|
2a9759c96b | ||
|
|
ab378931aa | ||
|
|
bb695e41e1 | ||
|
|
6bb6198486 | ||
|
|
62a577dbec | ||
|
|
21ad7ad74d | ||
|
|
8894fa22f3 | ||
|
|
cf37052edd | ||
|
|
d1e645c524 | ||
|
|
d46a6d5ec8 | ||
|
|
b03d5829b5 | ||
|
|
6695277f1a | ||
|
|
e1d9c0281a | ||
|
|
f814c8fef1 | ||
|
|
5de0a5bc43 | ||
|
|
8c5aee782e | ||
|
|
82f0426fa5 | ||
|
|
cc61ff79fe | ||
|
|
83dfbd9ec5 | ||
|
|
57de4bc62a | ||
|
|
8bbfd9629a | ||
|
|
5d7d4d94f5 | ||
|
|
628fbc53bd | ||
|
|
8c1bad1aff | ||
|
|
b130802a6e | ||
|
|
340a8a3e65 | ||
|
|
f43833227a | ||
|
|
90d2e831a3 | ||
|
|
ac97540c23 | ||
|
|
3ae6668b44 | ||
|
|
2e03de9749 | ||
|
|
1271821c44 | ||
|
|
8854d5e66e | ||
|
|
833e50fe8f | ||
|
|
115746bced | ||
|
|
383a8b2094 | ||
|
|
52cb492090 | ||
|
|
c5410e83d0 | ||
|
|
9830ab865b | ||
|
|
e8678c03e4 | ||
|
|
903786bc48 | ||
|
|
4083190c8b | ||
|
|
1945035983 | ||
|
|
be4e73bece | ||
|
|
642f99f28d | ||
|
|
dade549b8b | ||
|
|
4d457cdf17 | ||
|
|
6d726df91c | ||
|
|
f9a83ce4f3 | ||
|
|
9191bfe38b | ||
|
|
a8d816422c | ||
|
|
6e576ea56b | ||
|
|
c87dcc8481 | ||
|
|
00b6864bd2 | ||
|
|
bc97209574 | ||
|
|
d379865f42 | ||
|
|
e12af45eb2 | ||
|
|
b3d88665a5 | ||
|
|
5bd10f3a39 | ||
|
|
010ceb0da2 | ||
|
|
40c8299a25 | ||
|
|
63ec21a0d6 | ||
|
|
8fd1d95cc7 | ||
|
|
167b63bd33 | ||
|
|
d0b83d60af | ||
|
|
ad90956a3a | ||
|
|
0d470a6123 | ||
|
|
cb59854bd7 | ||
|
|
f6afca0da2 | ||
|
|
31395bd98f | ||
|
|
99052817e2 | ||
|
|
e4d4157b5a | ||
|
|
34574b0044 | ||
|
|
53c6fb4a1f | ||
|
|
fd3f4544ce | ||
|
|
0f0eef5efa | ||
|
|
90d1b9fb5c | ||
|
|
ac26a726e7 | ||
|
|
e588cfeb76 | ||
|
|
f4ff5f8806 | ||
|
|
c7e2cb149e | ||
|
|
4cb054bf64 | ||
|
|
5e3ea46864 | ||
|
|
add25bf571 | ||
|
|
e6e97911b1 | ||
|
|
ca56a76dda | ||
|
|
72b387e5c4 | ||
|
|
3a810dea60 | ||
|
|
525c53434b | ||
|
|
b47cfe8c7b | ||
|
|
5194a3bad7 | ||
|
|
c05026a644 | ||
|
|
fbef3e88e5 | ||
|
|
3b7f078746 | ||
|
|
4783cd575f | ||
|
|
5f1c6a0d73 | ||
|
|
9ca5a34369 | ||
|
|
7deb7200bc | ||
|
|
1884e62119 | ||
|
|
c88516aaf4 | ||
|
|
81d37eb28b | ||
|
|
e7ac7ebd7b | ||
|
|
2c40b2fa4d | ||
|
|
59ff24b625 | ||
|
|
8aed5ffeaa | ||
|
|
73bce85012 | ||
|
|
3e36b54b88 | ||
|
|
10d20f476a | ||
|
|
2442c44175 | ||
|
|
06f3a2ebd7 | ||
|
|
b526ab9386 | ||
|
|
e37e2cb408 | ||
|
|
71ac171bed | ||
|
|
1e661e3941 | ||
|
|
7264ef8ac1 | ||
|
|
cc9211e494 | ||
|
|
f598e24025 | ||
|
|
365c54860b | ||
|
|
9b34e89b62 | ||
|
|
2b3583277f | ||
|
|
342f67a562 | ||
|
|
2045854fde | ||
|
|
6c321feebf | ||
|
|
cb26255e3c | ||
|
|
725c43c501 | ||
|
|
89f16cfbc0 | ||
|
|
186abf9110 | ||
|
|
239f2b758b | ||
|
|
1f2864b3ae | ||
|
|
047d11cf66 | ||
|
|
b4eaf1eb50 | ||
|
|
5bad377e04 | ||
|
|
6feb703b7e | ||
|
|
4819b3b321 | ||
|
|
9f1b6471d9 | ||
|
|
37698ba3cf | ||
|
|
2cac8cf454 | ||
|
|
f4ea4c2def | ||
|
|
6fac146f52 | ||
|
|
9f206cde8a | ||
|
|
80b0407338 | ||
|
|
0dcc2aeffb | ||
|
|
b62d7ccb27 | ||
|
|
9c70289360 | ||
|
|
1ce5a784ae | ||
|
|
20818b6411 | ||
|
|
6f2afd458c | ||
|
|
da6e707602 | ||
|
|
24c158f324 | ||
|
|
a593af70bb | ||
|
|
e4c0571465 | ||
|
|
1ac4393feb | ||
|
|
db33faa680 | ||
|
|
37658f5f8a | ||
|
|
5f70565f29 | ||
|
|
f7d34f0317 | ||
|
|
6f1384143e | ||
|
|
d4a4685c73 | ||
|
|
a7b5a1f17e | ||
|
|
0167ee763d | ||
|
|
b78e4903e1 | ||
|
|
08e7e7512f | ||
|
|
6b514abf06 | ||
|
|
d4ff48c646 | ||
|
|
36f2f49773 | ||
|
|
91b9fa5748 | ||
|
|
db614f7ac2 | ||
|
|
81a1bb0395 | ||
|
|
637204e660 | ||
|
|
66b6cae557 | ||
|
|
3c76ba7f5c | ||
|
|
bc8b26e563 | ||
|
|
39c3bcc227 | ||
|
|
2c9e75db4e | ||
|
|
ce659fb919 | ||
|
|
cb5b1ef22f | ||
|
|
bd482d4f9f | ||
|
|
b13e704ba5 | ||
|
|
fb9f31ff36 | ||
|
|
494cd37654 | ||
|
|
6ae066f68c | ||
|
|
d9de80031d | ||
|
|
8cc610fe31 | ||
|
|
0fc3d2f4ad | ||
|
|
3bd4d0b6ae | ||
|
|
97ff1659be | ||
|
|
fdfdbdf8de | ||
|
|
c578de9653 | ||
|
|
a1835d5794 | ||
|
|
010ef1711a | ||
|
|
4dea4b5959 | ||
|
|
b6b6559f4b | ||
|
|
e6501538a2 | ||
|
|
9cf08f8043 | ||
|
|
551c8c1f55 | ||
|
|
d46d34a869 | ||
|
|
ef7a510e86 | ||
|
|
668757a216 | ||
|
|
6ed14ed5e1 | ||
|
|
b2acba7499 | ||
|
|
83f250a5d6 | ||
|
|
bed705da59 | ||
|
|
87bc2fd4ca | ||
|
|
05b7c1402c | ||
|
|
4c11df6feb | ||
|
|
66dfa52613 | ||
|
|
ec02089d75 | ||
|
|
4bec7e0f66 | ||
|
|
0948a9ccc2 | ||
|
|
1b4e28cbae | ||
|
|
73379d34b4 | ||
|
|
f8b1046731 | ||
|
|
b457855f90 | ||
|
|
898841e640 | ||
|
|
f7964243d6 | ||
|
|
d5d8cd4303 | ||
|
|
0f6f5f8d65 | ||
|
|
7d6a6b771e | ||
|
|
ec4827dea7 | ||
|
|
4a7fd6f09f | ||
|
|
c204461f16 | ||
|
|
d7d7441e35 | ||
|
|
cce1a4370b | ||
|
|
405a113698 | ||
|
|
05fc9bf094 | ||
|
|
b1a5420f4d | ||
|
|
79994e01c5 | ||
|
|
9763463b96 | ||
|
|
6fc2d361aa | ||
|
|
23e87f9712 | ||
|
|
06351de064 | ||
|
|
b9714083dd | ||
|
|
64cec5a49b | ||
|
|
8edf64db19 | ||
|
|
0a4f5d41ef | ||
|
|
dcbf16e6a6 | ||
|
|
698936447b | ||
|
|
dab246947a | ||
|
|
3e83b97f92 | ||
|
|
2001e370c0 | ||
|
|
15b2a4515d | ||
|
|
940a2de140 | ||
|
|
c08a372d8f | ||
|
|
54b470c987 | ||
|
|
0e93ed3c3c | ||
|
|
80d7e0f31f | ||
|
|
3e90c3f737 | ||
|
|
b9e514c5be | ||
|
|
2d2242e7fb | ||
|
|
3f7a60a1ca | ||
|
|
13c8a4759c | ||
|
|
0a4fb6ea0e | ||
|
|
36a4261fda | ||
|
|
89fec50253 | ||
|
|
d544a55259 | ||
|
|
a279a52fc4 | ||
|
|
139138f018 | ||
|
|
99a62a621b | ||
|
|
6d00181c44 | ||
|
|
1a841a3e84 | ||
|
|
7b4db900ad | ||
|
|
1241a29828 | ||
|
|
55524c5108 | ||
|
|
2d0879e400 | ||
|
|
1171a85cb8 | ||
|
|
37dfdf81d4 | ||
|
|
fcfa955c65 | ||
|
|
4fc1131f39 | ||
|
|
9adb18bb68 | ||
|
|
5918be7aa3 | ||
|
|
bfbb0a6665 | ||
|
|
8dd274ccf9 | ||
|
|
fcfaa82e3e | ||
|
|
cc16193bea | ||
|
|
c9f3fe3bfc | ||
|
|
ee01b1d973 | ||
|
|
253379fcaf | ||
|
|
7fc5eab0ab | ||
|
|
8b32510896 | ||
|
|
458d542084 | ||
|
|
faa53217cd | ||
|
|
3d33b40f9a | ||
|
|
7fdcdabd3e | ||
|
|
2e5048e150 | ||
|
|
9d44d86416 | ||
|
|
6996886622 | ||
|
|
3a1e8da8de | ||
|
|
a43a9b0b34 | ||
|
|
50f2b9e1be | ||
|
|
eab37805f5 | ||
|
|
9289d8d785 | ||
|
|
b32e93581d | ||
|
|
1f5c0aeb3a | ||
|
|
ba63a3c40e | ||
|
|
2e50551897 | ||
|
|
9b43ef4a14 | ||
|
|
a1b668e61c | ||
|
|
f174a2b657 | ||
|
|
cbba7fdacc | ||
|
|
a807f9d0a4 | ||
|
|
fd10cbfb54 | ||
|
|
721e6acfc3 | ||
|
|
d52c1a9a62 | ||
|
|
143f0fb6ea | ||
|
|
f021974577 | ||
|
|
88d4949843 | ||
|
|
ea654649f1 | ||
|
|
18bfd50438 | ||
|
|
8120f048fc | ||
|
|
e18411ec4e | ||
|
|
58d699efb3 | ||
|
|
fc5024fd78 | ||
|
|
c92043496d | ||
|
|
b854b15f78 | ||
|
|
9796bd47ad | ||
|
|
67fe04926d | ||
|
|
f336d7eb05 | ||
|
|
2b4ec466d0 | ||
|
|
556482d08c | ||
|
|
f79f2f8d3c | ||
|
|
bc98e94bdf | ||
|
|
4a3b80c167 | ||
|
|
21be2ca62d | ||
|
|
d5e6c50d8d | ||
|
|
181c8d364a | ||
|
|
6e9f9132b4 | ||
|
|
4a34d89ca9 | ||
|
|
c42012d639 | ||
|
|
59f6e111b5 | ||
|
|
2f58fb6911 | ||
|
|
e35d48bffb | ||
|
|
a107a3001b | ||
|
|
95a142d785 | ||
|
|
17d0352f55 | ||
|
|
d08665a846 | ||
|
|
15b46e94a3 | ||
|
|
5f6bebab60 | ||
|
|
1613e9907f | ||
|
|
a20aa40428 | ||
|
|
30e64613cd | ||
|
|
f2bf80b474 | ||
|
|
e1ccfc425a | ||
|
|
ca50320138 | ||
|
|
7d092fecaa | ||
|
|
888299e3ed | ||
|
|
65f8b152b7 | ||
|
|
9437e043fc | ||
|
|
3f5b942d8b | ||
|
|
221a4bacb8 | ||
|
|
28cad00cb4 | ||
|
|
963f781337 | ||
|
|
566ef2422a | ||
|
|
7f85ce4c1a | ||
|
|
47e3726144 | ||
|
|
acba71531a | ||
|
|
d766b152fd | ||
|
|
fe75f3436c | ||
|
|
616c1f37b3 | ||
|
|
dcd606e1e1 | ||
|
|
345eae6135 | ||
|
|
d29400ed08 | ||
|
|
a33cd9f728 | ||
|
|
adf14dfcbc | ||
|
|
78c80bdd79 | ||
|
|
1e3c885b4c | ||
|
|
d3f31de1d8 | ||
|
|
2a61a39950 | ||
|
|
69b2a8ee70 | ||
|
|
e826c27961 | ||
|
|
1c0606f745 | ||
|
|
3bad820e69 | ||
|
|
dacd302d49 | ||
|
|
3423ec4c52 | ||
|
|
f6b977b761 | ||
|
|
060cfa9333 | ||
|
|
3ebc5a4e2b | ||
|
|
d216a669c5 | ||
|
|
d59804c306 | ||
|
|
b2aa14a42e | ||
|
|
1a38571c92 | ||
|
|
fe1285bb8f | ||
|
|
64a8b36b23 | ||
|
|
6bf226144f | ||
|
|
5d5767d78a | ||
|
|
b8c5b0b240 | ||
|
|
660103b429 | ||
|
|
157d261ca1 | ||
|
|
bda66dc08c | ||
|
|
85dda2ca36 | ||
|
|
d43935d3e0 | ||
|
|
b34869b10f | ||
|
|
04ca3474a5 | ||
|
|
b3c0b615fc | ||
|
|
687b1ec4b2 | ||
|
|
51e6cb950b | ||
|
|
0dd2b7aed9 | ||
|
|
b849bfaf59 | ||
|
|
2daa039875 | ||
|
|
b9b244945a | ||
|
|
6fe0c2f74b | ||
|
|
139023aa09 | ||
|
|
7bcb01dc06 | ||
|
|
2ab6de5d5c | ||
|
|
f0f854707d | ||
|
|
17e578ef53 | ||
|
|
efe60bb2d1 | ||
|
|
719e2aa70f | ||
|
|
2237e5ae02 | ||
|
|
cf4e798691 | ||
|
|
7203ad09bb | ||
|
|
a0d70af62d | ||
|
|
b3eebec364 | ||
|
|
824cdcf0cf | ||
|
|
3d62b1768f | ||
|
|
73034c7e9c | ||
|
|
c7942674bc | ||
|
|
9678249498 | ||
|
|
8da5636184 | ||
|
|
2e64903b0f | ||
|
|
b0f05deedb | ||
|
|
119f37e931 | ||
|
|
a76758bfe8 | ||
|
|
ecfc74dcb1 | ||
|
|
319660dc0a | ||
|
|
5eceb24682 | ||
|
|
97285e8f89 | ||
|
|
acfe67a2ed | ||
|
|
b1fcec8967 | ||
|
|
f057481147 | ||
|
|
7c2c41e9e4 | ||
|
|
01ba5c108f | ||
|
|
6d27dfbbef | ||
|
|
b721a6debe | ||
|
|
4dfaafc848 | ||
|
|
95f6278e82 | ||
|
|
8a67e3222a | ||
|
|
11ef0cd208 | ||
|
|
2d0dc7405d | ||
|
|
28f50c3295 | ||
|
|
e8602a5b86 | ||
|
|
1bcb2811bf | ||
|
|
0b46553072 | ||
|
|
38d0bdb068 | ||
|
|
9b4d488101 | ||
|
|
cd5db2b09f | ||
|
|
bb140bdddc | ||
|
|
08b94e0ae8 | ||
|
|
8d21d15f80 | ||
|
|
bdbcfed201 | ||
|
|
58a844779e | ||
|
|
f7ab97e862 | ||
|
|
071d79d058 | ||
|
|
12ae2bd907 | ||
|
|
690210dbb5 | ||
|
|
7bdb84544f | ||
|
|
176b94c8d4 | ||
|
|
e41f88e71d | ||
|
|
03abb9c07a | ||
|
|
e3b7e9034b | ||
|
|
ca04d5e1eb | ||
|
|
570538a303 | ||
|
|
95117e938e | ||
|
|
5b4e6a4068 | ||
|
|
c42978702d | ||
|
|
94a7800ff4 | ||
|
|
5dbc5f3826 | ||
|
|
a361db89ec | ||
|
|
8dcb1c2f4e | ||
|
|
d01d0f9ab0 | ||
|
|
89f71e245f | ||
|
|
3c0eed1fed | ||
|
|
039a8e3b92 | ||
|
|
0bdf1a13e2 | ||
|
|
fd367acdcb | ||
|
|
a941a117ce | ||
|
|
6f978a2982 | ||
|
|
8c1f422a49 | ||
|
|
1677adf462 | ||
|
|
818670ad28 | ||
|
|
363b340c2c | ||
|
|
17b33eda15 | ||
|
|
7ac6bf4b96 | ||
|
|
a430c5c28e | ||
|
|
2f95ee89df | ||
|
|
cec4768110 | ||
|
|
579da92456 | ||
|
|
c3857a106c | ||
|
|
982f209ccd | ||
|
|
7ab5f3e52b | ||
|
|
eab6d69c48 | ||
|
|
db7f463805 | ||
|
|
13271be003 | ||
|
|
f4d59657b9 | ||
|
|
a2c5a2a065 | ||
|
|
5959d6bce2 | ||
|
|
1e7c2699db | ||
|
|
6d6f37633d | ||
|
|
990526ae7b | ||
|
|
2e7affb55f | ||
|
|
753534ef37 | ||
|
|
d95b647a46 | ||
|
|
1ea7f28709 | ||
|
|
4dd8845166 | ||
|
|
c0f29f3dca | ||
|
|
4eb152aa0a | ||
|
|
80b14ea8a8 | ||
|
|
e620ac24ab | ||
|
|
22eeeb33e9 | ||
|
|
f64e7067c9 | ||
|
|
71e9fe5101 | ||
|
|
e5262ed219 | ||
|
|
93dd77869e | ||
|
|
d8741215a5 | ||
|
|
bbbb8297ea | ||
|
|
7f5c1d6b8f | ||
|
|
55e6bd7132 | ||
|
|
b06e5afde0 | ||
|
|
82bdc27bb7 | ||
|
|
dbb3fe1b84 | ||
|
|
f79f11aca1 | ||
|
|
f4e683302d | ||
|
|
8c011660ed | ||
|
|
8c7b359fa2 | ||
|
|
23f572d0b6 | ||
|
|
90981b9ee2 | ||
|
|
2208736b0e | ||
|
|
b25deb3366 | ||
|
|
60558d2791 | ||
|
|
473fc44ff6 | ||
|
|
8259764b49 | ||
|
|
0a1facf57a | ||
|
|
c03d073c6c | ||
|
|
e6dcebcff9 | ||
|
|
ba3dc87248 | ||
|
|
9c49e78cfa | ||
|
|
d5136058c0 | ||
|
|
37d1ce27dc | ||
|
|
6b24a269b2 | ||
|
|
70b59c02f8 | ||
|
|
ee438550db | ||
|
|
517bc9850c | ||
|
|
6ed5b28457 | ||
|
|
baa0be852b | ||
|
|
fd10aff9aa | ||
|
|
5e916a44b5 | ||
|
|
dd0b9c84ca | ||
|
|
512fdec421 | ||
|
|
d1f3f6f38e | ||
|
|
269e334a5f | ||
|
|
8994818a55 | ||
|
|
ef4b048477 | ||
|
|
92d31fd7e6 | ||
|
|
2ccdf98ed8 | ||
|
|
8fd25536d0 | ||
|
|
76a1e0208a | ||
|
|
33303778a0 | ||
|
|
cd2fdac9f5 | ||
|
|
3fc4ccd640 | ||
|
|
b406ae1b3e | ||
|
|
f6eb5e8aa9 | ||
|
|
c31a7209ac | ||
|
|
767ec48375 | ||
|
|
7fa91feb00 | ||
|
|
648b777160 | ||
|
|
b22c9ced68 | ||
|
|
878a7543d7 | ||
|
|
6489c17c19 | ||
|
|
4c407e34ad | ||
|
|
20a4dd507c | ||
|
|
eb0676edac | ||
|
|
cac5f11a3f | ||
|
|
d7dcef4f46 | ||
|
|
261a01ccab | ||
|
|
f07d411903 | ||
|
|
44d1e083e8 | ||
|
|
0a24a02b94 | ||
|
|
adbd58188c | ||
|
|
c90afc4022 | ||
|
|
9d6d544940 | ||
|
|
2a0358cb5f | ||
|
|
ded9a55c2d | ||
|
|
39d0339f38 | ||
|
|
8c654b6131 | ||
|
|
ddd1594f79 | ||
|
|
598573bd19 | ||
|
|
b0aa8f3c2c | ||
|
|
e4171501b5 | ||
|
|
609a9b1721 | ||
|
|
10b23200bb | ||
|
|
e457f90dfa | ||
|
|
659d73e807 | ||
|
|
1789378a6e | ||
|
|
c2f2333c2d | ||
|
|
043ada7c08 | ||
|
|
18e4652814 | ||
|
|
7c7da1d09a | ||
|
|
ce94616f6e | ||
|
|
783b6407c3 | ||
|
|
bd3900cb28 | ||
|
|
6fc288a2cd | ||
|
|
21922c5b5b | ||
|
|
5e5eaae566 | ||
|
|
3ada4c5873 | ||
|
|
ff6bee14c8 | ||
|
|
75d1036e2b | ||
|
|
941d72d8df | ||
|
|
6b980a5a2d | ||
|
|
430d235b4e | ||
|
|
3596eec09a | ||
|
|
555d41525d | ||
|
|
eb0e48ba27 | ||
|
|
09ab4bc87b | ||
|
|
0c41779a38 | ||
|
|
dd33b06231 | ||
|
|
a7e89b0c67 | ||
|
|
93c84f7657 | ||
|
|
180d63457b | ||
|
|
b09fd33660 | ||
|
|
2ca6ac7df2 | ||
|
|
ea44ab1401 | ||
|
|
0ec58eab08 | ||
|
|
3c3999d851 | ||
|
|
49ab0b66d5 | ||
|
|
14bbe68053 | ||
|
|
f217166b21 | ||
|
|
48b23b5064 | ||
|
|
f0ab8c6d41 | ||
|
|
49e2972952 | ||
|
|
253bd15cf1 | ||
|
|
f72495d8b5 | ||
|
|
7302ec29fe | ||
|
|
9ec9927674 | ||
|
|
e1504cfb2e | ||
|
|
c980eca229 | ||
|
|
b0310d66ea | ||
|
|
397e88754d | ||
|
|
8c49d00328 | ||
|
|
61cc49fd2f | ||
|
|
78dddbc032 | ||
|
|
f7ca700f8a | ||
|
|
a37bdd82b5 | ||
|
|
1ac93b8c1a | ||
|
|
beeb65b38d | ||
|
|
d3a4cda4c0 | ||
|
|
d3cc222fe9 | ||
|
|
5241fbdd13 | ||
|
|
4000c1eeed | ||
|
|
398a9b79f0 | ||
|
|
cb0286c416 | ||
|
|
b99b9771c1 | ||
|
|
e0d2db8a3d | ||
|
|
d6a89e7d49 | ||
|
|
414d604f79 | ||
|
|
3dfd72e3bc | ||
|
|
9a536e3f28 | ||
|
|
7c8d4f23ce | ||
|
|
93a28fab3b | ||
|
|
51aac5ee14 | ||
|
|
ec0bf8e76a | ||
|
|
f591b2901f | ||
|
|
392bbe5700 | ||
|
|
81097e309e | ||
|
|
0c1888c352 | ||
|
|
053c1fb45f | ||
|
|
56c052de56 | ||
|
|
23308946c7 | ||
|
|
3168ad683a | ||
|
|
3a70564582 | ||
|
|
06034f2281 | ||
|
|
f1d6e86af9 | ||
|
|
5406c65596 | ||
|
|
5c7f8b9290 | ||
|
|
113cded49d | ||
|
|
08cf657ad4 | ||
|
|
224e97fbb6 | ||
|
|
bc1b510b18 | ||
|
|
99b01de780 | ||
|
|
873f5745a6 | ||
|
|
f6c78ce85d | ||
|
|
8f83b72cfb | ||
|
|
2fbcada958 | ||
|
|
b79fe524db | ||
|
|
2f2fe38142 | ||
|
|
a02e3a0b7e | ||
|
|
17dcb7eabb | ||
|
|
388bf56907 | ||
|
|
739a468531 | ||
|
|
03affa0d41 | ||
|
|
a2e706b74a | ||
|
|
d0e59f4b09 | ||
|
|
52a0dc9a14 | ||
|
|
edc44fc45d | ||
|
|
234c93f760 | ||
|
|
d88a4e5f15 | ||
|
|
71bb9dcb7e | ||
|
|
c039069703 | ||
|
|
a10341d270 | ||
|
|
b6045d7e4a | ||
|
|
d8cfcaf517 | ||
|
|
b44b6d5082 | ||
|
|
8dfc8e3813 | ||
|
|
d1c3bf73de | ||
|
|
697f09e480 | ||
|
|
9e02db296c | ||
|
|
6b5a580456 | ||
|
|
33badb1465 | ||
|
|
40652fd38b | ||
|
|
8b19f71d8b | ||
|
|
529cd10632 | ||
|
|
9bbd6ebd4e | ||
|
|
86fdd6b8b7 | ||
|
|
125d0a3960 | ||
|
|
2b3a97d877 | ||
|
|
1c7875b8f3 | ||
|
|
f60564c3fc | ||
|
|
e9a05a8e99 | ||
|
|
77408f35fa | ||
|
|
6c739c164c | ||
|
|
9689b13885 | ||
|
|
32b9a941eb | ||
|
|
98c7b04e09 | ||
|
|
8e4cc7303b | ||
|
|
70bbd4f23e | ||
|
|
6018d270bc | ||
|
|
7e7c15a4cc | ||
|
|
69ad1282a3 | ||
|
|
a62b71e0f7 | ||
|
|
e21b6658c9 | ||
|
|
bd52ac9181 | ||
|
|
57743254f6 | ||
|
|
8d9d0c50da | ||
|
|
10f4ccdeb5 | ||
|
|
2e8d7faec6 | ||
|
|
43130a3d85 | ||
|
|
77c2b1f807 | ||
|
|
bdf2ddfb26 | ||
|
|
4091f8c54f | ||
|
|
a42bc25797 | ||
|
|
95579505ba | ||
|
|
dfdd6c27c0 | ||
|
|
466f871557 | ||
|
|
577d925828 | ||
|
|
d4cb507015 | ||
|
|
82c4ce106f | ||
|
|
c556aa4e2d | ||
|
|
b73d7be5f1 | ||
|
|
ed54a93299 | ||
|
|
0483b05a98 | ||
|
|
b9cd52c6a2 | ||
|
|
78793dd2ba | ||
|
|
810fea3ae9 | ||
|
|
3cc12ab7e0 | ||
|
|
5dcc786a6d | ||
|
|
ae5fdbe5f4 | ||
|
|
1a8c1dda68 | ||
|
|
2a53a7458e | ||
|
|
cf0493ff14 | ||
|
|
6a41c69ad6 | ||
|
|
cdd885bc28 | ||
|
|
63dc3c2a64 | ||
|
|
ebc6c751ac | ||
|
|
5435b76457 | ||
|
|
3b5fa98ad0 | ||
|
|
59dd992f5f | ||
|
|
84c8b8180f | ||
|
|
906226607b | ||
|
|
7b623f0998 | ||
|
|
5390cbc736 | ||
|
|
279fff7821 | ||
|
|
96026e7152 | ||
|
|
0a31cf05f6 | ||
|
|
cdb0120c91 | ||
|
|
817241d9c9 | ||
|
|
ec39a3ca36 | ||
|
|
4f21fcf5da | ||
|
|
b520cf5d9f | ||
|
|
0bbfde6d71 | ||
|
|
2131184c6e | ||
|
|
0d7929b698 | ||
|
|
e440678d4e | ||
|
|
673f4590cd | ||
|
|
c02d987546 | ||
|
|
ac6e44953b | ||
|
|
91548127fd | ||
|
|
fe476f7923 | ||
|
|
824fccf457 | ||
|
|
57683a3a42 | ||
|
|
31daafada8 | ||
|
|
26b772c3cc | ||
|
|
188e522fc9 | ||
|
|
c3024d2a6c | ||
|
|
ecd63c5809 | ||
|
|
6221145c0a | ||
|
|
951e46f0f0 | ||
|
|
d449ccb591 | ||
|
|
26783c6679 | ||
|
|
4a52042c75 | ||
|
|
10b5a8cc1c | ||
|
|
003fceb582 | ||
|
|
8126210523 | ||
|
|
382bb3cc08 | ||
|
|
c2ed94bee0 | ||
|
|
c7ba2a0704 | ||
|
|
8e577f1e8b | ||
|
|
07d86e9ca1 | ||
|
|
2b77c9bfb5 | ||
|
|
3f58e08292 | ||
|
|
e899c77505 | ||
|
|
3c9f7b61fe | ||
|
|
4ca0738b27 | ||
|
|
ebc4ba8796 | ||
|
|
2069d5ad13 | ||
|
|
4f01724912 | ||
|
|
bb18d81860 | ||
|
|
780d8dcb95 | ||
|
|
7b544cc9c3 | ||
|
|
b70903dca0 | ||
|
|
5e28fcc6ab | ||
|
|
f49ba073ca | ||
|
|
a4073dbdc2 | ||
|
|
5698a3da9c | ||
|
|
bb8bb5fb72 | ||
|
|
8a851846ce | ||
|
|
2570b3ba7f | ||
|
|
d8e8bfc667 | ||
|
|
41747deb59 | ||
|
|
67bc121441 | ||
|
|
f85f7eead2 | ||
|
|
30fb4ad5fa | ||
|
|
d77429f047 | ||
|
|
7cd7697591 | ||
|
|
b29d1ef416 | ||
|
|
e605c42889 | ||
|
|
e70d87fe34 | ||
|
|
a6d8ec6759 | ||
|
|
35352afc8a | ||
|
|
08bc1653e0 | ||
|
|
c92e19f098 | ||
|
|
95e02f2f5e | ||
|
|
9ee77299d1 | ||
|
|
8705dbd370 | ||
|
|
279accb168 | ||
|
|
19e206e8f6 | ||
|
|
e62e5742e0 | ||
|
|
63674bd048 | ||
|
|
7c05d06353 | ||
|
|
d5be6be4d6 | ||
|
|
bd7652dcef | ||
|
|
703da5eb9b | ||
|
|
4b93dfc2e5 | ||
|
|
89bddb477b | ||
|
|
25ae369ef7 | ||
|
|
b39d9ae568 | ||
|
|
419956836b | ||
|
|
6bf5f7c4f5 | ||
|
|
9a1b970ed3 | ||
|
|
2dc2b800f9 | ||
|
|
c55a7a2479 | ||
|
|
1e97d99608 | ||
|
|
9c5675d040 | ||
|
|
3ae703d80a | ||
|
|
88e49f6808 | ||
|
|
7b7eeadafa | ||
|
|
502e82e998 | ||
|
|
4515a28307 | ||
|
|
0d43e1f720 | ||
|
|
fed782c163 | ||
|
|
45cb855a1c | ||
|
|
ade04d122e | ||
|
|
89fc5a60fb | ||
|
|
72ee9a15c3 | ||
|
|
d3c927856c | ||
|
|
77a8e617bd | ||
|
|
94afb4b5bb | ||
|
|
1cd8b63448 | ||
|
|
57bfa25349 | ||
|
|
b9e386f2e3 | ||
|
|
0d2606e15e | ||
|
|
483907c887 | ||
|
|
eb339e9f83 | ||
|
|
198554a412 | ||
|
|
45218dadbd | ||
|
|
ebb32ce10b | ||
|
|
edec45f956 | ||
|
|
fc2daf1bf8 | ||
|
|
732dd723dd | ||
|
|
7ce333aa88 | ||
|
|
3b890c53ab | ||
|
|
38009aaf3b | ||
|
|
702a1e7bc4 | ||
|
|
d81ea4494a | ||
|
|
251ef5af7e | ||
|
|
fa024ab4da | ||
|
|
877848f088 | ||
|
|
029adcf3f2 | ||
|
|
8c880467e1 | ||
|
|
1ba1b836c7 | ||
|
|
34c0eb63bf | ||
|
|
4ac695b81f | ||
|
|
313d8ce2fc | ||
|
|
64c32bf98f | ||
|
|
24ad6f217b | ||
|
|
e37ec5a95e | ||
|
|
e3e23aa159 | ||
|
|
79f2762aa2 | ||
|
|
00c899540f | ||
|
|
cc064675a6 | ||
|
|
417ec50c39 | ||
|
|
caef31de2a | ||
|
|
c1222123b3 | ||
|
|
99f61828d5 | ||
|
|
1e3a4a1e54 | ||
|
|
24a6f03ce7 | ||
|
|
61125a8339 | ||
|
|
d471920ae8 | ||
|
|
ea50a67139 | ||
|
|
3c211cf52a | ||
|
|
fb63ddc2e0 | ||
|
|
b96be9d81c | ||
|
|
cf8041403b | ||
|
|
e6858c8534 | ||
|
|
8ac22ab75d | ||
|
|
3e35f9e861 | ||
|
|
aeee4bea2e | ||
|
|
b700c25f06 | ||
|
|
20439e1aef | ||
|
|
3987d988e0 | ||
|
|
11291104a5 | ||
|
|
bd702153cb | ||
|
|
74a8ab80e5 | ||
|
|
3fe7088cda | ||
|
|
7e2fb0aa47 | ||
|
|
b16b2e09e8 | ||
|
|
7ac6ca8360 | ||
|
|
f098db79ff | ||
|
|
1f933d75a5 | ||
|
|
326ca342c6 | ||
|
|
66a206af29 | ||
|
|
f891fd11b5 | ||
|
|
375235cc35 | ||
|
|
952b926f1e | ||
|
|
1ad42da3a3 | ||
|
|
d880c37ab1 | ||
|
|
0a9bcfa89d | ||
|
|
0fbd83f68a | ||
|
|
b383e88c74 | ||
|
|
3bccc557e2 | ||
|
|
76d01f8824 | ||
|
|
1a2cff6d14 | ||
|
|
5b8af31b0a | ||
|
|
0c06951a11 | ||
|
|
fa107d72bc | ||
|
|
b6858fcc5d | ||
|
|
b2698073d8 | ||
|
|
3410301a96 | ||
|
|
e7bc4c14e4 | ||
|
|
7cb5dd3638 | ||
|
|
3e9b0c11d8 | ||
|
|
47ee67868c | ||
|
|
3a1146ef37 | ||
|
|
6ce87101d3 | ||
|
|
0f89a54d5e | ||
|
|
891b2db577 | ||
|
|
c30c6e772a | ||
|
|
21d4ae5c2c | ||
|
|
9b7b4524e3 | ||
|
|
6b3dd0d1cb | ||
|
|
02a081b3e9 | ||
|
|
f719f4b515 | ||
|
|
238be9af6e | ||
|
|
3f280cb058 | ||
|
|
5b7bbe4533 | ||
|
|
5d11cac82c | ||
|
|
d46dcfbcbb | ||
|
|
53c2862a77 | ||
|
|
aea3b88265 | ||
|
|
e89011502e | ||
|
|
f0e359663f | ||
|
|
e1e5feaa34 | ||
|
|
d525802257 |
217
checks/Jamfile.v2
Normal file
217
checks/Jamfile.v2
Normal file
@@ -0,0 +1,217 @@
|
||||
#
|
||||
# *** DO NOT EDIT THIS FILE BY HAND ***
|
||||
# This file was automatically generated on Fri Jul 1 18:47:25 2016
|
||||
# by libs/config/tools/generate.cpp
|
||||
# Copyright John Maddock.
|
||||
# Use, modification and distribution are subject to the
|
||||
# Boost Software License, Version 1.0. (See accompanying file
|
||||
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
import modules ;
|
||||
import path ;
|
||||
|
||||
|
||||
rule run-simple ( requirements * : target-name )
|
||||
{
|
||||
obj $(target-name)_obj : test_case.cpp : $(requirements) ;
|
||||
explicit $(target-name)_obj ;
|
||||
unit-test $(target-name) : $(target-name)_obj : $(requirements) ;
|
||||
explicit $(target-name) ;
|
||||
}
|
||||
|
||||
run-simple <define>TEST_BOOST_HAS_TWO_ARG_USE_FACET : two_arg_use_facet ;
|
||||
run-simple <define>TEST_BOOST_HAS_BETHREADS : bethreads ;
|
||||
run-simple <define>TEST_BOOST_HAS_CLOCK_GETTIME : clock_gettime ;
|
||||
run-simple <define>TEST_BOOST_HAS_DIRENT_H : dirent_h ;
|
||||
run-simple <define>TEST_BOOST_HAS_EXPM1 : expm1 ;
|
||||
run-simple <define>TEST_BOOST_HAS_FLOAT128 : float128 ;
|
||||
run-simple <define>TEST_BOOST_HAS_FTIME : ftime ;
|
||||
run-simple <define>TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME : getsystemtimeasfiletime ;
|
||||
run-simple <define>TEST_BOOST_HAS_GETTIMEOFDAY : gettimeofday ;
|
||||
run-simple <define>TEST_BOOST_HAS_HASH : hash ;
|
||||
run-simple <define>TEST_BOOST_HAS_INT128 : int128 ;
|
||||
run-simple <define>TEST_BOOST_HAS_LOG1P : log1p ;
|
||||
run-simple <define>TEST_BOOST_HAS_LONG_LONG : long_long ;
|
||||
run-simple <define>TEST_BOOST_HAS_MACRO_USE_FACET : macro_use_facet ;
|
||||
run-simple <define>TEST_BOOST_HAS_MS_INT64 : ms_int64 ;
|
||||
run-simple <define>TEST_BOOST_HAS_NANOSLEEP : nanosleep ;
|
||||
run-simple <define>TEST_BOOST_HAS_NL_TYPES_H : nl_types_h ;
|
||||
run-simple <define>TEST_BOOST_HAS_NRVO : nrvo ;
|
||||
run-simple <define>TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR : partial_std_allocator ;
|
||||
run-simple <define>TEST_BOOST_HAS_PTHREAD_DELAY_NP : pthread_delay_np ;
|
||||
run-simple <define>TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE : pthread_mutexattr_settype ;
|
||||
run-simple <define>TEST_BOOST_HAS_PTHREAD_YIELD : pthread_yield ;
|
||||
run-simple <define>TEST_BOOST_HAS_PTHREADS : pthreads ;
|
||||
run-simple <define>TEST_BOOST_HAS_RVALUE_REFS : rvalue_refs ;
|
||||
run-simple <define>TEST_BOOST_HAS_SCHED_YIELD : sched_yield ;
|
||||
run-simple <define>TEST_BOOST_HAS_SGI_TYPE_TRAITS : sgi_type_traits ;
|
||||
run-simple <define>TEST_BOOST_HAS_SIGACTION : sigaction ;
|
||||
run-simple <define>TEST_BOOST_HAS_SLIST : slist ;
|
||||
run-simple <define>TEST_BOOST_HAS_STATIC_ASSERT : static_assert ;
|
||||
run-simple <define>TEST_BOOST_HAS_STDINT_H : stdint_h ;
|
||||
run-simple <define>TEST_BOOST_HAS_STLP_USE_FACET : stlp_use_facet ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_ARRAY : tr1_array ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_BIND : tr1_bind ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS : tr1_complex_overloads ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG : tr1_complex_inverse_trig ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_FUNCTION : tr1_function ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_HASH : tr1_hash ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_MEM_FN : tr1_mem_fn ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_RANDOM : tr1_random ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER : tr1_reference_wrapper ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_REGEX : tr1_regex ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_RESULT_OF : tr1_result_of ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_SHARED_PTR : tr1_shared_ptr ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_TUPLE : tr1_tuple ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_TYPE_TRAITS : tr1_type_traits ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_UNORDERED_MAP : tr1_unordered_map ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_UNORDERED_SET : tr1_unordered_set ;
|
||||
run-simple <define>TEST_BOOST_HAS_TR1_UTILITY : tr1_utility ;
|
||||
run-simple <define>TEST_BOOST_HAS_UNISTD_H : unistd_h ;
|
||||
run-simple <define>TEST_BOOST_HAS_VARIADIC_TMPL : variadic_tmpl ;
|
||||
run-simple <define>TEST_BOOST_MSVC6_MEMBER_TEMPLATES : boost_msvc6_member_templates ;
|
||||
run-simple <define>TEST_BOOST_MSVC_STD_ITERATOR : boost_msvc_std_iterator ;
|
||||
run-simple <define>TEST_BOOST_HAS_WINTHREADS : winthreads ;
|
||||
run-simple <define>TEST_BOOST_NO_ADL_BARRIER : adl_barrier ;
|
||||
run-simple <define>TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP : argument_dependent_lookup ;
|
||||
run-simple <define>TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS : array_type_specializations ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS : cxx11_auto_declarations ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS : cxx11_auto_multideclarations ;
|
||||
run-simple <define>TEST_BOOST_NO_AUTO_PTR : auto_ptr ;
|
||||
run-simple <define>TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG : boost_bcb_partial_specialization_bug ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_CHAR16_T : cxx11_char16_t ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_CHAR32_T : cxx11_char32_t ;
|
||||
run-simple <define>TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION : complete_value_initialization ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_CONSTEXPR : cxx11_constexpr ;
|
||||
run-simple <define>TEST_BOOST_NO_CTYPE_FUNCTIONS : ctype_functions ;
|
||||
run-simple <define>TEST_BOOST_NO_CV_SPECIALIZATIONS : cv_specializations ;
|
||||
run-simple <define>TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS : cv_void_specializations ;
|
||||
run-simple <define>TEST_BOOST_NO_CWCHAR : cwchar ;
|
||||
run-simple <define>TEST_BOOST_NO_CWCTYPE : cwctype ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_ADDRESSOF : cxx11_addressof ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_ALIGNAS : cxx11_alignas ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_ALLOCATOR : cxx11_allocator ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR : cxx11_atomic_smart_ptr ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_FINAL : cxx11_final ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_ARRAY : cxx11_hdr_array ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_ATOMIC : cxx11_hdr_atomic ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_CHRONO : cxx11_hdr_chrono ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_CODECVT : cxx11_hdr_codecvt ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE : cxx11_hdr_condition_variable ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST : cxx11_hdr_forward_list ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_FUTURE : cxx11_hdr_future ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST : cxx11_hdr_initializer_list ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_MUTEX : cxx11_hdr_mutex ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_RANDOM : cxx11_hdr_random ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_RATIO : cxx11_hdr_ratio ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_REGEX : cxx11_hdr_regex ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR : cxx11_hdr_system_error ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_THREAD : cxx11_hdr_thread ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_TUPLE : cxx11_hdr_tuple ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS : cxx11_hdr_type_traits ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_TYPEINDEX : cxx11_hdr_typeindex ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP : cxx11_hdr_unordered_map ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET : cxx11_hdr_unordered_set ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_INLINE_NAMESPACES : cxx11_inline_namespaces ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS : cxx11_non_public_defaulted_functions ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_NUMERIC_LIMITS : cxx11_numeric_limits ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_REF_QUALIFIERS : cxx11_ref_qualifiers ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_SMART_PTR : cxx11_smart_ptr ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_STD_ALIGN : cxx11_std_align ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_THREAD_LOCAL : cxx11_thread_local ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES : cxx11_trailing_result_types ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS : cxx11_user_defined_literals ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_BINARY_LITERALS : cxx14_binary_literals ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_CONSTEXPR : cxx14_constexpr ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_DECLTYPE_AUTO : cxx14_decltype_auto ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS : cxx14_digit_separators ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS : cxx14_generic_lambdas ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX : cxx14_hdr_shared_mutex ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES : cxx14_initialized_lambda_captures ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI : cxx14_aggregate_nsdmi ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION : cxx14_return_type_deduction ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES : cxx14_variable_templates ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL : cxx11_hdr_functional ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_DECLTYPE : cxx11_decltype ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_DECLTYPE_N3276 : cxx11_decltype_n3276 ;
|
||||
run-simple <define>TEST_BOOST_DEDUCED_TYPENAME : boost_deduced_typename ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS : cxx11_defaulted_functions ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS : cxx11_deleted_functions ;
|
||||
run-simple <define>TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS : dependent_nested_derivations ;
|
||||
run-simple <define>TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS : dependent_types_in_template_value_parameters ;
|
||||
run-simple <define>TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE : exception_std_namespace ;
|
||||
run-simple <define>TEST_BOOST_NO_EXCEPTIONS : exceptions ;
|
||||
run-simple <define>TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS : explicit_function_template_arguments ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS : cxx11_explicit_conversion_operators ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE : cxx11_extern_template ;
|
||||
run-simple <define>TEST_BOOST_NO_FENV_H : fenv_h ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS : cxx11_fixed_length_variadic_template_expansion_packs ;
|
||||
run-simple <define>TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING : function_template_ordering ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS : cxx11_function_template_default_args ;
|
||||
run-simple <define>TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS : function_type_specializations ;
|
||||
run-simple <define>TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS : ms_int64_numeric_limits ;
|
||||
run-simple <define>TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION : inclass_member_initialization ;
|
||||
run-simple <define>TEST_BOOST_NO_INTEGRAL_INT64_T : integral_int64_t ;
|
||||
run-simple <define>TEST_BOOST_NO_IOSFWD : iosfwd ;
|
||||
run-simple <define>TEST_BOOST_NO_IOSTREAM : iostream ;
|
||||
run-simple <define>TEST_BOOST_NO_IS_ABSTRACT : is_abstract ;
|
||||
run-simple <define>TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS : templated_iterator_constructors ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_LAMBDAS : cxx11_lambdas ;
|
||||
run-simple <define>TEST_BOOST_NO_LIMITS : limits ;
|
||||
run-simple <define>TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS : limits_compile_time_constants ;
|
||||
run-simple <define>TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS : long_long_numeric_limits ;
|
||||
run-simple <define>TEST_BOOST_NO_LONG_LONG : long_long ;
|
||||
run-simple <define>TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS : member_function_specializations ;
|
||||
run-simple <define>TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD : member_template_keyword ;
|
||||
run-simple <define>TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS : pointer_to_member_template_parameters ;
|
||||
run-simple <define>TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS : member_template_friends ;
|
||||
run-simple <define>TEST_BOOST_NO_MEMBER_TEMPLATES : member_templates ;
|
||||
run-simple <define>TEST_BOOST_NO_NESTED_FRIENDSHIP : nested_friendship ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_NOEXCEPT : cxx11_noexcept ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_NULLPTR : cxx11_nullptr ;
|
||||
run-simple <define>TEST_BOOST_NO_OPERATORS_IN_NAMESPACE : operators_in_namespace ;
|
||||
run-simple <define>TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS : partial_specialization_implicit_default_args ;
|
||||
run-simple <define>TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION : template_partial_specialization ;
|
||||
run-simple <define>TEST_BOOST_NO_PRIVATE_IN_AGGREGATE : private_in_aggregate ;
|
||||
run-simple <define>TEST_BOOST_NO_POINTER_TO_MEMBER_CONST : pointer_to_member_const ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_RANGE_BASED_FOR : cxx11_range_based_for ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_RAW_LITERALS : cxx11_raw_literals ;
|
||||
run-simple <define>TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION : unreachable_return_detection ;
|
||||
run-simple <define>TEST_BOOST_NO_RTTI : rtti ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_RVALUE_REFERENCES : cxx11_rvalue_references ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_SCOPED_ENUMS : cxx11_scoped_enums ;
|
||||
run-simple <define>TEST_BOOST_NO_SFINAE : sfinae ;
|
||||
run-simple <define>TEST_BOOST_NO_SFINAE_EXPR : sfinae_expr ;
|
||||
run-simple <define>TEST_BOOST_NO_STRINGSTREAM : stringstream ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_STATIC_ASSERT : cxx11_static_assert ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_ALLOCATOR : std_allocator ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_DISTANCE : std_distance ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_ITERATOR_TRAITS : std_iterator_traits ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_ITERATOR : std_iterator ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_LOCALE : std_locale ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_MESSAGES : std_messages ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_MIN_MAX : std_min_max ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN : std_output_iterator_assign ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_TYPEINFO : std_typeinfo ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_USE_FACET : std_use_facet ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_WSTREAMBUF : std_wstreambuf ;
|
||||
run-simple <define>TEST_BOOST_NO_STD_WSTRING : std_wstring ;
|
||||
run-simple <define>TEST_BOOST_NO_STDC_NAMESPACE : stdc_namespace ;
|
||||
run-simple <define>TEST_BOOST_NO_SWPRINTF : swprintf ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS : cxx11_local_class_template_parameters ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES : cxx11_template_aliases ;
|
||||
run-simple <define>TEST_BOOST_NO_TEMPLATED_IOSTREAMS : templated_iostreams ;
|
||||
run-simple <define>TEST_BOOST_NO_TEMPLATE_TEMPLATES : template_templates ;
|
||||
run-simple <define>TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP : two_phase_name_lookup ;
|
||||
run-simple <define>TEST_BOOST_NO_TYPEID : typeid ;
|
||||
run-simple <define>TEST_BOOST_NO_TYPENAME_WITH_CTOR : typename_with_ctor ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_UNICODE_LITERALS : cxx11_unicode_literals ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX : cxx11_unified_initialization_syntax ;
|
||||
run-simple <define>TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL : boost_function_scope_using_declaration_breaks_adl ;
|
||||
run-simple <define>TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE : using_declaration_overloads_from_typename_base ;
|
||||
run-simple <define>TEST_BOOST_NO_USING_TEMPLATE : using_template ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_VARIADIC_MACROS : cxx11_variadic_macros ;
|
||||
run-simple <define>TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES : cxx11_variadic_templates ;
|
||||
run-simple <define>TEST_BOOST_NO_VOID_RETURNS : void_returns ;
|
||||
run-simple <define>TEST_BOOST_NO_INTRINSIC_WCHAR_T : intrinsic_wchar_t ;
|
||||
|
||||
9
checks/architecture/32.cpp
Normal file
9
checks/architecture/32.cpp
Normal file
@@ -0,0 +1,9 @@
|
||||
// 32.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
int test[sizeof(void*) == 4? 1 : -1];
|
||||
9
checks/architecture/64.cpp
Normal file
9
checks/architecture/64.cpp
Normal file
@@ -0,0 +1,9 @@
|
||||
// 64.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
int test[sizeof(void*) == 8? 1 : -1];
|
||||
23
checks/architecture/Jamroot.jam
Normal file
23
checks/architecture/Jamroot.jam
Normal file
@@ -0,0 +1,23 @@
|
||||
# Jamfile.jam
|
||||
#
|
||||
# Copyright 2012 Steven Watanabe
|
||||
#
|
||||
# Distributed under the Boost Software License Version 1.0. (See
|
||||
# accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
project /boost/architecture
|
||||
: requirements
|
||||
-<conditional>@boostcpp.deduce-address-model
|
||||
-<conditional>@boostcpp.deduce-architecture
|
||||
;
|
||||
|
||||
obj 32 : 32.cpp ;
|
||||
obj 64 : 64.cpp ;
|
||||
|
||||
obj arm : arm.cpp ;
|
||||
obj combined : combined.cpp ;
|
||||
obj mips1 : mips1.cpp ;
|
||||
obj power : power.cpp ;
|
||||
obj sparc : sparc.cpp ;
|
||||
obj x86 : x86.cpp ;
|
||||
15
checks/architecture/arm.cpp
Normal file
15
checks/architecture/arm.cpp
Normal file
@@ -0,0 +1,15 @@
|
||||
// arm.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#if !defined(__arm__) && !defined(__thumb__) && \
|
||||
!defined(__TARGET_ARCH_ARM) && !defined(__TARGET_ARCH_THUMB) && \
|
||||
!defined(_ARM) && !defined(_M_ARM) && \
|
||||
!defined(__aarch64__)
|
||||
#error "Not ARM"
|
||||
#endif
|
||||
|
||||
21
checks/architecture/combined.cpp
Normal file
21
checks/architecture/combined.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
// combined.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
// 2014 Oliver Kowalke
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#if !defined(i386) && !defined(__i386__) && !defined(__i386) \
|
||||
&& !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \
|
||||
&& !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \
|
||||
&& !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \
|
||||
&& !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \
|
||||
&& !defined(__x86_64) && !defined(_M_X64) \
|
||||
&& !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \
|
||||
&& !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \
|
||||
&& !defined(__POWERPC__) && !defined(__PPCGECKO__) \
|
||||
&& !defined(__PPCBROADWAY) && !defined(_XENON)
|
||||
#error "Not combined"
|
||||
#endif
|
||||
11
checks/architecture/mips1.cpp
Normal file
11
checks/architecture/mips1.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
// mips1.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#if !((defined(__mips) && __mips == 1) || defined(_MIPS_ISA_MIPS1) || defined(_R3000))
|
||||
#error "Not MIPS1"
|
||||
#endif
|
||||
14
checks/architecture/power.cpp
Normal file
14
checks/architecture/power.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
// power.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#if !defined(__powerpc) && !defined(__powerpc__) && !defined(__ppc) \
|
||||
&& !defined(__ppc__) && !defined(_M_PPC) && !defined(_ARCH_PPC) \
|
||||
&& !defined(__POWERPC__) && !defined(__PPCGECKO__) \
|
||||
&& !defined(__PPCBROADWAY) && !defined(_XENON)
|
||||
#error "Not PPC"
|
||||
#endif
|
||||
11
checks/architecture/sparc.cpp
Normal file
11
checks/architecture/sparc.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
// power.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#if !defined(__sparc__) && !defined(__sparc)
|
||||
#error "Not SPARC"
|
||||
#endif
|
||||
16
checks/architecture/x86.cpp
Normal file
16
checks/architecture/x86.cpp
Normal file
@@ -0,0 +1,16 @@
|
||||
// x86.cpp
|
||||
//
|
||||
// Copyright (c) 2012 Steven Watanabe
|
||||
//
|
||||
// Distributed under the Boost Software License Version 1.0. (See
|
||||
// accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#if !defined(i386) && !defined(__i386__) && !defined(__i386) \
|
||||
&& !defined(__i486__) && !defined(__i586__) && !defined(__i686__) \
|
||||
&& !defined(_M_IX86) && !defined(__X86__) && !defined(_X86_) \
|
||||
&& !defined(__THW_INTEL__) && !defined(__I86__) && !defined(__INTEL__) \
|
||||
&& !defined(__amd64__) && !defined(__x86_64__) && !defined(__amd64) \
|
||||
&& !defined(__x86_64) && !defined(_M_X64)
|
||||
#error "Not x86"
|
||||
#endif
|
||||
21
checks/config.jam
Normal file
21
checks/config.jam
Normal file
@@ -0,0 +1,21 @@
|
||||
# Copyright John Maddock.
|
||||
# Use, modification and distribution are subject to the
|
||||
# Boost Software License, Version 1.0. (See accompanying file
|
||||
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
import modules ;
|
||||
|
||||
rule requires ( names + )
|
||||
{
|
||||
local config-binding = [ modules.binding $(__name__) ] ;
|
||||
|
||||
local result ;
|
||||
for name in $(names)
|
||||
{
|
||||
local msg = "Boost.Config Feature Check: " ;
|
||||
msg += $(name) ;
|
||||
result += [ check-target-builds $(config-binding:D)//$(name) $(msg:J=) : : <build>no ] ;
|
||||
}
|
||||
return $(result) ;
|
||||
}
|
||||
|
||||
797
checks/test_case.cpp
Normal file
797
checks/test_case.cpp
Normal file
@@ -0,0 +1,797 @@
|
||||
// This file was automatically generated on Fri Jul 1 18:47:25 2016
|
||||
// by libs/config/tools/generate.cpp
|
||||
// Copyright John Maddock 2002-4.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/libs/config for the most recent version.//
|
||||
// Revision $Id$
|
||||
//
|
||||
|
||||
#ifdef TEST_BOOST_HAS_TWO_ARG_USE_FACET
|
||||
# include "../test/boost_has_2arg_use_facet.ipp"
|
||||
namespace test = boost_has_two_arg_use_facet;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_BETHREADS
|
||||
# include "../test/boost_has_bethreads.ipp"
|
||||
namespace test = boost_has_bethreads;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_CLOCK_GETTIME
|
||||
# include "../test/boost_has_clock_gettime.ipp"
|
||||
namespace test = boost_has_clock_gettime;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_DIRENT_H
|
||||
# include "../test/boost_has_dirent_h.ipp"
|
||||
namespace test = boost_has_dirent_h;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_EXPM1
|
||||
# include "../test/boost_has_expm1.ipp"
|
||||
namespace test = boost_has_expm1;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_FLOAT128
|
||||
# include "../test/boost_has_float128.ipp"
|
||||
namespace test = boost_has_float128;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_FTIME
|
||||
# include "../test/boost_has_ftime.ipp"
|
||||
namespace test = boost_has_ftime;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
# include "../test/boost_has_getsystemtimeasfiletime.ipp"
|
||||
namespace test = boost_has_getsystemtimeasfiletime;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_GETTIMEOFDAY
|
||||
# include "../test/boost_has_gettimeofday.ipp"
|
||||
namespace test = boost_has_gettimeofday;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_HASH
|
||||
# include "../test/boost_has_hash.ipp"
|
||||
namespace test = boost_has_hash;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_INT128
|
||||
# include "../test/boost_has_int128.ipp"
|
||||
namespace test = boost_has_int128;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_LOG1P
|
||||
# include "../test/boost_has_log1p.ipp"
|
||||
namespace test = boost_has_log1p;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_LONG_LONG
|
||||
# include "../test/boost_has_long_long.ipp"
|
||||
namespace test = boost_has_long_long;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_MACRO_USE_FACET
|
||||
# include "../test/boost_has_macro_use_facet.ipp"
|
||||
namespace test = boost_has_macro_use_facet;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_MS_INT64
|
||||
# include "../test/boost_has_ms_int64.ipp"
|
||||
namespace test = boost_has_ms_int64;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_NANOSLEEP
|
||||
# include "../test/boost_has_nanosleep.ipp"
|
||||
namespace test = boost_has_nanosleep;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_NL_TYPES_H
|
||||
# include "../test/boost_has_nl_types_h.ipp"
|
||||
namespace test = boost_has_nl_types_h;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_NRVO
|
||||
# include "../test/boost_has_nrvo.ipp"
|
||||
namespace test = boost_has_nrvo;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||
# include "../test/boost_has_part_alloc.ipp"
|
||||
namespace test = boost_has_partial_std_allocator;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_PTHREAD_DELAY_NP
|
||||
# include "../test/boost_has_pthread_delay_np.ipp"
|
||||
namespace test = boost_has_pthread_delay_np;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# include "../test/boost_has_pthread_ma_st.ipp"
|
||||
namespace test = boost_has_pthread_mutexattr_settype;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_PTHREAD_YIELD
|
||||
# include "../test/boost_has_pthread_yield.ipp"
|
||||
namespace test = boost_has_pthread_yield;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_PTHREADS
|
||||
# include "../test/boost_has_pthreads.ipp"
|
||||
namespace test = boost_has_pthreads;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_RVALUE_REFS
|
||||
# include "../test/boost_has_rvalue_refs.ipp"
|
||||
namespace test = boost_has_rvalue_refs;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_SCHED_YIELD
|
||||
# include "../test/boost_has_sched_yield.ipp"
|
||||
namespace test = boost_has_sched_yield;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_SGI_TYPE_TRAITS
|
||||
# include "../test/boost_has_sgi_type_traits.ipp"
|
||||
namespace test = boost_has_sgi_type_traits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_SIGACTION
|
||||
# include "../test/boost_has_sigaction.ipp"
|
||||
namespace test = boost_has_sigaction;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_SLIST
|
||||
# include "../test/boost_has_slist.ipp"
|
||||
namespace test = boost_has_slist;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_STATIC_ASSERT
|
||||
# include "../test/boost_has_static_assert.ipp"
|
||||
namespace test = boost_has_static_assert;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_STDINT_H
|
||||
# include "../test/boost_has_stdint_h.ipp"
|
||||
namespace test = boost_has_stdint_h;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_STLP_USE_FACET
|
||||
# include "../test/boost_has_stlp_use_facet.ipp"
|
||||
namespace test = boost_has_stlp_use_facet;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_ARRAY
|
||||
# include "../test/boost_has_tr1_array.ipp"
|
||||
namespace test = boost_has_tr1_array;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_BIND
|
||||
# include "../test/boost_has_tr1_bind.ipp"
|
||||
namespace test = boost_has_tr1_bind;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_COMPLEX_OVERLOADS
|
||||
# include "../test/boost_has_tr1_complex_over.ipp"
|
||||
namespace test = boost_has_tr1_complex_overloads;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
|
||||
# include "../test/boost_has_tr1_complex_trig.ipp"
|
||||
namespace test = boost_has_tr1_complex_inverse_trig;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_FUNCTION
|
||||
# include "../test/boost_has_tr1_function.ipp"
|
||||
namespace test = boost_has_tr1_function;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_HASH
|
||||
# include "../test/boost_has_tr1_hash.ipp"
|
||||
namespace test = boost_has_tr1_hash;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_MEM_FN
|
||||
# include "../test/boost_has_tr1_mem_fn.ipp"
|
||||
namespace test = boost_has_tr1_mem_fn;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_RANDOM
|
||||
# include "../test/boost_has_tr1_random.ipp"
|
||||
namespace test = boost_has_tr1_random;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_REFERENCE_WRAPPER
|
||||
# include "../test/boost_has_tr1_ref_wrap.ipp"
|
||||
namespace test = boost_has_tr1_reference_wrapper;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_REGEX
|
||||
# include "../test/boost_has_tr1_regex.ipp"
|
||||
namespace test = boost_has_tr1_regex;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_RESULT_OF
|
||||
# include "../test/boost_has_tr1_result_of.ipp"
|
||||
namespace test = boost_has_tr1_result_of;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_SHARED_PTR
|
||||
# include "../test/boost_has_tr1_shared_ptr.ipp"
|
||||
namespace test = boost_has_tr1_shared_ptr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_TUPLE
|
||||
# include "../test/boost_has_tr1_tuple.ipp"
|
||||
namespace test = boost_has_tr1_tuple;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_TYPE_TRAITS
|
||||
# include "../test/boost_has_tr1_type_traits.ipp"
|
||||
namespace test = boost_has_tr1_type_traits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_UNORDERED_MAP
|
||||
# include "../test/boost_has_tr1_unordered_map.ipp"
|
||||
namespace test = boost_has_tr1_unordered_map;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_UNORDERED_SET
|
||||
# include "../test/boost_has_tr1_unordered_set.ipp"
|
||||
namespace test = boost_has_tr1_unordered_set;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_TR1_UTILITY
|
||||
# include "../test/boost_has_tr1_utility.ipp"
|
||||
namespace test = boost_has_tr1_utility;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_UNISTD_H
|
||||
# include "../test/boost_has_unistd_h.ipp"
|
||||
namespace test = boost_has_unistd_h;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_VARIADIC_TMPL
|
||||
# include "../test/boost_has_variadic_tmpl.ipp"
|
||||
namespace test = boost_has_variadic_tmpl;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
# include "../test/boost_has_vc6_mem_templ.ipp"
|
||||
namespace test = boost_msvc6_member_templates;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_MSVC_STD_ITERATOR
|
||||
# include "../test/boost_has_vc_iterator.ipp"
|
||||
namespace test = boost_msvc_std_iterator;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_HAS_WINTHREADS
|
||||
# include "../test/boost_has_winthreads.ipp"
|
||||
namespace test = boost_has_winthreads;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_ADL_BARRIER
|
||||
# include "../test/boost_no_adl_barrier.ipp"
|
||||
namespace test = boost_no_adl_barrier;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||
# include "../test/boost_no_arg_dep_lookup.ipp"
|
||||
namespace test = boost_no_argument_dependent_lookup;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||
# include "../test/boost_no_array_type_spec.ipp"
|
||||
namespace test = boost_no_array_type_specializations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# include "../test/boost_no_auto_declarations.ipp"
|
||||
namespace test = boost_no_cxx11_auto_declarations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# include "../test/boost_no_auto_multidecl.ipp"
|
||||
namespace test = boost_no_cxx11_auto_multideclarations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_AUTO_PTR
|
||||
# include "../test/boost_no_auto_ptr.ipp"
|
||||
namespace test = boost_no_auto_ptr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||
# include "../test/boost_no_bcb_partial_spec.ipp"
|
||||
namespace test = boost_bcb_partial_specialization_bug;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_CHAR16_T
|
||||
# include "../test/boost_no_char16_t.ipp"
|
||||
namespace test = boost_no_cxx11_char16_t;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_CHAR32_T
|
||||
# include "../test/boost_no_char32_t.ipp"
|
||||
namespace test = boost_no_cxx11_char32_t;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# include "../test/boost_no_com_value_init.ipp"
|
||||
namespace test = boost_no_complete_value_initialization;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_CONSTEXPR
|
||||
# include "../test/boost_no_constexpr.ipp"
|
||||
namespace test = boost_no_cxx11_constexpr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CTYPE_FUNCTIONS
|
||||
# include "../test/boost_no_ctype_functions.ipp"
|
||||
namespace test = boost_no_ctype_functions;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CV_SPECIALIZATIONS
|
||||
# include "../test/boost_no_cv_spec.ipp"
|
||||
namespace test = boost_no_cv_specializations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||
# include "../test/boost_no_cv_void_spec.ipp"
|
||||
namespace test = boost_no_cv_void_specializations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CWCHAR
|
||||
# include "../test/boost_no_cwchar.ipp"
|
||||
namespace test = boost_no_cwchar;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CWCTYPE
|
||||
# include "../test/boost_no_cwctype.ipp"
|
||||
namespace test = boost_no_cwctype;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_ADDRESSOF
|
||||
# include "../test/boost_no_cxx11_addressof.ipp"
|
||||
namespace test = boost_no_cxx11_addressof;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_ALIGNAS
|
||||
# include "../test/boost_no_cxx11_alignas.ipp"
|
||||
namespace test = boost_no_cxx11_alignas;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_ALLOCATOR
|
||||
# include "../test/boost_no_cxx11_allocator.ipp"
|
||||
namespace test = boost_no_cxx11_allocator;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# include "../test/boost_no_cxx11_atomic_sp.ipp"
|
||||
namespace test = boost_no_cxx11_atomic_smart_ptr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_FINAL
|
||||
# include "../test/boost_no_cxx11_final.ipp"
|
||||
namespace test = boost_no_cxx11_final;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_ARRAY
|
||||
# include "../test/boost_no_cxx11_hdr_array.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_array;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# include "../test/boost_no_cxx11_hdr_atomic.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_atomic;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_CHRONO
|
||||
# include "../test/boost_no_cxx11_hdr_chrono.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_chrono;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_CODECVT
|
||||
# include "../test/boost_no_cxx11_hdr_codecvt.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_codecvt;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# include "../test/boost_no_cxx11_hdr_condition_variable.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_condition_variable;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# include "../test/boost_no_cxx11_hdr_forward_list.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_forward_list;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_FUTURE
|
||||
# include "../test/boost_no_cxx11_hdr_future.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_future;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# include "../test/boost_no_cxx11_hdr_initializer_list.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_initializer_list;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_MUTEX
|
||||
# include "../test/boost_no_cxx11_hdr_mutex.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_mutex;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_RANDOM
|
||||
# include "../test/boost_no_cxx11_hdr_random.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_random;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_RATIO
|
||||
# include "../test/boost_no_cxx11_hdr_ratio.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_ratio;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_REGEX
|
||||
# include "../test/boost_no_cxx11_hdr_regex.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_regex;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# include "../test/boost_no_cxx11_hdr_system_error.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_system_error;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_THREAD
|
||||
# include "../test/boost_no_cxx11_hdr_thread.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_thread;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_TUPLE
|
||||
# include "../test/boost_no_cxx11_hdr_tuple.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_tuple;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# include "../test/boost_no_cxx11_hdr_type_traits.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_type_traits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# include "../test/boost_no_cxx11_hdr_typeindex.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_typeindex;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# include "../test/boost_no_cxx11_hdr_unordered_map.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_unordered_map;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# include "../test/boost_no_cxx11_hdr_unordered_set.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_unordered_set;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# include "../test/boost_no_cxx11_inline_namespaces.ipp"
|
||||
namespace test = boost_no_cxx11_inline_namespaces;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
# include "../test/boost_no_cxx11_non_pub_def_fun.ipp"
|
||||
namespace test = boost_no_cxx11_non_public_defaulted_functions;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# include "../test/boost_no_cxx11_numeric_limits.ipp"
|
||||
namespace test = boost_no_cxx11_numeric_limits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
# include "../test/boost_no_cxx11_ref_qualifiers.ipp"
|
||||
namespace test = boost_no_cxx11_ref_qualifiers;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_SMART_PTR
|
||||
# include "../test/boost_no_cxx11_smart_ptr.ipp"
|
||||
namespace test = boost_no_cxx11_smart_ptr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_STD_ALIGN
|
||||
# include "../test/boost_no_cxx11_std_align.ipp"
|
||||
namespace test = boost_no_cxx11_std_align;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_THREAD_LOCAL
|
||||
# include "../test/boost_no_cxx11_thread_local.ipp"
|
||||
namespace test = boost_no_cxx11_thread_local;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# include "../test/boost_no_cxx11_trailing_result_types.ipp"
|
||||
namespace test = boost_no_cxx11_trailing_result_types;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# include "../test/boost_no_cxx11_user_lit.ipp"
|
||||
namespace test = boost_no_cxx11_user_defined_literals;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_BINARY_LITERALS
|
||||
# include "../test/boost_no_cxx14_binary_literals.ipp"
|
||||
namespace test = boost_no_cxx14_binary_literals;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_CONSTEXPR
|
||||
# include "../test/boost_no_cxx14_constexpr.ipp"
|
||||
namespace test = boost_no_cxx14_constexpr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
# include "../test/boost_no_cxx14_decltype_auto.ipp"
|
||||
namespace test = boost_no_cxx14_decltype_auto;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
# include "../test/boost_no_cxx14_digit_separator.ipp"
|
||||
namespace test = boost_no_cxx14_digit_separators;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
# include "../test/boost_no_cxx14_generic_lambda.ipp"
|
||||
namespace test = boost_no_cxx14_generic_lambdas;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
# include "../test/boost_no_cxx14_hdr_shared_mutex.ipp"
|
||||
namespace test = boost_no_cxx14_hdr_shared_mutex;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
# include "../test/boost_no_cxx14_lambda_capture.ipp"
|
||||
namespace test = boost_no_cxx14_initialized_lambda_captures;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
# include "../test/boost_no_cxx14_member_init.ipp"
|
||||
namespace test = boost_no_cxx14_aggregate_nsdmi;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
# include "../test/boost_no_cxx14_return_type_ded.ipp"
|
||||
namespace test = boost_no_cxx14_return_type_deduction;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
# include "../test/boost_no_cxx14_var_templ.ipp"
|
||||
namespace test = boost_no_cxx14_variable_templates;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# include "../test/boost_no_cxx_hdr_functional.ipp"
|
||||
namespace test = boost_no_cxx11_hdr_functional;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE
|
||||
# include "../test/boost_no_decltype.ipp"
|
||||
namespace test = boost_no_cxx11_decltype;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
# include "../test/boost_no_decltype_n3276.ipp"
|
||||
namespace test = boost_no_cxx11_decltype_n3276;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_DEDUCED_TYPENAME
|
||||
# include "../test/boost_no_ded_typename.ipp"
|
||||
namespace test = boost_deduced_typename;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# include "../test/boost_no_defaulted_functions.ipp"
|
||||
namespace test = boost_no_cxx11_defaulted_functions;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# include "../test/boost_no_deleted_functions.ipp"
|
||||
namespace test = boost_no_cxx11_deleted_functions;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# include "../test/boost_no_dep_nested_class.ipp"
|
||||
namespace test = boost_no_dependent_nested_derivations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# include "../test/boost_no_dep_val_param.ipp"
|
||||
namespace test = boost_no_dependent_types_in_template_value_parameters;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||
# include "../test/boost_no_excep_std.ipp"
|
||||
namespace test = boost_no_exception_std_namespace;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_EXCEPTIONS
|
||||
# include "../test/boost_no_exceptions.ipp"
|
||||
namespace test = boost_no_exceptions;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
# include "../test/boost_no_exp_func_tem_arg.ipp"
|
||||
namespace test = boost_no_explicit_function_template_arguments;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# include "../test/boost_no_explicit_cvt_ops.ipp"
|
||||
namespace test = boost_no_cxx11_explicit_conversion_operators;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
# include "../test/boost_no_extern_template.ipp"
|
||||
namespace test = boost_no_cxx11_extern_template;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_FENV_H
|
||||
# include "../test/boost_no_fenv_h.ipp"
|
||||
namespace test = boost_no_fenv_h;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
# include "../test/boost_no_fixed_len_variadic_templates.ipp"
|
||||
namespace test = boost_no_cxx11_fixed_length_variadic_template_expansion_packs;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||
# include "../test/boost_no_func_tmp_order.ipp"
|
||||
namespace test = boost_no_function_template_ordering;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# include "../test/boost_no_function_template_default_args.ipp"
|
||||
namespace test = boost_no_cxx11_function_template_default_args;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||
# include "../test/boost_no_function_type_spec.ipp"
|
||||
namespace test = boost_no_function_type_specializations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# include "../test/boost_no_i64_limits.ipp"
|
||||
namespace test = boost_no_ms_int64_numeric_limits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
# include "../test/boost_no_inline_memb_init.ipp"
|
||||
namespace test = boost_no_inclass_member_initialization;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_INTEGRAL_INT64_T
|
||||
# include "../test/boost_no_integral_int64_t.ipp"
|
||||
namespace test = boost_no_integral_int64_t;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_IOSFWD
|
||||
# include "../test/boost_no_iosfwd.ipp"
|
||||
namespace test = boost_no_iosfwd;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_IOSTREAM
|
||||
# include "../test/boost_no_iostream.ipp"
|
||||
namespace test = boost_no_iostream;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_IS_ABSTRACT
|
||||
# include "../test/boost_no_is_abstract.ipp"
|
||||
namespace test = boost_no_is_abstract;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||
# include "../test/boost_no_iter_construct.ipp"
|
||||
namespace test = boost_no_templated_iterator_constructors;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_LAMBDAS
|
||||
# include "../test/boost_no_lambdas.ipp"
|
||||
namespace test = boost_no_cxx11_lambdas;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_LIMITS
|
||||
# include "../test/boost_no_limits.ipp"
|
||||
namespace test = boost_no_limits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
# include "../test/boost_no_limits_const_exp.ipp"
|
||||
namespace test = boost_no_limits_compile_time_constants;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
||||
# include "../test/boost_no_ll_limits.ipp"
|
||||
namespace test = boost_no_long_long_numeric_limits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_LONG_LONG
|
||||
# include "../test/boost_no_long_long.ipp"
|
||||
namespace test = boost_no_long_long;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||
# include "../test/boost_no_mem_func_spec.ipp"
|
||||
namespace test = boost_no_member_function_specializations;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||
# include "../test/boost_no_mem_tem_keyword.ipp"
|
||||
namespace test = boost_no_member_template_keyword;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||
# include "../test/boost_no_mem_tem_pnts.ipp"
|
||||
namespace test = boost_no_pointer_to_member_template_parameters;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# include "../test/boost_no_mem_templ_frnds.ipp"
|
||||
namespace test = boost_no_member_template_friends;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATES
|
||||
# include "../test/boost_no_mem_templates.ipp"
|
||||
namespace test = boost_no_member_templates;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_NESTED_FRIENDSHIP
|
||||
# include "../test/boost_no_nested_friendship.ipp"
|
||||
namespace test = boost_no_nested_friendship;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_NOEXCEPT
|
||||
# include "../test/boost_no_noexcept.ipp"
|
||||
namespace test = boost_no_cxx11_noexcept;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_NULLPTR
|
||||
# include "../test/boost_no_nullptr.ipp"
|
||||
namespace test = boost_no_cxx11_nullptr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# include "../test/boost_no_ops_in_namespace.ipp"
|
||||
namespace test = boost_no_operators_in_namespace;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||
# include "../test/boost_no_part_spec_def_args.ipp"
|
||||
namespace test = boost_no_partial_specialization_implicit_default_args;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# include "../test/boost_no_partial_spec.ipp"
|
||||
namespace test = boost_no_template_partial_specialization;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
# include "../test/boost_no_priv_aggregate.ipp"
|
||||
namespace test = boost_no_private_in_aggregate;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||
# include "../test/boost_no_ptr_mem_const.ipp"
|
||||
namespace test = boost_no_pointer_to_member_const;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# include "../test/boost_no_range_based_for.ipp"
|
||||
namespace test = boost_no_cxx11_range_based_for;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_RAW_LITERALS
|
||||
# include "../test/boost_no_raw_literals.ipp"
|
||||
namespace test = boost_no_cxx11_raw_literals;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||
# include "../test/boost_no_ret_det.ipp"
|
||||
namespace test = boost_no_unreachable_return_detection;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_RTTI
|
||||
# include "../test/boost_no_rtti.ipp"
|
||||
namespace test = boost_no_rtti;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# include "../test/boost_no_rvalue_references.ipp"
|
||||
namespace test = boost_no_cxx11_rvalue_references;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# include "../test/boost_no_scoped_enums.ipp"
|
||||
namespace test = boost_no_cxx11_scoped_enums;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_SFINAE
|
||||
# include "../test/boost_no_sfinae.ipp"
|
||||
namespace test = boost_no_sfinae;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_SFINAE_EXPR
|
||||
# include "../test/boost_no_sfinae_expr.ipp"
|
||||
namespace test = boost_no_sfinae_expr;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STRINGSTREAM
|
||||
# include "../test/boost_no_sstream.ipp"
|
||||
namespace test = boost_no_stringstream;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_STATIC_ASSERT
|
||||
# include "../test/boost_no_static_assert.ipp"
|
||||
namespace test = boost_no_cxx11_static_assert;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_ALLOCATOR
|
||||
# include "../test/boost_no_std_allocator.ipp"
|
||||
namespace test = boost_no_std_allocator;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_DISTANCE
|
||||
# include "../test/boost_no_std_distance.ipp"
|
||||
namespace test = boost_no_std_distance;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_ITERATOR_TRAITS
|
||||
# include "../test/boost_no_std_iter_traits.ipp"
|
||||
namespace test = boost_no_std_iterator_traits;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_ITERATOR
|
||||
# include "../test/boost_no_std_iterator.ipp"
|
||||
namespace test = boost_no_std_iterator;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_LOCALE
|
||||
# include "../test/boost_no_std_locale.ipp"
|
||||
namespace test = boost_no_std_locale;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_MESSAGES
|
||||
# include "../test/boost_no_std_messages.ipp"
|
||||
namespace test = boost_no_std_messages;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_MIN_MAX
|
||||
# include "../test/boost_no_std_min_max.ipp"
|
||||
namespace test = boost_no_std_min_max;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||
# include "../test/boost_no_std_oi_assign.ipp"
|
||||
namespace test = boost_no_std_output_iterator_assign;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_TYPEINFO
|
||||
# include "../test/boost_no_std_typeinfo.ipp"
|
||||
namespace test = boost_no_std_typeinfo;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_USE_FACET
|
||||
# include "../test/boost_no_std_use_facet.ipp"
|
||||
namespace test = boost_no_std_use_facet;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_WSTREAMBUF
|
||||
# include "../test/boost_no_std_wstreambuf.ipp"
|
||||
namespace test = boost_no_std_wstreambuf;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STD_WSTRING
|
||||
# include "../test/boost_no_std_wstring.ipp"
|
||||
namespace test = boost_no_std_wstring;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_STDC_NAMESPACE
|
||||
# include "../test/boost_no_stdc_namespace.ipp"
|
||||
namespace test = boost_no_stdc_namespace;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_SWPRINTF
|
||||
# include "../test/boost_no_swprintf.ipp"
|
||||
namespace test = boost_no_swprintf;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# include "../test/boost_no_tem_local_classes.ipp"
|
||||
namespace test = boost_no_cxx11_local_class_template_parameters;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# include "../test/boost_no_template_aliases.ipp"
|
||||
namespace test = boost_no_cxx11_template_aliases;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_TEMPLATED_IOSTREAMS
|
||||
# include "../test/boost_no_template_streams.ipp"
|
||||
namespace test = boost_no_templated_iostreams;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_TEMPLATE_TEMPLATES
|
||||
# include "../test/boost_no_template_template.ipp"
|
||||
namespace test = boost_no_template_templates;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# include "../test/boost_no_two_phase_lookup.ipp"
|
||||
namespace test = boost_no_two_phase_name_lookup;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_TYPEID
|
||||
# include "../test/boost_no_typeid.ipp"
|
||||
namespace test = boost_no_typeid;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_TYPENAME_WITH_CTOR
|
||||
# include "../test/boost_no_typename_with_ctor.ipp"
|
||||
namespace test = boost_no_typename_with_ctor;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# include "../test/boost_no_unicode_literals.ipp"
|
||||
namespace test = boost_no_cxx11_unicode_literals;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# include "../test/boost_no_unified_init.ipp"
|
||||
namespace test = boost_no_cxx11_unified_initialization_syntax;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# include "../test/boost_no_using_breaks_adl.ipp"
|
||||
namespace test = boost_function_scope_using_declaration_breaks_adl;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
# include "../test/boost_no_using_decl_overld.ipp"
|
||||
namespace test = boost_no_using_declaration_overloads_from_typename_base;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_USING_TEMPLATE
|
||||
# include "../test/boost_no_using_template.ipp"
|
||||
namespace test = boost_no_using_template;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
# include "../test/boost_no_variadic_macros.ipp"
|
||||
namespace test = boost_no_cxx11_variadic_macros;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
# include "../test/boost_no_variadic_templates.ipp"
|
||||
namespace test = boost_no_cxx11_variadic_templates;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_VOID_RETURNS
|
||||
# include "../test/boost_no_void_returns.ipp"
|
||||
namespace test = boost_no_void_returns;
|
||||
#endif
|
||||
#ifdef TEST_BOOST_NO_INTRINSIC_WCHAR_T
|
||||
# include "../test/boost_no_wchar_t.ipp"
|
||||
namespace test = boost_no_intrinsic_wchar_t;
|
||||
#endif
|
||||
|
||||
int main( int, char *[] )
|
||||
{
|
||||
return test::test();
|
||||
}
|
||||
|
||||
15
config.htm
Normal file
15
config.htm
Normal file
@@ -0,0 +1,15 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0; URL=doc/html/index.html">
|
||||
</head>
|
||||
<body>
|
||||
<P>
|
||||
Automatic redirection failed, please go to <a href="doc/html/index.html">doc/html/index.html</a>.
|
||||
</P>
|
||||
<P>Copyright John Maddock 2001</P>
|
||||
<P>Distributed under the Boost Software License, Version 1.0. (See accompanying file <A href="../../LICENSE_1_0.txt">
|
||||
LICENSE_1_0.txt</A> or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</A>).</P>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
115
config_test.cpp
115
config_test.cpp
@@ -1,115 +0,0 @@
|
||||
// Boost config.hpp configuration test program file ------------------------------//
|
||||
|
||||
// (C) Copyright Boost.org 2000. Permission to copy, use, modify, sell and
|
||||
// distribute this software is granted provided this copyright notice appears
|
||||
// in all copies. This software is provided "as is" without express or implied
|
||||
// warranty, and with no claim as to its suitability for any purpose.
|
||||
|
||||
// See http://www.boost.org for the most recent version.
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <iostream>
|
||||
|
||||
using std::cout;
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
# ifdef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
cout << "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZER
|
||||
cout << "BOOST_NO_INCLASS_MEMBER_INITIALIZER defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_MEMBER_TEMPLATES
|
||||
cout << "BOOST_NO_MEMBER_TEMPLATES defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
cout << "BOOST_NO_MEMBER_TEMPLATE_FRIENDS defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
cout << "BOOST_NO_OPERATORS_IN_NAMESPACE defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_STD_ITERATOR
|
||||
cout << "BOOST_NO_STD_ITERATOR defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_STD_ITERATOR_TRAITS
|
||||
cout << "BOOST_NO_STD_ITERATOR_TRAITS defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_STDC_NAMESPACE
|
||||
cout << "BOOST_NO_STDC_NAMESPACE defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
cout << "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_NO_USING_TEMPLATE
|
||||
cout << "BOOST_NO_USING_TEMPLATE defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_DECL_EXPORTS
|
||||
cout << "BOOST_DECL_EXPORTS defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_SYSTEM_HAS_STDINT_H
|
||||
cout << "BOOST_SYSTEM_HAS_STDINT_H defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef __GNUC__
|
||||
cout << "__GNUC__ defined as " << __GNUC__ << "\n";
|
||||
# endif
|
||||
|
||||
# ifdef __BORLANDC__
|
||||
cout << "__BORLANDC__ defined as " << __BORLANDC__ << "\n";
|
||||
# endif
|
||||
|
||||
# ifdef __MWERKS__
|
||||
cout << "__MWERKS__ defined as " << __MWERKS__ << "\n";
|
||||
# endif
|
||||
|
||||
# ifdef __SUNPRO_CC
|
||||
cout << "__SUNPRO_CC defined as " << __SUNPRO_CC << "\n";
|
||||
# endif
|
||||
|
||||
# ifdef _MSC_VER
|
||||
cout << "_MSC_VER defined as " << _MSC_VER << "\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_MSVC
|
||||
cout << "BOOST_MSVC defined as " << BOOST_MSVC << "\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
cout << "BOOST_MSVC6_MEMBER_TEMPLATES defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef BOOST_MSVC_STD_ITERATOR
|
||||
cout << "BOOST_MSVC_STD_ITERATOR defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef __SGI_STL_PORT
|
||||
cout << "__SGI_STL_PORT defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef __STL_NO_NAMESPACES
|
||||
cout << "__STL_NO_NAMESPACES defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef __STL_USE_NAMESPACES
|
||||
cout << "__STL_USE_NAMESPACES defined\n";
|
||||
# endif
|
||||
|
||||
# ifdef __STL_IMPORT_VENDOR_CSTD
|
||||
cout << "__STL_IMPORT_VENDOR_CSTD defined\n";
|
||||
# endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
62
doc/Jamfile.v2
Normal file
62
doc/Jamfile.v2
Normal file
@@ -0,0 +1,62 @@
|
||||
# Boost.Config
|
||||
#
|
||||
# Copyright (c) 2001 Beman Dawes
|
||||
# Copyright (c) 2001 Vesa Karvonen
|
||||
# Copyright (c) 2001 John Maddock
|
||||
#
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at
|
||||
# http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
# Quickbook
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
import quickbook ;
|
||||
|
||||
path-constant boost-images : ../../../doc/src/images ;
|
||||
|
||||
xml config
|
||||
:
|
||||
config.qbk
|
||||
;
|
||||
|
||||
boostbook standalone
|
||||
:
|
||||
config
|
||||
:
|
||||
<xsl:param>toc.max.depth=2
|
||||
<xsl:param>toc.section.depth=2
|
||||
<xsl:param>chunk.section.depth=1
|
||||
<xsl:param>boost.root=../../../..
|
||||
|
||||
# PDF Options:
|
||||
<format>pdf:<xsl:param>xep.extensions=1
|
||||
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
|
||||
<format>pdf:<xsl:param>fop.extensions=0
|
||||
<format>pdf:<xsl:param>fop1.extensions=0
|
||||
# No indent on body text:
|
||||
<format>pdf:<xsl:param>body.start.indent=0pt
|
||||
# Margin size:
|
||||
<format>pdf:<xsl:param>page.margin.inner=0.5in
|
||||
# Margin size:
|
||||
<format>pdf:<xsl:param>page.margin.outer=0.5in
|
||||
# Paper type = A4
|
||||
<format>pdf:<xsl:param>paper.type=A4
|
||||
# Yes, we want graphics for admonishments:
|
||||
<xsl:param>admon.graphics=1
|
||||
# Set this one for PDF generation *only*:
|
||||
# default pnd graphics are awful in PDF form,
|
||||
# better use SVG's instead:
|
||||
<format>pdf:<xsl:param>admon.graphics.extension=".svg"
|
||||
<format>pdf:<xsl:param>use.role.for.mediaobject=1
|
||||
<format>pdf:<xsl:param>preferred.mediaobject.role=print
|
||||
<format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
|
||||
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/config/doc/html
|
||||
;
|
||||
|
||||
|
||||
install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF ;
|
||||
explicit pdfinstall ;
|
||||
|
||||
|
||||
32
doc/acknowledgements.qbk
Normal file
32
doc/acknowledgements.qbk
Normal file
@@ -0,0 +1,32 @@
|
||||
[/
|
||||
Boost.Config
|
||||
|
||||
Copyright (c) 2001 Beman Dawes
|
||||
Copyright (c) 2001 Vesa Karvonen
|
||||
Copyright (c) 2001 John Maddock
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
]
|
||||
|
||||
[section Acknowledgements]
|
||||
|
||||
Beman Dawes provided the original `config.hpp` and part of this document.
|
||||
|
||||
Vesa Karvonen provided a description of the principles (see
|
||||
[link boost_config.rationale rationale]) and put together an early version of
|
||||
the current configuration setup.
|
||||
|
||||
John Maddock put together the configuration current code, the test
|
||||
programs, the configuration script and the reference section of this
|
||||
document.
|
||||
|
||||
Matias Capeletto converted the docs to quickbook format.
|
||||
|
||||
Numerous boost members, past and present, have contributed fixes to boost's
|
||||
configuration.
|
||||
|
||||
[endsect]
|
||||
|
||||
|
||||
65
doc/build_time.qbk
Normal file
65
doc/build_time.qbk
Normal file
@@ -0,0 +1,65 @@
|
||||
|
||||
[section:build_config Build Time Configuration]
|
||||
|
||||
There are times when you want to control whether a build target gets built or not, based
|
||||
on what features the compiler supports. For example, suppose you have a test file
|
||||
"test_constexpr_128.cpp" which requires three key features in order to build:
|
||||
|
||||
* The `constexpr` keyword as detected by BOOST_NO_CXX11_CONSTEXPR.
|
||||
* User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS.
|
||||
* The `__int128` data type, as detected by BOOST_HAS_INT128.
|
||||
|
||||
Clearly we know that if these features are not supported by the compiler, then
|
||||
there's simply no point in even trying to build the test program. The main advantages being:
|
||||
|
||||
* Faster compile times - build configuration uses lightweight tests the results of which are also cached.
|
||||
* Less noise in build output - there's no reason to be faced with pages of template
|
||||
instantiation backtrace if we know the file can never compile anyway.
|
||||
* Less noise in the online test results - the test will show up as blank, rather than as a fail
|
||||
in the online test matrix.
|
||||
* A better experience for end users building all of Boost, if those libraries which can not be built
|
||||
for the current target compiler are simply skipped, rather than generating pages of error output.
|
||||
|
||||
Returning to our example, the test case is probably executed in it's Jamfile via the "run" rule:
|
||||
|
||||
run test_constexpr_128.cpp ;
|
||||
|
||||
We now need to make this target conditional on the necessary features.
|
||||
We can do that by first importing the necessary rule at the start of the Jamfile:
|
||||
|
||||
import path-to-config-lib/checks/config : requires ;
|
||||
|
||||
Assuming that the test case is in the usual directory:
|
||||
|
||||
libs/yourlib/test
|
||||
|
||||
then the import rule will actually be:
|
||||
|
||||
import ../../config/checks/config : requires ;
|
||||
|
||||
Then add a "requires" rule invocation to the requirements section of the target:
|
||||
|
||||
run test_constexpr_128.cpp
|
||||
: : : #requirements:
|
||||
[ requires cxx11_constexpr cxx11_user_defined_literals int128 ] ;
|
||||
|
||||
Notice that multiple arguments can be added to the requires rule, and that these are
|
||||
always the same as the Boost.Config macro name, but in lower case and with the ['boost_no_]
|
||||
or ['boost_has_] prefix removed.
|
||||
|
||||
When building the above example, you will see at the start of the build process the results
|
||||
of the configuration, for example GCC in C++11 mode gives:
|
||||
|
||||
- Boost.Config Feature Check: int128 : yes
|
||||
- Boost.Config Feature Check: cxx11_constexpr : yes
|
||||
- Boost.Config Feature Check: cxx11_user_defined_literals : yes
|
||||
|
||||
That's all there is to this handy feature, should at any time you be unsure of the feature-test
|
||||
names you can pass to the "requires" rule, then search for the Boost.Config macro of interest in
|
||||
libs/config/checks/Jamfiles.v2, and the name of the feature check will follow it.
|
||||
|
||||
And finally, this feature is built around the Boost.Build built in rule ['check-target-builds]
|
||||
which can be used to perform more generalized build-time feature testing. The checks in this
|
||||
library are provided as a convenient shorthand without the need for you to write the test cases yourself.
|
||||
|
||||
[endsect]
|
||||
62
doc/config.qbk
Normal file
62
doc/config.qbk
Normal file
@@ -0,0 +1,62 @@
|
||||
[article Boost.Config
|
||||
[quickbook 1.4]
|
||||
[authors [Beman Dawes, Vesa Karvonen, John Maddock] ]
|
||||
[copyright 2001-2007 Beman Dawes, Vesa Karvonen, John Maddock]
|
||||
[category broken compiler workarounds]
|
||||
[id config]
|
||||
[dirname config]
|
||||
[purpose
|
||||
Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.
|
||||
]
|
||||
[source-mode c++]
|
||||
[license
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
[@http://www.boost.org/LICENSE_1_0.txt])
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
[/ Cited Boost resources ]
|
||||
|
||||
[def __BOOST_REGRESSION_TEST_DRIVER__ [@../../../../tools/regression/doc/index.html boost regression test driver]]
|
||||
[def __BOOST_CONFIG_HEADER__ [@../../../../boost/config.hpp <boost/config.hpp>]]
|
||||
[def __BOOST_CONFIG_USER_HEADER__ [@../../../../boost/config/user.hpp <boost/config/user.hpp>]]
|
||||
[def __BOOST_CONFIG_SUFFIX_HEADER__ [@../../../../boost/config/user.hpp <boost/config/suffix.hpp>]]
|
||||
[def __BOOST_CONFIG_DIR__ ['<boost-root>]`/boost/config/`]
|
||||
|
||||
|
||||
[/ Other web resources ]
|
||||
|
||||
[def __STL_PORT__ [@http://stlport.sourceforge.net STLport]]
|
||||
[def __BOOST_TRACKER__ [@https://svn.boost.org/trac/boost/newticket Trac]]
|
||||
[def __CORE_LANGUAGE_DR337__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337 Core Language DR337]]
|
||||
[def __PRINCIPLES_AND_PATTERNS_ARTICLE__ [@http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf following article]]
|
||||
|
||||
|
||||
[/ Icons ]
|
||||
|
||||
[def __NOTE__ [$images/note.png]]
|
||||
[def __ALERT__ [$images/caution.png]]
|
||||
[def __DETAIL__ [$images/note.png]]
|
||||
[def __TIP__ [$images/tip.png]]
|
||||
[def __QUESTION_MARK__ [$images/question.png]]
|
||||
[def __SPACE__ [$images/space.png]]
|
||||
[def __GO_TO__ [$images/callouts/R.png]]
|
||||
|
||||
|
||||
[/ Document files ]
|
||||
|
||||
|
||||
[include configuring_boost.qbk]
|
||||
[include macro_reference.qbk]
|
||||
[include build_time.qbk]
|
||||
[include cstdint.qbk]
|
||||
[include guidelines.qbk]
|
||||
[include rationale.qbk]
|
||||
[include acknowledgements.qbk]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
440
doc/configuring_boost.qbk
Normal file
440
doc/configuring_boost.qbk
Normal file
@@ -0,0 +1,440 @@
|
||||
[/
|
||||
Boost.Config
|
||||
|
||||
Copyright (c) 2001 Beman Dawes
|
||||
Copyright (c) 2001 Vesa Karvonen
|
||||
Copyright (c) 2001 John Maddock
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
]
|
||||
|
||||
|
||||
[section Configuring Boost for Your Platform]
|
||||
|
||||
|
||||
[section Using the default boost configuration]
|
||||
|
||||
Boost comes already configured for most common compilers and platforms; you
|
||||
should be able to use boost "as is". Since the compiler is configured
|
||||
separately from the standard library, the default configuration should work
|
||||
even if you replace the compiler's standard library with a third-party
|
||||
standard library (like __STL_PORT__).
|
||||
|
||||
Using boost "as is" without trying to reconfigure is the recommended method
|
||||
for using boost. You can, however, run the configure script if you want to,
|
||||
and there are regression tests provided that allow you to test the current
|
||||
boost configuration with your particular compiler setup.
|
||||
|
||||
Boost library users can request support for additional compilers or platforms
|
||||
by visiting our __BOOST_TRACKER__ and submitting a support request.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section The <boost/config.hpp> header]
|
||||
|
||||
Boost library implementations access configuration macros via
|
||||
|
||||
#include ``__BOOST_CONFIG_HEADER__``
|
||||
|
||||
While Boost library users are not required to include that file directly, or
|
||||
use those configuration macros, such use is acceptable. The configuration
|
||||
macros are documented as to their purpose, usage, and limitations which makes
|
||||
them usable by both Boost library and user code.
|
||||
|
||||
Boost [link config_info_macros informational] or [link config_helpers helper]
|
||||
macros are designed for use by Boost users as well as for our own internal use.
|
||||
Note however, that the [link config_features feature test] and
|
||||
[link config_defects defect test] macros were designed for internal use by
|
||||
Boost libraries, not user code, so they can change at any time (though no
|
||||
gratuitous changes are made to them). Boost library problems resulting from
|
||||
changes to the configuration macros are caught by the Boost regression tests,
|
||||
so the Boost libraries are updated to account for those changes. By contrast,
|
||||
Boost library user code can be adversely affected by changes to the macros
|
||||
without warning. The best way to keep abreast of changes to the macros used in
|
||||
user code is to monitor the discussions on the Boost developers list.
|
||||
|
||||
[endsect]
|
||||
|
||||
[#config_config_script]
|
||||
|
||||
[section Using the configure script]
|
||||
|
||||
[important
|
||||
This configure script only sets up the Boost headers for use with a particular
|
||||
compiler. It has no effect on Boost.Build, or how the libraries are built.
|
||||
]
|
||||
|
||||
If you know that boost is incorrectly configured for your particular setup, and
|
||||
you are on a UNIX like platform, then you may want to try and improve things by
|
||||
running the boost configure script. From a shell command prompt you will need to
|
||||
cd into ['<boost-root>]`/libs/config/` and type:
|
||||
|
||||
[: `sh ./configure` ]
|
||||
|
||||
you will see a list of the items being checked as the script works its way
|
||||
through the regression tests. Note that the configure script only really
|
||||
auto-detects your compiler if it's called g++, c++ or CC. If you are using
|
||||
some other compiler you will need to set one or more of the following
|
||||
environment variables:
|
||||
|
||||
|
||||
[table
|
||||
[[Variable][Description ]]
|
||||
[[CXX ][The name of the compiler, for example `c++`. ]]
|
||||
[[CXXFLAGS][The compiler flags to use, for example `-O2`. ]]
|
||||
[[LDFLAGS ][The linker flags to use, for example `-L/mypath`. ]]
|
||||
[[LIBS ][Any libraries to link in, for example `-lpthread`.]]
|
||||
]
|
||||
|
||||
For example to run the configure script with HP aCC, you might use something
|
||||
like:
|
||||
|
||||
export CXX="aCC"
|
||||
export CXXFLAGS="-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
|
||||
-DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"
|
||||
export LDFLAGS="-DAportable"
|
||||
export LIBS="-lpthread"
|
||||
sh ./configure
|
||||
|
||||
However you run the configure script, when it finishes you will find a
|
||||
new header -`user.hpp`- located in the ['<boost-root>]`/libs/config/`
|
||||
directory. [*Note that configure does not install this header into your
|
||||
boost include path by default]. This header contains all the options
|
||||
generated by the configure script, plus a header-section that contains
|
||||
the user settable options from the default version of
|
||||
__BOOST_CONFIG_USER_HEADER__ (located under __BOOST_CONFIG_DIR__).
|
||||
There are two ways you can use this header:
|
||||
|
||||
* [*Option 1:] copy the header into __BOOST_CONFIG_DIR__ so that it replaces
|
||||
the default user.hpp provided by boost. This option allows only one
|
||||
configure-generated setup; boost developers should avoid this option,
|
||||
as it incurs the danger of accidentally committing a configure-modified
|
||||
__BOOST_CONFIG_USER_HEADER__ to the svn repository (something you will not
|
||||
be thanked for!).
|
||||
|
||||
* [*Option 2:] give the header a more memorable name, and place it somewhere
|
||||
convenient; then, define the macro `BOOST_USER_CONFIG` to point to it. For
|
||||
example create a new sub-directory __BOOST_CONFIG_DIR__ `user/`, and copy
|
||||
the header there; for example as `multithread-gcc-config.hpp`. Then, when
|
||||
compiling add the command line option:
|
||||
`-DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>"`, and
|
||||
boost will use the new configuration header. This option allows you to
|
||||
generate more than one configuration header, and to keep them separate
|
||||
from the boost source - so that updates to the source do not interfere
|
||||
with your configuration.
|
||||
|
||||
[endsect]
|
||||
|
||||
[#config_user_settable]
|
||||
|
||||
[section User settable options]
|
||||
|
||||
There are some configuration-options that represent user choices, rather
|
||||
than compiler defects or platform specific options. These are listed in
|
||||
`<boost/config/user.hpp>` and at the start of a configure-generated `user.hpp`
|
||||
header. You can define these on the command line, or by editing
|
||||
`<boost/config/user.hpp>`, they are listed in the following table:
|
||||
|
||||
|
||||
|
||||
[table
|
||||
|
||||
[[Macro ][Description ]]
|
||||
|
||||
[[`BOOST_USER_CONFIG`][
|
||||
When defined, it should point to the name of the user configuration file
|
||||
to include prior to any boost configuration files. When not defined,
|
||||
defaults to [@../../../../boost/config/user.hpp `<boost/config/user.hpp>`].
|
||||
]]
|
||||
[[`BOOST_COMPILER_CONFIG`][
|
||||
When defined, it should point to the name of the compiler configuration
|
||||
file to use. Defining this cuts out the compiler selection logic, and
|
||||
eliminates the dependency on the header containing that logic. For
|
||||
example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
|
||||
to [@../../../../boost/config/compiler/gcc.hpp `<boost/config/compiler/gcc.hpp>`].
|
||||
]]
|
||||
[[`BOOST_STDLIB_CONFIG`][
|
||||
When defined, it should point to the name of the standard library
|
||||
configuration file to use. Defining this cuts out the standard library
|
||||
selection logic, and eliminates the dependency on the header containing
|
||||
that logic. For example if you are using STLport, then you could define
|
||||
`BOOST_STDLIB_CONFIG` to
|
||||
[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`].
|
||||
]]
|
||||
[[`BOOST_PLATFORM_CONFIG`][
|
||||
When defined, it should point to the name of the platform configuration
|
||||
file to use. Defining this cuts out the platform selection logic, and
|
||||
eliminates the dependency on the header containing that logic. For example
|
||||
if you are compiling on linux, then you could define `BOOST_PLATFORM_CONFIG`
|
||||
to [@../../../../boost/config/platform/linux.hpp `<boost/config/platform/linux.hpp>`].
|
||||
]]
|
||||
[[`BOOST_NO_COMPILER_CONFIG`][
|
||||
When defined, no compiler configuration file is selected or included,
|
||||
define when the compiler is fully conformant with the standard, or where
|
||||
the user header (see `BOOST_USER_CONFIG`), has had any options necessary
|
||||
added to it, for example by an autoconf generated configure script.
|
||||
]]
|
||||
[[`BOOST_NO_STDLIB_CONFIG` ][
|
||||
When defined, no standard library configuration file is selected or included,
|
||||
define when the standard library is fully conformant with the standard, or
|
||||
where the user header (see `BOOST_USER_CONFIG`), has had any options necessary
|
||||
added to it, for example by an autoconf generated configure script.
|
||||
]]
|
||||
[[`BOOST_NO_PLATFORM_CONFIG` ][
|
||||
When defined, no platform configuration file is selected or included,
|
||||
define when the platform is fully conformant with the standard (and has
|
||||
no useful extra features), or where the user header (see
|
||||
`BOOST_USER_CONFIG`), has had any options necessary added to it, for example
|
||||
by an autoconf generated configure script.
|
||||
]]
|
||||
[[`BOOST_NO_CONFIG` ][
|
||||
Equivalent to defining all of `BOOST_NO_COMPILER_CONFIG`,
|
||||
`BOOST_NO_STDLIB_CONFIG` and `BOOST_NO_PLATFORM_CONFIG`.
|
||||
]]
|
||||
[[`BOOST_STRICT_CONFIG` ][
|
||||
The normal behavior for compiler versions that are newer than the last
|
||||
known version, is to assume that they have all the same defects as the
|
||||
last known version. By setting this define, then compiler versions that
|
||||
are newer than the last known version are assumed to be fully conforming
|
||||
with the standard. This is probably most useful for boost developers or
|
||||
testers, and for those who want to use boost to test beta compiler versions.
|
||||
]]
|
||||
[[`BOOST_ASSERT_CONFIG` ][
|
||||
When this flag is set, if the config finds anything unknown, then it will
|
||||
stop with a #error rather than continue. Boost regression testers should
|
||||
set this define, as should anyone who wants to quickly check whether boost
|
||||
is supported on their platform.
|
||||
]]
|
||||
[[`BOOST_DISABLE_THREADS` ][
|
||||
When defined, disables threading support, even if the compiler in its
|
||||
current translation mode supports multiple threads.
|
||||
]]
|
||||
[[`BOOST_DISABLE_WIN32` ][
|
||||
When defined, disables the use of Win32 specific API's, even when these
|
||||
are available. Also has the effect of setting `BOOST_DISABLE_THREADS` unless
|
||||
`BOOST_HAS_PTHREADS` is set. This option may be set automatically by the
|
||||
config system when it detects that the compiler is in "strict mode".
|
||||
]]
|
||||
[[`BOOST_DISABLE_ABI_HEADERS`][
|
||||
Stops boost headers from including any prefix/suffix headers that normally
|
||||
control things like struct packing and alignment.
|
||||
]]
|
||||
[[`BOOST_ABI_PREFIX`][
|
||||
A prefix header to include in place of whatever boost.config would normally
|
||||
select, any replacement should set up struct packing and alignment options
|
||||
as required.
|
||||
]]
|
||||
[[`BOOST_ABI_SUFFIX` ][
|
||||
A suffix header to include in place of whatever boost.config would normally
|
||||
select, any replacement should undo the effects of the prefix header.
|
||||
]]
|
||||
[[`BOOST_ALL_DYN_LINK`][
|
||||
Forces all libraries that have separate source, to be linked as dll's rather
|
||||
than static libraries on Microsoft Windows (this macro is used to turn on
|
||||
`__declspec(dllimport)` modifiers, so that the compiler knows which symbols
|
||||
to look for in a dll rather than in a static library).
|
||||
Note that there may be some libraries that can only be statically linked
|
||||
(Boost.Test for example) and others which may only be dynamically linked
|
||||
(Boost.Thread for example), in these cases this macro has no effect.
|
||||
]]
|
||||
[[`BOOST_`['WHATEVER]`_DYN_LINK`][
|
||||
Forces library "whatever" to be linked as a dll rather than a static library
|
||||
on Microsoft Windows: replace the ['WHATEVER] part of the macro name with the
|
||||
name of the library that you want to dynamically link to, for example use
|
||||
`BOOST_DATE_TIME_DYN_LINK` or `BOOST_REGEX_DYN_LINK` etc (this macro is used
|
||||
to turn on `__declspec(dllimport)` modifiers, so that the compiler knows
|
||||
which symbols to look for in a dll rather than in a static library).
|
||||
Note that there may be some libraries that can only be statically linked
|
||||
(Boost.Test for example) and others which may only be dynamically linked
|
||||
(Boost.Thread for example), in these cases this macro is unsupported.
|
||||
]]
|
||||
[[`BOOST_ALL_NO_LIB`][
|
||||
Tells the config system not to automatically select which libraries to link
|
||||
against.
|
||||
Normally if a compiler supports #pragma lib, then the correct library build
|
||||
variant will be automatically selected and linked against, simply by the act
|
||||
of including one of that library's headers. This macro turns that
|
||||
feature off.
|
||||
]]
|
||||
[[`BOOST_`['WHATEVER]`_NO_LIB`][
|
||||
Tells the config system not to automatically select which library to link
|
||||
against for library "whatever", replace ['WHATEVER] in the macro name with the
|
||||
name of the library; for example `BOOST_DATE_TIME_NO_LIB` or `BOOST_REGEX_NO_LIB`.
|
||||
Normally if a compiler supports `#pragma lib`, then the correct library build
|
||||
variant will be automatically selected and linked against, simply by the
|
||||
act of including one of that library's headers. This macro turns that
|
||||
feature off.
|
||||
]]
|
||||
[[`BOOST_LIB_DIAGNOSTIC`][
|
||||
Causes the auto-linking code to output diagnostic messages indicating the
|
||||
name of the library that is selected for linking.
|
||||
]]
|
||||
[[`BOOST_LIB_BUILDID`][
|
||||
If you built Boost using the `--buildid` option then set this macro to the same value
|
||||
as you passed to bjam. For example if you built using `bjam address-model=64 --buildid=amd64`
|
||||
then compile your code with `-DBOOST_LIB_BUILDID=amd64` to ensure the correct libraries
|
||||
are selected at link time.
|
||||
]]
|
||||
[[`BOOST_LIB_TOOLSET`][
|
||||
Overrides the name of the toolset part of the name of library being linked
|
||||
to; note if defined this must be defined to a quoted string literal, for
|
||||
example "abc".
|
||||
]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Advanced configuration usage]
|
||||
|
||||
By setting various macros on the compiler command line or by editing
|
||||
__BOOST_CONFIG_USER_HEADER__, the boost configuration setup can be optimised
|
||||
in a variety of ways.
|
||||
|
||||
Boost's configuration is structured so that the user-configuration is
|
||||
included first (defaulting to __BOOST_CONFIG_USER_HEADER__ if `BOOST_USER_CONFIG`
|
||||
is not defined). This sets up any user-defined policies, and gives the
|
||||
user-configuration a chance to influence what happens next.
|
||||
|
||||
Next the compiler, standard library, and platform configuration files are
|
||||
included. These are included via macros (`BOOST_COMPILER_CONFIG` etc,
|
||||
[link config_user_settable see user settable macros]), and if the corresponding
|
||||
macro is undefined then a separate header that detects which compiler/standard
|
||||
library/platform is in use is included in order to set these. The config
|
||||
can be told to ignore these headers altogether if the corresponding
|
||||
`BOOST_NO_XXX` macro is set (for example `BOOST_NO_COMPILER_CONFIG` to
|
||||
disable including any compiler configuration file -
|
||||
[link config_user_settable see user settable macros]).
|
||||
|
||||
Finally the boost configuration header, includes __BOOST_CONFIG_SUFFIX_HEADER__;
|
||||
this header contains any boiler plate configuration code - for example where one
|
||||
boost macro being set implies that another must be set also.
|
||||
|
||||
The following usage examples represent just a few of the possibilities:
|
||||
|
||||
[section Example 1: creating our own frozen configuration]
|
||||
|
||||
Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0. Lets
|
||||
suppose also that we don't intend to update our compiler or standard library
|
||||
any time soon. In order to avoid breaking dependencies when we update boost,
|
||||
we may want to "freeze" our configuration headers, so that we only have to
|
||||
rebuild our project if the boost code itself has changed, and not because the
|
||||
boost config has been updated for more recent versions of Visual C++ or STLport.
|
||||
We'll start by realising that the configuration files in use are:
|
||||
[@../../../../boost/config/compiler/visualc.hpp `<boost/config/compiler/visualc.hpp>`]
|
||||
for the compiler,
|
||||
[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`]
|
||||
for the standard library, and
|
||||
[@../../../../boost/config/platform/win32.hpp `<boost/config/platform/win32.hpp>`]
|
||||
for the platform. Next we'll create our own private configuration directory:
|
||||
`boost/config/mysetup/`, and copy the configuration files into there. Finally,
|
||||
open up __BOOST_CONFIG_USER_HEADER__ and edit the following defines:
|
||||
|
||||
#define BOOST_COMPILER_CONFIG "boost/config/mysetup/visualc.hpp"
|
||||
#define BOOST_STDLIB_CONFIG "boost/config/mysetup/stlport.hpp"
|
||||
#define BOOST_USER_CONFIG "boost/config/mysetup/win32.hpp"
|
||||
|
||||
Now when you use boost, its configuration header will go straight to our "frozen"
|
||||
versions, and ignore the default versions, you will now be insulated from any
|
||||
configuration changes when you update boost. This technique is also useful if
|
||||
you want to modify some of the boost configuration files; for example if you are
|
||||
working with a beta compiler release not yet supported by boost.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Example 2: skipping files that you don't need]
|
||||
|
||||
Lets suppose that you're using boost with a compiler that is fully conformant with
|
||||
the standard; you're not interested in the fact that older versions of your compiler
|
||||
may have had bugs, because you know that your current version does not need any
|
||||
configuration macros setting. In a case like this, you can define
|
||||
`BOOST_NO_COMPILER_CONFIG` either on the command line, or in __BOOST_CONFIG_USER_HEADER__,
|
||||
and miss out the compiler configuration header altogether (actually you miss out
|
||||
two headers, one which works out what the compiler is, and one that configures
|
||||
boost for it). This has two consequences: the first is that less code has to be
|
||||
compiled, and the second that you have removed a dependency on two boost headers.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Example 3: using configure script to freeze the boost configuration]
|
||||
|
||||
If you are working on a unix-like platform then you can use the configure script to
|
||||
generate a "frozen" configuration based on your current compiler setup -
|
||||
[link config_config_script see using the configure script for more details].
|
||||
|
||||
[endsect]
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Testing the boost configuration]
|
||||
|
||||
The boost configuration library provides a full set of regression test programs
|
||||
under the __BOOST_CONFIG_DIR__ `test/` sub-directory:
|
||||
|
||||
|
||||
[table
|
||||
[[File][Description]]
|
||||
[[`config_info.cpp`][
|
||||
Prints out a detailed description of your compiler/standard library/platform
|
||||
setup, plus your current boost configuration. The information provided by this
|
||||
program is useful in setting up the boost configuration files. If you report that
|
||||
boost is incorrectly configured for your compiler/library/platform then please
|
||||
include the output from this program when reporting the changes required.
|
||||
]]
|
||||
[[`config_test.cpp`][
|
||||
A monolithic test program that includes most of the individual test cases.
|
||||
This provides a quick check to see if boost is correctly configured for your
|
||||
compiler/library/platform.
|
||||
]]
|
||||
[[`limits_test.cpp`][
|
||||
Tests your standard library's `std::numeric_limits` implementation (or its boost
|
||||
provided replacement if `BOOST_NO_LIMITS` is defined). This test file fails with
|
||||
most versions of numeric_limits, mainly due to the way that some compilers
|
||||
treat NAN's and infinity.
|
||||
]]
|
||||
[[`no_*pass.cpp`][
|
||||
Individual compiler defect test files. Each of these should compile, if one
|
||||
does not then the corresponding `BOOST_NO_XXX` macro needs to be defined - see
|
||||
each test file for specific details.
|
||||
]]
|
||||
[[`no_*fail.cpp`][
|
||||
Individual compiler defect test files. Each of these should not compile, if
|
||||
one does then the corresponding `BOOST_NO_XXX` macro is defined when it need
|
||||
not be - see each test file for specific details.
|
||||
]]
|
||||
[[`has_*pass.cpp`][
|
||||
Individual feature test files. If one of these does not compile then the
|
||||
corresponding `BOOST_HAS_XXX` macro is defined when it should not be - see
|
||||
each test file for specific details.
|
||||
]]
|
||||
[[`has_*fail.cpp`][
|
||||
Individual feature test files. If one of these does compile then the
|
||||
corresponding `BOOST_HAS_XXX` macro can be safely defined - see each test
|
||||
file for specific details.
|
||||
]]
|
||||
]
|
||||
|
||||
Although you can run the configuration regression tests as individual test
|
||||
files, there are rather a lot of them, so there are a couple of shortcuts to
|
||||
help you out:
|
||||
|
||||
If you have built the __BOOST_REGRESSION_TEST_DRIVER__, then you can use this to
|
||||
produce a nice html formatted report of the results using the supplied test file.
|
||||
|
||||
Alternatively you can run the configure script like this:
|
||||
|
||||
[: `./configure --enable-test`]
|
||||
|
||||
in which case the script will test the current configuration rather than
|
||||
creating a new one from scratch.
|
||||
|
||||
If you are reporting the results of these tests for a new
|
||||
platform/library/compiler then please include a log of the full compiler output,
|
||||
the output from `config_info.cpp`, and the pass/fail test results.
|
||||
|
||||
|
||||
[endsect]
|
||||
|
||||
[endsect]
|
||||
|
||||
139
doc/cstdint.qbk
Normal file
139
doc/cstdint.qbk
Normal file
@@ -0,0 +1,139 @@
|
||||
[section:cstdint Standard Integer Types]
|
||||
|
||||
[section Overview]
|
||||
|
||||
The header [^[@../../../../boost/cstdint.hpp <boost/cstdint.hpp>]] provides the typedef's useful
|
||||
for writing portable code that requires certain integer widths. All typedef's are in namespace boost.
|
||||
|
||||
The specifications for these types are based on the ISO/IEC 9899:1999 C Language standard header <stdint.h>.
|
||||
The 64-bit types required by the C standard are ['not required] in the boost header,
|
||||
and may not be supplied for all platforms/compilers, because [^long long] is not [yet] included in the C++ standard.
|
||||
|
||||
See [@../../test/cstdint_test.cpp cstdint_test.cpp] for a test program.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section:rationale Rationale]
|
||||
|
||||
The organization of the Boost.Integer headers and classes is designed to take advantage of <stdint.h> types from the
|
||||
1999 C standard without causing undefined behavior in terms of the 1998 C++ standard.
|
||||
The header <boost/cstdint.hpp> makes the standard integer types safely available in namespace [^boost]
|
||||
without placing any names in namespace [^std]. The intension is to complement rather than compete
|
||||
with the C++ Standard Library. Should some future C++ standard include <stdint.h> and <cstdint>,
|
||||
then <boost/cstdint.hpp> will continue to function, but will become redundant and may be safely deprecated.
|
||||
|
||||
Because these are boost headers, their names conform to boost header naming conventions rather than
|
||||
C++ Standard Library header naming conventions.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section:ce ['Caveat emptor]]
|
||||
|
||||
As an implementation artifact, certain C <limits.h> macro names may possibly be
|
||||
visible to users of <boost/cstdint.hpp>. Don't use these macros; they are not part of
|
||||
any Boost-specified interface. Use [^boost::integer_traits<>] or [^std::numeric_limits<>] instead.
|
||||
|
||||
As another implementation artifact, certain C <stdint.h> typedef names may possibly be visible
|
||||
in the global namespace to users of <boost/cstdint.hpp>. Don't use these names, they are not part of
|
||||
any Boost-specified interface. Use the respective names in namespace [^boost] instead.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Exact-width integer types]
|
||||
|
||||
The typedef [^int#_t], with # replaced by the width, designates a signed integer type of exactly # bits;
|
||||
for example [^int8_t] denotes an 8-bit signed integer type. Similarly, the typedef [^uint#_t] designates an unsigned
|
||||
integer type of exactly # bits.
|
||||
|
||||
These types are optional. However, if a platform supports integer types with widths of
|
||||
8, 16, 32, 64, or any combination thereof, then <boost/cstdint.hpp> does provide the
|
||||
corresponding typedefs.
|
||||
|
||||
The absence of int64_t and uint64_t is indicated by the macro `BOOST_NO_INT64_T`.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Minimum-width integer types]
|
||||
|
||||
The typedef [^int_least#_t], with # replaced by the width, designates a signed integer type with a width
|
||||
of at least # bits, such that no signed integer type with lesser size has at least the specified width.
|
||||
Thus, [^int_least32_t] denotes the smallest signed integer type with a width of at least 32 bits.
|
||||
Similarly, the typedef name [^uint_least#_t] designates an unsigned integer type with a width of at least # bits,
|
||||
such that no unsigned integer type with lesser size has at least the specified width.
|
||||
|
||||
The following minimum-width integer types are provided for all platforms:
|
||||
|
||||
* [^int_least8_t]
|
||||
* [^int_least16_t]
|
||||
* [^int_least32_t]
|
||||
* [^uint_least8_t]
|
||||
* [^uint_least16_t]
|
||||
* [^uint_least32_t]
|
||||
|
||||
The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
|
||||
|
||||
* [^int_least64_t]
|
||||
* [^uint_least64_t]
|
||||
|
||||
|
||||
All other minimum-width integer types are optional.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Fastest minimum-width integer types]
|
||||
|
||||
The typedef [^int_fast#_t], with # replaced by the width, designates the fastest signed integer type
|
||||
with a width of at least # bits. Similarly, the typedef name [^uint_fast#_t] designates the fastest
|
||||
unsigned integer type with a width of at least # bits.
|
||||
|
||||
There is no guarantee that these types are fastest for all purposes. In any case, however, they satisfy
|
||||
the signedness and width requirements.
|
||||
|
||||
The following fastest minimum-width integer types are provided for all platforms:
|
||||
|
||||
* [^int_fast8_t]
|
||||
* [^int_fast16_t]
|
||||
* [^int_fast32_t]
|
||||
* [^uint_fast8_t]
|
||||
* [^uint_fast16_t]
|
||||
* [^uint_fast32_t]
|
||||
|
||||
The following types are available only if, after including <boost/cstdint.hpp>, the macro BOOST_NO_INT64_T is not defined:
|
||||
|
||||
* [^int_fast64_t]
|
||||
* [^uint_fast64_t]
|
||||
|
||||
All other fastest minimum-width integer types are optional.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Greatest-width integer types]
|
||||
|
||||
The typedef [^intmax_t ]designates a signed integer type capable of representing any value of any signed integer type.
|
||||
|
||||
The typedef [^uintmax_t] designates an unsigned integer type capable of representing any value of any unsigned integer type.
|
||||
|
||||
These types are provided for all platforms.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Integer Constant Macros]
|
||||
|
||||
The following macros are always defined after inclusion of this header, these allow
|
||||
integer constants of at least the specified width to be declared:
|
||||
INT8_C, UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
|
||||
|
||||
The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T is not defined.
|
||||
|
||||
The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the implementation.
|
||||
|
||||
For example:
|
||||
|
||||
#include <boost/cstdint.hpp>
|
||||
|
||||
// Here the constant 0x1FFFFFFFF has the correct suffix applied:
|
||||
static const boost::uint64_t c = INT64_C(0x1FFFFFFFF);
|
||||
|
||||
[endsect]
|
||||
|
||||
[endsect]
|
||||
219
doc/guidelines.qbk
Normal file
219
doc/guidelines.qbk
Normal file
@@ -0,0 +1,219 @@
|
||||
[/
|
||||
Boost.Config
|
||||
|
||||
Copyright (c) 2001 Beman Dawes
|
||||
Copyright (c) 2001 Vesa Karvonen
|
||||
Copyright (c) 2001 John Maddock
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
]
|
||||
|
||||
|
||||
|
||||
[section Guidelines for Boost Authors]
|
||||
|
||||
The __BOOST_CONFIG_HEADER__ header is used to pass configuration information
|
||||
to other boost files, allowing them to cope with platform dependencies such
|
||||
as arithmetic byte ordering, compiler pragmas, or compiler shortcomings.
|
||||
Without such configuration information, many current compilers would not work
|
||||
with the Boost libraries.
|
||||
|
||||
Centralizing configuration information in this header reduces the number of
|
||||
files that must be modified when porting libraries to new platforms, or when
|
||||
compilers are updated. Ideally, no other files would have to be modified when
|
||||
porting to a new platform.
|
||||
|
||||
Configuration headers are controversial because some view them as condoning
|
||||
broken compilers and encouraging non-standard subsets. Adding settings for
|
||||
additional platforms and maintaining existing settings can also be a problem.
|
||||
In other words, configuration headers are a necessary evil rather than a
|
||||
desirable feature. The boost config.hpp policy is designed to minimize the
|
||||
problems and maximize the benefits of a configuration header.
|
||||
|
||||
Note that:
|
||||
|
||||
* Boost library implementers are not required to "`#include <boost/config.hpp>`",
|
||||
and are not required in any way to support compilers that do not comply
|
||||
with the C++ Standard (ISO/IEC 14882).
|
||||
* If a library implementer wishes to support some non-conforming compiler,
|
||||
or to support some platform specific feature, "`#include <boost/config.hpp>`"
|
||||
is the preferred way to obtain configuration information not available from
|
||||
the standard headers such as `<climits>`, etc.
|
||||
* If configuration information can be deduced from standard headers such as
|
||||
`<climits>`, use those standard headers rather than `<boost/config.hpp>`.
|
||||
* Boost files that use macros defined in `<boost/config.hpp>` should have
|
||||
sensible, standard conforming, default behavior if the macro is not defined.
|
||||
This means that the starting point for porting `<boost/config.hpp>` to a new
|
||||
platform is simply to define nothing at all specific to that platform. In
|
||||
the rare case where there is no sensible default behavior, an #error message
|
||||
should describe the problem.
|
||||
* If a Boost library implementer wants something added to `config.hpp`, post
|
||||
a request on the Boost mailing list. There is no guarantee such a request
|
||||
will be honored; the intent is to limit the complexity of config.hpp.
|
||||
* The intent is to support only compilers which appear on their way to
|
||||
becoming C++ Standard compliant, and only recent releases of those compilers
|
||||
at that.
|
||||
* The intent is not to disable mainstream features now well-supported by the
|
||||
majority of compilers, such as namespaces, exceptions, RTTI, or templates.
|
||||
|
||||
|
||||
[section:warnings Disabling Compiler Warnings]
|
||||
|
||||
The header `<boost/config/warning_disable.hpp>` can be used to disable
|
||||
certain compiler warnings that are hard or impossible to otherwise remove.
|
||||
|
||||
Note that:
|
||||
|
||||
* This header [*['should never be included by another Boost header]], it should
|
||||
only ever be used by a library source file or a test case.
|
||||
* The header should be included [*['before you include any other header]].
|
||||
* This header only disables warnings that are hard or impossible to otherwise
|
||||
deal with, and which are typically emitted by one compiler only, or
|
||||
in one compilers own standard library headers.
|
||||
|
||||
Currently it disables the following warnings:
|
||||
|
||||
[table
|
||||
[[Compiler][Warning]]
|
||||
[[Visual C++ 8 and later][[@http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx C4996]: Error 'function': was declared deprecated]]
|
||||
[[Intel C++][Warning 1786: relates to the use of "deprecated" standard
|
||||
library functions rather like C4996 in Visual C++.]]
|
||||
]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
||||
[section Adding New Defect Macros]
|
||||
|
||||
When you need to add a new defect macro - either to fix a problem with an
|
||||
existing library, or when adding a new library - distil the issue down to
|
||||
a simple test case; often, at this point other (possibly better) workarounds
|
||||
may become apparent. Secondly always post the test case code to the boost
|
||||
mailing list and invite comments; remember that C++ is complex and that
|
||||
sometimes what may appear a defect, may in fact turn out to be a problem
|
||||
with the authors understanding of the standard.
|
||||
|
||||
When you name the macro, follow the `BOOST_NO_`['SOMETHING] naming
|
||||
convention, so that it's obvious that this is a macro reporting a defect.
|
||||
|
||||
Finally, add the test program to the regression tests. You will need to
|
||||
place the test case in a `.ipp` file with the following comments near the top:
|
||||
|
||||
// MACRO: BOOST_NO_FOO
|
||||
// TITLE: foo
|
||||
// DESCRIPTION: If the compiler fails to support foo
|
||||
|
||||
These comments are processed by the autoconf script, so make sure the format
|
||||
follows the one given. The file should be named "`boost_no_foo.ipp`", where foo
|
||||
is the defect description - try and keep the file name under the Mac 30 character
|
||||
filename limit though. You will also need to provide a function prototype
|
||||
"`int test()`" that is declared in a namespace with the same name as the macro,
|
||||
but in all lower case, and which returns zero on success:
|
||||
|
||||
|
||||
namespace boost_no_foo {
|
||||
int test()
|
||||
{
|
||||
// test code goes here:
|
||||
//
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Once the test code is in place in libs/config/test, updating the configuration
|
||||
test system proceeds as:
|
||||
|
||||
* cd into `libs/config/tools` and run `bjam`. This generates the `.cpp`
|
||||
file test cases from the `.ipp` file, updates the
|
||||
libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.[br][br]
|
||||
|
||||
* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`], where
|
||||
['MACRONAME] is the name of the new macro, and ['`compiler-list`] is a space separated list of
|
||||
compilers to test with.[br][br]
|
||||
The xxx_pass_test and the xxx_fail_test [*should both report `**passed**`].[br][br]
|
||||
If ['MACRONAME] is not defined when it should be defined, xxx_pass_test will not report `**passed**`.
|
||||
If ['MACRONAME] is defined when it should not be defined, xxx_fail_test will not report `**passed**`.[br][br]
|
||||
|
||||
* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`].
|
||||
`config_info` should build and run cleanly for all the compilers in ['`compiler-list`]
|
||||
while `config_test` should fail for those that have the defect, and pass for those
|
||||
that do not.
|
||||
|
||||
Then you should:
|
||||
|
||||
* Define the defect macro in those config headers that require it.
|
||||
* Document the macro in this documentation (please do not forget this step!!)
|
||||
* Commit everything.
|
||||
* Keep an eye on the regression tests for new failures in Boost.Config caused by
|
||||
the addition.
|
||||
* Start using the macro.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Adding New Feature Test Macros]
|
||||
|
||||
When you need to add a macro that describes a feature that the standard does
|
||||
not require, follow the convention for adding a new defect macro (above), but
|
||||
call the macro `BOOST_HAS_FOO`, and name the test file "`boost_has_foo.ipp`".
|
||||
Try not to add feature test macros unnecessarily, if there is a platform
|
||||
specific macro that can already be used (for example `_WIN32`, `__BEOS__`, or
|
||||
`__linux`) to identify the feature then use that. Try to keep the macro to a
|
||||
feature group, or header name, rather than one specific API (for example
|
||||
`BOOST_HAS_NL_TYPES_H` rather than `BOOST_HAS_CATOPEN`). If the macro
|
||||
describes a POSIX feature group, then add boilerplate code to
|
||||
__BOOST_CONFIG_SUFFIX_HEADER__ to auto-detect the feature where possible
|
||||
(if you are wondering why we can't use POSIX feature test macro directly,
|
||||
remember that many of these features can be added by third party libraries,
|
||||
and are not therefore identified inside `<unistd.h>`).
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Modifying the Boost Configuration Headers]
|
||||
|
||||
The aim of boost's configuration setup is that the configuration headers should
|
||||
be relatively stable - a boost user should not have to recompile their code
|
||||
just because the configuration for some compiler that they're not interested
|
||||
in has changed. Separating the configuration into separate compiler/standard
|
||||
library/platform sections provides for part of this stability, but boost
|
||||
authors require some amount of restraint as well, in particular:
|
||||
|
||||
__BOOST_CONFIG_HEADER__ should never change, don't alter this file.
|
||||
|
||||
__BOOST_CONFIG_USER_HEADER__ is included by default, don't add extra code to
|
||||
this file unless you have to. If you do, please remember to update
|
||||
[@../../tools/configure.in libs/config/tools/configure.in] as well.
|
||||
|
||||
__BOOST_CONFIG_SUFFIX_HEADER__ is always included so be careful about
|
||||
modifying this file as it breaks dependencies for everyone. This file should
|
||||
include only "boilerplate" configuration code, and generally should change
|
||||
only when new macros are added.
|
||||
|
||||
[@../../../../boost/config/select_compiler_config.hpp <boost/config/select_compiler_config.hpp>],
|
||||
[@../../../../boost/config/select_platform_config.hpp <boost/config/select_platform_config.hpp>] and
|
||||
[@../../../../boost/config/select_stdlib_config.hpp <boost/config/select_stdlib_config.hpp>]
|
||||
are included by default and should change only if support for a new
|
||||
compiler/standard library/platform is added.
|
||||
|
||||
The compiler/platform/standard library selection code is set up so that unknown
|
||||
platforms are ignored and assumed to be fully standards compliant - this gives
|
||||
unknown platforms a "sporting chance" of working "as is" even without running
|
||||
the configure script.
|
||||
|
||||
When adding or modifying the individual mini-configs, assume that future, as
|
||||
yet unreleased versions of compilers, have all the defects of the current
|
||||
version. Although this is perhaps unnecessarily pessimistic, it cuts down on
|
||||
the maintenance of these files, and experience suggests that pessimism is
|
||||
better placed than optimism here!
|
||||
|
||||
[endsect]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5
doc/html/HTML.manifest
Normal file
5
doc/html/HTML.manifest
Normal file
@@ -0,0 +1,5 @@
|
||||
index.html
|
||||
boost_config/boost_macro_reference.html
|
||||
boost_config/guidelines_for_boost_authors.html
|
||||
boost_config/rationale.html
|
||||
boost_config/acknowledgements.html
|
||||
62
doc/html/boost_config/acknowledgements.html
Normal file
62
doc/html/boost_config/acknowledgements.html
Normal file
@@ -0,0 +1,62 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Acknowledgements</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="rationale.html" title="Rationale">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
Beman Dawes provided the original <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> and
|
||||
part of this document.
|
||||
</p>
|
||||
<p>
|
||||
Vesa Karvonen provided a description of the principles (see <a class="link" href="rationale.html" title="Rationale">rationale</a>)
|
||||
and put together an early version of the current configuration setup.
|
||||
</p>
|
||||
<p>
|
||||
John Maddock put together the configuration current code, the test programs,
|
||||
the configuration script and the reference section of this document.
|
||||
</p>
|
||||
<p>
|
||||
Matias Capeletto converted the docs to quickbook format.
|
||||
</p>
|
||||
<p>
|
||||
Numerous boost members, past and present, have contributed fixes to boost's
|
||||
configuration.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
5964
doc/html/boost_config/boost_macro_reference.html
Normal file
5964
doc/html/boost_config/boost_macro_reference.html
Normal file
File diff suppressed because it is too large
Load Diff
144
doc/html/boost_config/build_config.html
Normal file
144
doc/html/boost_config/build_config.html
Normal file
@@ -0,0 +1,144 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Build Time Configuration</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
|
||||
<link rel="next" href="cstdint.html" title="Standard Integer Types">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cstdint.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.build_config"></a><a class="link" href="build_config.html" title="Build Time Configuration">Build Time Configuration</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
There are times when you want to control whether a build target gets built
|
||||
or not, based on what features the compiler supports. For example, suppose
|
||||
you have a test file "test_constexpr_128.cpp" which requires three
|
||||
key features in order to build:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
The <code class="computeroutput"><span class="keyword">constexpr</span></code> keyword as detected
|
||||
by BOOST_NO_CXX11_CONSTEXPR.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
User defined literals, as detected by BOOST_NO_CXX11_USER_DEFINED_LITERALS.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The <code class="computeroutput"><span class="identifier">__int128</span></code> data type,
|
||||
as detected by BOOST_HAS_INT128.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Clearly we know that if these features are not supported by the compiler, then
|
||||
there's simply no point in even trying to build the test program. The main
|
||||
advantages being:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
Faster compile times - build configuration uses lightweight tests the results
|
||||
of which are also cached.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Less noise in build output - there's no reason to be faced with pages of
|
||||
template instantiation backtrace if we know the file can never compile
|
||||
anyway.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Less noise in the online test results - the test will show up as blank,
|
||||
rather than as a fail in the online test matrix.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
A better experience for end users building all of Boost, if those libraries
|
||||
which can not be built for the current target compiler are simply skipped,
|
||||
rather than generating pages of error output.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Returning to our example, the test case is probably executed in it's Jamfile
|
||||
via the "run" rule:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">run</span> <span class="identifier">test_constexpr_128</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
We now need to make this target conditional on the necessary features. We can
|
||||
do that by first importing the necessary rule at the start of the Jamfile:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">import</span> <span class="identifier">path</span><span class="special">-</span><span class="identifier">to</span><span class="special">-</span><span class="identifier">config</span><span class="special">-</span><span class="identifier">lib</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">config</span> <span class="special">:</span> <span class="identifier">requires</span> <span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
Assuming that the test case is in the usual directory:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">yourlib</span><span class="special">/</span><span class="identifier">test</span>
|
||||
</pre>
|
||||
<p>
|
||||
then the import rule will actually be:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">import</span> <span class="special">../../</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">checks</span><span class="special">/</span><span class="identifier">config</span> <span class="special">:</span> <span class="identifier">requires</span> <span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
Then add a "requires" rule invocation to the requirements section
|
||||
of the target:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">run</span> <span class="identifier">test_constexpr_128</span><span class="special">.</span><span class="identifier">cpp</span>
|
||||
<span class="special">:</span> <span class="special">:</span> <span class="special">:</span> <span class="special">#</span><span class="identifier">requirements</span><span class="special">:</span>
|
||||
<span class="special">[</span> <span class="identifier">requires</span> <span class="identifier">cxx11_constexpr</span> <span class="identifier">cxx11_user_defined_literals</span> <span class="identifier">int128</span> <span class="special">]</span> <span class="special">;</span>
|
||||
</pre>
|
||||
<p>
|
||||
Notice that multiple arguments can be added to the requires rule, and that
|
||||
these are always the same as the Boost.Config macro name, but in lower case
|
||||
and with the <span class="emphasis"><em>boost_no_</em></span> or <span class="emphasis"><em>boost_has_</em></span>
|
||||
prefix removed.
|
||||
</p>
|
||||
<p>
|
||||
When building the above example, you will see at the start of the build process
|
||||
the results of the configuration, for example GCC in C++11 mode gives:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">int128</span> <span class="special">:</span> <span class="identifier">yes</span>
|
||||
<span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">cxx11_constexpr</span> <span class="special">:</span> <span class="identifier">yes</span>
|
||||
<span class="special">-</span> <span class="identifier">Boost</span><span class="special">.</span><span class="identifier">Config</span> <span class="identifier">Feature</span> <span class="identifier">Check</span><span class="special">:</span> <span class="identifier">cxx11_user_defined_literals</span> <span class="special">:</span> <span class="identifier">yes</span>
|
||||
</pre>
|
||||
<p>
|
||||
That's all there is to this handy feature, should at any time you be unsure
|
||||
of the feature-test names you can pass to the "requires" rule, then
|
||||
search for the Boost.Config macro of interest in libs/config/checks/Jamfiles.v2,
|
||||
and the name of the feature check will follow it.
|
||||
</p>
|
||||
<p>
|
||||
And finally, this feature is built around the Boost.Build built in rule <span class="emphasis"><em>check-target-builds</em></span>
|
||||
which can be used to perform more generalized build-time feature testing. The
|
||||
checks in this library are provided as a convenient shorthand without the need
|
||||
for you to write the test cases yourself.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cstdint.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
289
doc/html/boost_config/cstdint.html
Normal file
289
doc/html/boost_config/cstdint.html
Normal file
@@ -0,0 +1,289 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Standard Integer Types</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="build_config.html" title="Build Time Configuration">
|
||||
<link rel="next" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.cstdint"></a><a class="link" href="cstdint.html" title="Standard Integer Types">Standard Integer Types</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.rationale">Rationale</a></span></dt>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.ce"><span class="emphasis"><em>Caveat emptor</em></span></a></span></dt>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.exact_width_integer_types">Exact-width
|
||||
integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.minimum_width_integer_types">Minimum-width
|
||||
integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types">Fastest
|
||||
minimum-width integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.greatest_width_integer_types">Greatest-width
|
||||
integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
|
||||
Constant Macros</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.overview"></a><a class="link" href="cstdint.html#boost_config.cstdint.overview" title="Overview">Overview</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The header <code class="literal"><a href="../../../../../boost/cstdint.hpp" target="_top"><boost/cstdint.hpp></a></code>
|
||||
provides the typedef's useful for writing portable code that requires certain
|
||||
integer widths. All typedef's are in namespace boost.
|
||||
</p>
|
||||
<p>
|
||||
The specifications for these types are based on the ISO/IEC 9899:1999 C Language
|
||||
standard header <stdint.h>. The 64-bit types required by the C standard
|
||||
are <span class="emphasis"><em>not required</em></span> in the boost header, and may not be
|
||||
supplied for all platforms/compilers, because <code class="literal">long long</code>
|
||||
is not [yet] included in the C++ standard.
|
||||
</p>
|
||||
<p>
|
||||
See <a href="../../../test/cstdint_test.cpp" target="_top">cstdint_test.cpp</a> for
|
||||
a test program.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.rationale"></a><a class="link" href="cstdint.html#boost_config.cstdint.rationale" title="Rationale">Rationale</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The organization of the Boost.Integer headers and classes is designed to
|
||||
take advantage of <stdint.h> types from the 1999 C standard without
|
||||
causing undefined behavior in terms of the 1998 C++ standard. The header
|
||||
<boost/cstdint.hpp> makes the standard integer types safely available
|
||||
in namespace <code class="literal">boost</code> without placing any names in namespace
|
||||
<code class="literal">std</code>. The intension is to complement rather than compete
|
||||
with the C++ Standard Library. Should some future C++ standard include <stdint.h>
|
||||
and <cstdint>, then <boost/cstdint.hpp> will continue to function,
|
||||
but will become redundant and may be safely deprecated.
|
||||
</p>
|
||||
<p>
|
||||
Because these are boost headers, their names conform to boost header naming
|
||||
conventions rather than C++ Standard Library header naming conventions.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.ce"></a><a class="link" href="cstdint.html#boost_config.cstdint.ce" title="Caveat emptor"><span class="emphasis"><em>Caveat emptor</em></span></a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
As an implementation artifact, certain C <limits.h> macro names may
|
||||
possibly be visible to users of <boost/cstdint.hpp>. Don't use these
|
||||
macros; they are not part of any Boost-specified interface. Use <code class="literal">boost::integer_traits<></code>
|
||||
or <code class="literal">std::numeric_limits<></code> instead.
|
||||
</p>
|
||||
<p>
|
||||
As another implementation artifact, certain C <stdint.h> typedef names
|
||||
may possibly be visible in the global namespace to users of <boost/cstdint.hpp>.
|
||||
Don't use these names, they are not part of any Boost-specified interface.
|
||||
Use the respective names in namespace <code class="literal">boost</code> instead.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.exact_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.exact_width_integer_types" title="Exact-width integer types">Exact-width
|
||||
integer types</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The typedef <code class="literal">int#_t</code>, with # replaced by the width, designates
|
||||
a signed integer type of exactly # bits; for example <code class="literal">int8_t</code>
|
||||
denotes an 8-bit signed integer type. Similarly, the typedef <code class="literal">uint#_t</code>
|
||||
designates an unsigned integer type of exactly # bits.
|
||||
</p>
|
||||
<p>
|
||||
These types are optional. However, if a platform supports integer types with
|
||||
widths of 8, 16, 32, 64, or any combination thereof, then <boost/cstdint.hpp>
|
||||
does provide the corresponding typedefs.
|
||||
</p>
|
||||
<p>
|
||||
The absence of int64_t and uint64_t is indicated by the macro <code class="computeroutput"><span class="identifier">BOOST_NO_INT64_T</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.minimum_width_integer_types" title="Minimum-width integer types">Minimum-width
|
||||
integer types</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The typedef <code class="literal">int_least#_t</code>, with # replaced by the width,
|
||||
designates a signed integer type with a width of at least # bits, such that
|
||||
no signed integer type with lesser size has at least the specified width.
|
||||
Thus, <code class="literal">int_least32_t</code> denotes the smallest signed integer
|
||||
type with a width of at least 32 bits. Similarly, the typedef name <code class="literal">uint_least#_t</code>
|
||||
designates an unsigned integer type with a width of at least # bits, such
|
||||
that no unsigned integer type with lesser size has at least the specified
|
||||
width.
|
||||
</p>
|
||||
<p>
|
||||
The following minimum-width integer types are provided for all platforms:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
<code class="literal">int_least8_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">int_least16_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">int_least32_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_least8_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_least16_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_least32_t</code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
The following types are available only if, after including <boost/cstdint.hpp>,
|
||||
the macro BOOST_NO_INT64_T is not defined:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
<code class="literal">int_least64_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_least64_t</code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
All other minimum-width integer types are optional.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.fastest_minimum_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types" title="Fastest minimum-width integer types">Fastest
|
||||
minimum-width integer types</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The typedef <code class="literal">int_fast#_t</code>, with # replaced by the width,
|
||||
designates the fastest signed integer type with a width of at least # bits.
|
||||
Similarly, the typedef name <code class="literal">uint_fast#_t</code> designates the
|
||||
fastest unsigned integer type with a width of at least # bits.
|
||||
</p>
|
||||
<p>
|
||||
There is no guarantee that these types are fastest for all purposes. In any
|
||||
case, however, they satisfy the signedness and width requirements.
|
||||
</p>
|
||||
<p>
|
||||
The following fastest minimum-width integer types are provided for all platforms:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
<code class="literal">int_fast8_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">int_fast16_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">int_fast32_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_fast8_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_fast16_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_fast32_t</code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
The following types are available only if, after including <boost/cstdint.hpp>,
|
||||
the macro BOOST_NO_INT64_T is not defined:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
<code class="literal">int_fast64_t</code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="literal">uint_fast64_t</code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
All other fastest minimum-width integer types are optional.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.greatest_width_integer_types"></a><a class="link" href="cstdint.html#boost_config.cstdint.greatest_width_integer_types" title="Greatest-width integer types">Greatest-width
|
||||
integer types</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The typedef <code class="literal">intmax_t </code>designates a signed integer type
|
||||
capable of representing any value of any signed integer type.
|
||||
</p>
|
||||
<p>
|
||||
The typedef <code class="literal">uintmax_t</code> designates an unsigned integer type
|
||||
capable of representing any value of any unsigned integer type.
|
||||
</p>
|
||||
<p>
|
||||
These types are provided for all platforms.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.cstdint.integer_constant_macros"></a><a class="link" href="cstdint.html#boost_config.cstdint.integer_constant_macros" title="Integer Constant Macros">Integer
|
||||
Constant Macros</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The following macros are always defined after inclusion of this header, these
|
||||
allow integer constants of at least the specified width to be declared: INT8_C,
|
||||
UINT8_C, INT16_C, UINT16_C, INT32_C, UINT32_C, INTMAX_C, UINTMAX_C.
|
||||
</p>
|
||||
<p>
|
||||
The macros INT64_C and UINT64_C are also defined if the the macro BOOST_NO_INT64_T
|
||||
is not defined.
|
||||
</p>
|
||||
<p>
|
||||
The C99 macro __STDC_CONSTANT_MACROS is also defined as an artifact of the
|
||||
implementation.
|
||||
</p>
|
||||
<p>
|
||||
For example:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
|
||||
<span class="comment">// Here the constant 0x1FFFFFFFF has the correct suffix applied:</span>
|
||||
<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <span class="identifier">c</span> <span class="special">=</span> <span class="identifier">INT64_C</span><span class="special">(</span><span class="number">0</span><span class="identifier">x1FFFFFFFF</span><span class="special">);</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="build_config.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
377
doc/html/boost_config/guidelines_for_boost_authors.html
Normal file
377
doc/html/boost_config/guidelines_for_boost_authors.html
Normal file
@@ -0,0 +1,377 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Guidelines for Boost Authors</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="cstdint.html" title="Standard Integer Types">
|
||||
<link rel="next" href="rationale.html" title="Rationale">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
|
||||
Boost Authors</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
|
||||
Compiler Warnings</a></span></dt>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
|
||||
New Defect Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
|
||||
New Feature Test Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers">Modifying
|
||||
the Boost Configuration Headers</a></span></dt>
|
||||
</dl></div>
|
||||
<p>
|
||||
The <a href="../../../../../boost/config.hpp" target="_top"><boost/config.hpp></a>
|
||||
header is used to pass configuration information to other boost files, allowing
|
||||
them to cope with platform dependencies such as arithmetic byte ordering, compiler
|
||||
pragmas, or compiler shortcomings. Without such configuration information,
|
||||
many current compilers would not work with the Boost libraries.
|
||||
</p>
|
||||
<p>
|
||||
Centralizing configuration information in this header reduces the number of
|
||||
files that must be modified when porting libraries to new platforms, or when
|
||||
compilers are updated. Ideally, no other files would have to be modified when
|
||||
porting to a new platform.
|
||||
</p>
|
||||
<p>
|
||||
Configuration headers are controversial because some view them as condoning
|
||||
broken compilers and encouraging non-standard subsets. Adding settings for
|
||||
additional platforms and maintaining existing settings can also be a problem.
|
||||
In other words, configuration headers are a necessary evil rather than a desirable
|
||||
feature. The boost config.hpp policy is designed to minimize the problems and
|
||||
maximize the benefits of a configuration header.
|
||||
</p>
|
||||
<p>
|
||||
Note that:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
|
||||
<span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>", and are not required in any
|
||||
way to support compilers that do not comply with the C++ Standard (ISO/IEC
|
||||
14882).
|
||||
</li>
|
||||
<li class="listitem">
|
||||
If a library implementer wishes to support some non-conforming compiler,
|
||||
or to support some platform specific feature, "<code class="computeroutput"><span class="preprocessor">#include</span>
|
||||
<span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>" is the preferred way to obtain
|
||||
configuration information not available from the standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, etc.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
If configuration information can be deduced from standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, use those standard headers rather
|
||||
than <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Boost files that use macros defined in <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
should have sensible, standard conforming, default behavior if the macro
|
||||
is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code> to a new platform is simply to define
|
||||
nothing at all specific to that platform. In the rare case where there
|
||||
is no sensible default behavior, an #error message should describe the
|
||||
problem.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||||
post a request on the Boost mailing list. There is no guarantee such a
|
||||
request will be honored; the intent is to limit the complexity of config.hpp.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The intent is to support only compilers which appear on their way to becoming
|
||||
C++ Standard compliant, and only recent releases of those compilers at
|
||||
that.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The intent is not to disable mainstream features now well-supported by
|
||||
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">Disabling
|
||||
Compiler Warnings</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The header <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">warning_disable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
can be used to disable certain compiler warnings that are hard or impossible
|
||||
to otherwise remove.
|
||||
</p>
|
||||
<p>
|
||||
Note that:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
This header <span class="bold"><strong><span class="emphasis"><em>should never be included
|
||||
by another Boost header</em></span></strong></span>, it should only ever be
|
||||
used by a library source file or a test case.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The header should be included <span class="bold"><strong><span class="emphasis"><em>before
|
||||
you include any other header</em></span></strong></span>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
This header only disables warnings that are hard or impossible to otherwise
|
||||
deal with, and which are typically emitted by one compiler only, or in
|
||||
one compilers own standard library headers.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Currently it disables the following warnings:
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Compiler
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Warning
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Visual C++ 8 and later
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
|
||||
Error 'function': was declared deprecated
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Intel C++
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Warning 1786: relates to the use of "deprecated" standard
|
||||
library functions rather like C4996 in Visual C++.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
|
||||
New Defect Macros</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
When you need to add a new defect macro - either to fix a problem with an
|
||||
existing library, or when adding a new library - distil the issue down to
|
||||
a simple test case; often, at this point other (possibly better) workarounds
|
||||
may become apparent. Secondly always post the test case code to the boost
|
||||
mailing list and invite comments; remember that C++ is complex and that sometimes
|
||||
what may appear a defect, may in fact turn out to be a problem with the authors
|
||||
understanding of the standard.
|
||||
</p>
|
||||
<p>
|
||||
When you name the macro, follow the <code class="computeroutput"><span class="identifier">BOOST_NO_</span></code><span class="emphasis"><em>SOMETHING</em></span>
|
||||
naming convention, so that it's obvious that this is a macro reporting a
|
||||
defect.
|
||||
</p>
|
||||
<p>
|
||||
Finally, add the test program to the regression tests. You will need to place
|
||||
the test case in a <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code>
|
||||
file with the following comments near the top:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO</span>
|
||||
<span class="comment">// TITLE: foo</span>
|
||||
<span class="comment">// DESCRIPTION: If the compiler fails to support foo</span>
|
||||
</pre>
|
||||
<p>
|
||||
These comments are processed by the autoconf script, so make sure the format
|
||||
follows the one given. The file should be named "<code class="computeroutput"><span class="identifier">boost_no_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>",
|
||||
where foo is the defect description - try and keep the file name under the
|
||||
Mac 30 character filename limit though. You will also need to provide a function
|
||||
prototype "<code class="computeroutput"><span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span></code>" that is declared in a namespace with
|
||||
the same name as the macro, but in all lower case, and which returns zero
|
||||
on success:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
|
||||
<span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
|
||||
<span class="special">{</span>
|
||||
<span class="comment">// test code goes here:</span>
|
||||
<span class="comment">//</span>
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
Once the test code is in place in libs/config/test, updating the configuration
|
||||
test system proceeds as:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
|
||||
This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
|
||||
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br>
|
||||
<br>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
|
||||
</code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>,
|
||||
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
|
||||
<span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span> is a space separated
|
||||
list of compilers to test with.<br> <br> The xxx_pass_test and the
|
||||
xxx_fail_test <span class="bold"><strong>should both report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code></strong></span>.<br> <br> If <span class="emphasis"><em>MACRONAME</em></span>
|
||||
is not defined when it should be defined, xxx_pass_test will not report
|
||||
<code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>. If <span class="emphasis"><em>MACRONAME</em></span>
|
||||
is defined when it should not be defined, xxx_fail_test will not report
|
||||
<code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br> <br>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
|
||||
<span class="identifier">config_info</span> <span class="identifier">config_test</span>
|
||||
</code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>.
|
||||
<code class="computeroutput"><span class="identifier">config_info</span></code> should build
|
||||
and run cleanly for all the compilers in <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
|
||||
while <code class="computeroutput"><span class="identifier">config_test</span></code> should
|
||||
fail for those that have the defect, and pass for those that do not.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Then you should:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
Define the defect macro in those config headers that require it.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Document the macro in this documentation (please do not forget this step!!)
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Commit everything.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Keep an eye on the regression tests for new failures in Boost.Config
|
||||
caused by the addition.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Start using the macro.
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding
|
||||
New Feature Test Macros</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
When you need to add a macro that describes a feature that the standard does
|
||||
not require, follow the convention for adding a new defect macro (above),
|
||||
but call the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_FOO</span></code>,
|
||||
and name the test file "<code class="computeroutput"><span class="identifier">boost_has_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>".
|
||||
Try not to add feature test macros unnecessarily, if there is a platform
|
||||
specific macro that can already be used (for example <code class="computeroutput"><span class="identifier">_WIN32</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">__BEOS__</span></code>, or <code class="computeroutput"><span class="identifier">__linux</span></code>) to identify the feature then use
|
||||
that. Try to keep the macro to a feature group, or header name, rather than
|
||||
one specific API (for example <code class="computeroutput"><span class="identifier">BOOST_HAS_NL_TYPES_H</span></code>
|
||||
rather than <code class="computeroutput"><span class="identifier">BOOST_HAS_CATOPEN</span></code>).
|
||||
If the macro describes a POSIX feature group, then add boilerplate code to
|
||||
<a href="../../../../../boost/config/user.hpp" target="_top"><boost/config/suffix.hpp></a>
|
||||
to auto-detect the feature where possible (if you are wondering why we can't
|
||||
use POSIX feature test macro directly, remember that many of these features
|
||||
can be added by third party libraries, and are not therefore identified inside
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>).
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
|
||||
the Boost Configuration Headers</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The aim of boost's configuration setup is that the configuration headers
|
||||
should be relatively stable - a boost user should not have to recompile their
|
||||
code just because the configuration for some compiler that they're not interested
|
||||
in has changed. Separating the configuration into separate compiler/standard
|
||||
library/platform sections provides for part of this stability, but boost
|
||||
authors require some amount of restraint as well, in particular:
|
||||
</p>
|
||||
<p>
|
||||
<a href="../../../../../boost/config.hpp" target="_top"><boost/config.hpp></a>
|
||||
should never change, don't alter this file.
|
||||
</p>
|
||||
<p>
|
||||
<a href="../../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>
|
||||
is included by default, don't add extra code to this file unless you have
|
||||
to. If you do, please remember to update <a href="../../../tools/configure.in" target="_top">libs/config/tools/configure.in</a>
|
||||
as well.
|
||||
</p>
|
||||
<p>
|
||||
<a href="../../../../../boost/config/user.hpp" target="_top"><boost/config/suffix.hpp></a>
|
||||
is always included so be careful about modifying this file as it breaks dependencies
|
||||
for everyone. This file should include only "boilerplate" configuration
|
||||
code, and generally should change only when new macros are added.
|
||||
</p>
|
||||
<p>
|
||||
<a href="../../../../../boost/config/select_compiler_config.hpp" target="_top"><boost/config/select_compiler_config.hpp></a>,
|
||||
<a href="../../../../../boost/config/select_platform_config.hpp" target="_top"><boost/config/select_platform_config.hpp></a>
|
||||
and <a href="../../../../../boost/config/select_stdlib_config.hpp" target="_top"><boost/config/select_stdlib_config.hpp></a>
|
||||
are included by default and should change only if support for a new compiler/standard
|
||||
library/platform is added.
|
||||
</p>
|
||||
<p>
|
||||
The compiler/platform/standard library selection code is set up so that unknown
|
||||
platforms are ignored and assumed to be fully standards compliant - this
|
||||
gives unknown platforms a "sporting chance" of working "as
|
||||
is" even without running the configure script.
|
||||
</p>
|
||||
<p>
|
||||
When adding or modifying the individual mini-configs, assume that future,
|
||||
as yet unreleased versions of compilers, have all the defects of the current
|
||||
version. Although this is perhaps unnecessarily pessimistic, it cuts down
|
||||
on the maintenance of these files, and experience suggests that pessimism
|
||||
is better placed than optimism here!
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="cstdint.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
124
doc/html/boost_config/rationale.html
Normal file
124
doc/html/boost_config/rationale.html
Normal file
@@ -0,0 +1,124 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Rationale</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<link rel="home" href="../index.html" title="Boost.Config">
|
||||
<link rel="up" href="../index.html" title="Boost.Config">
|
||||
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
|
||||
<link rel="next" href="acknowledgements.html" title="Acknowledgements">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
|
||||
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
|
||||
</dl></div>
|
||||
<p>
|
||||
The problem with many traditional "textbook" implementations of configuration
|
||||
headers (where all the configuration options are in a single "monolithic"
|
||||
header) is that they violate certain fundamental software engineering principles
|
||||
which would have the effect of making boost more fragile, more difficult to
|
||||
maintain and more difficult to use safely. You can find a description of the
|
||||
principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
|
||||
article</a>.
|
||||
</p>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
Consider a situation in which you are concurrently developing on multiple
|
||||
platforms. Then consider adding a new platform or changing the platform definitions
|
||||
of an existing platform. What happens? Everything, and this does literally
|
||||
mean everything, recompiles. Isn't it quite absurd that adding a new platform,
|
||||
which has absolutely nothing to do with previously existing platforms, means
|
||||
that all code on all existing platforms needs to be recompiled?
|
||||
</p>
|
||||
<p>
|
||||
Effectively, there is an imposed physical dependency between platforms that
|
||||
have nothing to do with each other. Essentially, the traditional solution
|
||||
employed by configuration headers does not conform to the Open-Closed Principle:
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<span class="bold"><strong>"A module should be open for extension but closed
|
||||
for modification."</strong></span>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
Extending a traditional configuration header implies modifying existing code.
|
||||
</p>
|
||||
<p>
|
||||
Furthermore, consider the complexity and fragility of the platform detection
|
||||
code. What if a simple change breaks the detection on some minor platform?
|
||||
What if someone accidentally or on purpose (as a workaround for some other
|
||||
problem) defines some platform dependent macros that are used by the detection
|
||||
code? A traditional configuration header is one of the most volatile headers
|
||||
of the entire library, and more stable elements of Boost would depend on
|
||||
it. This violates the Stable Dependencies Principle:
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
After even a minor change to a traditional configuration header on one minor
|
||||
platform, almost everything on every platform should be tested if we follow
|
||||
sound software engineering practice.
|
||||
</p>
|
||||
<p>
|
||||
Another important issue is that it is not always possible to submit changes
|
||||
to <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>.
|
||||
Some boost users are currently working on platforms using tools and libraries
|
||||
that are under strict Non-Disclosure Agreements. In this situation it is
|
||||
impossible to submit changes to a traditional monolithic configuration header,
|
||||
instead some method by which the user can insert their own configuration
|
||||
code must be provided.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The approach taken by boost's configuration headers is to separate configuration
|
||||
into three orthogonal parts: the compiler, the standard library and the platform.
|
||||
Each compiler/standard library/platform gets its own mini-configuration header,
|
||||
so that changes to one compiler's configuration (for example) does not affect
|
||||
other compilers. In addition there are measures that can be taken both to
|
||||
omit the compiler/standard library/platform detection code (so that adding
|
||||
support to a new platform does not break dependencies), or to freeze the
|
||||
configuration completely; providing almost complete protection against dependency
|
||||
changes.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
997
doc/html/index.html
Normal file
997
doc/html/index.html
Normal file
@@ -0,0 +1,997 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Boost.Config</title>
|
||||
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
|
||||
<link rel="home" href="index.html" title="Boost.Config">
|
||||
<link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
|
||||
<div class="article">
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div><h2 class="title">
|
||||
<a name="config"></a>Boost.Config</h2></div>
|
||||
<div><div class="authorgroup"><div class="author"><h3 class="author">
|
||||
<span class="firstname">Vesa Karvonen, John Maddock</span> <span class="surname">Beman Dawes</span>
|
||||
</h3></div></div></div>
|
||||
<div><p class="copyright">Copyright © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="config.legal"></a><p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></div>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform">Configuring
|
||||
Boost for Your Platform</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
|
||||
the default boost configuration</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
|
||||
<boost/config.hpp> header</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script">Using
|
||||
the configure script</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options">User
|
||||
settable options</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage">Advanced
|
||||
configuration usage</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
|
||||
the boost configuration</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html">Boost Macro Reference</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__03_defects">Macros
|
||||
that describe C++03 defects</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
|
||||
that describe optional features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c___future_features">Macros
|
||||
that describe possible C++ future features</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__11_features_not_supported">Macros
|
||||
that describe C++11 features not supported</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
|
||||
that allow use of C++11 features with C++03 compilers</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__14_features_not_supported">Macros
|
||||
that describe C++14 features not supported</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__14_features_with_c__11_or_earlier_compilers">Macros
|
||||
that allow use of C++14 features with C++11 or earlier compilers</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
|
||||
Helper Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
|
||||
Informational Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_deprecated_macros">Boost
|
||||
Deprecated Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
|
||||
for libraries with separate source code</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="boost_config/build_config.html">Build Time Configuration</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html">Standard Integer Types</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.overview">Overview</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.rationale">Rationale</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.ce"><span class="emphasis"><em>Caveat emptor</em></span></a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.exact_width_integer_types">Exact-width
|
||||
integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.minimum_width_integer_types">Minimum-width
|
||||
integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.fastest_minimum_width_integer_types">Fastest
|
||||
minimum-width integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.greatest_width_integer_types">Greatest-width
|
||||
integer types</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/cstdint.html#boost_config.cstdint.integer_constant_macros">Integer
|
||||
Constant Macros</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html">Guidelines for
|
||||
Boost Authors</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">Disabling
|
||||
Compiler Warnings</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
|
||||
New Defect Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
|
||||
New Feature Test Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers">Modifying
|
||||
the Boost Configuration Headers</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="boost_config/rationale.html">Rationale</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="boost_config/rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
|
||||
Boost for Your Platform</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
|
||||
the default boost configuration</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
|
||||
<boost/config.hpp> header</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script">Using
|
||||
the configure script</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options">User
|
||||
settable options</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage">Advanced
|
||||
configuration usage</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
|
||||
the boost configuration</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using
|
||||
the default boost configuration</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
Boost comes already configured for most common compilers and platforms; you
|
||||
should be able to use boost "as is". Since the compiler is configured
|
||||
separately from the standard library, the default configuration should work
|
||||
even if you replace the compiler's standard library with a third-party standard
|
||||
library (like <a href="http://stlport.sourceforge.net" target="_top">STLport</a>).
|
||||
</p>
|
||||
<p>
|
||||
Using boost "as is" without trying to reconfigure is the recommended
|
||||
method for using boost. You can, however, run the configure script if you
|
||||
want to, and there are regression tests provided that allow you to test the
|
||||
current boost configuration with your particular compiler setup.
|
||||
</p>
|
||||
<p>
|
||||
Boost library users can request support for additional compilers or platforms
|
||||
by visiting our <a href="https://svn.boost.org/trac/boost/newticket" target="_top">Trac</a>
|
||||
and submitting a support request.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The <boost/config.hpp> header">The
|
||||
<boost/config.hpp> header</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
Boost library implementations access configuration macros via
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <a href="../../../../boost/config.hpp" target="_top"><boost/config.hpp></a>
|
||||
</pre>
|
||||
<p>
|
||||
While Boost library users are not required to include that file directly,
|
||||
or use those configuration macros, such use is acceptable. The configuration
|
||||
macros are documented as to their purpose, usage, and limitations which makes
|
||||
them usable by both Boost library and user code.
|
||||
</p>
|
||||
<p>
|
||||
Boost <a class="link" href="boost_config/boost_macro_reference.html#config_info_macros">informational</a> or <a class="link" href="boost_config/boost_macro_reference.html#config_helpers">helper</a>
|
||||
macros are designed for use by Boost users as well as for our own internal
|
||||
use. Note however, that the <a class="link" href="boost_config/boost_macro_reference.html#config_features">feature test</a>
|
||||
and <a class="link" href="boost_config/boost_macro_reference.html#config_defects">defect test</a> macros were designed
|
||||
for internal use by Boost libraries, not user code, so they can change at
|
||||
any time (though no gratuitous changes are made to them). Boost library problems
|
||||
resulting from changes to the configuration macros are caught by the Boost
|
||||
regression tests, so the Boost libraries are updated to account for those
|
||||
changes. By contrast, Boost library user code can be adversely affected by
|
||||
changes to the macros without warning. The best way to keep abreast of changes
|
||||
to the macros used in user code is to monitor the discussions on the Boost
|
||||
developers list.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a name="config_config_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
|
||||
the configure script</a>
|
||||
</h3></div></div></div>
|
||||
<div class="important"><table border="0" summary="Important">
|
||||
<tr>
|
||||
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../doc/src/images/important.png"></td>
|
||||
<th align="left">Important</th>
|
||||
</tr>
|
||||
<tr><td align="left" valign="top"><p>
|
||||
This configure script only sets up the Boost headers for use with a particular
|
||||
compiler. It has no effect on Boost.Build, or how the libraries are built.
|
||||
</p></td></tr>
|
||||
</table></div>
|
||||
<p>
|
||||
If you know that boost is incorrectly configured for your particular setup,
|
||||
and you are on a UNIX like platform, then you may want to try and improve
|
||||
things by running the boost configure script. From a shell command prompt
|
||||
you will need to cd into <span class="emphasis"><em><boost-root></em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
|
||||
and type:
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<code class="computeroutput"><span class="identifier">sh</span> <span class="special">./</span><span class="identifier">configure</span></code>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
you will see a list of the items being checked as the script works its way
|
||||
through the regression tests. Note that the configure script only really
|
||||
auto-detects your compiler if it's called g++, c++ or CC. If you are using
|
||||
some other compiler you will need to set one or more of the following environment
|
||||
variables:
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Variable
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
CXX
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The name of the compiler, for example <code class="computeroutput"><span class="identifier">c</span><span class="special">++</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
CXXFLAGS
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The compiler flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">O2</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
LDFLAGS
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The linker flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">L</span><span class="special">/</span><span class="identifier">mypath</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
LIBS
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Any libraries to link in, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">lpthread</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<p>
|
||||
For example to run the configure script with HP aCC, you might use something
|
||||
like:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">export</span> <span class="identifier">CXX</span><span class="special">=</span><span class="string">"aCC"</span>
|
||||
<span class="keyword">export</span> <span class="identifier">CXXFLAGS</span><span class="special">=</span><span class="string">"-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
|
||||
-DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"</span>
|
||||
<span class="keyword">export</span> <span class="identifier">LDFLAGS</span><span class="special">=</span><span class="string">"-DAportable"</span>
|
||||
<span class="keyword">export</span> <span class="identifier">LIBS</span><span class="special">=</span><span class="string">"-lpthread"</span>
|
||||
<span class="identifier">sh</span> <span class="special">./</span><span class="identifier">configure</span>
|
||||
</pre>
|
||||
<p>
|
||||
However you run the configure script, when it finishes you will find a new
|
||||
header -<code class="computeroutput"><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span></code>- located in the <span class="emphasis"><em><boost-root></em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
|
||||
directory. <span class="bold"><strong>Note that configure does not install this
|
||||
header into your boost include path by default</strong></span>. This header contains
|
||||
all the options generated by the configure script, plus a header-section
|
||||
that contains the user settable options from the default version of <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>
|
||||
(located under <span class="emphasis"><em><boost-root></em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>).
|
||||
There are two ways you can use this header:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em><boost-root></em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp
|
||||
provided by boost. This option allows only one configure-generated setup;
|
||||
boost developers should avoid this option, as it incurs the danger of
|
||||
accidentally committing a configure-modified <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>
|
||||
to the svn repository (something you will not be thanked for!).
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Option 2:</strong></span> give the header a more memorable
|
||||
name, and place it somewhere convenient; then, define the macro <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> to point to it. For
|
||||
example create a new sub-directory <span class="emphasis"><em><boost-root></em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> <code class="computeroutput"><span class="identifier">user</span><span class="special">/</span></code>, and copy the header there; for example
|
||||
as <code class="computeroutput"><span class="identifier">multithread</span><span class="special">-</span><span class="identifier">gcc</span><span class="special">-</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>. Then, when compiling add the command
|
||||
line option: <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_USER_CONFIG</span><span class="special">=</span><span class="string">"<boost/config/user/multithread-gcc-config.hpp>"</span></code>,
|
||||
and boost will use the new configuration header. This option allows you
|
||||
to generate more than one configuration header, and to keep them separate
|
||||
from the boost source - so that updates to the source do not interfere
|
||||
with your configuration.
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a name="config_user_settable"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
|
||||
settable options</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
There are some configuration-options that represent user choices, rather
|
||||
than compiler defects or platform specific options. These are listed in
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
and at the start of a configure-generated <code class="computeroutput"><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span></code> header.
|
||||
You can define these on the command line, or by editing <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>, they are listed in the following table:
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Macro
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, it should point to the name of the user configuration
|
||||
file to include prior to any boost configuration files. When not
|
||||
defined, defaults to <a href="../../../../boost/config/user.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, it should point to the name of the compiler configuration
|
||||
file to use. Defining this cuts out the compiler selection logic,
|
||||
and eliminates the dependency on the header containing that logic.
|
||||
For example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
|
||||
to <a href="../../../../boost/config/compiler/gcc.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">gcc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, it should point to the name of the standard library
|
||||
configuration file to use. Defining this cuts out the standard
|
||||
library selection logic, and eliminates the dependency on the header
|
||||
containing that logic. For example if you are using STLport, then
|
||||
you could define <code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
|
||||
to <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, it should point to the name of the platform configuration
|
||||
file to use. Defining this cuts out the platform selection logic,
|
||||
and eliminates the dependency on the header containing that logic.
|
||||
For example if you are compiling on linux, then you could define
|
||||
<code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
|
||||
to <a href="../../../../boost/config/platform/linux.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">linux</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, no compiler configuration file is selected or included,
|
||||
define when the compiler is fully conformant with the standard,
|
||||
or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
|
||||
has had any options necessary added to it, for example by an autoconf
|
||||
generated configure script.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, no standard library configuration file is selected
|
||||
or included, define when the standard library is fully conformant
|
||||
with the standard, or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>), has had any
|
||||
options necessary added to it, for example by an autoconf generated
|
||||
configure script.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, no platform configuration file is selected or included,
|
||||
define when the platform is fully conformant with the standard
|
||||
(and has no useful extra features), or where the user header (see
|
||||
<code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
|
||||
has had any options necessary added to it, for example by an autoconf
|
||||
generated configure script.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Equivalent to defining all of <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
|
||||
and <code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_STRICT_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The normal behavior for compiler versions that are newer than the
|
||||
last known version, is to assume that they have all the same defects
|
||||
as the last known version. By setting this define, then compiler
|
||||
versions that are newer than the last known version are assumed
|
||||
to be fully conforming with the standard. This is probably most
|
||||
useful for boost developers or testers, and for those who want
|
||||
to use boost to test beta compiler versions.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ASSERT_CONFIG</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When this flag is set, if the config finds anything unknown, then
|
||||
it will stop with a #error rather than continue. Boost regression
|
||||
testers should set this define, as should anyone who wants to quickly
|
||||
check whether boost is supported on their platform.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, disables threading support, even if the compiler
|
||||
in its current translation mode supports multiple threads.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_WIN32</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
When defined, disables the use of Win32 specific API's, even when
|
||||
these are available. Also has the effect of setting <code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code> unless
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREADS</span></code>
|
||||
is set. This option may be set automatically by the config system
|
||||
when it detects that the compiler is in "strict mode".
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_ABI_HEADERS</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Stops boost headers from including any prefix/suffix headers that
|
||||
normally control things like struct packing and alignment.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ABI_PREFIX</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A prefix header to include in place of whatever boost.config would
|
||||
normally select, any replacement should set up struct packing and
|
||||
alignment options as required.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ABI_SUFFIX</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A suffix header to include in place of whatever boost.config would
|
||||
normally select, any replacement should undo the effects of the
|
||||
prefix header.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ALL_DYN_LINK</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Forces all libraries that have separate source, to be linked as
|
||||
dll's rather than static libraries on Microsoft Windows (this macro
|
||||
is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
|
||||
knows which symbols to look for in a dll rather than in a static
|
||||
library). Note that there may be some libraries that can only be
|
||||
statically linked (Boost.Test for example) and others which may
|
||||
only be dynamically linked (Boost.Thread for example), in these
|
||||
cases this macro has no effect.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_DYN_LINK</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Forces library "whatever" to be linked as a dll rather
|
||||
than a static library on Microsoft Windows: replace the <span class="emphasis"><em>WHATEVER</em></span>
|
||||
part of the macro name with the name of the library that you want
|
||||
to dynamically link to, for example use <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_DYN_LINK</span></code>
|
||||
or <code class="computeroutput"><span class="identifier">BOOST_REGEX_DYN_LINK</span></code>
|
||||
etc (this macro is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
|
||||
knows which symbols to look for in a dll rather than in a static
|
||||
library). Note that there may be some libraries that can only be
|
||||
statically linked (Boost.Test for example) and others which may
|
||||
only be dynamically linked (Boost.Thread for example), in these
|
||||
cases this macro is unsupported.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ALL_NO_LIB</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Tells the config system not to automatically select which libraries
|
||||
to link against. Normally if a compiler supports #pragma lib, then
|
||||
the correct library build variant will be automatically selected
|
||||
and linked against, simply by the act of including one of that
|
||||
library's headers. This macro turns that feature off.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_NO_LIB</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Tells the config system not to automatically select which library
|
||||
to link against for library "whatever", replace <span class="emphasis"><em>WHATEVER</em></span>
|
||||
in the macro name with the name of the library; for example <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_NO_LIB</span></code> or <code class="computeroutput"><span class="identifier">BOOST_REGEX_NO_LIB</span></code>. Normally
|
||||
if a compiler supports <code class="computeroutput"><span class="preprocessor">#pragma</span>
|
||||
<span class="identifier">lib</span></code>, then the correct
|
||||
library build variant will be automatically selected and linked
|
||||
against, simply by the act of including one of that library's headers.
|
||||
This macro turns that feature off.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_LIB_DIAGNOSTIC</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Causes the auto-linking code to output diagnostic messages indicating
|
||||
the name of the library that is selected for linking.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_LIB_BUILDID</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
If you built Boost using the <code class="computeroutput"><span class="special">--</span><span class="identifier">buildid</span></code> option then set this
|
||||
macro to the same value as you passed to bjam. For example if you
|
||||
built using <code class="computeroutput"><span class="identifier">bjam</span> <span class="identifier">address</span><span class="special">-</span><span class="identifier">model</span><span class="special">=</span><span class="number">64</span> <span class="special">--</span><span class="identifier">buildid</span><span class="special">=</span><span class="identifier">amd64</span></code> then compile your code
|
||||
with <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_LIB_BUILDID</span><span class="special">=</span><span class="identifier">amd64</span></code>
|
||||
to ensure the correct libraries are selected at link time.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Overrides the name of the toolset part of the name of library being
|
||||
linked to; note if defined this must be defined to a quoted string
|
||||
literal, for example "abc".
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
|
||||
configuration usage</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration">Example
|
||||
1: creating our own frozen configuration</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need">Example
|
||||
2: skipping files that you don't need</a></span></dt>
|
||||
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration">Example
|
||||
3: using configure script to freeze the boost configuration</a></span></dt>
|
||||
</dl></div>
|
||||
<p>
|
||||
By setting various macros on the compiler command line or by editing <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>,
|
||||
the boost configuration setup can be optimised in a variety of ways.
|
||||
</p>
|
||||
<p>
|
||||
Boost's configuration is structured so that the user-configuration is included
|
||||
first (defaulting to <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>
|
||||
if <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> is not
|
||||
defined). This sets up any user-defined policies, and gives the user-configuration
|
||||
a chance to influence what happens next.
|
||||
</p>
|
||||
<p>
|
||||
Next the compiler, standard library, and platform configuration files are
|
||||
included. These are included via macros (<code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code>
|
||||
etc, <a class="link" href="index.html#config_user_settable">see user settable macros</a>),
|
||||
and if the corresponding macro is undefined then a separate header that detects
|
||||
which compiler/standard library/platform is in use is included in order to
|
||||
set these. The config can be told to ignore these headers altogether if the
|
||||
corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
|
||||
macro is set (for example <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
|
||||
to disable including any compiler configuration file - <a class="link" href="index.html#config_user_settable">see
|
||||
user settable macros</a>).
|
||||
</p>
|
||||
<p>
|
||||
Finally the boost configuration header, includes <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/suffix.hpp></a>;
|
||||
this header contains any boiler plate configuration code - for example where
|
||||
one boost macro being set implies that another must be set also.
|
||||
</p>
|
||||
<p>
|
||||
The following usage examples represent just a few of the possibilities:
|
||||
</p>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1: creating our own frozen configuration">Example
|
||||
1: creating our own frozen configuration</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0.
|
||||
Lets suppose also that we don't intend to update our compiler or standard
|
||||
library any time soon. In order to avoid breaking dependencies when we
|
||||
update boost, we may want to "freeze" our configuration headers,
|
||||
so that we only have to rebuild our project if the boost code itself has
|
||||
changed, and not because the boost config has been updated for more recent
|
||||
versions of Visual C++ or STLport. We'll start by realising that the configuration
|
||||
files in use are: <a href="../../../../boost/config/compiler/visualc.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">visualc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> for the compiler, <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> for the standard library, and
|
||||
<a href="../../../../boost/config/platform/win32.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">win32</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a> for the platform. Next we'll
|
||||
create our own private configuration directory: <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">mysetup</span><span class="special">/</span></code>, and copy the configuration files into
|
||||
there. Finally, open up <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>
|
||||
and edit the following defines:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_COMPILER_CONFIG</span> <span class="string">"boost/config/mysetup/visualc.hpp"</span>
|
||||
<span class="preprocessor">#define</span> <span class="identifier">BOOST_STDLIB_CONFIG</span> <span class="string">"boost/config/mysetup/stlport.hpp"</span>
|
||||
<span class="preprocessor">#define</span> <span class="identifier">BOOST_USER_CONFIG</span> <span class="string">"boost/config/mysetup/win32.hpp"</span>
|
||||
</pre>
|
||||
<p>
|
||||
Now when you use boost, its configuration header will go straight to our
|
||||
"frozen" versions, and ignore the default versions, you will
|
||||
now be insulated from any configuration changes when you update boost.
|
||||
This technique is also useful if you want to modify some of the boost configuration
|
||||
files; for example if you are working with a beta compiler release not
|
||||
yet supported by boost.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example
|
||||
2: skipping files that you don't need</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Lets suppose that you're using boost with a compiler that is fully conformant
|
||||
with the standard; you're not interested in the fact that older versions
|
||||
of your compiler may have had bugs, because you know that your current
|
||||
version does not need any configuration macros setting. In a case like
|
||||
this, you can define <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
|
||||
either on the command line, or in <a href="../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></a>,
|
||||
and miss out the compiler configuration header altogether (actually you
|
||||
miss out two headers, one which works out what the compiler is, and one
|
||||
that configures boost for it). This has two consequences: the first is
|
||||
that less code has to be compiled, and the second that you have removed
|
||||
a dependency on two boost headers.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example
|
||||
3: using configure script to freeze the boost configuration</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
If you are working on a unix-like platform then you can use the configure
|
||||
script to generate a "frozen" configuration based on your current
|
||||
compiler setup - <a class="link" href="index.html#config_config_script">see using the configure
|
||||
script for more details</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing
|
||||
the boost configuration</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
The boost configuration library provides a full set of regression test programs
|
||||
under the <span class="emphasis"><em><boost-root></em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
|
||||
<code class="computeroutput"><span class="identifier">test</span><span class="special">/</span></code>
|
||||
sub-directory:
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
File
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Description
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Prints out a detailed description of your compiler/standard library/platform
|
||||
setup, plus your current boost configuration. The information provided
|
||||
by this program is useful in setting up the boost configuration
|
||||
files. If you report that boost is incorrectly configured for your
|
||||
compiler/library/platform then please include the output from this
|
||||
program when reporting the changes required.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A monolithic test program that includes most of the individual
|
||||
test cases. This provides a quick check to see if boost is correctly
|
||||
configured for your compiler/library/platform.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">limits_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Tests your standard library's <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
|
||||
implementation (or its boost provided replacement if <code class="computeroutput"><span class="identifier">BOOST_NO_LIMITS</span></code> is defined).
|
||||
This test file fails with most versions of numeric_limits, mainly
|
||||
due to the way that some compilers treat NAN's and infinity.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Individual compiler defect test files. Each of these should compile,
|
||||
if one does not then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
|
||||
macro needs to be defined - see each test file for specific details.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Individual compiler defect test files. Each of these should not
|
||||
compile, if one does then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
|
||||
macro is defined when it need not be - see each test file for specific
|
||||
details.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Individual feature test files. If one of these does not compile
|
||||
then the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
|
||||
macro is defined when it should not be - see each test file for
|
||||
specific details.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Individual feature test files. If one of these does compile then
|
||||
the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
|
||||
macro can be safely defined - see each test file for specific details.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<p>
|
||||
Although you can run the configuration regression tests as individual test
|
||||
files, there are rather a lot of them, so there are a couple of shortcuts
|
||||
to help you out:
|
||||
</p>
|
||||
<p>
|
||||
If you have built the <a href="../../../../tools/regression/doc/index.html" target="_top">boost
|
||||
regression test driver</a>, then you can use this to produce a nice html
|
||||
formatted report of the results using the supplied test file.
|
||||
</p>
|
||||
<p>
|
||||
Alternatively you can run the configure script like this:
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote"><p>
|
||||
<code class="computeroutput"><span class="special">./</span><span class="identifier">configure</span>
|
||||
<span class="special">--</span><span class="identifier">enable</span><span class="special">-</span><span class="identifier">test</span></code>
|
||||
</p></blockquote></div>
|
||||
<p>
|
||||
in which case the script will test the current configuration rather than
|
||||
creating a new one from scratch.
|
||||
</p>
|
||||
<p>
|
||||
If you are reporting the results of these tests for a new platform/library/compiler
|
||||
then please include a log of the full compiler output, the output from <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>, and the pass/fail test results.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: July 02, 2016 at 08:07:27 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
|
||||
</body>
|
||||
</html>
|
||||
1574
doc/macro_reference.qbk
Normal file
1574
doc/macro_reference.qbk
Normal file
File diff suppressed because it is too large
Load Diff
80
doc/rationale.qbk
Normal file
80
doc/rationale.qbk
Normal file
@@ -0,0 +1,80 @@
|
||||
[/
|
||||
Boost.Config
|
||||
|
||||
Copyright (c) 2001 Beman Dawes
|
||||
Copyright (c) 2001 Vesa Karvonen
|
||||
Copyright (c) 2001 John Maddock
|
||||
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
]
|
||||
|
||||
[section Rationale]
|
||||
|
||||
The problem with many traditional "textbook" implementations of configuration
|
||||
headers (where all the configuration options are in a single "monolithic"
|
||||
header) is that they violate certain fundamental software engineering
|
||||
principles which would have the effect of making boost more fragile, more
|
||||
difficult to maintain and more difficult to use safely. You can find a
|
||||
description of the principles from the __PRINCIPLES_AND_PATTERNS_ARTICLE__.
|
||||
|
||||
[section The problem]
|
||||
|
||||
Consider a situation in which you are concurrently developing on multiple
|
||||
platforms. Then consider adding a new platform or changing the platform
|
||||
definitions of an existing platform. What happens? Everything, and this does
|
||||
literally mean everything, recompiles. Isn't it quite absurd that adding a
|
||||
new platform, which has absolutely nothing to do with previously existing
|
||||
platforms, means that all code on all existing platforms needs to be
|
||||
recompiled?
|
||||
|
||||
Effectively, there is an imposed physical dependency between platforms that
|
||||
have nothing to do with each other. Essentially, the traditional solution
|
||||
employed by configuration headers does not conform to the Open-Closed
|
||||
Principle:
|
||||
|
||||
[: [*"A module should be open for extension but closed for modification."]]
|
||||
|
||||
Extending a traditional configuration header implies modifying existing code.
|
||||
|
||||
Furthermore, consider the complexity and fragility of the platform detection
|
||||
code. What if a simple change breaks the detection on some minor platform?
|
||||
What if someone accidentally or on purpose (as a workaround for some other
|
||||
problem) defines some platform dependent macros that are used by the
|
||||
detection code? A traditional configuration header is one of the most
|
||||
volatile headers of the entire library, and more stable elements of
|
||||
Boost would depend on it. This violates the Stable Dependencies Principle:
|
||||
|
||||
[: [*"Depend in the direction of stability."]]
|
||||
|
||||
After even a minor change to a traditional configuration header on one minor
|
||||
platform, almost everything on every platform should be tested if we follow
|
||||
sound software engineering practice.
|
||||
|
||||
Another important issue is that it is not always possible to submit changes
|
||||
to `<boost/config.hpp>`. Some boost users are currently working on platforms
|
||||
using tools and libraries that are under strict Non-Disclosure Agreements.
|
||||
In this situation it is impossible to submit changes to a traditional
|
||||
monolithic configuration header, instead some method by which the user
|
||||
can insert their own configuration code must be provided.
|
||||
|
||||
[endsect]
|
||||
|
||||
[section The solution]
|
||||
|
||||
The approach taken by boost's configuration headers is to separate
|
||||
configuration into three orthogonal parts: the compiler, the standard
|
||||
library and the platform. Each compiler/standard library/platform gets
|
||||
its own mini-configuration header, so that changes to one compiler's
|
||||
configuration (for example) does not affect other compilers. In addition
|
||||
there are measures that can be taken both to omit the compiler/standard
|
||||
library/platform detection code (so that adding support to a new platform
|
||||
does not break dependencies), or to freeze the configuration completely;
|
||||
providing almost complete protection against dependency changes.
|
||||
|
||||
[endsect]
|
||||
|
||||
[endsect]
|
||||
|
||||
|
||||
@@ -1,394 +1,67 @@
|
||||
// Boost config.hpp configuration header file ------------------------------//
|
||||
|
||||
// (C) Copyright Boost.org 1999. Permission to copy, use, modify, sell and
|
||||
// distribute this software is granted provided this copyright notice appears
|
||||
// in all copies. This software is provided "as is" without express or implied
|
||||
// warranty, and with no claim as to its suitability for any purpose.
|
||||
// (C) Copyright John Maddock 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// Boost config.hpp policy and rationale documentation has been moved to
|
||||
// http://www.boost.org/libs/config
|
||||
|
||||
// Revision History (excluding minor changes for specific compilers)
|
||||
// 4 Oct 00 BOOST_NO_STD_MIN_MAX (Jeremy Siek)
|
||||
// 29 Sep 00 BOOST_NO_INTEGRAL_INT64_T (Jens Maurer)
|
||||
// 25 Sep 00 BOOST_NO_STD_ALLOCATOR (Jeremy Siek)
|
||||
// 18 SEP 00 BOOST_NO_SLIST, BOOST_NO_HASH,
|
||||
// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||
// BOOST_NO_LIMITS (Jeremy Siek)
|
||||
// 1 Sep 00 BOOST_NO_PRIVATE_IN_AGGREGATE added. (Mark Rodgers)
|
||||
// 23 Jul 00 Fixed spelling of BOOST_NO_INCLASS_MEMBER_INITIALIZATION in
|
||||
// comment (Dave Abrahams).
|
||||
// 10 Jul 00 BOOST_NO_POINTER_TO_MEMBER_CONST added (Mark Rodgers)
|
||||
// 26 Jun 00 BOOST_NO_STD_ITERATOR, BOOST_MSVC_STD_ITERATOR,
|
||||
// BOOST_NO_STD_ITERATOR_TRAITS, BOOST_NO_USING_TEMPLATE,
|
||||
// added (Jeremy Siek)
|
||||
// 20 Jun 00 BOOST_MSVC added (Aleksey Gurtovoy)
|
||||
// 14 Jun 00 BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS (Jens M.)
|
||||
// 22 Mar 00 BOOST_MSVC6_MEMBER_TEMPLATES added (Dave Abrahams)
|
||||
// 18 Feb 00 BOOST_NO_INCLASS_MEMBER_INITIALIZATION added (Jens Maurer)
|
||||
// 26 Jan 00 Borland compiler support added (John Maddock)
|
||||
// 26 Jan 00 Sun compiler support added (Jörg Schaible)
|
||||
// 30 Dec 99 BOOST_NMEMBER_TEMPLATES compatibility moved here from
|
||||
// smart_ptr.hpp. (Dave Abrahams)
|
||||
// 15 Nov 99 BOOST_NO_OPERATORS_IN_NAMESPACE,
|
||||
// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION added (Beman Dawes)
|
||||
// 11 Oct 99 BOOST_NO_STDC_NAMESPACE refined; <cstddef> supplied
|
||||
// 29 Sep 99 BOOST_NO_STDC_NAMESPACE added (Ed Brey)
|
||||
// 24 Sep 99 BOOST_DECL added (Ed Brey)
|
||||
// 10 Aug 99 Endedness flags added, GNU CC support added
|
||||
// 22 Jul 99 Initial version
|
||||
|
||||
//
|
||||
// CAUTION: This file is intended to be completely stable -
|
||||
// DO NOT MODIFY THIS FILE!
|
||||
//
|
||||
|
||||
#ifndef BOOST_CONFIG_HPP
|
||||
#define BOOST_CONFIG_HPP
|
||||
|
||||
// Conformance Flag Macros -------------------------------------------------//
|
||||
//
|
||||
// Conformance flag macros should identify the absence of C++ Standard
|
||||
// conformance rather than its presence. This ensures that standard conforming
|
||||
// compilers do not require a lot of configuration flag macros. It places the
|
||||
// burden where it should be, on non-conforming compilers. In the future,
|
||||
// hopefully, less rather than more conformance flags will have to be defined.
|
||||
|
||||
// BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS: Template value
|
||||
// parameters cannot have a dependent type, for example
|
||||
// "template<class T, typename T::type value> class X { ... };"
|
||||
|
||||
// BOOST_NO_INCLASS_MEMBER_INITIALIZATION: Compiler violates std::9.4.2/4.
|
||||
|
||||
// BOOST_NO_INTEGRAL_INT64_T: int64_t as defined by <boost/cstdint.hpp> is
|
||||
// not an integral type.
|
||||
|
||||
// BOOST_NO_MEMBER_TEMPLATES: Member template functions not fully supported.
|
||||
// Also see BOOST_MSVC6_MEMBER_TEMPLATES in the Compiler Control section below.
|
||||
|
||||
// BOOST_NO_MEMBER_TEMPLATE_FRIENDS: Member template friend syntax
|
||||
// ("template<class P> friend class frd;") described in the C++ Standard,
|
||||
// 14.5.3, not supported.
|
||||
|
||||
// BOOST_NO_OPERATORS_IN_NAMESPACE: Compiler requires inherited operator
|
||||
// friend functions to be defined at namespace scope, then using'ed to boost.
|
||||
// Probably GCC specific. See boost/operators.hpp for example.
|
||||
|
||||
// BOOST_NO_POINTER_TO_MEMBER_CONST: The compiler does not correctly handle
|
||||
// pointers to const member functions, preventing use of these in overloaded
|
||||
// function templates. See boost/functional.hpp for example.
|
||||
|
||||
// BOOST_NO_PRIVATE_IN_AGGREGATE: The compiler misreads 8.5.1, treating classes
|
||||
// as non-aggregate if they contain private or protected member functions.
|
||||
|
||||
// BOOST_NO_STD_ITERATOR: The C++ implementation fails to provide the
|
||||
// std::iterator class.
|
||||
|
||||
// BOOST_NO_STD_ITERATOR_TRAITS: The compiler does not provide a standard
|
||||
// compliant implementation of std::iterator_traits. Note that
|
||||
// the compiler may still have a non-standard implementation.
|
||||
|
||||
// BOOST_NO_STDC_NAMESPACE: The contents of C++ standard headers for C library
|
||||
// functions (the <c...> headers) have not been placed in namespace std.
|
||||
// Because the use of std::size_t is so common, a specific workaround for
|
||||
// <cstddef> (and thus std::size_t) is provided in this header (see below).
|
||||
// For other <c...> headers, a workaround must be provided in the boost header:
|
||||
//
|
||||
// #include <cstdlib> // for abs
|
||||
// #ifdef BOOST_NO_STDC_NAMESPACE
|
||||
// namespace std { using ::abs; }
|
||||
// #endif
|
||||
|
||||
// BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION. Class template partial
|
||||
// specialization (14.5.4 [temp.class.spec]) not supported.
|
||||
|
||||
// BOOST_NO_USING_TEMPLATE: The compiler will not accept a using declaration
|
||||
// that imports a template from the global namespace into a named namespace.
|
||||
// Probably Borland specific.
|
||||
|
||||
// Compiler Control or Information Macros ----------------------------------//
|
||||
//
|
||||
// Compilers often supply features outside of the C++ Standard which need to be
|
||||
// controlled or detected. As usual, reasonable default behavior should occur
|
||||
// if any of these macros are not defined.
|
||||
|
||||
// BOOST_DECL: Certain compilers for Microsoft operating systems require
|
||||
// non-standard class and function decoration if dynamic load library linking
|
||||
// is desired. BOOST_DECL supplies that decoration, defaulting to a nul string
|
||||
// so that it is harmless when not required. Boost does not encourage the use
|
||||
// of BOOST_DECL - it is non-standard and to be avoided if practical to do so.
|
||||
|
||||
// BOOST_DECL_EXPORTS: User defined, BOOST_DECL_EXPORTS causes BOOST_DECL to
|
||||
// be defined as __declspec(dllexport) rather than __declspec(dllimport).
|
||||
|
||||
// BOOST_MSVC6_MEMBER_TEMPLATES: Microsoft Visual C++ 6.0 has enough member
|
||||
// template idiosyncrasies (being polite) that BOOST_NO_MEMBER_TEMPLATES is
|
||||
// defined for this compiler. BOOST_MSVC6_MEMBER_TEMPLATES is defined to allow
|
||||
// compiler specific workarounds.
|
||||
|
||||
// BOOST_MSVC: defined as _MSC_VER for the Microsoft compiler only. In general,
|
||||
// boost headers should test for a specific conformance flag macro (for
|
||||
// example, BOOST_NO_MEMBER_TEMPLATE_FRIENDS) rather than a specific compiler.
|
||||
// VC++ is a special case, however, since many libraries try to support it yet
|
||||
// it has so many conformance issues that sometimes it is just easier to test
|
||||
// for it directly. On the other hand, the obvious way to do this doesn't work,
|
||||
// as many non-Microsoft compilers define _MSC_VER. Thus BOOST_MSVC.
|
||||
|
||||
// BOOST_MSVC_STD_ITERATOR: Microsoft's broken version of std::iterator
|
||||
// is being used.
|
||||
|
||||
// BOOST_SYSTEM_HAS_STDINT_H: There are no 1998 C++ Standard headers <stdint.h>
|
||||
// or <cstdint>, although the 1999 C Standard does include <stdint.h>.
|
||||
// If <stdint.h> is present, <boost/stdint.h> can make good use of it,
|
||||
// so a flag is supplied (signalling presence; thus the default is not
|
||||
// present, conforming to the current C++ standard).
|
||||
|
||||
// BOOST_NO_SLIST: The C++ implementation does not provide the slist class.
|
||||
|
||||
// BOOST_NO_HASH: The C++ implementation does not provide the hash_set
|
||||
// or hash_map classes.
|
||||
|
||||
// BOOST_STD_EXTENSION_NAMESPACE: The name of the namespace in which the slist,
|
||||
// hash_set and/or hash_map templates are defined in this implementation (if any).
|
||||
|
||||
// BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS: The standard library does not provide
|
||||
// templated iterator constructors for its containers.
|
||||
|
||||
// BOOST_NO_LIMITS: The C++ implementation does not provide the <limits> header.
|
||||
|
||||
// BOOST_NO_INTRINSIC_WCHAR_T: The C++ implementation does not provide wchar_t,
|
||||
// or it is really a synonym for another integral type. Use this symbol to
|
||||
// decide whether it is appropriate to explicitly specialize a template on
|
||||
// wchar_t if there is already a specialization for other integer types.
|
||||
|
||||
// BOOST_NO_STD_ALLOCATOR: The C++ standard library does not provide
|
||||
// a standards conforming std::allocator.
|
||||
|
||||
// BOOST_NO_STD_MIN_MAX: The C++ standard library does not provide
|
||||
// the min() and max() template functions that should be in <algorithm>.
|
||||
|
||||
// Compilers are listed in alphabetic order (except VC++ last - see below)---//
|
||||
|
||||
// GNU CC (also known as GCC and G++) --------------------------------------//
|
||||
|
||||
# if defined __GNUC__
|
||||
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 95
|
||||
# include <iterator> // not sure this is the right way to do this -JGS
|
||||
# if !defined(_CXXRT_STD) && !defined(__SGI_STL) // need to ask Dietmar about this -JGS
|
||||
# define BOOST_NO_STD_ITERATOR
|
||||
# define BOOST_NO_LIMITS
|
||||
# endif
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# endif
|
||||
# if __GNUC__ == 2 && __GNUC_MINOR__ <= 8
|
||||
# define BOOST_NO_MEMBER_TEMPLATES
|
||||
# endif
|
||||
|
||||
// Kai C++ ------------------------------------------------------------------//
|
||||
|
||||
#elif defined __KCC
|
||||
# define BOOST_NO_SLIST
|
||||
# define BOOST_NO_HASH
|
||||
|
||||
// Greenhills C++ -----------------------------------------------------------//
|
||||
|
||||
#elif defined __ghs
|
||||
# define BOOST_NO_SLIST
|
||||
# define BOOST_NO_HASH
|
||||
|
||||
// Borland ------------------------------------------------------------------//
|
||||
|
||||
#elif defined __BORLANDC__
|
||||
# define BOOST_NO_SLIST
|
||||
# define BOOST_NO_HASH
|
||||
# if __BORLANDC__ <= 0x0551
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
# endif
|
||||
# if __BORLANDC__ <= 0x0550
|
||||
// Borland C++ Builder 4 and 5:
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# if __BORLANDC__ == 0x0550
|
||||
// Borland C++ Builder 5, command-line compiler 5.5:
|
||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# endif
|
||||
# endif
|
||||
# if defined BOOST_DECL_EXPORTS
|
||||
# define BOOST_DECL __declspec(dllexport)
|
||||
# else
|
||||
# define BOOST_DECL __declspec(dllimport)
|
||||
# endif
|
||||
|
||||
// Intel -------------------------------------------------------------------//
|
||||
|
||||
# elif defined __ICL
|
||||
# include <iterator> // not sure this is the right way to do this -JGS
|
||||
# if __SGI_STL_PORT >= 0x400 || __SGI_STL_PORT >= 0x321 && defined(__STL_USE_NAMESPACES)
|
||||
// a perfectly good implementation of std::iterator is supplied
|
||||
# elif defined(__SGI_STL_ITERATOR)
|
||||
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
|
||||
# else // assume using dinkumware's STL that comes with VC++ 6.0
|
||||
# define BOOST_MSVC_STD_ITERATOR
|
||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# define BOOST_NO_SLIST
|
||||
# define BOOST_NO_HASH
|
||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||
# define BOOST_NO_STD_ALLOCATOR
|
||||
# define BOOST_NO_STD_MIN_MAX
|
||||
# endif
|
||||
|
||||
|
||||
// Metrowerks CodeWarrior --------------------------------------------------//
|
||||
|
||||
# elif defined __MWERKS__
|
||||
# if __MWERKS__ <= 0x4000
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# endif
|
||||
# if __MWERKS__ <= 0x2301
|
||||
# define BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||
# endif
|
||||
# if __MWERKS__ >= 0x2300
|
||||
# define BOOST_SYSTEM_HAS_STDINT_H
|
||||
# endif
|
||||
# if defined BOOST_DECL_EXPORTS
|
||||
# define BOOST_DECL __declspec(dllexport)
|
||||
# else
|
||||
# define BOOST_DECL __declspec(dllimport)
|
||||
# endif
|
||||
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
|
||||
|
||||
// Sun Workshop Compiler C++ ------------------------------------------------//
|
||||
|
||||
# elif defined __SUNPRO_CC
|
||||
# if __SUNPRO_CC <= 0x500
|
||||
# define BOOST_NO_MEMBER_TEMPLATES
|
||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# endif
|
||||
|
||||
// Microsoft Visual C++ (excluding Intel/EDG front end) --------------------//
|
||||
//
|
||||
// Must remain the last #elif since some other vendors (Metrowerks, for
|
||||
// example) also #define _MSC_VER
|
||||
|
||||
# elif defined _MSC_VER
|
||||
# define BOOST_MSVC _MSC_VER
|
||||
|
||||
// turn off the warnings before we #include anything
|
||||
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
|
||||
# pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||
|
||||
# if _MSC_VER <= 1200 // 1200 == VC++ 6.0
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
|
||||
// VC++ 6.0 has member templates but they have numerous problems including
|
||||
// cases of silent failure, so for safety we define:
|
||||
# define BOOST_NO_MEMBER_TEMPLATES
|
||||
// For VC++ experts wishing to attempt workarounds, we define:
|
||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
|
||||
# include <iterator> // not sure this is the right way to do this -JGS
|
||||
# if __SGI_STL_PORT >= 0x400 || __SGI_STL_PORT >= 0x321 && defined(__STL_USE_NAMESPACES)
|
||||
// a perfectly good implementation of std::iterator is supplied
|
||||
# elif defined(__SGI_STL_ITERATOR)
|
||||
# define BOOST_NO_STD_ITERATOR // No std::iterator in this case
|
||||
# else
|
||||
# define BOOST_MSVC_STD_ITERATOR 1
|
||||
# define BOOST_NO_SLIST
|
||||
# define BOOST_NO_HASH
|
||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||
# define BOOST_NO_STD_ALLOCATOR
|
||||
# define BOOST_NO_STD_MIN_MAX
|
||||
# undef min
|
||||
# undef max
|
||||
# define NOMINMAX
|
||||
# endif
|
||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||
|
||||
|
||||
// Make sure at least one standard library header is included so that library
|
||||
// implementation detection will work, even if no standard headers have been
|
||||
// included in front of a boost header. (Ed Brey 5 Jun 00)
|
||||
# include <cstddef>
|
||||
|
||||
// Determine if the standard library implementation is already pulling names
|
||||
// into std. STLport defines the following if so. (Ed Brey 5 Jun 00)
|
||||
# ifndef __STL_IMPORT_VENDOR_CSTD
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# if defined BOOST_DECL_EXPORTS
|
||||
# define BOOST_DECL __declspec(dllexport)
|
||||
# else
|
||||
# define BOOST_DECL __declspec(dllimport)
|
||||
# endif
|
||||
|
||||
# endif // Microsoft (excluding Intel/EDG frontend)
|
||||
|
||||
# ifndef BOOST_DECL
|
||||
# define BOOST_DECL // default for compilers not needing this decoration.
|
||||
# endif
|
||||
|
||||
// end of compiler specific portion ----------------------------------------//
|
||||
|
||||
#ifndef BOOST_STD_EXTENSION_NAMESPACE
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE std
|
||||
// if we don't have a user config, then use the default location:
|
||||
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
|
||||
# define BOOST_USER_CONFIG <boost/config/user.hpp>
|
||||
#if 0
|
||||
// For dependency trackers:
|
||||
# include <boost/config/user.hpp>
|
||||
#endif
|
||||
#endif
|
||||
// include it first:
|
||||
#ifdef BOOST_USER_CONFIG
|
||||
# include BOOST_USER_CONFIG
|
||||
#endif
|
||||
|
||||
// Check for old name "BOOST_NMEMBER_TEMPLATES" for compatibility -----------//
|
||||
// Don't use BOOST_NMEMBER_TEMPLATES. It is deprecated and will be removed soon.
|
||||
#if defined( BOOST_NMEMBER_TEMPLATES ) && !defined( BOOST_NO_MEMBER_TEMPLATES )
|
||||
#define BOOST_NO_MEMBER_TEMPLATES
|
||||
// if we don't have a compiler config set, try and find one:
|
||||
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||
# include <boost/config/select_compiler_config.hpp>
|
||||
#endif
|
||||
// if we have a compiler config, include it now:
|
||||
#ifdef BOOST_COMPILER_CONFIG
|
||||
# include BOOST_COMPILER_CONFIG
|
||||
#endif
|
||||
|
||||
// BOOST_NO_STDC_NAMESPACE workaround --------------------------------------//
|
||||
//
|
||||
// Because std::size_t usage is so common, even in boost headers which do not
|
||||
// otherwise use the C library, the <cstddef> workaround is included here so
|
||||
// that ugly workaround code need not appear in many other boost headers.
|
||||
// NOTE WELL: This is a workaround for non-conforming compilers; <cstddef>
|
||||
// must still be #included in the usual places so that <cstddef> inclusion
|
||||
// works as expected with standard conforming compilers. The resulting
|
||||
// double inclusion of <cstddef> is harmless.
|
||||
|
||||
# ifdef BOOST_NO_STDC_NAMESPACE
|
||||
# include <cstddef>
|
||||
namespace std { using ::ptrdiff_t; using ::size_t; }
|
||||
// using ::wchar_t; removed since wchar_t is a C++ built-in type (Ed Brey)
|
||||
# endif
|
||||
|
||||
#ifdef BOOST_NO_STD_MIN_MAX
|
||||
namespace std {
|
||||
template <class _Tp>
|
||||
inline const _Tp& min(const _Tp& __a, const _Tp& __b) {
|
||||
return __b < __a ? __b : __a;
|
||||
}
|
||||
template <class _Tp>
|
||||
inline const _Tp& max(const _Tp& __a, const _Tp& __b) {
|
||||
return __a < __b ? __b : __a;
|
||||
}
|
||||
#ifdef BOOST_MSVC
|
||||
inline long min(long __a, long __b) {
|
||||
return __b < __a ? __b : __a;
|
||||
}
|
||||
inline long max(long __a, long __b) {
|
||||
return __a < __b ? __b : __a;
|
||||
}
|
||||
// if we don't have a std library config set, try and find one:
|
||||
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
|
||||
# include <boost/config/select_stdlib_config.hpp>
|
||||
#endif
|
||||
}
|
||||
// if we have a std library config, include it now:
|
||||
#ifdef BOOST_STDLIB_CONFIG
|
||||
# include BOOST_STDLIB_CONFIG
|
||||
#endif
|
||||
|
||||
// if we don't have a platform config set, try and find one:
|
||||
#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||
# include <boost/config/select_platform_config.hpp>
|
||||
#endif
|
||||
// if we have a platform config, include it now:
|
||||
#ifdef BOOST_PLATFORM_CONFIG
|
||||
# include BOOST_PLATFORM_CONFIG
|
||||
#endif
|
||||
|
||||
// get config suffix code:
|
||||
#include <boost/config/suffix.hpp>
|
||||
|
||||
#ifdef BOOST_HAS_PRAGMA_ONCE
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#endif // BOOST_CONFIG_HPP
|
||||
|
||||
|
||||
|
||||
27
include/boost/config/abi/borland_prefix.hpp
Normal file
27
include/boost/config/abi/borland_prefix.hpp
Normal file
@@ -0,0 +1,27 @@
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// for C++ Builder the following options effect the ABI:
|
||||
//
|
||||
// -b (on or off - effect emum sizes)
|
||||
// -Vx (on or off - empty members)
|
||||
// -Ve (on or off - empty base classes)
|
||||
// -aX (alignment - 5 options).
|
||||
// -pX (Calling convention - 4 options)
|
||||
// -VmX (member pointer size and layout - 5 options)
|
||||
// -VC (on or off, changes name mangling)
|
||||
// -Vl (on or off, changes struct layout).
|
||||
|
||||
// In addition the following warnings are sufficiently annoying (and
|
||||
// unfixable) to have them turned off by default:
|
||||
//
|
||||
// 8027 - functions containing [for|while] loops are not expanded inline
|
||||
// 8026 - functions taking class by value arguments are not expanded inline
|
||||
|
||||
#pragma nopushoptwarn
|
||||
# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
||||
|
||||
|
||||
|
||||
12
include/boost/config/abi/borland_suffix.hpp
Normal file
12
include/boost/config/abi/borland_suffix.hpp
Normal file
@@ -0,0 +1,12 @@
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
# pragma option pop
|
||||
#pragma nopushoptwarn
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
22
include/boost/config/abi/msvc_prefix.hpp
Normal file
22
include/boost/config/abi/msvc_prefix.hpp
Normal file
@@ -0,0 +1,22 @@
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
//
|
||||
// Boost binaries are built with the compiler's default ABI settings,
|
||||
// if the user changes their default alignment in the VS IDE then their
|
||||
// code will no longer be binary compatible with the bjam built binaries
|
||||
// unless this header is included to force Boost code into a consistent ABI.
|
||||
//
|
||||
// Note that inclusion of this header is only necessary for libraries with
|
||||
// separate source, header only libraries DO NOT need this as long as all
|
||||
// translation units are built with the same options.
|
||||
//
|
||||
#if defined(_M_X64)
|
||||
# pragma pack(push,16)
|
||||
#else
|
||||
# pragma pack(push,8)
|
||||
#endif
|
||||
|
||||
|
||||
8
include/boost/config/abi/msvc_suffix.hpp
Normal file
8
include/boost/config/abi/msvc_suffix.hpp
Normal file
@@ -0,0 +1,8 @@
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
|
||||
25
include/boost/config/abi_prefix.hpp
Normal file
25
include/boost/config/abi_prefix.hpp
Normal file
@@ -0,0 +1,25 @@
|
||||
// abi_prefix header -------------------------------------------------------//
|
||||
|
||||
// (c) Copyright John Maddock 2003
|
||||
|
||||
// Use, modification and distribution are subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||
# define BOOST_CONFIG_ABI_PREFIX_HPP
|
||||
#else
|
||||
# error double inclusion of header boost/config/abi_prefix.hpp is an error
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
|
||||
// this must occur after all other includes and before any code appears:
|
||||
#ifdef BOOST_HAS_ABI_HEADERS
|
||||
# include BOOST_ABI_PREFIX
|
||||
#endif
|
||||
|
||||
#if defined( __BORLANDC__ )
|
||||
#pragma nopushoptwarn
|
||||
#endif
|
||||
|
||||
27
include/boost/config/abi_suffix.hpp
Normal file
27
include/boost/config/abi_suffix.hpp
Normal file
@@ -0,0 +1,27 @@
|
||||
// abi_sufffix header -------------------------------------------------------//
|
||||
|
||||
// (c) Copyright John Maddock 2003
|
||||
|
||||
// Use, modification and distribution are subject to the Boost Software License,
|
||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
// This header should be #included AFTER code that was preceded by a #include
|
||||
// <boost/config/abi_prefix.hpp>.
|
||||
|
||||
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||
# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
|
||||
#else
|
||||
# undef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||
#endif
|
||||
|
||||
// the suffix header occurs after all of our code:
|
||||
#ifdef BOOST_HAS_ABI_HEADERS
|
||||
# include BOOST_ABI_SUFFIX
|
||||
#endif
|
||||
|
||||
#if defined( __BORLANDC__ )
|
||||
#pragma nopushoptwarn
|
||||
#endif
|
||||
|
||||
|
||||
439
include/boost/config/auto_link.hpp
Normal file
439
include/boost/config/auto_link.hpp
Normal file
@@ -0,0 +1,439 @@
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
/*
|
||||
* LOCATION: see http://www.boost.org for most recent version.
|
||||
* FILE auto_link.hpp
|
||||
* VERSION see <boost/version.hpp>
|
||||
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
|
||||
*/
|
||||
|
||||
/*************************************************************************
|
||||
|
||||
USAGE:
|
||||
~~~~~~
|
||||
|
||||
Before including this header you must define one or more of define the following macros:
|
||||
|
||||
BOOST_LIB_NAME: Required: A string containing the basename of the library,
|
||||
for example boost_regex.
|
||||
BOOST_LIB_TOOLSET: Optional: the base name of the toolset.
|
||||
BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
|
||||
BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
||||
of the library selected (useful for debugging).
|
||||
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
|
||||
rather than a mangled-name version.
|
||||
BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
|
||||
This is essentially the same as the default name-mangled version, but without
|
||||
the compiler name and version, or the Boost version. Just the build options.
|
||||
|
||||
These macros will be undef'ed at the end of the header, further this header
|
||||
has no include guards - so be sure to include it only once from your library!
|
||||
|
||||
Algorithm:
|
||||
~~~~~~~~~~
|
||||
|
||||
Libraries for Borland and Microsoft compilers are automatically
|
||||
selected here, the name of the lib is selected according to the following
|
||||
formula:
|
||||
|
||||
BOOST_LIB_PREFIX
|
||||
+ BOOST_LIB_NAME
|
||||
+ "_"
|
||||
+ BOOST_LIB_TOOLSET
|
||||
+ BOOST_LIB_THREAD_OPT
|
||||
+ BOOST_LIB_RT_OPT
|
||||
"-"
|
||||
+ BOOST_LIB_VERSION
|
||||
|
||||
These are defined as:
|
||||
|
||||
BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
|
||||
|
||||
BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
|
||||
|
||||
BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
|
||||
|
||||
BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
|
||||
|
||||
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
||||
contains one or more of the following letters after
|
||||
a hyphen:
|
||||
|
||||
s static runtime (dynamic if not present).
|
||||
g debug/diagnostic runtime (release if not present).
|
||||
y Python debug/diagnostic runtime (release if not present).
|
||||
d debug build (release if not present).
|
||||
p STLport build.
|
||||
n STLport build without its IOStreams.
|
||||
|
||||
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#ifdef __cplusplus
|
||||
# ifndef BOOST_CONFIG_HPP
|
||||
# include <boost/config.hpp>
|
||||
# endif
|
||||
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
|
||||
//
|
||||
// C language compatability (no, honestly)
|
||||
//
|
||||
# define BOOST_MSVC _MSC_VER
|
||||
# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
|
||||
# define BOOST_DO_STRINGIZE(X) #X
|
||||
#endif
|
||||
//
|
||||
// Only include what follows for known and supported compilers:
|
||||
//
|
||||
#if defined(BOOST_MSVC) \
|
||||
|| defined(__BORLANDC__) \
|
||||
|| (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
|
||||
|| (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
|
||||
|
||||
#ifndef BOOST_VERSION_HPP
|
||||
# include <boost/version.hpp>
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_LIB_NAME
|
||||
# error "Macro BOOST_LIB_NAME not set (internal error)"
|
||||
#endif
|
||||
|
||||
//
|
||||
// error check:
|
||||
//
|
||||
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
|
||||
# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
|
||||
# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
|
||||
# error "Incompatible build options"
|
||||
#endif
|
||||
//
|
||||
// select toolset if not defined already:
|
||||
//
|
||||
#ifndef BOOST_LIB_TOOLSET
|
||||
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
|
||||
// Note: no compilers before 1200 are supported
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
|
||||
# ifdef UNDER_CE
|
||||
// eVC4:
|
||||
# define BOOST_LIB_TOOLSET "evc4"
|
||||
# else
|
||||
// vc6:
|
||||
# define BOOST_LIB_TOOLSET "vc6"
|
||||
# endif
|
||||
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
|
||||
|
||||
// vc7:
|
||||
# define BOOST_LIB_TOOLSET "vc7"
|
||||
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
|
||||
|
||||
// vc71:
|
||||
# define BOOST_LIB_TOOLSET "vc71"
|
||||
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
|
||||
|
||||
// vc80:
|
||||
# define BOOST_LIB_TOOLSET "vc80"
|
||||
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
|
||||
|
||||
// vc90:
|
||||
# define BOOST_LIB_TOOLSET "vc90"
|
||||
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
|
||||
|
||||
// vc10:
|
||||
# define BOOST_LIB_TOOLSET "vc100"
|
||||
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
|
||||
|
||||
// vc11:
|
||||
# define BOOST_LIB_TOOLSET "vc110"
|
||||
|
||||
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900)
|
||||
|
||||
// vc12:
|
||||
# define BOOST_LIB_TOOLSET "vc120"
|
||||
|
||||
# elif defined(BOOST_MSVC)
|
||||
|
||||
// vc14:
|
||||
# define BOOST_LIB_TOOLSET "vc140"
|
||||
|
||||
# elif defined(__BORLANDC__)
|
||||
|
||||
// CBuilder 6:
|
||||
# define BOOST_LIB_TOOLSET "bcb"
|
||||
|
||||
# elif defined(__ICL)
|
||||
|
||||
// Intel C++, no version number:
|
||||
# define BOOST_LIB_TOOLSET "iw"
|
||||
|
||||
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
|
||||
|
||||
// Metrowerks CodeWarrior 8.x
|
||||
# define BOOST_LIB_TOOLSET "cw8"
|
||||
|
||||
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
|
||||
|
||||
// Metrowerks CodeWarrior 9.x
|
||||
# define BOOST_LIB_TOOLSET "cw9"
|
||||
|
||||
# endif
|
||||
#endif // BOOST_LIB_TOOLSET
|
||||
|
||||
//
|
||||
// select thread opt:
|
||||
//
|
||||
#if defined(_MT) || defined(__MT__)
|
||||
# define BOOST_LIB_THREAD_OPT "-mt"
|
||||
#else
|
||||
# define BOOST_LIB_THREAD_OPT
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) || defined(__MWERKS__)
|
||||
|
||||
# ifdef _DLL
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydp"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-gdp"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydp"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-gdp"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-p"
|
||||
# endif
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-pn"
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gyd"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-gd"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-sp"
|
||||
# endif
|
||||
|
||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
|
||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||
# elif defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||
# error "Build options aren't compatible with pre-built libraries"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-spn"
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgyd"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sgd"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-s"
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
//
|
||||
// figure out whether we want the debug builds or not:
|
||||
//
|
||||
#if __BORLANDC__ > 0x561
|
||||
#pragma defineonoption BOOST_BORLAND_DEBUG -v
|
||||
#endif
|
||||
//
|
||||
// sanity check:
|
||||
//
|
||||
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
||||
#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
|
||||
#endif
|
||||
|
||||
# ifdef _RTLDLL
|
||||
|
||||
# if defined(BOOST_BORLAND_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-yd"
|
||||
# elif defined(BOOST_BORLAND_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-d"
|
||||
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT -y
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT
|
||||
# endif
|
||||
|
||||
# else
|
||||
|
||||
# if defined(BOOST_BORLAND_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-syd"
|
||||
# elif defined(BOOST_BORLAND_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sd"
|
||||
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sy"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-s"
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// select linkage opt:
|
||||
//
|
||||
#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
|
||||
# define BOOST_LIB_PREFIX
|
||||
#elif defined(BOOST_DYN_LINK)
|
||||
# error "Mixing a dll boost library with a static runtime is a really bad idea..."
|
||||
#else
|
||||
# define BOOST_LIB_PREFIX "lib"
|
||||
#endif
|
||||
|
||||
//
|
||||
// now include the lib:
|
||||
//
|
||||
#if defined(BOOST_LIB_NAME) \
|
||||
&& defined(BOOST_LIB_PREFIX) \
|
||||
&& defined(BOOST_LIB_TOOLSET) \
|
||||
&& defined(BOOST_LIB_THREAD_OPT) \
|
||||
&& defined(BOOST_LIB_RT_OPT) \
|
||||
&& defined(BOOST_LIB_VERSION)
|
||||
|
||||
#ifdef BOOST_AUTO_LINK_TAGGED
|
||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||
# endif
|
||||
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||
# endif
|
||||
#elif defined(BOOST_LIB_BUILDID)
|
||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
|
||||
# endif
|
||||
#else
|
||||
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
# error "some required macros where not defined (internal logic error)."
|
||||
#endif
|
||||
|
||||
|
||||
#endif // _MSC_VER || __BORLANDC__
|
||||
|
||||
//
|
||||
// finally undef any macros we may have set:
|
||||
//
|
||||
#ifdef BOOST_LIB_PREFIX
|
||||
# undef BOOST_LIB_PREFIX
|
||||
#endif
|
||||
#if defined(BOOST_LIB_NAME)
|
||||
# undef BOOST_LIB_NAME
|
||||
#endif
|
||||
// Don't undef this one: it can be set by the user and should be the
|
||||
// same for all libraries:
|
||||
//#if defined(BOOST_LIB_TOOLSET)
|
||||
//# undef BOOST_LIB_TOOLSET
|
||||
//#endif
|
||||
#if defined(BOOST_LIB_THREAD_OPT)
|
||||
# undef BOOST_LIB_THREAD_OPT
|
||||
#endif
|
||||
#if defined(BOOST_LIB_RT_OPT)
|
||||
# undef BOOST_LIB_RT_OPT
|
||||
#endif
|
||||
#if defined(BOOST_LIB_LINK_OPT)
|
||||
# undef BOOST_LIB_LINK_OPT
|
||||
#endif
|
||||
#if defined(BOOST_LIB_DEBUG_OPT)
|
||||
# undef BOOST_LIB_DEBUG_OPT
|
||||
#endif
|
||||
#if defined(BOOST_DYN_LINK)
|
||||
# undef BOOST_DYN_LINK
|
||||
#endif
|
||||
|
||||
|
||||
319
include/boost/config/compiler/borland.hpp
Normal file
319
include/boost/config/compiler/borland.hpp
Normal file
@@ -0,0 +1,319 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Borland C++ compiler setup:
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Borland prior to version 5.4:
|
||||
#if __BORLANDC__ < 0x540
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
// last known compiler version:
|
||||
#if (__BORLANDC__ > 0x613)
|
||||
//# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
//# else
|
||||
//# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
||||
//# endif
|
||||
#elif (__BORLANDC__ == 0x600)
|
||||
# error "CBuilderX preview compiler is no longer supported"
|
||||
#endif
|
||||
|
||||
//
|
||||
// Support macros to help with standard library detection
|
||||
#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
|
||||
# define BOOST_BCB_WITH_ROGUE_WAVE
|
||||
#elif __BORLANDC__ < 0x570
|
||||
# define BOOST_BCB_WITH_STLPORT
|
||||
#else
|
||||
# define BOOST_BCB_WITH_DINKUMWARE
|
||||
#endif
|
||||
|
||||
//
|
||||
// Version 5.0 and below:
|
||||
# if __BORLANDC__ <= 0x0550
|
||||
// Borland C++Builder 4 and 5:
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# if __BORLANDC__ == 0x0550
|
||||
// Borland C++Builder 5, command-line compiler 5.5:
|
||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# endif
|
||||
// Variadic macros do not exist for C++ Builder versions 5 and below
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
# endif
|
||||
|
||||
// Version 5.51 and below:
|
||||
#if (__BORLANDC__ <= 0x551)
|
||||
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||
# define BOOST_NO_DEDUCED_TYPENAME
|
||||
// workaround for missing WCHAR_MAX/WCHAR_MIN:
|
||||
#ifdef __cplusplus
|
||||
#include <climits>
|
||||
#include <cwchar>
|
||||
#else
|
||||
#include <limits.h>
|
||||
#include <wchar.h>
|
||||
#endif // __cplusplus
|
||||
#ifndef WCHAR_MAX
|
||||
# define WCHAR_MAX 0xffff
|
||||
#endif
|
||||
#ifndef WCHAR_MIN
|
||||
# define WCHAR_MIN 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Borland C++ Builder 6 and below:
|
||||
#if (__BORLANDC__ <= 0x564)
|
||||
|
||||
# if defined(NDEBUG) && defined(__cplusplus)
|
||||
// fix broken <cstring> so that Boost.test works:
|
||||
# include <cstring>
|
||||
# undef strcmp
|
||||
# endif
|
||||
// fix broken errno declaration:
|
||||
# include <errno.h>
|
||||
# ifndef errno
|
||||
# define errno errno
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// new bug in 5.61:
|
||||
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
|
||||
// this seems to be needed by the command line compiler, but not the IDE:
|
||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||
#endif
|
||||
|
||||
// Borland C++ Builder 2006 Update 2 and below:
|
||||
#if (__BORLANDC__ <= 0x582)
|
||||
# define BOOST_NO_SFINAE
|
||||
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
|
||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
|
||||
# ifdef _WIN32
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# elif defined(linux) || defined(__linux__) || defined(__linux)
|
||||
// we should really be able to do without this
|
||||
// but the wcs* functions aren't imported into std::
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
// _CPPUNWIND doesn't get automatically set for some reason:
|
||||
# pragma defineonoption BOOST_CPPUNWIND -x
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info
|
||||
// we shouldn't really need this - but too many things choke
|
||||
// without it, this needs more investigation:
|
||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||
|
||||
// Temporary workaround
|
||||
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||
#endif
|
||||
|
||||
// Borland C++ Builder 2008 and below:
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
# define BOOST_NO_NESTED_FRIENDSHIP
|
||||
# define BOOST_NO_TYPENAME_WITH_CTOR
|
||||
#if (__BORLANDC__ < 0x600)
|
||||
# define BOOST_ILLEGAL_CV_REFERENCES
|
||||
#endif
|
||||
|
||||
//
|
||||
// Positive Feature detection
|
||||
//
|
||||
// Borland C++ Builder 2008 and below:
|
||||
#if (__BORLANDC__ >= 0x599)
|
||||
# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
|
||||
#endif
|
||||
//
|
||||
// C++0x Macros:
|
||||
//
|
||||
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#else
|
||||
# define BOOST_HAS_ALIGNOF
|
||||
# define BOOST_HAS_CHAR16_T
|
||||
# define BOOST_HAS_CHAR32_T
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||
# define BOOST_HAS_REF_QUALIFIER
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
# define BOOST_HAS_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if __BORLANDC__ >= 0x590
|
||||
# define BOOST_HAS_TR1_HASH
|
||||
|
||||
# define BOOST_HAS_MACRO_USE_FACET
|
||||
#endif
|
||||
|
||||
//
|
||||
// Post 0x561 we have long long and stdint.h:
|
||||
#if __BORLANDC__ >= 0x561
|
||||
# ifndef __NO_LONG_LONG
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
# endif
|
||||
// On non-Win32 platforms let the platform config figure this out:
|
||||
# ifdef _WIN32
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
|
||||
// defined, then we have 0x560 or greater with the Rogue Wave implementation
|
||||
// which presumably has the std::DBL_MAX bug.
|
||||
#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
|
||||
// <climits> is partly broken, some macros define symbols that are really in
|
||||
// namespace std, so you end up having to use illegal constructs like
|
||||
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
|
||||
#include <float.h>
|
||||
#endif
|
||||
//
|
||||
// __int64:
|
||||
//
|
||||
#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
//
|
||||
// check for exception handling support:
|
||||
//
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
//
|
||||
// all versions have a <dirent.h>:
|
||||
//
|
||||
#ifndef __STRICT_ANSI__
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
#endif
|
||||
//
|
||||
// all versions support __declspec:
|
||||
//
|
||||
#if defined(__STRICT_ANSI__)
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
//
|
||||
// ABI fixing headers:
|
||||
//
|
||||
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
|
||||
#ifndef BOOST_ABI_PREFIX
|
||||
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||
#endif
|
||||
#ifndef BOOST_ABI_SUFFIX
|
||||
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
||||
#endif
|
||||
#endif
|
||||
//
|
||||
// Disable Win32 support in ANSI mode:
|
||||
//
|
||||
#if __BORLANDC__ < 0x600
|
||||
# pragma defineonoption BOOST_DISABLE_WIN32 -A
|
||||
#elif defined(__STRICT_ANSI__)
|
||||
# define BOOST_DISABLE_WIN32
|
||||
#endif
|
||||
//
|
||||
// MSVC compatibility mode does some nasty things:
|
||||
// TODO: look up if this doesn't apply to the whole 12xx range
|
||||
//
|
||||
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
#endif
|
||||
|
||||
// Borland did not implement value-initialization completely, as I reported
|
||||
// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
|
||||
// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
// (Niels Dekker, LKEB, April 2010)
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
|
||||
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
|
||||
304
include/boost/config/compiler/clang.hpp
Normal file
304
include/boost/config/compiler/clang.hpp
Normal file
@@ -0,0 +1,304 @@
|
||||
// (C) Copyright Douglas Gregor 2010
|
||||
//
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Clang compiler setup.
|
||||
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
|
||||
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
|
||||
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||
#endif
|
||||
|
||||
// When compiling with clang before __has_extension was defined,
|
||||
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
|
||||
// clang reports a compiler error. So the only workaround found is:
|
||||
|
||||
#ifndef __has_extension
|
||||
#define __has_extension __has_feature
|
||||
#endif
|
||||
|
||||
#ifndef __has_attribute
|
||||
#define __has_attribute(x) 0
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
|
||||
# define BOOST_NO_TYPEID
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_thread_local)
|
||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
#endif
|
||||
|
||||
#ifdef __is_identifier
|
||||
#if !__is_identifier(__int64) && !defined(__GNUC__)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if __has_include(<stdint.h>)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
|
||||
#define BOOST_HAS_NRVO
|
||||
|
||||
// Branch prediction hints
|
||||
#if defined(__has_builtin)
|
||||
#if __has_builtin(__builtin_expect)
|
||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Clang supports "long long" in all compilation modes.
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
//
|
||||
// We disable this if the compiler is really nvcc with C++03 as it
|
||||
// doesn't actually support __int128 as of CUDA_VERSION=7500
|
||||
// even though it defines __SIZEOF_INT128__.
|
||||
// See https://svn.boost.org/trac/boost/ticket/10418
|
||||
// https://svn.boost.org/trac/boost/ticket/11852
|
||||
// Only re-enable this for nvcc if you're absolutely sure
|
||||
// of the circumstances under which it's supported.
|
||||
// Similarly __SIZEOF_INT128__ is defined when targetting msvc
|
||||
// compatibility even though the required support functions are absent.
|
||||
//
|
||||
#if defined(__CUDACC__)
|
||||
# if defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NVCC_CXX11
|
||||
# else
|
||||
# define BOOST_NVCC_CXX03
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03) && !defined(_MSC_VER)
|
||||
# define BOOST_HAS_INT128
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
|
||||
#endif
|
||||
|
||||
//
|
||||
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
|
||||
// between switch labels.
|
||||
//
|
||||
#if __cplusplus >= 201103L && defined(__has_warning)
|
||||
# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
|
||||
# define BOOST_FALLTHROUGH [[clang::fallthrough]]
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_auto_type)
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
//
|
||||
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
|
||||
//
|
||||
#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1800) && !defined(__GNUC__)
|
||||
#define BOOST_HAS_EXPM1
|
||||
#define BOOST_HAS_LOG1P
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_constexpr)
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype)
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype_incomplete_return_types)
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_defaulted_functions)
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_deleted_functions)
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_explicit_conversions)
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_default_function_template_args)
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_lambdas)
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_local_type_template_args)
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_noexcept)
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_nullptr)
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_range_for)
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_raw_string_literals)
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_reference_qualified_functions)
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rvalue_references)
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_strong_enums)
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_static_assert)
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_alias_templates)
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_unicode_literals)
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_variadic_templates)
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_user_literals)
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_alignas)
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_trailing_return)
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_inline_namespaces)
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_override_control)
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
|
||||
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_decltype_auto__)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_aggregate_nsdmi__)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_init_captures__)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_generic_lambdas__)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
|
||||
// clang < 3.5 has a defect with dependent type, like following.
|
||||
//
|
||||
// template <class T>
|
||||
// constexpr typename enable_if<pred<T> >::type foo(T &)
|
||||
// { } // error: no return statement in constexpr function
|
||||
//
|
||||
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
|
||||
// Therefore we don't care such case.
|
||||
//
|
||||
// Note that we can't check Clang version directly as the numbering system changes depending who's
|
||||
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
|
||||
// so instead verify that we have a feature that was introduced at the same time as working C++14
|
||||
// constexpr (generic lambda's in this case):
|
||||
//
|
||||
#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_return_type_deduction__)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_variable_templates__)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if __cplusplus < 201400
|
||||
// All versions with __cplusplus above this value seem to support this:
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
//
|
||||
// __builtin_unreachable:
|
||||
#if defined(__has_builtin) && __has_builtin(__builtin_unreachable)
|
||||
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
|
||||
#endif
|
||||
|
||||
// Clang has supported the 'unused' attribute since the first release.
|
||||
#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||
#endif
|
||||
|
||||
// Macro used to identify the Clang compiler.
|
||||
#define BOOST_CLANG 1
|
||||
|
||||
221
include/boost/config/compiler/codegear.hpp
Normal file
221
include/boost/config/compiler/codegear.hpp
Normal file
@@ -0,0 +1,221 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// CodeGear C++ compiler setup:
|
||||
|
||||
#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
|
||||
// these warnings occur frequently in optimized template code
|
||||
# pragma warn -8004 // var assigned value, but never used
|
||||
# pragma warn -8008 // condition always true/false
|
||||
# pragma warn -8066 // dead code can never execute
|
||||
# pragma warn -8104 // static members with ctors not threadsafe
|
||||
# pragma warn -8105 // reference member in class without ctors
|
||||
#endif
|
||||
//
|
||||
// versions check:
|
||||
// last known and checked version is 0x621
|
||||
#if (__CODEGEARC__ > 0x621)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// CodeGear C++ Builder 2009
|
||||
#if (__CODEGEARC__ <= 0x613)
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
// we shouldn't really need this - but too many things choke
|
||||
// without it, this needs more investigation:
|
||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||
#endif
|
||||
|
||||
// CodeGear C++ Builder 2010
|
||||
#if (__CODEGEARC__ <= 0x621)
|
||||
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
// Temporary hack, until specific MPL preprocessed headers are generated
|
||||
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||
|
||||
// CodeGear has not yet completely implemented value-initialization, for
|
||||
// example for array types, as I reported in 2010: Embarcadero Report 83751,
|
||||
// "Value-initialization: arrays should have each element value-initialized",
|
||||
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
|
||||
// Last checked version: Embarcadero C++ 6.21
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
// (Niels Dekker, LKEB, April 2010)
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
|
||||
# if defined(NDEBUG) && defined(__cplusplus)
|
||||
// fix broken <cstring> so that Boost.test works:
|
||||
# include <cstring>
|
||||
# undef strcmp
|
||||
# endif
|
||||
// fix broken errno declaration:
|
||||
# include <errno.h>
|
||||
# ifndef errno
|
||||
# define errno errno
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
// Reportedly, #pragma once is supported since C++ Builder 2010
|
||||
#if (__CODEGEARC__ >= 0x620)
|
||||
# define BOOST_HAS_PRAGMA_ONCE
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x macros:
|
||||
//
|
||||
#if (__CODEGEARC__ <= 0x620)
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#else
|
||||
#define BOOST_HAS_STATIC_ASSERT
|
||||
#endif
|
||||
#define BOOST_HAS_CHAR16_T
|
||||
#define BOOST_HAS_CHAR32_T
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
// #define BOOST_HAS_ALIGNOF
|
||||
#define BOOST_HAS_DECLTYPE
|
||||
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||
// #define BOOST_HAS_RVALUE_REFS
|
||||
#define BOOST_HAS_SCOPED_ENUM
|
||||
// #define BOOST_HAS_STATIC_ASSERT
|
||||
#define BOOST_HAS_STD_TYPE_TRAITS
|
||||
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
//
|
||||
// TR1 macros:
|
||||
//
|
||||
#define BOOST_HAS_TR1_HASH
|
||||
#define BOOST_HAS_TR1_TYPE_TRAITS
|
||||
#define BOOST_HAS_TR1_UNORDERED_MAP
|
||||
#define BOOST_HAS_TR1_UNORDERED_SET
|
||||
|
||||
#define BOOST_HAS_MACRO_USE_FACET
|
||||
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
|
||||
// On non-Win32 platforms let the platform config figure this out:
|
||||
#ifdef _WIN32
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
//
|
||||
// __int64:
|
||||
//
|
||||
#if !defined(__STRICT_ANSI__)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
//
|
||||
// check for exception handling support:
|
||||
//
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
//
|
||||
// all versions have a <dirent.h>:
|
||||
//
|
||||
#if !defined(__STRICT_ANSI__)
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
#endif
|
||||
//
|
||||
// all versions support __declspec:
|
||||
//
|
||||
#if defined(__STRICT_ANSI__)
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
//
|
||||
// ABI fixing headers:
|
||||
//
|
||||
#ifndef BOOST_ABI_PREFIX
|
||||
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||
#endif
|
||||
#ifndef BOOST_ABI_SUFFIX
|
||||
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
||||
#endif
|
||||
//
|
||||
// Disable Win32 support in ANSI mode:
|
||||
//
|
||||
# pragma defineonoption BOOST_DISABLE_WIN32 -A
|
||||
//
|
||||
// MSVC compatibility mode does some nasty things:
|
||||
// TODO: look up if this doesn't apply to the whole 12xx range
|
||||
//
|
||||
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
#endif
|
||||
|
||||
#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
|
||||
|
||||
59
include/boost/config/compiler/comeau.hpp
Normal file
59
include/boost/config/compiler/comeau.hpp
Normal file
@@ -0,0 +1,59 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Douglas Gregor 2001.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright Aleksey Gurtovoy 2003.
|
||||
// (C) Copyright Beman Dawes 2003.
|
||||
// (C) Copyright Jens Maurer 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Comeau C++ compiler setup:
|
||||
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
|
||||
#if (__COMO_VERSION__ <= 4245)
|
||||
|
||||
# if defined(_MSC_VER) && _MSC_VER <= 1300
|
||||
# if _MSC_VER > 100
|
||||
// only set this in non-strict mode:
|
||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||
# endif
|
||||
# endif
|
||||
|
||||
// Void returns don't work when emulating VC 6 (Peter Dimov)
|
||||
// TODO: look up if this doesn't apply to the whole 12xx range
|
||||
# if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
# endif
|
||||
|
||||
#endif // version 4245
|
||||
|
||||
//
|
||||
// enable __int64 support in VC emulation mode
|
||||
//
|
||||
# if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
# endif
|
||||
|
||||
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't know Comeau prior to version 4245:
|
||||
#if __COMO_VERSION__ < 4245
|
||||
# error "Compiler not configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 4245:
|
||||
#if (__COMO_VERSION__ > 4245)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
144
include/boost/config/compiler/common_edg.hpp
Normal file
144
include/boost/config/compiler/common_edg.hpp
Normal file
@@ -0,0 +1,144 @@
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright Markus Schoepflin 2005.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
//
|
||||
// Options common to all edg based compilers.
|
||||
//
|
||||
// This is included from within the individual compiler mini-configs.
|
||||
|
||||
#ifndef __EDG_VERSION__
|
||||
# error This file requires that __EDG_VERSION__ be defined.
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ <= 238)
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_SFINAE
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ <= 240)
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
|
||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
#endif
|
||||
|
||||
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#endif
|
||||
|
||||
// See also kai.hpp which checks a Kai-specific symbol for EH
|
||||
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
# endif
|
||||
|
||||
# if !defined(__NO_LONG_LONG)
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
# endif
|
||||
|
||||
// Not sure what version was the first to support #pragma once, but
|
||||
// different EDG-based compilers (e.g. Intel) supported it for ages.
|
||||
// Add a proper version check if it causes problems.
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See above for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if (__EDG_VERSION__ < 310)
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if (__EDG_VERSION__ <= 310)
|
||||
// No support for initializer lists
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
#if (__EDG_VERSION__ < 400)
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#ifdef c_plusplus
|
||||
// EDG has "long long" in non-strict mode
|
||||
// However, some libraries have insufficient "long long" support
|
||||
// #define BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
19
include/boost/config/compiler/compaq_cxx.hpp
Normal file
19
include/boost/config/compiler/compaq_cxx.hpp
Normal file
@@ -0,0 +1,19 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Tru64 C++ compiler setup (now HP):
|
||||
|
||||
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
|
||||
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// Nothing to do here?
|
||||
|
||||
|
||||
|
||||
93
include/boost/config/compiler/cray.hpp
Normal file
93
include/boost/config/compiler/cray.hpp
Normal file
@@ -0,0 +1,93 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// (C) Copyright Cray, Inc. 2013
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Greenhills C compiler setup:
|
||||
|
||||
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
|
||||
|
||||
#if _RELEASE < 8
|
||||
# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script."
|
||||
#endif
|
||||
|
||||
//
|
||||
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||
//
|
||||
#ifndef __EDG_VERSION__
|
||||
# error "Unsupported Cray compiler, please try running the configure script."
|
||||
#endif
|
||||
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
|
||||
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||
//#define BOOST_HAS_FPCLASSIFY
|
||||
|
||||
#define BOOST_SP_USE_PTHREADS
|
||||
#define BOOST_AC_USE_PTHREADS
|
||||
|
||||
/* everything that follows is working around what are thought to be
|
||||
* compiler shortcomings. Revist all of these regularly.
|
||||
*/
|
||||
|
||||
//#define BOOST_USE_ENUM_STATIC_ASSERT
|
||||
//#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define
|
||||
|
||||
// These constants should be provided by the
|
||||
// compiler, at least when -hgnu is asserted on the command line.
|
||||
|
||||
#ifndef __ATOMIC_RELAXED
|
||||
#define __ATOMIC_RELAXED 0
|
||||
#define __ATOMIC_CONSUME 1
|
||||
#define __ATOMIC_ACQUIRE 2
|
||||
#define __ATOMIC_RELEASE 3
|
||||
#define __ATOMIC_ACQ_REL 4
|
||||
#define __ATOMIC_SEQ_CST 5
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
125
include/boost/config/compiler/digitalmars.hpp
Normal file
125
include/boost/config/compiler/digitalmars.hpp
Normal file
@@ -0,0 +1,125 @@
|
||||
// Copyright (C) Christof Meerwald 2003
|
||||
// Copyright (C) Dan Watkins 2003
|
||||
//
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// Digital Mars C++ compiler setup:
|
||||
#define BOOST_COMPILER __DMC_VERSION_STRING__
|
||||
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
#if !defined(BOOST_STRICT_CONFIG)
|
||||
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
#define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||
#define BOOST_NO_SFINAE
|
||||
#define BOOST_NO_USING_TEMPLATE
|
||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#endif
|
||||
|
||||
//
|
||||
// has macros:
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#define BOOST_HAS_WINTHREADS
|
||||
|
||||
#if (__DMC__ >= 0x847)
|
||||
#define BOOST_HAS_EXPM1
|
||||
#define BOOST_HAS_LOG1P
|
||||
#endif
|
||||
|
||||
//
|
||||
// Is this really the best way to detect whether the std lib is in namespace std?
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#include <cstddef>
|
||||
#endif
|
||||
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
#endif
|
||||
|
||||
|
||||
// check for exception handling support:
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if (__DMC__ <= 0x840)
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is ...:
|
||||
#if (__DMC__ > 0x848)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
328
include/boost/config/compiler/gcc.hpp
Normal file
328
include/boost/config/compiler/gcc.hpp
Normal file
@@ -0,0 +1,328 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001 - 2002.
|
||||
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||
// (C) Copyright Douglas Gregor 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Synge Todo 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// GNU C++ compiler setup.
|
||||
|
||||
//
|
||||
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
|
||||
//
|
||||
#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||
#if !defined(__CUDACC__)
|
||||
#define BOOST_GCC BOOST_GCC_VERSION
|
||||
#endif
|
||||
|
||||
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
|
||||
# define BOOST_GCC_CXX11
|
||||
#endif
|
||||
|
||||
#if __GNUC__ == 3
|
||||
# if defined (__PATHSCALE__)
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
|
||||
# if __GNUC_MINOR__ < 4
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if __GNUC__ < 4
|
||||
//
|
||||
// All problems to gcc-3.x and earlier here:
|
||||
//
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
# ifdef __OPEN64__
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
|
||||
#if BOOST_GCC_VERSION >= 30400
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
#endif
|
||||
|
||||
#if BOOST_GCC_VERSION < 40400
|
||||
// Previous versions of GCC did not completely implement value-initialization:
|
||||
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
|
||||
// members", reported by Jonathan Wakely in 2006,
|
||||
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
|
||||
// GCC Bug 33916, "Default constructor fails to initialize array members",
|
||||
// reported by Michael Elizabeth Chastain in 2007,
|
||||
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#endif
|
||||
|
||||
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Threading support: Turn this on unconditionally here (except for
|
||||
// those platforms where we can know for sure). It will get turned off again
|
||||
// later if no threading API is detected.
|
||||
//
|
||||
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
//
|
||||
// gcc has "long long"
|
||||
// Except on Darwin with standard compliance enabled (-pedantic)
|
||||
// Apple gcc helpfully defines this macro we can query
|
||||
//
|
||||
#if !defined(__DARWIN_NO_LONG_LONG)
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
|
||||
//
|
||||
// gcc implements the named return value optimization since version 3.1
|
||||
//
|
||||
#define BOOST_HAS_NRVO
|
||||
|
||||
// Branch prediction hints
|
||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if __GNUC__ >= 4
|
||||
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
|
||||
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
||||
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
|
||||
// so does not define _WIN32 or its variants.
|
||||
# define BOOST_HAS_DECLSPEC
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
|
||||
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
|
||||
# else
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
# endif
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
|
||||
#else
|
||||
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||
# define BOOST_SYMBOL_EXPORT
|
||||
#endif
|
||||
|
||||
//
|
||||
// RTTI and typeinfo detection is possible post gcc-4.3:
|
||||
//
|
||||
#if BOOST_GCC_VERSION > 40300
|
||||
# ifndef __GXX_RTTI
|
||||
# ifndef BOOST_NO_TYPEID
|
||||
# define BOOST_NO_TYPEID
|
||||
# endif
|
||||
# ifndef BOOST_NO_RTTI
|
||||
# define BOOST_NO_RTTI
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Recent GCC versions have __int128 when in 64-bit mode.
|
||||
//
|
||||
// We disable this if the compiler is really nvcc with C++03 as it
|
||||
// doesn't actually support __int128 as of CUDA_VERSION=7500
|
||||
// even though it defines __SIZEOF_INT128__.
|
||||
// See https://svn.boost.org/trac/boost/ticket/8048
|
||||
// https://svn.boost.org/trac/boost/ticket/11852
|
||||
// Only re-enable this for nvcc if you're absolutely sure
|
||||
// of the circumstances under which it's supported:
|
||||
//
|
||||
#if defined(__CUDACC__)
|
||||
# if defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NVCC_CXX11
|
||||
# else
|
||||
# define BOOST_NVCC_CXX03
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03)
|
||||
# define BOOST_HAS_INT128
|
||||
#endif
|
||||
//
|
||||
// Recent GCC versions have a __float128 native type, we need to
|
||||
// include a std lib header to detect this - not ideal, but we'll
|
||||
// be including <cstddef> later anyway when we select the std lib.
|
||||
//
|
||||
// Nevertheless, as of CUDA 7.5, using __float128 with the host
|
||||
// compiler in pre-C++11 mode is still not supported.
|
||||
// See https://svn.boost.org/trac/boost/ticket/11852
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#include <cstddef>
|
||||
#else
|
||||
#include <stddef.h>
|
||||
#endif
|
||||
#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) && !defined(BOOST_NVCC_CXX03)
|
||||
# define BOOST_HAS_FLOAT128
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.3.n and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION >= 40300) && defined(BOOST_GCC_CXX11)
|
||||
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
|
||||
// passed on the command line, which in turn defines
|
||||
// __GXX_EXPERIMENTAL_CXX0X__.
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
# define BOOST_HAS_STATIC_ASSERT
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
#else
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.4.n and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if BOOST_GCC_VERSION < 40500
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
#endif
|
||||
|
||||
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.5.0 and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.5.1 and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40501) || !defined(BOOST_GCC_CXX11)
|
||||
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
|
||||
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.6.n and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11)
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.7.n and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.8.n and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.8.1 and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
|
||||
// C++14 features in 4.9.0 and later
|
||||
//
|
||||
#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11))
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
//
|
||||
// Unused attribute:
|
||||
#if __GNUC__ >= 4
|
||||
# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
|
||||
#endif
|
||||
//
|
||||
// __builtin_unreachable:
|
||||
#if BOOST_GCC_VERSION >= 40800
|
||||
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||
#endif
|
||||
|
||||
// ConceptGCC compiler:
|
||||
// http://www.generic-programming.org/software/ConceptGCC/
|
||||
#ifdef __GXX_CONCEPTS__
|
||||
# define BOOST_HAS_CONCEPTS
|
||||
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
|
||||
#endif
|
||||
|
||||
// versions check:
|
||||
// we don't know gcc prior to version 3.30:
|
||||
#if (BOOST_GCC_VERSION< 30300)
|
||||
# error "Compiler not configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 4.9:
|
||||
#if (BOOST_GCC_VERSION > 40900)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
// we don't emit warnings here anymore since there are no defect macros defined for
|
||||
// gcc post 3.4, so any failures are gcc regressions...
|
||||
//# warning "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
96
include/boost/config/compiler/gcc_xml.hpp
Normal file
96
include/boost/config/compiler/gcc_xml.hpp
Normal file
@@ -0,0 +1,96 @@
|
||||
// (C) Copyright John Maddock 2006.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// GCC-XML C++ compiler setup:
|
||||
|
||||
# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
|
||||
//
|
||||
// Threading support: Turn this on unconditionally here (except for
|
||||
// those platforms where we can know for sure). It will get turned off again
|
||||
// later if no threading API is detected.
|
||||
//
|
||||
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
//
|
||||
// gcc has "long long"
|
||||
//
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
// C++0x features:
|
||||
//
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||
|
||||
|
||||
28
include/boost/config/compiler/greenhills.hpp
Normal file
28
include/boost/config/compiler/greenhills.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Greenhills C++ compiler setup:
|
||||
|
||||
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
|
||||
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Greenhills prior to version 0:
|
||||
#if __ghs < 0
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 0:
|
||||
#if (__ghs > 0)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
146
include/boost/config/compiler/hp_acc.hpp
Normal file
146
include/boost/config/compiler/hp_acc.hpp
Normal file
@@ -0,0 +1,146 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Toon Knapen 2003.
|
||||
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// HP aCC C++ compiler setup:
|
||||
|
||||
#if defined(__EDG__)
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
#endif
|
||||
|
||||
#if (__HP_aCC <= 33100)
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||
# if !defined(_NAMESPACE_STD)
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
# define BOOST_NO_STRINGSTREAM
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if (__HP_aCC <= 33300)
|
||||
// member templates are sufficiently broken that we disable them for now
|
||||
# define BOOST_NO_MEMBER_TEMPLATES
|
||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
#endif
|
||||
|
||||
#if (__HP_aCC <= 38000)
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
|
||||
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
|
||||
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
#endif
|
||||
|
||||
// optional features rather than defects:
|
||||
#if (__HP_aCC >= 33900)
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||
#endif
|
||||
|
||||
#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||
#endif
|
||||
|
||||
// This macro should not be defined when compiling in strict ansi
|
||||
// mode, but, currently, we don't have the ability to determine
|
||||
// what standard mode we are compiling with. Some future version
|
||||
// of aCC6 compiler will provide predefined macros reflecting the
|
||||
// compilation options, including the standard mode.
|
||||
#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
|
||||
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support HP aCC prior to version 33000:
|
||||
#if __HP_aCC < 33000
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
//
|
||||
// Extended checks for supporting aCC on PA-RISC
|
||||
#if __HP_aCC > 30000 && __HP_aCC < 50000
|
||||
# if __HP_aCC < 38000
|
||||
// versions prior to version A.03.80 not supported
|
||||
# error "Compiler version not supported - version A.03.80 or higher is required"
|
||||
# elif !defined(__hpxstd98)
|
||||
// must compile using the option +hpxstd98 with version A.03.80 and above
|
||||
# error "Compiler option '+hpxstd98' is required for proper support"
|
||||
# endif //PA-RISC
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if !defined(__EDG__)
|
||||
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
/*
|
||||
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
||||
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
|
||||
*/
|
||||
|
||||
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version for HP-UX/ia64 is 61300
|
||||
// last known and checked version for PA-RISC is 38000
|
||||
#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
543
include/boost/config/compiler/intel.hpp
Normal file
543
include/boost/config/compiler/intel.hpp
Normal file
@@ -0,0 +1,543 @@
|
||||
// (C) Copyright John Maddock 2001-8.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||
// (C) Copyright Guillaume Melquiond 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2003.
|
||||
// (C) Copyright Martin Wille 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Intel compiler setup:
|
||||
|
||||
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
||||
#include <boost/config/compiler/visualc.hpp>
|
||||
|
||||
#undef BOOST_MSVC
|
||||
#undef BOOST_MSVC_FULL_VER
|
||||
|
||||
#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900)
|
||||
//
|
||||
// These appear to be supported, even though VC++ may not support them:
|
||||
//
|
||||
#define BOOST_HAS_EXPM1
|
||||
#define BOOST_HAS_LOG1P
|
||||
#undef BOOST_NO_CXX14_BINARY_LITERALS
|
||||
// This one may be a little risky to enable??
|
||||
#undef BOOST_NO_SFINAE_EXPR
|
||||
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#include <boost/config/compiler/gcc.hpp>
|
||||
|
||||
#undef BOOST_GCC_VERSION
|
||||
#undef BOOST_GCC_CXX11
|
||||
|
||||
#endif
|
||||
|
||||
#undef BOOST_COMPILER
|
||||
|
||||
#if defined(__INTEL_COMPILER)
|
||||
#if __INTEL_COMPILER == 9999
|
||||
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
|
||||
#else
|
||||
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
|
||||
#endif
|
||||
#elif defined(__ICL)
|
||||
# define BOOST_INTEL_CXX_VERSION __ICL
|
||||
#elif defined(__ICC)
|
||||
# define BOOST_INTEL_CXX_VERSION __ICC
|
||||
#elif defined(__ECC)
|
||||
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||
#endif
|
||||
|
||||
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_COMPILER)
|
||||
# if defined(BOOST_INTEL_STDCXX0X)
|
||||
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
# else
|
||||
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
# define BOOST_INTEL_WIN BOOST_INTEL
|
||||
#else
|
||||
# define BOOST_INTEL_LINUX BOOST_INTEL
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
|
||||
#if defined(__INTEL_COMPILER)
|
||||
#if __INTEL_COMPILER == 9999
|
||||
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
|
||||
#else
|
||||
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
|
||||
#endif
|
||||
#elif defined(__ICL)
|
||||
# define BOOST_INTEL_CXX_VERSION __ICL
|
||||
#elif defined(__ICC)
|
||||
# define BOOST_INTEL_CXX_VERSION __ICC
|
||||
#elif defined(__ECC)
|
||||
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||
#endif
|
||||
|
||||
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_COMPILER)
|
||||
# if defined(BOOST_INTEL_STDCXX0X)
|
||||
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
# else
|
||||
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
# define BOOST_INTEL_WIN BOOST_INTEL
|
||||
#else
|
||||
# define BOOST_INTEL_LINUX BOOST_INTEL
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION <= 600)
|
||||
|
||||
# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
|
||||
|
||||
// Boost libraries assume strong standard conformance unless otherwise
|
||||
// indicated by a config macro. As configured by Intel, the EDG front-end
|
||||
// requires certain compiler options be set to achieve that strong conformance.
|
||||
// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
|
||||
// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
|
||||
// details as they apply to particular versions of the compiler. When the
|
||||
// compiler does not predefine a macro indicating if an option has been set,
|
||||
// this config file simply assumes the option has been set.
|
||||
// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
|
||||
// the compiler option is not enabled.
|
||||
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# endif
|
||||
|
||||
// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
|
||||
|
||||
# if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||
# define BOOST_NO_VOID_RETURNS
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
|
||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
|
||||
#if BOOST_INTEL_CXX_VERSION < 600
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
#else
|
||||
// We should test the macro _WCHAR_T_DEFINED to check if the compiler
|
||||
// supports wchar_t natively. *BUT* there is a problem here: the standard
|
||||
// headers define this macro if they typedef wchar_t. Anyway, we're lucky
|
||||
// because they define it without a value, while Intel C++ defines it
|
||||
// to 1. So we can check its value to see if the macro was defined natively
|
||||
// or not.
|
||||
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
|
||||
// is used instead.
|
||||
# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||
//
|
||||
// Figure out when Intel is emulating this gcc bug
|
||||
// (All Intel versions prior to 9.0.26, and versions
|
||||
// later than that if they are set up to emulate gcc 3.2
|
||||
// or earlier):
|
||||
//
|
||||
# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# endif
|
||||
#endif
|
||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
|
||||
// GCC or VC emulation:
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
//
|
||||
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
|
||||
// set correctly, if we don't do this now, we will get errors later
|
||||
// in type_traits code among other things, getting this correct
|
||||
// for the Intel compiler is actually remarkably fragile and tricky:
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
||||
#include <cwchar>
|
||||
template< typename T > struct assert_no_intrinsic_wchar_t;
|
||||
template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
|
||||
// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
|
||||
// where it is defined above:
|
||||
typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
|
||||
#else
|
||||
template< typename T > struct assert_intrinsic_wchar_t;
|
||||
template<> struct assert_intrinsic_wchar_t<wchar_t> {};
|
||||
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
|
||||
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
|
||||
# if _MSC_VER >= 1200
|
||||
# define BOOST_HAS_MS_INT64
|
||||
# endif
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#elif defined(_WIN32)
|
||||
# define BOOST_DISABLE_WIN32
|
||||
#endif
|
||||
|
||||
// I checked version 6.0 build 020312Z, it implements the NRVO.
|
||||
// Correct this as you find out which version of the compiler
|
||||
// implemented the NRVO first. (Daniel Frey)
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 600)
|
||||
# define BOOST_HAS_NRVO
|
||||
#endif
|
||||
|
||||
// Branch prediction hints
|
||||
// I'm not sure 8.0 was the first version to support these builtins,
|
||||
// update the condition if the version is not accurate. (Andrey Semashev)
|
||||
#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
|
||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||
#endif
|
||||
|
||||
// RTTI
|
||||
// __RTTI is the EDG macro
|
||||
// __INTEL_RTTI__ is the Intel macro
|
||||
// __GXX_RTTI is the g++ macro
|
||||
// _CPPRTTI is the MSVC++ macro
|
||||
#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
|
||||
|
||||
#if !defined(BOOST_NO_RTTI)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
// in MS mode, static typeid works even when RTTI is off
|
||||
#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
|
||||
# define BOOST_NO_TYPEID
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Intel prior to version 6.0:
|
||||
#if BOOST_INTEL_CXX_VERSION < 600
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
// Intel on MacOS requires
|
||||
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
|
||||
// Intel on Altix Itanium
|
||||
#if defined(__itanium__) && defined(__INTEL_COMPILER)
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
|
||||
//
|
||||
// An attempt to value-initialize a pointer-to-member may trigger an
|
||||
// internal error on Intel <= 11.1 (last checked version), as was
|
||||
// reported by John Maddock, Intel support issue 589832, May 2010.
|
||||
// Moreover, according to test results from Huang-Vista-x86_32_intel,
|
||||
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
||||
// cases when it should be value-initialized.
|
||||
// (Niels Dekker, LKEB, May 2010)
|
||||
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
|
||||
#if defined(__INTEL_COMPILER)
|
||||
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
||||
#endif
|
||||
//
|
||||
// C++0x features
|
||||
// For each feature we need to check both the Intel compiler version,
|
||||
// and the version of MSVC or GCC that we are emulating.
|
||||
// See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||
// for a list of which features were implemented in which Intel releases.
|
||||
//
|
||||
#if defined(BOOST_INTEL_STDCXX0X)
|
||||
// BOOST_NO_CXX11_CONSTEXPR:
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER)
|
||||
// Available in earlier Intel versions, but fail our tests:
|
||||
# undef BOOST_NO_CXX11_CONSTEXPR
|
||||
#endif
|
||||
// BOOST_NO_CXX11_NULLPTR:
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||
# undef BOOST_NO_CXX11_NULLPTR
|
||||
#endif
|
||||
// BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_DECLTYPE
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||
# undef BOOST_NO_CXX11_DECLTYPE
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||
// This is available from earlier Intel versions, but breaks Filesystem and other libraries:
|
||||
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||
# undef BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
|
||||
# undef BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_CHAR16_T
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||
# undef BOOST_NO_CXX11_CHAR16_T
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_CHAR32_T
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||
# undef BOOST_NO_CXX11_CHAR32_T
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
|
||||
# undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
|
||||
// This is available but broken in earlier Intel releases.
|
||||
# undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_SFINAE_EXPR
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||
# undef BOOST_NO_SFINAE_EXPR
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
// This is available in earlier Intel releases, but breaks Multiprecision:
|
||||
# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_LAMBDAS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||
# undef BOOST_NO_CXX11_LAMBDAS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500))
|
||||
# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
|
||||
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_RAW_LITERALS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_RAW_LITERALS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||
# undef BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_NOEXCEPT
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||
// Available in earlier Intel release, but generates errors when used with
|
||||
// conditional exception specifications, for example in multiprecision:
|
||||
# undef BOOST_NO_CXX11_NOEXCEPT
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||
# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||
# undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_ALIGNAS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||
# undef BOOST_NO_CXX11_ALIGNAS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||
# undef BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_FINAL
|
||||
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
|
||||
# undef BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// Broken in all versions up to 15:
|
||||
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
|
||||
// A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||
//
|
||||
// fenv.h appears not to work with Intel prior to 12.0:
|
||||
//
|
||||
# define BOOST_NO_FENV_H
|
||||
#endif
|
||||
|
||||
// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
|
||||
// producing the following errors:
|
||||
// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
|
||||
#if (BOOST_INTEL_CXX_VERSION <= 1310)
|
||||
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
#if defined(__CUDACC__)
|
||||
# if defined(BOOST_GCC_CXX11)
|
||||
# define BOOST_NVCC_CXX11
|
||||
# else
|
||||
# define BOOST_NVCC_CXX03
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(BOOST_NVCC_CXX03)
|
||||
# define BOOST_HAS_INT128
|
||||
#endif
|
||||
|
||||
#endif
|
||||
//
|
||||
// last known and checked version:
|
||||
#if (BOOST_INTEL_CXX_VERSION > 1500)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# elif defined(_MSC_VER)
|
||||
//
|
||||
// We don't emit this warning any more, since we have so few
|
||||
// defect macros set anyway (just the one).
|
||||
//
|
||||
//# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
||||
# endif
|
||||
#endif
|
||||
|
||||
33
include/boost/config/compiler/kai.hpp
Normal file
33
include/boost/config/compiler/kai.hpp
Normal file
@@ -0,0 +1,33 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Kai C++ compiler setup:
|
||||
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
|
||||
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
|
||||
// at least on Sun, the contents of <cwchar> is not in namespace std
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# endif
|
||||
|
||||
// see also common_edg.hpp which needs a special check for __KCC
|
||||
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
# endif
|
||||
|
||||
//
|
||||
// last known and checked version is 4001:
|
||||
#if (__KCC_VERSION > 4001)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
180
include/boost/config/compiler/metrowerks.hpp
Normal file
180
include/boost/config/compiler/metrowerks.hpp
Normal file
@@ -0,0 +1,180 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Darin Adler 2001.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright David Abrahams 2001 - 2002.
|
||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||
// (C) Copyright Stefan Slapeta 2004.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Metrowerks C++ compiler setup:
|
||||
|
||||
// locale support is disabled when linking with the dynamic runtime
|
||||
# ifdef _MSL_NO_LOCALE
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
# endif
|
||||
|
||||
# if __MWERKS__ <= 0x2301 // 5.3
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||
# define BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||
# endif
|
||||
|
||||
# if __MWERKS__ <= 0x2401 // 6.2
|
||||
//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||
# endif
|
||||
|
||||
# if(__MWERKS__ <= 0x2407) // 7.x
|
||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||
# endif
|
||||
|
||||
# if(__MWERKS__ <= 0x3003) // 8.x
|
||||
# define BOOST_NO_SFINAE
|
||||
# endif
|
||||
|
||||
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
||||
// tested version *only*:
|
||||
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
|
||||
#if !__option(wchar_type)
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
#endif
|
||||
|
||||
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
|
||||
# if __MWERKS__ == 0x3000
|
||||
# define BOOST_COMPILER_VERSION 8.0
|
||||
# elif __MWERKS__ == 0x3001
|
||||
# define BOOST_COMPILER_VERSION 8.1
|
||||
# elif __MWERKS__ == 0x3002
|
||||
# define BOOST_COMPILER_VERSION 8.2
|
||||
# elif __MWERKS__ == 0x3003
|
||||
# define BOOST_COMPILER_VERSION 8.3
|
||||
# elif __MWERKS__ == 0x3200
|
||||
# define BOOST_COMPILER_VERSION 9.0
|
||||
# elif __MWERKS__ == 0x3201
|
||||
# define BOOST_COMPILER_VERSION 9.1
|
||||
# elif __MWERKS__ == 0x3202
|
||||
# define BOOST_COMPILER_VERSION 9.2
|
||||
# elif __MWERKS__ == 0x3204
|
||||
# define BOOST_COMPILER_VERSION 9.3
|
||||
# elif __MWERKS__ == 0x3205
|
||||
# define BOOST_COMPILER_VERSION 9.4
|
||||
# elif __MWERKS__ == 0x3206
|
||||
# define BOOST_COMPILER_VERSION 9.5
|
||||
# elif __MWERKS__ == 0x3207
|
||||
# define BOOST_COMPILER_VERSION 9.6
|
||||
# else
|
||||
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||
# endif
|
||||
#else
|
||||
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
|
||||
# define BOOST_HAS_RVALUE_REFS
|
||||
#else
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Metrowerks prior to version 5.3:
|
||||
#if __MWERKS__ < 0x2301
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version:
|
||||
#if (__MWERKS__ > 0x3205)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
122
include/boost/config/compiler/mpw.hpp
Normal file
122
include/boost/config/compiler/mpw.hpp
Normal file
@@ -0,0 +1,122 @@
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// MPW C++ compilers setup:
|
||||
|
||||
# if defined(__SC__)
|
||||
# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
|
||||
# elif defined(__MRC__)
|
||||
# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
|
||||
# else
|
||||
# error "Using MPW compiler configuration by mistake. Please update."
|
||||
# endif
|
||||
|
||||
//
|
||||
// MPW 8.90:
|
||||
//
|
||||
#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
|
||||
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# define BOOST_NO_USING_TEMPLATE
|
||||
|
||||
# define BOOST_NO_CWCHAR
|
||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
|
||||
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support MPW prior to version 8.9:
|
||||
#if MPW_CPLUS < 0x890
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 0x890:
|
||||
#if (MPW_CPLUS > 0x890)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
24
include/boost/config/compiler/nvcc.hpp
Normal file
24
include/boost/config/compiler/nvcc.hpp
Normal file
@@ -0,0 +1,24 @@
|
||||
// (C) Copyright Eric Jourdanneau, Joel Falcou 2010
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// NVIDIA CUDA C++ compiler setup
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
|
||||
#endif
|
||||
|
||||
// NVIDIA Specific support
|
||||
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
|
||||
#define BOOST_GPU_ENABLED __host__ __device__
|
||||
|
||||
// A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions
|
||||
// https://svn.boost.org/trac/boost/ticket/11897
|
||||
// This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance
|
||||
// check is enough to detect versions < 7.5
|
||||
#if !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500)
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
115
include/boost/config/compiler/pathscale.hpp
Normal file
115
include/boost/config/compiler/pathscale.hpp
Normal file
@@ -0,0 +1,115 @@
|
||||
// (C) Copyright Bryce Lelbach 2011
|
||||
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// PathScale EKOPath C++ Compiler
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
|
||||
#endif
|
||||
|
||||
#if __PATHCC__ >= 4
|
||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# define BOOST_HAS_SIGACTION
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
# define BOOST_HAS_THREADS
|
||||
# define BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_PTHREAD_YIELD
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||
# define BOOST_HAS_NRVO
|
||||
# define BOOST_HAS_NL_TYPES_H
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
# define BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
# define BOOST_HAS_CLOCK_GETTIME
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
#endif
|
||||
156
include/boost/config/compiler/pgi.hpp
Normal file
156
include/boost/config/compiler/pgi.hpp
Normal file
@@ -0,0 +1,156 @@
|
||||
// (C) Copyright Noel Belcourt 2007.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// PGI C++ compiler setup:
|
||||
|
||||
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
|
||||
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
//
|
||||
// Threading support:
|
||||
// Turn this on unconditionally here, it will get turned off again later
|
||||
// if no threading API is detected.
|
||||
//
|
||||
|
||||
#if __PGIC__ >= 11
|
||||
|
||||
// options requested by configure --enable-test
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_THREADS
|
||||
#define BOOST_HAS_PTHREAD_YIELD
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
// options --enable-test wants undefined
|
||||
#undef BOOST_NO_STDC_NAMESPACE
|
||||
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||
#undef BOOST_DEDUCED_TYPENAME
|
||||
|
||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
|
||||
#elif __PGIC__ >= 10
|
||||
|
||||
// options requested by configure --enable-test
|
||||
#define BOOST_HAS_THREADS
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
#if defined(linux) || defined(__linux) || defined(__linux__)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
// options --enable-test wants undefined
|
||||
#undef BOOST_NO_STDC_NAMESPACE
|
||||
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||
#undef BOOST_DEDUCED_TYPENAME
|
||||
|
||||
#elif __PGIC__ >= 7
|
||||
|
||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_SWPRINTF
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
|
||||
#else
|
||||
|
||||
# error "Pgi compiler not configured - please reconfigure"
|
||||
|
||||
#endif
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_SWPRINTF
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
#define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
#define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#define BOOST_NO_CXX11_HDR_THREAD
|
||||
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
#define BOOST_NO_CXX11_HDR_REGEX
|
||||
#define BOOST_NO_CXX11_HDR_RATIO
|
||||
#define BOOST_NO_CXX11_HDR_RANDOM
|
||||
#define BOOST_NO_CXX11_HDR_MUTEX
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_HDR_FUTURE
|
||||
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
#define BOOST_NO_CXX11_HDR_CODECVT
|
||||
#define BOOST_NO_CXX11_HDR_CHRONO
|
||||
#define BOOST_NO_CXX11_HDR_ARRAY
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
//
|
||||
// version check:
|
||||
// probably nothing to do here?
|
||||
|
||||
29
include/boost/config/compiler/sgi_mipspro.hpp
Normal file
29
include/boost/config/compiler/sgi_mipspro.hpp
Normal file
@@ -0,0 +1,29 @@
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// SGI C++ compiler setup:
|
||||
|
||||
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
||||
|
||||
#include <boost/config/compiler/common_edg.hpp>
|
||||
|
||||
//
|
||||
// Threading support:
|
||||
// Turn this on unconditionally here, it will get turned off again later
|
||||
// if no threading API is detected.
|
||||
//
|
||||
#define BOOST_HAS_THREADS
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
|
||||
#undef BOOST_NO_SWPRINTF
|
||||
#undef BOOST_DEDUCED_TYPENAME
|
||||
|
||||
//
|
||||
// version check:
|
||||
// probably nothing to do here?
|
||||
|
||||
|
||||
198
include/boost/config/compiler/sunpro_cc.hpp
Normal file
198
include/boost/config/compiler/sunpro_cc.hpp
Normal file
@@ -0,0 +1,198 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright Peter Dimov 2002.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Sun C++ compiler setup:
|
||||
|
||||
# if __SUNPRO_CC <= 0x500
|
||||
# define BOOST_NO_MEMBER_TEMPLATES
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||
# endif
|
||||
|
||||
# if (__SUNPRO_CC <= 0x520)
|
||||
//
|
||||
// Sunpro 5.2 and earler:
|
||||
//
|
||||
// although sunpro 5.2 supports the syntax for
|
||||
// inline initialization it often gets the value
|
||||
// wrong, especially where the value is computed
|
||||
// from other constants (J Maddock 6th May 2001)
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
// Although sunpro 5.2 supports the syntax for
|
||||
// partial specialization, it often seems to
|
||||
// bind to the wrong specialization. Better
|
||||
// to disable it until suppport becomes more stable
|
||||
// (J Maddock 6th May 2001).
|
||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# endif
|
||||
|
||||
# if (__SUNPRO_CC <= 0x530)
|
||||
// Requesting debug info (-g) with Boost.Python results
|
||||
// in an internal compiler error for "static const"
|
||||
// initialized in-class.
|
||||
// >> Assertion: (../links/dbg_cstabs.cc, line 611)
|
||||
// while processing ../test.cpp at line 0.
|
||||
// (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
// SunPro 5.3 has better support for partial specialization,
|
||||
// but breaks when compiling std::less<shared_ptr<T> >
|
||||
// (Jens Maurer 4 Nov 2001).
|
||||
|
||||
// std::less specialization fixed as reported by George
|
||||
// Heintzelman; partial specialization re-enabled
|
||||
// (Peter Dimov 17 Jan 2002)
|
||||
|
||||
//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
|
||||
// integral constant expressions with 64 bit numbers fail
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# endif
|
||||
|
||||
# if (__SUNPRO_CC < 0x570)
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
// see http://lists.boost.org/MailArchives/boost/msg47184.php
|
||||
// and http://lists.boost.org/MailArchives/boost/msg47220.php
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
# define BOOST_NO_SFINAE
|
||||
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||
# endif
|
||||
# if (__SUNPRO_CC <= 0x580)
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
|
||||
# if (__SUNPRO_CC <= 0x5100)
|
||||
// Sun 5.10 may not correctly value-initialize objects of
|
||||
// some user defined types, as was reported in April 2010
|
||||
// (CR 6947016), and confirmed by Steve Clamage.
|
||||
// (Niels Dekker, LKEB, May 2010).
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# endif
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if __SUNPRO_CC > 0x500
|
||||
# define BOOST_SYMBOL_EXPORT __global
|
||||
# define BOOST_SYMBOL_IMPORT __global
|
||||
# define BOOST_SYMBOL_VISIBLE __global
|
||||
#endif
|
||||
|
||||
#if (__SUNPRO_CC < 0x5130)
|
||||
// C++03 features in 12.4:
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_ADL_BARRIER
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100)
|
||||
// C++11 only featuires in 12.4:
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
|
||||
#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
// Turn on threading support for Solaris 12.
|
||||
// Ticket #11972
|
||||
#if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support sunpro prior to version 4:
|
||||
#if __SUNPRO_CC < 0x400
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 0x590:
|
||||
#if (__SUNPRO_CC > 0x590)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
163
include/boost/config/compiler/vacpp.hpp
Normal file
163
include/boost/config/compiler/vacpp.hpp
Normal file
@@ -0,0 +1,163 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Toon Knapen 2001 - 2003.
|
||||
// (C) Copyright Lie-Quan Lee 2001.
|
||||
// (C) Copyright Markus Schoepflin 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Visual Age (IBM) C++ compiler setup:
|
||||
|
||||
#if __IBMCPP__ <= 501
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||
#endif
|
||||
|
||||
#if (__IBMCPP__ <= 502)
|
||||
// Actually the compiler supports inclass member initialization but it
|
||||
// requires a definition for the class member and it doesn't recognize
|
||||
// it as an integral constant expression when used as a template argument.
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
# define BOOST_NO_INTEGRAL_INT64_T
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||
#endif
|
||||
|
||||
#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
|
||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
#if (__IBMCPP__ <= 1110)
|
||||
// XL C++ V11.1 and earlier versions may not always value-initialize
|
||||
// a temporary object T(), when T is a non-POD aggregate class type.
|
||||
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
|
||||
// high priority. -- Niels Dekker (LKEB), May 2010.
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#endif
|
||||
|
||||
//
|
||||
// On AIX thread support seems to be indicated by _THREAD_SAFE:
|
||||
//
|
||||
#ifdef _THREAD_SAFE
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Visual age prior to version 5:
|
||||
#if __IBMCPP__ < 500
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 1210:
|
||||
#if (__IBMCPP__ > 1210)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Some versions of the compiler have issues with default arguments on partial specializations
|
||||
#if __IBMCPP__ <= 1010
|
||||
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
#if ! __IBMCPP_UTF_LITERAL__
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
#endif
|
||||
#if ! __IBMCPP_CONSTEXPR
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
#endif
|
||||
#if ! __IBMCPP_DECLTYPE
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
#else
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
#if ! __IBMCPP_EXTERN_TEMPLATE
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||
// not enabled separately at this time
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#if ! __IBMCPP_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
#if ! __IBMCPP_SCOPED_ENUM
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#if ! __IBMCPP_STATIC_ASSERT
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
#if ! __C99_MACRO_WITH_VA_ARGS
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_ALIGNAS
|
||||
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#define BOOST_NO_CXX11_FINAL
|
||||
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
304
include/boost/config/compiler/visualc.hpp
Normal file
304
include/boost/config/compiler/visualc.hpp
Normal file
@@ -0,0 +1,304 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001 - 2002.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
//
|
||||
// Microsoft Visual C++ compiler setup:
|
||||
//
|
||||
// We need to be careful with the checks in this file, as contrary
|
||||
// to popular belief there are versions with _MSC_VER with the final
|
||||
// digit non-zero (mainly the MIPS cross compiler).
|
||||
//
|
||||
// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
|
||||
// No other comparisons (==, >, or <=) are safe.
|
||||
//
|
||||
|
||||
#define BOOST_MSVC _MSC_VER
|
||||
|
||||
//
|
||||
// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
|
||||
//
|
||||
#if _MSC_FULL_VER > 100000000
|
||||
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
|
||||
#else
|
||||
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
|
||||
#endif
|
||||
|
||||
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
|
||||
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Visual C++ prior to version 7.1:
|
||||
#if _MSC_VER < 1310
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
#if _MSC_FULL_VER < 180020827
|
||||
# define BOOST_NO_FENV_H
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1400
|
||||
// although a conforming signature for swprint exists in VC7.1
|
||||
// it appears not to actually work:
|
||||
# define BOOST_NO_SWPRINTF
|
||||
// Our extern template tests also fail for this compiler:
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
// Variadic macros do not exist for VC7.1 and lower
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1500 // 140X == VC++ 8.0
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1600 // 150X == VC++ 9.0
|
||||
// A bug in VC9:
|
||||
# define BOOST_NO_ADL_BARRIER
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef _NATIVE_WCHAR_T_DEFINED
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
#endif
|
||||
|
||||
//
|
||||
// check for exception handling support:
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
//
|
||||
// __int64 support:
|
||||
//
|
||||
#define BOOST_HAS_MS_INT64
|
||||
#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
#else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
#endif
|
||||
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
||||
# define BOOST_HAS_NRVO
|
||||
#endif
|
||||
#if _MSC_VER >= 1600 // 160X == VC++ 10.0
|
||||
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||
#endif
|
||||
//
|
||||
// disable Win32 API's if compiler extensions are
|
||||
// turned off:
|
||||
//
|
||||
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
|
||||
# define BOOST_DISABLE_WIN32
|
||||
#endif
|
||||
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
//
|
||||
// TR1 features:
|
||||
//
|
||||
#if _MSC_VER >= 1700
|
||||
// # define BOOST_HAS_TR1_HASH // don't know if this is true yet.
|
||||
// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet.
|
||||
# define BOOST_HAS_TR1_UNORDERED_MAP
|
||||
# define BOOST_HAS_TR1_UNORDERED_SET
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See above for BOOST_NO_LONG_LONG
|
||||
|
||||
// C++ features supported by VC++ 10 (aka 2010)
|
||||
//
|
||||
#if _MSC_VER < 1600
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
#endif // _MSC_VER < 1600
|
||||
|
||||
#if _MSC_VER >= 1600
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
// C++11 features supported by VC++ 11 (aka 2012)
|
||||
//
|
||||
#if _MSC_VER < 1700
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif // _MSC_VER < 1700
|
||||
|
||||
// C++11 features supported by VC++ 12 (aka 2013).
|
||||
//
|
||||
#if _MSC_FULL_VER < 180020827
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
#if _MSC_FULL_VER >= 180020827
|
||||
#define BOOST_HAS_EXPM1
|
||||
#define BOOST_HAS_LOG1P
|
||||
#endif
|
||||
|
||||
// C++11 features supported by VC++ 14 (aka 2015)
|
||||
//
|
||||
#if (_MSC_FULL_VER < 190023026)
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
#endif
|
||||
// C++11 features supported by VC++ 14 update 3 (aka 2015)
|
||||
//
|
||||
#if (_MSC_FULL_VER < 190024210)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
#endif
|
||||
|
||||
// MSVC including version 14 has not yet completely
|
||||
// implemented value-initialization, as is reported:
|
||||
// "VC++ does not value-initialize members of derived classes without
|
||||
// user-declared constructor", reported in 2009 by Sylvester Hesp:
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
|
||||
// "Presence of copy constructor breaks member class initialization",
|
||||
// reported in 2009 by Alex Vakulenko:
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
|
||||
// "Value-initialization in new-expression", reported in 2005 by
|
||||
// Pavel Kuznetsov (MetaCommunications Engineering):
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
|
||||
// Reported again by John Maddock in 2015 for VC14:
|
||||
// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly
|
||||
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||
// (Niels Dekker, LKEB, May 2010)
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
//
|
||||
// C++ 11:
|
||||
//
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
//
|
||||
// C++ 14:
|
||||
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
|
||||
//
|
||||
// prefix and suffix headers:
|
||||
//
|
||||
#ifndef BOOST_ABI_PREFIX
|
||||
# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
|
||||
#endif
|
||||
#ifndef BOOST_ABI_SUFFIX
|
||||
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
// TODO:
|
||||
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
|
||||
// artificial versions assigned to them only refer to the versions of some IDE
|
||||
// these compilers have been shipped with, and even that is not all of it. Some
|
||||
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
|
||||
// IOW, you can't use these 'versions' in any sensible way. Sorry.
|
||||
# if defined(UNDER_CE)
|
||||
# if _MSC_VER < 1400
|
||||
// Note: I'm not aware of any CE compiler with version 13xx
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
|
||||
# endif
|
||||
# elif _MSC_VER < 1500
|
||||
# define BOOST_COMPILER_VERSION evc8
|
||||
# elif _MSC_VER < 1600
|
||||
# define BOOST_COMPILER_VERSION evc9
|
||||
# elif _MSC_VER < 1700
|
||||
# define BOOST_COMPILER_VERSION evc10
|
||||
# elif _MSC_VER < 1800
|
||||
# define BOOST_COMPILER_VERSION evc11
|
||||
# elif _MSC_VER < 1900
|
||||
# define BOOST_COMPILER_VERSION evc12
|
||||
# elif _MSC_VER < 2000
|
||||
# define BOOST_COMPILER_VERSION evc14
|
||||
# else
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
# if _MSC_VER < 1310
|
||||
// Note: Versions up to 7.0 aren't supported.
|
||||
# define BOOST_COMPILER_VERSION 5.0
|
||||
# elif _MSC_VER < 1300
|
||||
# define BOOST_COMPILER_VERSION 6.0
|
||||
# elif _MSC_VER < 1310
|
||||
# define BOOST_COMPILER_VERSION 7.0
|
||||
# elif _MSC_VER < 1400
|
||||
# define BOOST_COMPILER_VERSION 7.1
|
||||
# elif _MSC_VER < 1500
|
||||
# define BOOST_COMPILER_VERSION 8.0
|
||||
# elif _MSC_VER < 1600
|
||||
# define BOOST_COMPILER_VERSION 9.0
|
||||
# elif _MSC_VER < 1700
|
||||
# define BOOST_COMPILER_VERSION 10.0
|
||||
# elif _MSC_VER < 1800
|
||||
# define BOOST_COMPILER_VERSION 11.0
|
||||
# elif _MSC_VER < 1900
|
||||
# define BOOST_COMPILER_VERSION 12.0
|
||||
# elif _MSC_VER < 2000
|
||||
# define BOOST_COMPILER_VERSION 14.0
|
||||
# else
|
||||
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version is 19.00.23026 (VC++ 2015 RTM):
|
||||
#if (_MSC_VER > 1900)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
||||
# endif
|
||||
#endif
|
||||
262
include/boost/config/compiler/xlcpp.hpp
Normal file
262
include/boost/config/compiler/xlcpp.hpp
Normal file
@@ -0,0 +1,262 @@
|
||||
// (C) Copyright Douglas Gregor 2010
|
||||
//
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// compiler setup for IBM XL C/C++ for Linux (Little Endian) based on clang.
|
||||
|
||||
#define BOOST_HAS_PRAGMA_ONCE
|
||||
|
||||
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
|
||||
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
|
||||
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||
#endif
|
||||
|
||||
// When compiling with clang before __has_extension was defined,
|
||||
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
|
||||
// clang reports a compiler error. So the only workaround found is:
|
||||
|
||||
#ifndef __has_extension
|
||||
#define __has_extension __has_feature
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
|
||||
# define BOOST_NO_TYPEID
|
||||
#endif
|
||||
|
||||
#if defined(__int64) && !defined(__GNUC__)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
|
||||
#define BOOST_HAS_NRVO
|
||||
|
||||
// Branch prediction hints
|
||||
#if defined(__has_builtin)
|
||||
#if __has_builtin(__builtin_expect)
|
||||
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Clang supports "long long" in all compilation modes.
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
//
|
||||
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||
//
|
||||
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
|
||||
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
|
||||
# define BOOST_SYMBOL_IMPORT
|
||||
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
|
||||
#endif
|
||||
|
||||
//
|
||||
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
|
||||
// between switch labels.
|
||||
//
|
||||
#if __cplusplus >= 201103L && defined(__has_warning)
|
||||
# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
|
||||
# define BOOST_FALLTHROUGH [[clang::fallthrough]]
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_auto_type)
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
//
|
||||
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
|
||||
//
|
||||
#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_constexpr)
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype)
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype_incomplete_return_types)
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_defaulted_functions)
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_deleted_functions)
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_explicit_conversions)
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_default_function_template_args)
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_lambdas)
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_local_type_template_args)
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_noexcept)
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_nullptr)
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_range_for)
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_raw_string_literals)
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_reference_qualified_functions)
|
||||
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rvalue_references)
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_strong_enums)
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_static_assert)
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_alias_templates)
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_unicode_literals)
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_variadic_templates)
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_user_literals)
|
||||
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_alignas)
|
||||
# define BOOST_NO_CXX11_ALIGNAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_trailing_return)
|
||||
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_inline_namespaces)
|
||||
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_override_control)
|
||||
# define BOOST_NO_CXX11_FINAL
|
||||
#endif
|
||||
|
||||
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
||||
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_decltype_auto__)
|
||||
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_aggregate_nsdmi__)
|
||||
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_init_captures__)
|
||||
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_generic_lambdas__)
|
||||
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||
#endif
|
||||
|
||||
// clang < 3.5 has a defect with dependent type, like following.
|
||||
//
|
||||
// template <class T>
|
||||
// constexpr typename enable_if<pred<T> >::type foo(T &)
|
||||
// { } // error: no return statement in constexpr function
|
||||
//
|
||||
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
|
||||
// Therefore we don't care such case.
|
||||
//
|
||||
// Note that we can't check Clang version directly as the numbering system changes depending who's
|
||||
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
|
||||
// so instead verify that we have a feature that was introduced at the same time as working C++14
|
||||
// constexpr (generic lambda's in this case):
|
||||
//
|
||||
#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
|
||||
# define BOOST_NO_CXX14_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_return_type_deduction__)
|
||||
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||
#endif
|
||||
|
||||
#if !__has_feature(__cxx_variable_templates__)
|
||||
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_thread_local)
|
||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
#endif
|
||||
|
||||
#if __cplusplus < 201400
|
||||
// All versions with __cplusplus above this value seem to support this:
|
||||
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||
#endif
|
||||
|
||||
|
||||
// Unused attribute:
|
||||
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||
# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||
#endif
|
||||
|
||||
// Macro used to identify the Clang compiler.
|
||||
#define BOOST_CLANG 1
|
||||
|
||||
28
include/boost/config/no_tr1/cmath.hpp
Normal file
28
include/boost/config/no_tr1/cmath.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright John Maddock 2008.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// The aim of this header is just to include <cmath> but to do
|
||||
// so in a way that does not result in recursive inclusion of
|
||||
// the Boost TR1 components if boost/tr1/tr1/cmath is in the
|
||||
// include search path. We have to do this to avoid circular
|
||||
// dependencies:
|
||||
//
|
||||
|
||||
#ifndef BOOST_CONFIG_CMATH
|
||||
# define BOOST_CONFIG_CMATH
|
||||
|
||||
# ifndef BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_CONFIG_NO_CMATH_RECURSION
|
||||
# endif
|
||||
|
||||
# include <cmath>
|
||||
|
||||
# ifdef BOOST_CONFIG_NO_CMATH_RECURSION
|
||||
# undef BOOST_TR1_NO_RECURSION
|
||||
# undef BOOST_CONFIG_NO_CMATH_RECURSION
|
||||
# endif
|
||||
|
||||
#endif
|
||||
28
include/boost/config/no_tr1/complex.hpp
Normal file
28
include/boost/config/no_tr1/complex.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright John Maddock 2005.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// The aim of this header is just to include <complex> but to do
|
||||
// so in a way that does not result in recursive inclusion of
|
||||
// the Boost TR1 components if boost/tr1/tr1/complex is in the
|
||||
// include search path. We have to do this to avoid circular
|
||||
// dependencies:
|
||||
//
|
||||
|
||||
#ifndef BOOST_CONFIG_COMPLEX
|
||||
# define BOOST_CONFIG_COMPLEX
|
||||
|
||||
# ifndef BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_CONFIG_NO_COMPLEX_RECURSION
|
||||
# endif
|
||||
|
||||
# include <complex>
|
||||
|
||||
# ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
|
||||
# undef BOOST_TR1_NO_RECURSION
|
||||
# undef BOOST_CONFIG_NO_COMPLEX_RECURSION
|
||||
# endif
|
||||
|
||||
#endif
|
||||
28
include/boost/config/no_tr1/functional.hpp
Normal file
28
include/boost/config/no_tr1/functional.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright John Maddock 2005.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// The aim of this header is just to include <functional> but to do
|
||||
// so in a way that does not result in recursive inclusion of
|
||||
// the Boost TR1 components if boost/tr1/tr1/functional is in the
|
||||
// include search path. We have to do this to avoid circular
|
||||
// dependencies:
|
||||
//
|
||||
|
||||
#ifndef BOOST_CONFIG_FUNCTIONAL
|
||||
# define BOOST_CONFIG_FUNCTIONAL
|
||||
|
||||
# ifndef BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
||||
# endif
|
||||
|
||||
# include <functional>
|
||||
|
||||
# ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
||||
# undef BOOST_TR1_NO_RECURSION
|
||||
# undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
|
||||
# endif
|
||||
|
||||
#endif
|
||||
28
include/boost/config/no_tr1/memory.hpp
Normal file
28
include/boost/config/no_tr1/memory.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright John Maddock 2005.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// The aim of this header is just to include <memory> but to do
|
||||
// so in a way that does not result in recursive inclusion of
|
||||
// the Boost TR1 components if boost/tr1/tr1/memory is in the
|
||||
// include search path. We have to do this to avoid circular
|
||||
// dependencies:
|
||||
//
|
||||
|
||||
#ifndef BOOST_CONFIG_MEMORY
|
||||
# define BOOST_CONFIG_MEMORY
|
||||
|
||||
# ifndef BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_CONFIG_NO_MEMORY_RECURSION
|
||||
# endif
|
||||
|
||||
# include <memory>
|
||||
|
||||
# ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
|
||||
# undef BOOST_TR1_NO_RECURSION
|
||||
# undef BOOST_CONFIG_NO_MEMORY_RECURSION
|
||||
# endif
|
||||
|
||||
#endif
|
||||
28
include/boost/config/no_tr1/utility.hpp
Normal file
28
include/boost/config/no_tr1/utility.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (C) Copyright John Maddock 2005.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
//
|
||||
// The aim of this header is just to include <utility> but to do
|
||||
// so in a way that does not result in recursive inclusion of
|
||||
// the Boost TR1 components if boost/tr1/tr1/utility is in the
|
||||
// include search path. We have to do this to avoid circular
|
||||
// dependencies:
|
||||
//
|
||||
|
||||
#ifndef BOOST_CONFIG_UTILITY
|
||||
# define BOOST_CONFIG_UTILITY
|
||||
|
||||
# ifndef BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_TR1_NO_RECURSION
|
||||
# define BOOST_CONFIG_NO_UTILITY_RECURSION
|
||||
# endif
|
||||
|
||||
# include <utility>
|
||||
|
||||
# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
|
||||
# undef BOOST_TR1_NO_RECURSION
|
||||
# undef BOOST_CONFIG_NO_UTILITY_RECURSION
|
||||
# endif
|
||||
|
||||
#endif
|
||||
33
include/boost/config/platform/aix.hpp
Normal file
33
include/boost/config/platform/aix.hpp
Normal file
@@ -0,0 +1,33 @@
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// IBM/Aix specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "IBM Aix"
|
||||
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#define BOOST_HAS_NL_TYPES_H
|
||||
#define BOOST_HAS_NANOSLEEP
|
||||
#define BOOST_HAS_CLOCK_GETTIME
|
||||
|
||||
// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
|
||||
// This platform has header named <inttypes.h> which includes all
|
||||
// the things needed.
|
||||
#define BOOST_HAS_STDINT_H
|
||||
|
||||
// Threading API's:
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_PTHREAD_DELAY_NP
|
||||
#define BOOST_HAS_SCHED_YIELD
|
||||
//#define BOOST_HAS_PTHREAD_YIELD
|
||||
|
||||
// boilerplate code:
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
|
||||
15
include/boost/config/platform/amigaos.hpp
Normal file
15
include/boost/config/platform/amigaos.hpp
Normal file
@@ -0,0 +1,15 @@
|
||||
// (C) Copyright John Maddock 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
#define BOOST_PLATFORM "AmigaOS"
|
||||
|
||||
#define BOOST_DISABLE_THREADS
|
||||
#define BOOST_NO_CWCHAR
|
||||
#define BOOST_NO_STD_WSTRING
|
||||
#define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
|
||||
|
||||
26
include/boost/config/platform/beos.hpp
Normal file
26
include/boost/config/platform/beos.hpp
Normal file
@@ -0,0 +1,26 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// BeOS specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "BeOS"
|
||||
|
||||
#define BOOST_NO_CWCHAR
|
||||
#define BOOST_NO_CWCTYPE
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
|
||||
#define BOOST_HAS_BETHREADS
|
||||
|
||||
#ifndef BOOST_DISABLE_THREADS
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
// boilerplate code:
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
86
include/boost/config/platform/bsd.hpp
Normal file
86
include/boost/config/platform/bsd.hpp
Normal file
@@ -0,0 +1,86 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001.
|
||||
// (C) Copyright Douglas Gregor 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// generic BSD config options:
|
||||
|
||||
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
|
||||
#error "This platform is not BSD"
|
||||
#endif
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
|
||||
#elif defined(__NetBSD__)
|
||||
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
|
||||
#elif defined(__OpenBSD__)
|
||||
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
|
||||
#elif defined(__DragonFly__)
|
||||
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
|
||||
#endif
|
||||
|
||||
//
|
||||
// is this the correct version check?
|
||||
// FreeBSD has <nl_types.h> but does not
|
||||
// advertise the fact in <unistd.h>:
|
||||
//
|
||||
#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
|
||||
# define BOOST_HAS_NL_TYPES_H
|
||||
#endif
|
||||
|
||||
//
|
||||
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
|
||||
// and not in <unistd.h>
|
||||
//
|
||||
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|
||||
|| defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
# define BOOST_HAS_PTHREADS
|
||||
#endif
|
||||
|
||||
//
|
||||
// No wide character support in the BSD header files:
|
||||
//
|
||||
#if defined(__NetBSD__)
|
||||
#define __NetBSD_GCC__ (__GNUC__ * 1000000 \
|
||||
+ __GNUC_MINOR__ * 1000 \
|
||||
+ __GNUC_PATCHLEVEL__)
|
||||
// XXX - the following is required until c++config.h
|
||||
// defines _GLIBCXX_HAVE_SWPRINTF and friends
|
||||
// or the preprocessor conditionals are removed
|
||||
// from the cwchar header.
|
||||
#define _GLIBCXX_HAVE_SWPRINTF 1
|
||||
#endif
|
||||
|
||||
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
||||
|| (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
|
||||
# define BOOST_NO_CWCHAR
|
||||
#endif
|
||||
//
|
||||
// The BSD <ctype.h> has macros only, no functions:
|
||||
//
|
||||
#if !defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
# define BOOST_NO_CTYPE_FUNCTIONS
|
||||
#endif
|
||||
|
||||
//
|
||||
// thread API's not auto detected:
|
||||
//
|
||||
#define BOOST_HAS_SCHED_YIELD
|
||||
#define BOOST_HAS_NANOSLEEP
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
#define BOOST_HAS_SIGACTION
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
18
include/boost/config/platform/cloudabi.hpp
Normal file
18
include/boost/config/platform/cloudabi.hpp
Normal file
@@ -0,0 +1,18 @@
|
||||
// Copyright Nuxi, https://nuxi.nl/ 2015.
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#define BOOST_PLATFORM "CloudABI"
|
||||
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
|
||||
#define BOOST_HAS_CLOCK_GETTIME
|
||||
#define BOOST_HAS_EXPM1
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
#define BOOST_HAS_LOG1P
|
||||
#define BOOST_HAS_NANOSLEEP
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_SCHED_YIELD
|
||||
18
include/boost/config/platform/cray.hpp
Normal file
18
include/boost/config/platform/cray.hpp
Normal file
@@ -0,0 +1,18 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// SGI Irix specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Cray"
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
58
include/boost/config/platform/cygwin.hpp
Normal file
58
include/boost/config/platform/cygwin.hpp
Normal file
@@ -0,0 +1,58 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// cygwin specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Cygwin"
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_LOG1P
|
||||
#define BOOST_HAS_EXPM1
|
||||
|
||||
//
|
||||
// Threading API:
|
||||
// See if we have POSIX threads, if we do use them, otherwise
|
||||
// revert to native Win threads.
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
|
||||
# define BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_SIGACTION
|
||||
#else
|
||||
# if !defined(BOOST_HAS_WINTHREADS)
|
||||
# define BOOST_HAS_WINTHREADS
|
||||
# endif
|
||||
# define BOOST_HAS_FTIME
|
||||
#endif
|
||||
|
||||
//
|
||||
// find out if we have a stdint.h, there should be a better way to do this:
|
||||
//
|
||||
#include <sys/types.h>
|
||||
#ifdef _STDINT_H
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
/// Cygwin has no fenv.h
|
||||
#define BOOST_NO_FENV_H
|
||||
|
||||
// boilerplate code:
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
//
|
||||
// Cygwin lies about XSI conformance, there is no nl_types.h:
|
||||
//
|
||||
#ifdef BOOST_HAS_NL_TYPES_H
|
||||
# undef BOOST_HAS_NL_TYPES_H
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
31
include/boost/config/platform/haiku.hpp
Normal file
31
include/boost/config/platform/haiku.hpp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Jessica Hamilton 2014.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Haiku specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Haiku"
|
||||
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#define BOOST_HAS_STDINT_H
|
||||
|
||||
#ifndef BOOST_DISABLE_THREADS
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
#define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
|
||||
//
|
||||
// thread API's not auto detected:
|
||||
//
|
||||
#define BOOST_HAS_SCHED_YIELD
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
|
||||
// boilerplate code:
|
||||
#include <boost/config/posix_features.hpp>
|
||||
87
include/boost/config/platform/hpux.hpp
Normal file
87
include/boost/config/platform/hpux.hpp
Normal file
@@ -0,0 +1,87 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// (C) Copyright Toon Knapen 2003.
|
||||
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// hpux specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "HP-UX"
|
||||
|
||||
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
|
||||
// However, it has the following problem:
|
||||
// Use of UINT32_C(0) results in "0u l" for the preprocessed source
|
||||
// (verifyable with gcc 2.95.3)
|
||||
#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
|
||||
# define BOOST_NO_CWCTYPE
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__)
|
||||
# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
|
||||
// GNU C on HP-UX does not support threads (checked up to gcc 3.3)
|
||||
# define BOOST_DISABLE_THREADS
|
||||
# elif !defined(BOOST_DISABLE_THREADS)
|
||||
// threads supported from gcc-3.3 onwards:
|
||||
# define BOOST_HAS_THREADS
|
||||
# define BOOST_HAS_PTHREADS
|
||||
# endif
|
||||
#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
|
||||
# define BOOST_HAS_PTHREADS
|
||||
#endif
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
// the following are always available:
|
||||
#ifndef BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
#endif
|
||||
#ifndef BOOST_HAS_SCHED_YIELD
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
#endif
|
||||
#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
#endif
|
||||
#ifndef BOOST_HAS_NL_TYPES_H
|
||||
# define BOOST_HAS_NL_TYPES_H
|
||||
#endif
|
||||
#ifndef BOOST_HAS_NANOSLEEP
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
#endif
|
||||
#ifndef BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
#endif
|
||||
#ifndef BOOST_HAS_DIRENT_H
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
#endif
|
||||
#ifndef BOOST_HAS_CLOCK_GETTIME
|
||||
# define BOOST_HAS_CLOCK_GETTIME
|
||||
#endif
|
||||
#ifndef BOOST_HAS_SIGACTION
|
||||
# define BOOST_HAS_SIGACTION
|
||||
#endif
|
||||
#ifndef BOOST_HAS_NRVO
|
||||
# ifndef __parisc
|
||||
# define BOOST_HAS_NRVO
|
||||
# endif
|
||||
#endif
|
||||
#ifndef BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_LOG1P
|
||||
#endif
|
||||
#ifndef BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_EXPM1
|
||||
#endif
|
||||
|
||||
31
include/boost/config/platform/irix.hpp
Normal file
31
include/boost/config/platform/irix.hpp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// SGI Irix specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "SGI Irix"
|
||||
|
||||
#define BOOST_NO_SWPRINTF
|
||||
//
|
||||
// these are not auto detected by POSIX feature tests:
|
||||
//
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
|
||||
#ifdef __GNUC__
|
||||
// GNU C on IRIX does not support threads (checked up to gcc 3.3)
|
||||
# define BOOST_DISABLE_THREADS
|
||||
#endif
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
105
include/boost/config/platform/linux.hpp
Normal file
105
include/boost/config/platform/linux.hpp
Normal file
@@ -0,0 +1,105 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// linux specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "linux"
|
||||
|
||||
// make sure we have __GLIBC_PREREQ if available at all
|
||||
#ifdef __cplusplus
|
||||
#include <cstdlib>
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
//
|
||||
// <stdint.h> added to glibc 2.1.1
|
||||
// We can only test for 2.1 though:
|
||||
//
|
||||
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
|
||||
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
|
||||
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
|
||||
// only when using GCC.
|
||||
# if defined __GNUC__
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__LIBCOMO__)
|
||||
//
|
||||
// como on linux doesn't have std:: c functions:
|
||||
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
||||
// e.g. version 25 is 21 (dec)
|
||||
//
|
||||
# if __LIBCOMO_VERSION__ <= 20
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# endif
|
||||
|
||||
# if __LIBCOMO_VERSION__ <= 21
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// If glibc is past version 2 then we definitely have
|
||||
// gettimeofday, earlier versions may or may not have it:
|
||||
//
|
||||
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
#endif
|
||||
|
||||
#ifdef __USE_POSIX199309
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
#endif
|
||||
|
||||
#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
||||
// __GLIBC_PREREQ is available since 2.1.2
|
||||
|
||||
// swprintf is available since glibc 2.2.0
|
||||
# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# endif
|
||||
#else
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
#if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID)
|
||||
#define BOOST_HAS_PTHREAD_YIELD
|
||||
#endif
|
||||
|
||||
#ifndef __GNUC__
|
||||
//
|
||||
// if the compiler is not gcc we still need to be able to parse
|
||||
// the GNU system headers, some of which (mainly <stdint.h>)
|
||||
// use GNU specific extensions:
|
||||
//
|
||||
# ifndef __extension__
|
||||
# define __extension__
|
||||
# endif
|
||||
# ifndef __const__
|
||||
# define __const__ const
|
||||
# endif
|
||||
# ifndef __volatile__
|
||||
# define __volatile__ volatile
|
||||
# endif
|
||||
# ifndef __signed__
|
||||
# define __signed__ signed
|
||||
# endif
|
||||
# ifndef __typeof__
|
||||
# define __typeof__ typeof
|
||||
# endif
|
||||
# ifndef __inline__
|
||||
# define __inline__ inline
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
87
include/boost/config/platform/macos.hpp
Normal file
87
include/boost/config/platform/macos.hpp
Normal file
@@ -0,0 +1,87 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001 - 2002.
|
||||
// (C) Copyright Bill Kempf 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Mac OS specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Mac OS"
|
||||
|
||||
#if __MACH__ && !defined(_MSL_USING_MSL_C)
|
||||
|
||||
// Using the Mac OS X system BSD-style C library.
|
||||
|
||||
# ifndef BOOST_HAS_UNISTD_H
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
# endif
|
||||
//
|
||||
// Begin by including our boilerplate code for POSIX
|
||||
// feature detection, this is safe even when using
|
||||
// the MSL as Metrowerks supply their own <unistd.h>
|
||||
// to replace the platform-native BSD one. G++ users
|
||||
// should also always be able to do this on MaxOS X.
|
||||
//
|
||||
# include <boost/config/posix_features.hpp>
|
||||
# ifndef BOOST_HAS_STDINT_H
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# endif
|
||||
|
||||
//
|
||||
// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
|
||||
// of these only pthreads are advertised in <unistd.h>, so set the
|
||||
// other options explicitly:
|
||||
//
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_SIGACTION
|
||||
|
||||
# if (__GNUC__ < 3) && !defined( __APPLE_CC__)
|
||||
|
||||
// GCC strange "ignore std" mode works better if you pretend everything
|
||||
// is in the std namespace, for the most part.
|
||||
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# endif
|
||||
|
||||
# if (__GNUC__ >= 4)
|
||||
|
||||
// Both gcc and intel require these.
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
|
||||
# endif
|
||||
|
||||
#else
|
||||
|
||||
// Using the MSL C library.
|
||||
|
||||
// We will eventually support threads in non-Carbon builds, but we do
|
||||
// not support this yet.
|
||||
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
||||
|
||||
# if !defined(BOOST_HAS_PTHREADS)
|
||||
// MPTasks support is deprecated/removed from Boost:
|
||||
//# define BOOST_HAS_MPTASKS
|
||||
# elif ( __dest_os == __mac_os_x )
|
||||
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
||||
// gettimeofday and no posix.
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# endif
|
||||
|
||||
#ifdef BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
// The remote call manager depends on this.
|
||||
# define BOOST_BIND_ENABLE_PASCAL
|
||||
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
31
include/boost/config/platform/qnxnto.hpp
Normal file
31
include/boost/config/platform/qnxnto.hpp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Jim Douglas 2005.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// QNX specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "QNX"
|
||||
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
|
||||
// or log1p and expm1:
|
||||
#undef BOOST_HAS_NL_TYPES_H
|
||||
#undef BOOST_HAS_LOG1P
|
||||
#undef BOOST_HAS_EXPM1
|
||||
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
#define BOOST_HAS_CLOCK_GETTIME
|
||||
#define BOOST_HAS_NANOSLEEP
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
31
include/boost/config/platform/solaris.hpp
Normal file
31
include/boost/config/platform/solaris.hpp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// sun specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Sun Solaris"
|
||||
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
//
|
||||
// pthreads don't actually work with gcc unless _PTHREADS is defined:
|
||||
//
|
||||
#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
|
||||
# undef BOOST_HAS_PTHREADS
|
||||
#endif
|
||||
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
#define BOOST_HAS_LOG1P
|
||||
#define BOOST_HAS_EXPM1
|
||||
|
||||
|
||||
97
include/boost/config/platform/symbian.hpp
Normal file
97
include/boost/config/platform/symbian.hpp
Normal file
@@ -0,0 +1,97 @@
|
||||
// (C) Copyright Yuriy Krasnoschek 2009.
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// symbian specific config options:
|
||||
|
||||
|
||||
#define BOOST_PLATFORM "Symbian"
|
||||
#define BOOST_SYMBIAN 1
|
||||
|
||||
|
||||
#if defined(__S60_3X__)
|
||||
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
|
||||
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
|
||||
// make sure we have __GLIBC_PREREQ if available at all
|
||||
#ifdef __cplusplus
|
||||
#include <cstdlib>
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#endif// boilerplate code:
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
# include <boost/config/posix_features.hpp>
|
||||
// S60 SDK defines _POSIX_VERSION as POSIX.1
|
||||
# ifndef BOOST_HAS_STDINT_H
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# endif
|
||||
# ifndef BOOST_HAS_GETTIMEOFDAY
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# endif
|
||||
# ifndef BOOST_HAS_DIRENT_H
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
# endif
|
||||
# ifndef BOOST_HAS_SIGACTION
|
||||
# define BOOST_HAS_SIGACTION
|
||||
# endif
|
||||
# ifndef BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_PTHREADS
|
||||
# endif
|
||||
# ifndef BOOST_HAS_NANOSLEEP
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
# endif
|
||||
# ifndef BOOST_HAS_SCHED_YIELD
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
# endif
|
||||
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# endif
|
||||
# ifndef BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_LOG1P
|
||||
# endif
|
||||
# ifndef BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_EXPM1
|
||||
# endif
|
||||
# ifndef BOOST_POSIX_API
|
||||
# define BOOST_POSIX_API
|
||||
# endif
|
||||
// endianess support
|
||||
# include <sys/endian.h>
|
||||
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
|
||||
# ifndef __LITTLE_ENDIAN
|
||||
# ifdef _LITTLE_ENDIAN
|
||||
# define __LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||
# else
|
||||
# define __LITTLE_ENDIAN 1234
|
||||
# endif
|
||||
# endif
|
||||
# ifndef __BIG_ENDIAN
|
||||
# ifdef _BIG_ENDIAN
|
||||
# define __BIG_ENDIAN _BIG_ENDIAN
|
||||
# else
|
||||
# define __BIG_ENDIAN 4321
|
||||
# endif
|
||||
# endif
|
||||
# ifndef __BYTE_ORDER
|
||||
# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
|
||||
# endif
|
||||
// Known limitations
|
||||
# define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||
# define BOOST_DATE_TIME_NO_LOCALE
|
||||
# define BOOST_NO_STD_WSTRING
|
||||
# define BOOST_EXCEPTION_DISABLE
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
|
||||
#else // TODO: More platform support e.g. UIQ
|
||||
# error "Unsuppoted Symbian SDK"
|
||||
#endif
|
||||
|
||||
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
|
||||
# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
|
||||
#endif
|
||||
|
||||
|
||||
25
include/boost/config/platform/vms.hpp
Normal file
25
include/boost/config/platform/vms.hpp
Normal file
@@ -0,0 +1,25 @@
|
||||
// (C) Copyright Artyom Beilis 2010.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#ifndef BOOST_CONFIG_PLATFORM_VMS_HPP
|
||||
#define BOOST_CONFIG_PLATFORM_VMS_HPP
|
||||
|
||||
#define BOOST_PLATFORM "OpenVMS"
|
||||
|
||||
#undef BOOST_HAS_STDINT_H
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#define BOOST_HAS_NL_TYPES_H
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_NANOSLEEP
|
||||
#define BOOST_HAS_CLOCK_GETTIME
|
||||
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
#define BOOST_HAS_LOG1P
|
||||
#define BOOST_HAS_EXPM1
|
||||
#define BOOST_HAS_THREADS
|
||||
#undef BOOST_HAS_SCHED_YIELD
|
||||
|
||||
#endif
|
||||
369
include/boost/config/platform/vxworks.hpp
Normal file
369
include/boost/config/platform/vxworks.hpp
Normal file
@@ -0,0 +1,369 @@
|
||||
// (C) Copyright Dustin Spicuzza 2009.
|
||||
// Adapted to vxWorks 6.9 by Peter Brockamp 2012.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Since WRS does not yet properly support boost under vxWorks
|
||||
// and this file was badly outdated, but I was keen on using it,
|
||||
// I patched boost myself to make things work. This has been tested
|
||||
// and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
|
||||
// to earlier 6.X versions! The only thing I know for sure is that
|
||||
// very old versions of vxWorks (namely everything below 6.x) are
|
||||
// absolutely unable to use boost. This is mainly due to the completely
|
||||
// outdated libraries and ancient compiler (GCC 2.96 or worse). Do
|
||||
// not even think of getting this to work, a miserable failure will
|
||||
// be guaranteed!
|
||||
// Equally, this file has been tested for RTPs (Real Time Processes)
|
||||
// only, not for DKMs (Downloadable Kernel Modules). These two types
|
||||
// of executables differ largely in the available functionality of
|
||||
// the C-library, STL, and so on. A DKM uses a library similar to those
|
||||
// of vxWorks 5.X - with all its limitations and incompatibilities
|
||||
// with respect to ANSI C++ and STL. So probably there might be problems
|
||||
// with the usage of boost from DKMs. WRS or any voluteers are free to
|
||||
// prove the opposite!
|
||||
|
||||
// ====================================================================
|
||||
//
|
||||
// Some important information regarding the usage of POSIX semaphores:
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
// VxWorks as a real time operating system handles threads somewhat
|
||||
// different from what "normal" OSes do, regarding their scheduling!
|
||||
// This could lead to a scenario called "priority inversion" when using
|
||||
// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
|
||||
//
|
||||
// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
|
||||
// priority inverting semaphores, which is fine. On the other hand,
|
||||
// for RTP's it defaults to using non priority inverting semaphores,
|
||||
// which could easily pose a serious problem for a real time process,
|
||||
// i.e. deadlocks! To overcome this two possibilities do exist:
|
||||
//
|
||||
// a) Patch every piece of boost that uses semaphores to instanciate
|
||||
// the proper type of semaphores. This is non-intrusive with respect
|
||||
// to the OS and could relatively easy been done by giving all
|
||||
// semaphores attributes deviating from the default (for in-depth
|
||||
// information see the POSIX functions pthread_mutexattr_init()
|
||||
// and pthread_mutexattr_setprotocol()). However this breaks all
|
||||
// too easily, as with every new version some boost library could
|
||||
// all in a sudden start using semaphores, resurrecting the very
|
||||
// same, hard to locate problem over and over again!
|
||||
//
|
||||
// b) We could change the default properties for POSIX-semaphores
|
||||
// that VxWorks uses for RTP's and this is being suggested here,
|
||||
// as it will more or less seamlessly integrate with boost. I got
|
||||
// the following information from WRS how to do this, compare
|
||||
// Wind River TSR# 1209768:
|
||||
//
|
||||
// Instructions for changing the default properties of POSIX-
|
||||
// semaphores for RTP's in VxWorks 6.9:
|
||||
// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
|
||||
// in the root of your Workbench-installation.
|
||||
// - Around line 917 there should be the definition of the default
|
||||
// mutex attributes:
|
||||
//
|
||||
// LOCAL pthread_mutexattr_t defaultMutexAttr =
|
||||
// {
|
||||
// PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
|
||||
// PTHREAD_MUTEX_DEFAULT
|
||||
// };
|
||||
//
|
||||
// Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
|
||||
// - Around line 1236 there should be a definition for the function
|
||||
// pthread_mutexattr_init(). A couple of lines below you should
|
||||
// find a block of code like this:
|
||||
//
|
||||
// pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ;
|
||||
// pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE;
|
||||
// pAttr->mutexAttrPrioceiling = 0;
|
||||
// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT;
|
||||
//
|
||||
// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
|
||||
// - Finally, rebuild your VSB. This will create a new VxWorks kernel
|
||||
// with the changed properties. That's it! Now, using boost should
|
||||
// no longer cause any problems with task deadlocks!
|
||||
//
|
||||
// And here's another useful piece of information concerning VxWorks'
|
||||
// POSIX-functionality in general:
|
||||
// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
|
||||
// kind of compatibility layer (sort of a wrapper) to emulate the
|
||||
// POSIX-functionality by using its own resources and functions.
|
||||
// At the time a task (thread) calls it's first POSIX-function during
|
||||
// runtime it is being transformed by the OS into a POSIX-thread.
|
||||
// This transformation does include a call to malloc() to allocate the
|
||||
// memory required for the housekeeping of POSIX-threads. In a high
|
||||
// priority RTP this malloc() call may be highly undesirable, as its
|
||||
// timing is more or less unpredictable (depending on what your actual
|
||||
// heap looks like). You can circumvent this problem by calling the
|
||||
// function thread_self() at a well defined point in the code of the
|
||||
// task, e.g. shortly after the task spawns up. Thereby you are able
|
||||
// to define the time when the task-transformation will take place and
|
||||
// you could shift it to an uncritical point where a malloc() call is
|
||||
// tolerable. So, if this could pose a problem for your code, remember
|
||||
// to call thread_self() from the affected task at an early stage.
|
||||
//
|
||||
// ====================================================================
|
||||
|
||||
// Block out all versions before vxWorks 6.x, as these don't work:
|
||||
// Include header with the vxWorks version information and query them
|
||||
#include <version.h>
|
||||
#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
|
||||
# error "The vxWorks version you're using is so badly outdated,\
|
||||
it doesn't work at all with boost, sorry, no chance!"
|
||||
#endif
|
||||
|
||||
// Handle versions above 5.X but below 6.9
|
||||
#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
|
||||
// TODO: Starting from what version does vxWorks work with boost?
|
||||
// We can't reasonably insert a #warning "" as a user hint here,
|
||||
// as this will show up with every file including some boost header,
|
||||
// badly bugging the user... So for the time being we just leave it.
|
||||
#endif
|
||||
|
||||
// vxWorks specific config options:
|
||||
// --------------------------------
|
||||
#define BOOST_PLATFORM "vxWorks"
|
||||
|
||||
// Special behaviour for DKMs:
|
||||
#ifdef _WRS_KERNEL
|
||||
// DKMs do not have the <cwchar>-header,
|
||||
// but apparently they do have an intrinsic wchar_t meanwhile!
|
||||
# define BOOST_NO_CWCHAR
|
||||
|
||||
// Lots of wide-functions and -headers are unavailable for DKMs as well:
|
||||
# define BOOST_NO_CWCTYPE
|
||||
# define BOOST_NO_SWPRINTF
|
||||
# define BOOST_NO_STD_WSTRING
|
||||
# define BOOST_NO_STD_WSTREAMBUF
|
||||
#endif
|
||||
|
||||
// Generally available headers:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#define BOOST_HAS_DIRENT_H
|
||||
#define BOOST_HAS_SLIST
|
||||
|
||||
// vxWorks does not have installed an iconv-library by default,
|
||||
// so unfortunately no Unicode support from scratch is available!
|
||||
// Thus, instead it is suggested to switch to ICU, as this seems
|
||||
// to be the most complete and portable option...
|
||||
#define BOOST_LOCALE_WITH_ICU
|
||||
|
||||
// Generally available functionality:
|
||||
#define BOOST_HAS_THREADS
|
||||
#define BOOST_HAS_NANOSLEEP
|
||||
#define BOOST_HAS_GETTIMEOFDAY
|
||||
#define BOOST_HAS_CLOCK_GETTIME
|
||||
#define BOOST_HAS_MACRO_USE_FACET
|
||||
|
||||
// Generally unavailable functionality, delivered by boost's test function:
|
||||
//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
|
||||
// Generally available threading API's:
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_SCHED_YIELD
|
||||
#define BOOST_HAS_SIGACTION
|
||||
|
||||
// Functionality available for RTPs only:
|
||||
#ifdef __RTP__
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# define BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_EXPM1
|
||||
#endif
|
||||
|
||||
// Functionality available for DKMs only:
|
||||
#ifdef _WRS_KERNEL
|
||||
// Luckily, at the moment there seems to be none!
|
||||
#endif
|
||||
|
||||
// These #defines allow posix_features to work, since vxWorks doesn't
|
||||
// #define them itself for DKMs (for RTPs on the contrary it does):
|
||||
#ifdef _WRS_KERNEL
|
||||
# ifndef _POSIX_TIMERS
|
||||
# define _POSIX_TIMERS 1
|
||||
# endif
|
||||
# ifndef _POSIX_THREADS
|
||||
# define _POSIX_THREADS 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// vxWorks doesn't work with asio serial ports:
|
||||
#define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||
// TODO: The problem here seems to bee that vxWorks uses its own, very specific
|
||||
// ways to handle serial ports, incompatible with POSIX or anything...
|
||||
// Maybe a specific implementation would be possible, but until the
|
||||
// straight need arises... This implementation would presumably consist
|
||||
// of some vxWorks specific ioctl-calls, etc. Any voluteers?
|
||||
|
||||
// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
|
||||
// miserably fails to #include the required <sysLib.h> to make
|
||||
// sysClkRateGet() available! So we manually include it here.
|
||||
#ifdef __RTP__
|
||||
# include <time.h>
|
||||
# include <sysLib.h>
|
||||
#endif
|
||||
|
||||
// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
|
||||
// UINT64_C() are defined errorneously, yielding not a signed/
|
||||
// unsigned long/long long type, but a signed/unsigned int/long
|
||||
// type. Eventually this leads to compile errors in ratio_fwd.hpp,
|
||||
// when trying to define several constants which do not fit into a
|
||||
// long type! We correct them here by redefining.
|
||||
#include <cstdint>
|
||||
|
||||
// Some macro-magic to do the job
|
||||
#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y)
|
||||
#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y)
|
||||
#define VX_DO_JOIN2(X, Y) X##Y
|
||||
|
||||
// Correctly setup the macros
|
||||
#undef INT32_C
|
||||
#undef UINT32_C
|
||||
#undef INT64_C
|
||||
#undef UINT64_C
|
||||
#define INT32_C(x) VX_JOIN(x, L)
|
||||
#define UINT32_C(x) VX_JOIN(x, UL)
|
||||
#define INT64_C(x) VX_JOIN(x, LL)
|
||||
#define UINT64_C(x) VX_JOIN(x, ULL)
|
||||
|
||||
// #include Libraries required for the following function adaption
|
||||
#include <ioLib.h>
|
||||
#include <tickLib.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
// Use C-linkage for the following helper functions
|
||||
extern "C" {
|
||||
|
||||
// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
|
||||
// But we have the similar functions getprlimit() and setprlimit(),
|
||||
// which may serve the purpose.
|
||||
// Problem: The vxWorks-documentation regarding these functions
|
||||
// doesn't deserve its name! It isn't documented what the first two
|
||||
// parameters idtype and id mean, so we must fall back to an educated
|
||||
// guess - null, argh... :-/
|
||||
|
||||
// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
|
||||
// Thus for DKMs there would have to be another implementation.
|
||||
#ifdef __RTP__
|
||||
inline int getrlimit(int resource, struct rlimit *rlp){
|
||||
return getprlimit(0, 0, resource, rlp);
|
||||
}
|
||||
|
||||
inline int setrlimit(int resource, const struct rlimit *rlp){
|
||||
return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
|
||||
}
|
||||
#endif
|
||||
|
||||
// vxWorks has ftruncate() only, so we do simulate truncate():
|
||||
inline int truncate(const char *p, off_t l){
|
||||
int fd = open(p, O_WRONLY);
|
||||
if (fd == -1){
|
||||
errno = EACCES;
|
||||
return -1;
|
||||
}
|
||||
if (ftruncate(fd, l) == -1){
|
||||
close(fd);
|
||||
errno = EACCES;
|
||||
return -1;
|
||||
}
|
||||
return close(fd);
|
||||
}
|
||||
|
||||
// Fake symlink handling by dummy functions:
|
||||
inline int symlink(const char*, const char*){
|
||||
// vxWorks has no symlinks -> always return an error!
|
||||
errno = EACCES;
|
||||
return -1;
|
||||
}
|
||||
|
||||
inline ssize_t readlink(const char*, char*, size_t){
|
||||
// vxWorks has no symlinks -> always return an error!
|
||||
errno = EACCES;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// vxWorks claims to implement gettimeofday in sys/time.h
|
||||
// but nevertheless does not provide it! See
|
||||
// https://support.windriver.com/olsPortal/faces/maintenance/techtipDetail_noHeader.jspx?docId=16442&contentId=WR_TECHTIP_006256
|
||||
// We implement a surrogate version here via clock_gettime:
|
||||
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
|
||||
struct timespec ts;
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
tv->tv_sec = ts.tv_sec;
|
||||
tv->tv_usec = ts.tv_nsec / 1000;
|
||||
return 0;
|
||||
}
|
||||
|
||||
// vxWorks does provide neither struct tms nor function times()!
|
||||
// We implement an empty dummy-function, simply setting the user
|
||||
// and system time to the half of thew actual system ticks-value
|
||||
// and the child user and system time to 0.
|
||||
// Rather ugly but at least it suppresses compiler errors...
|
||||
// Unfortunately, this of course *does* have an severe impact on
|
||||
// dependant libraries, actually this is chrono only! Here it will
|
||||
// not be possible to correctly use user and system times! But
|
||||
// as vxWorks is lacking the ability to calculate user and system
|
||||
// process times there seems to be no other possible solution.
|
||||
struct tms{
|
||||
clock_t tms_utime; // User CPU time
|
||||
clock_t tms_stime; // System CPU time
|
||||
clock_t tms_cutime; // User CPU time of terminated child processes
|
||||
clock_t tms_cstime; // System CPU time of terminated child processes
|
||||
};
|
||||
|
||||
inline clock_t times(struct tms *t){
|
||||
struct timespec ts;
|
||||
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
|
||||
clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec) * CLOCKS_PER_SEC +
|
||||
static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
|
||||
t->tms_utime = ticks/2U;
|
||||
t->tms_stime = ticks/2U;
|
||||
t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
|
||||
t->tms_cstime = 0; // -> Set the wait times for childs to 0
|
||||
return ticks;
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
||||
// Put the selfmade functions into the std-namespace, just in case
|
||||
namespace std {
|
||||
# ifdef __RTP__
|
||||
using ::getrlimit;
|
||||
using ::setrlimit;
|
||||
# endif
|
||||
using ::truncate;
|
||||
using ::symlink;
|
||||
using ::readlink;
|
||||
using ::times;
|
||||
using ::gettimeofday;
|
||||
}
|
||||
|
||||
// Some more macro-magic:
|
||||
// vxWorks-around: Some functions are not present or broken in vxWorks
|
||||
// but may be patched to life via helper macros...
|
||||
|
||||
// Include signal.h which might contain a typo to be corrected here
|
||||
#include <signal.h>
|
||||
|
||||
#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway!
|
||||
#ifndef S_ISSOCK
|
||||
# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
|
||||
#endif
|
||||
#define lstat(p, b) stat(p, b) // lstat() == stat(), as vxWorks has no symlinks!
|
||||
#ifndef FPE_FLTINV
|
||||
# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
|
||||
#endif
|
||||
#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
|
||||
# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' <signal.h>
|
||||
#endif
|
||||
//typedef int locale_t; // locale_t is a POSIX-extension, currently unpresent in vxWorks!
|
||||
|
||||
// #include boilerplate code:
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
// vxWorks lies about XSI conformance, there is no nl_types.h:
|
||||
#undef BOOST_HAS_NL_TYPES_H
|
||||
90
include/boost/config/platform/win32.hpp
Normal file
90
include/boost/config/platform/win32.hpp
Normal file
@@ -0,0 +1,90 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Bill Kempf 2001.
|
||||
// (C) Copyright Aleksey Gurtovoy 2003.
|
||||
// (C) Copyright Rene Rivera 2005.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Win32 specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Win32"
|
||||
|
||||
// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
|
||||
#if defined(__MINGW32__)
|
||||
# include <_mingw.h>
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
|
||||
// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
|
||||
// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
|
||||
// BOOST_SYMBOL_IMPORT
|
||||
#ifndef BOOST_SYMBOL_EXPORT
|
||||
# define BOOST_HAS_DECLSPEC
|
||||
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
|
||||
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# ifndef __STDC_LIMIT_MACROS
|
||||
# define __STDC_LIMIT_MACROS
|
||||
# endif
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__) && (__GNUC__ >= 4)
|
||||
// Mingw has these functions but there are persistent problems
|
||||
// with calls to these crashing, so disable for now:
|
||||
//# define BOOST_HAS_EXPM1
|
||||
//# define BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
#endif
|
||||
//
|
||||
// Win32 will normally be using native Win32 threads,
|
||||
// but there is a pthread library avaliable as an option,
|
||||
// we used to disable this when BOOST_DISABLE_WIN32 was
|
||||
// defined but no longer - this should allow some
|
||||
// files to be compiled in strict mode - while maintaining
|
||||
// a consistent setting of BOOST_HAS_THREADS across
|
||||
// all translation units (needed for shared_ptr etc).
|
||||
//
|
||||
|
||||
#ifndef BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_WINTHREADS
|
||||
#endif
|
||||
|
||||
//
|
||||
// WinCE configuration:
|
||||
//
|
||||
#if defined(_WIN32_WCE) || defined(UNDER_CE)
|
||||
# define BOOST_NO_ANSI_APIS
|
||||
// Windows CE does not have a conforming signature for swprintf
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#else
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
# define BOOST_HAS_THREADEX
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#endif
|
||||
|
||||
//
|
||||
// Windows Runtime
|
||||
//
|
||||
#if defined(WINAPI_FAMILY) && \
|
||||
(WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
|
||||
# define BOOST_NO_ANSI_APIS
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_DISABLE_WIN32
|
||||
// WEK: Added
|
||||
#define BOOST_HAS_FTIME
|
||||
#define BOOST_WINDOWS 1
|
||||
|
||||
#endif
|
||||
95
include/boost/config/posix_features.hpp
Normal file
95
include/boost/config/posix_features.hpp
Normal file
@@ -0,0 +1,95 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// All POSIX feature tests go in this file,
|
||||
// Note that we test _POSIX_C_SOURCE and _XOPEN_SOURCE as well
|
||||
// _POSIX_VERSION and _XOPEN_VERSION: on some systems POSIX API's
|
||||
// may be present but none-functional unless _POSIX_C_SOURCE and
|
||||
// _XOPEN_SOURCE have been defined to the right value (it's up
|
||||
// to the user to do this *before* including any header, although
|
||||
// in most cases the compiler will do this for you).
|
||||
|
||||
# if defined(BOOST_HAS_UNISTD_H)
|
||||
# include <unistd.h>
|
||||
|
||||
// XOpen has <nl_types.h>, but is this the correct version check?
|
||||
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION >= 3)
|
||||
# define BOOST_HAS_NL_TYPES_H
|
||||
# endif
|
||||
|
||||
// POSIX version 6 requires <stdint.h>
|
||||
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 200100)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# endif
|
||||
|
||||
// POSIX version 2 requires <dirent.h>
|
||||
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199009L)
|
||||
# define BOOST_HAS_DIRENT_H
|
||||
# endif
|
||||
|
||||
// POSIX version 3 requires <signal.h> to have sigaction:
|
||||
# if defined(_POSIX_VERSION) && (_POSIX_VERSION >= 199506L)
|
||||
# define BOOST_HAS_SIGACTION
|
||||
# endif
|
||||
// POSIX defines _POSIX_THREADS > 0 for pthread support,
|
||||
// however some platforms define _POSIX_THREADS without
|
||||
// a value, hence the (_POSIX_THREADS+0 >= 0) check.
|
||||
// Strictly speaking this may catch platforms with a
|
||||
// non-functioning stub <pthreads.h>, but such occurrences should
|
||||
// occur very rarely if at all.
|
||||
# if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_MPTASKS)
|
||||
# define BOOST_HAS_PTHREADS
|
||||
# endif
|
||||
|
||||
// BOOST_HAS_NANOSLEEP:
|
||||
// This is predicated on _POSIX_TIMERS or _XOPEN_REALTIME:
|
||||
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0)) \
|
||||
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
|
||||
# define BOOST_HAS_NANOSLEEP
|
||||
# endif
|
||||
|
||||
// BOOST_HAS_CLOCK_GETTIME:
|
||||
// This is predicated on _POSIX_TIMERS (also on _XOPEN_REALTIME
|
||||
// but at least one platform - linux - defines that flag without
|
||||
// defining clock_gettime):
|
||||
# if (defined(_POSIX_TIMERS) && (_POSIX_TIMERS+0 >= 0))
|
||||
# define BOOST_HAS_CLOCK_GETTIME
|
||||
# endif
|
||||
|
||||
// BOOST_HAS_SCHED_YIELD:
|
||||
// This is predicated on _POSIX_PRIORITY_SCHEDULING or
|
||||
// on _POSIX_THREAD_PRIORITY_SCHEDULING or on _XOPEN_REALTIME.
|
||||
# if defined(_POSIX_PRIORITY_SCHEDULING) && (_POSIX_PRIORITY_SCHEDULING+0 > 0)\
|
||||
|| (defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING+0 > 0))\
|
||||
|| (defined(_XOPEN_REALTIME) && (_XOPEN_REALTIME+0 >= 0))
|
||||
# define BOOST_HAS_SCHED_YIELD
|
||||
# endif
|
||||
|
||||
// BOOST_HAS_GETTIMEOFDAY:
|
||||
// BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
|
||||
// These are predicated on _XOPEN_VERSION, and appears to be first released
|
||||
// in issue 4, version 2 (_XOPEN_VERSION > 500).
|
||||
// Likewise for the functions log1p and expm1.
|
||||
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
|
||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||
# endif
|
||||
# ifndef BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_LOG1P
|
||||
# endif
|
||||
# ifndef BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_EXPM1
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# endif
|
||||
|
||||
|
||||
|
||||
|
||||
92
include/boost/config/requires_threads.hpp
Normal file
92
include/boost/config/requires_threads.hpp
Normal file
@@ -0,0 +1,92 @@
|
||||
// (C) Copyright John Maddock 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
#ifndef BOOST_CONFIG_REQUIRES_THREADS_HPP
|
||||
#define BOOST_CONFIG_REQUIRES_THREADS_HPP
|
||||
|
||||
#ifndef BOOST_CONFIG_HPP
|
||||
# include <boost/config.hpp>
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_DISABLE_THREADS)
|
||||
|
||||
//
|
||||
// special case to handle versions of gcc which don't currently support threads:
|
||||
//
|
||||
#if defined(__GNUC__) && ((__GNUC__ < 3) || (__GNUC_MINOR__ <= 3) || !defined(BOOST_STRICT_CONFIG))
|
||||
//
|
||||
// this is checked up to gcc 3.3:
|
||||
//
|
||||
#if defined(__sgi) || defined(__hpux)
|
||||
# error "Multi-threaded programs are not supported by gcc on HPUX or Irix (last checked with gcc 3.3)"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
# error "Threading support unavaliable: it has been explicitly disabled with BOOST_DISABLE_THREADS"
|
||||
|
||||
#elif !defined(BOOST_HAS_THREADS)
|
||||
|
||||
# if defined __COMO__
|
||||
// Comeau C++
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_MT (Windows) or -D_REENTRANT (Unix)"
|
||||
|
||||
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
||||
// Intel
|
||||
#ifdef _WIN32
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
|
||||
#else
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -openmp"
|
||||
#endif
|
||||
|
||||
# elif defined __GNUC__
|
||||
// GNU C++:
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)"
|
||||
|
||||
#elif defined __sgi
|
||||
// SGI MIPSpro C++
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -D_SGI_MP_SOURCE"
|
||||
|
||||
#elif defined __DECCXX
|
||||
// Compaq Tru64 Unix cxx
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread"
|
||||
|
||||
#elif defined __BORLANDC__
|
||||
// Borland
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM"
|
||||
|
||||
#elif defined __MWERKS__
|
||||
// Metrowerks CodeWarrior
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either -runtime sm, -runtime smd, -runtime dm, or -runtime dmd"
|
||||
|
||||
#elif defined __SUNPRO_CC
|
||||
// Sun Workshop Compiler C++
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
|
||||
|
||||
#elif defined __HP_aCC
|
||||
// HP aCC
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: -mt"
|
||||
|
||||
#elif defined(__IBMCPP__)
|
||||
// IBM Visual Age
|
||||
# error "Compiler threading support is not turned on. Please compile the code with the xlC_r compiler"
|
||||
|
||||
#elif defined _MSC_VER
|
||||
// Microsoft Visual C++
|
||||
//
|
||||
// Must remain the last #elif since some other vendors (Metrowerks, for
|
||||
// example) also #define _MSC_VER
|
||||
# error "Compiler threading support is not turned on. Please set the correct command line options for threading: either /MT /MTd /MD or /MDd"
|
||||
|
||||
#else
|
||||
|
||||
# error "Compiler threading support is not turned on. Please consult your compiler's documentation for the appropriate options to use"
|
||||
|
||||
#endif // compilers
|
||||
|
||||
#endif // BOOST_HAS_THREADS
|
||||
|
||||
#endif // BOOST_CONFIG_REQUIRES_THREADS_HPP
|
||||
148
include/boost/config/select_compiler_config.hpp
Normal file
148
include/boost/config/select_compiler_config.hpp
Normal file
@@ -0,0 +1,148 @@
|
||||
// Boost compiler configuration selection header file
|
||||
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Martin Wille 2003.
|
||||
// (C) Copyright Guillaume Melquiond 2003.
|
||||
//
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE_1_0.txt or copy at
|
||||
// http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org/ for most recent version.
|
||||
|
||||
// locate which compiler we are using and define
|
||||
// BOOST_COMPILER_CONFIG as needed:
|
||||
|
||||
#if defined __CUDACC__
|
||||
// NVIDIA CUDA C++ compiler for GPU
|
||||
# include "boost/config/compiler/nvcc.hpp"
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__GCCXML__)
|
||||
// GCC-XML emulates other compilers, it has to appear first here!
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
// EDG based Cray compiler:
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
|
||||
|
||||
#elif defined __COMO__
|
||||
// Comeau C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
||||
|
||||
#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
|
||||
// PathScale EKOPath compiler (has to come before clang and gcc)
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
|
||||
|
||||
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
||||
// Intel
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
|
||||
|
||||
#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__)
|
||||
// when using clang and cuda at same time, you want to appear as gcc
|
||||
// Clang C++ emulates GCC, so it has to appear early.
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
|
||||
|
||||
#elif defined __DMC__
|
||||
// Digital Mars C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
|
||||
|
||||
# elif defined(__GNUC__) && !defined(__ibmxl__)
|
||||
// GNU C++:
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
|
||||
|
||||
#elif defined __KCC
|
||||
// Kai C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
|
||||
|
||||
#elif defined __sgi
|
||||
// SGI MIPSpro C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
|
||||
|
||||
#elif defined __DECCXX
|
||||
// Compaq Tru64 Unix cxx
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
|
||||
|
||||
#elif defined __ghs
|
||||
// Greenhills C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
|
||||
|
||||
#elif defined __CODEGEARC__
|
||||
// CodeGear - must be checked for before Borland
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
|
||||
|
||||
#elif defined __BORLANDC__
|
||||
// Borland
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
|
||||
|
||||
#elif defined __MWERKS__
|
||||
// Metrowerks CodeWarrior
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
|
||||
|
||||
#elif defined __SUNPRO_CC
|
||||
// Sun Workshop Compiler C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
|
||||
|
||||
#elif defined __HP_aCC
|
||||
// HP aCC
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
|
||||
|
||||
#elif defined(__MRC__) || defined(__SC__)
|
||||
// MPW MrCpp or SCpp
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
|
||||
|
||||
#elif defined(__ibmxl__)
|
||||
// IBM XL C/C++ for Linux (Little Endian)
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp.hpp"
|
||||
|
||||
#elif defined(__IBMCPP__)
|
||||
// IBM Visual Age or IBM XL C/C++ for Linux (Big Endian)
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
|
||||
|
||||
#elif defined(__PGI)
|
||||
// Portland Group Inc.
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
|
||||
|
||||
#elif defined _MSC_VER
|
||||
// Microsoft Visual C++
|
||||
//
|
||||
// Must remain the last #elif since some other vendors (Metrowerks, for
|
||||
// example) also #define _MSC_VER
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
|
||||
|
||||
#elif defined (BOOST_ASSERT_CONFIG)
|
||||
// this must come last - generate an error if we don't
|
||||
// recognise the compiler:
|
||||
# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
|
||||
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
//
|
||||
// This section allows dependency scanners to find all the headers we *might* include:
|
||||
//
|
||||
#include <boost/config/compiler/gcc_xml.hpp>
|
||||
#include <boost/config/compiler/cray.hpp>
|
||||
#include <boost/config/compiler/comeau.hpp>
|
||||
#include <boost/config/compiler/pathscale.hpp>
|
||||
#include <boost/config/compiler/intel.hpp>
|
||||
#include <boost/config/compiler/clang.hpp>
|
||||
#include <boost/config/compiler/digitalmars.hpp>
|
||||
#include <boost/config/compiler/gcc.hpp>
|
||||
#include <boost/config/compiler/kai.hpp>
|
||||
#include <boost/config/compiler/sgi_mipspro.hpp>
|
||||
#include <boost/config/compiler/compaq_cxx.hpp>
|
||||
#include <boost/config/compiler/greenhills.hpp>
|
||||
#include <boost/config/compiler/codegear.hpp>
|
||||
#include <boost/config/compiler/borland.hpp>
|
||||
#include <boost/config/compiler/metrowerks.hpp>
|
||||
#include <boost/config/compiler/sunpro_cc.hpp>
|
||||
#include <boost/config/compiler/hp_acc.hpp>
|
||||
#include <boost/config/compiler/mpw.hpp>
|
||||
#include <boost/config/compiler/vacpp.hpp>
|
||||
#include <boost/config/compiler/pgi.hpp>
|
||||
#include <boost/config/compiler/visualc.hpp>
|
||||
|
||||
#endif
|
||||
|
||||
137
include/boost/config/select_platform_config.hpp
Normal file
137
include/boost/config/select_platform_config.hpp
Normal file
@@ -0,0 +1,137 @@
|
||||
// Boost compiler configuration selection header file
|
||||
|
||||
// (C) Copyright John Maddock 2001 - 2002.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
|
||||
// Note that we define the headers to include using "header_name" not
|
||||
// <header_name> in order to prevent macro expansion within the header
|
||||
// name (for example "linux" is a macro on linux systems).
|
||||
|
||||
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
|
||||
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
// BSD:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
|
||||
|
||||
#elif defined(sun) || defined(__sun)
|
||||
// solaris:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
|
||||
|
||||
#elif defined(__sgi)
|
||||
// SGI Irix:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
|
||||
|
||||
#elif defined(__hpux)
|
||||
// hp unix:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
|
||||
|
||||
#elif defined(__CYGWIN__)
|
||||
// cygwin is not win32:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
|
||||
|
||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||
// win32:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
|
||||
|
||||
#elif defined(__HAIKU__)
|
||||
// Haiku
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp"
|
||||
|
||||
#elif defined(__BEOS__)
|
||||
// BeOS
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
|
||||
|
||||
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
|
||||
// MacOS
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
|
||||
|
||||
#elif defined(__IBMCPP__) || defined(_AIX)
|
||||
// IBM
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
|
||||
|
||||
#elif defined(__amigaos__)
|
||||
// AmigaOS
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
|
||||
|
||||
#elif defined(__QNXNTO__)
|
||||
// QNX:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
|
||||
|
||||
#elif defined(__VXWORKS__)
|
||||
// vxWorks:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
|
||||
|
||||
#elif defined(__SYMBIAN32__)
|
||||
// Symbian:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
// Cray:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
|
||||
|
||||
#elif defined(__VMS)
|
||||
// VMS:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
|
||||
|
||||
#elif defined(__CloudABI__)
|
||||
// Nuxi CloudABI:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp"
|
||||
#else
|
||||
|
||||
# if defined(unix) \
|
||||
|| defined(__unix) \
|
||||
|| defined(_XOPEN_SOURCE) \
|
||||
|| defined(_POSIX_SOURCE)
|
||||
|
||||
// generic unix platform:
|
||||
|
||||
# ifndef BOOST_HAS_UNISTD_H
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
# endif
|
||||
|
||||
# include <boost/config/posix_features.hpp>
|
||||
|
||||
# endif
|
||||
|
||||
# if defined (BOOST_ASSERT_CONFIG)
|
||||
// this must come last - generate an error if we don't
|
||||
// recognise the platform:
|
||||
# error "Unknown platform - please configure and report the results to boost.org"
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
//
|
||||
// This section allows dependency scanners to find all the files we *might* include:
|
||||
//
|
||||
# include "boost/config/platform/linux.hpp"
|
||||
# include "boost/config/platform/bsd.hpp"
|
||||
# include "boost/config/platform/solaris.hpp"
|
||||
# include "boost/config/platform/irix.hpp"
|
||||
# include "boost/config/platform/hpux.hpp"
|
||||
# include "boost/config/platform/cygwin.hpp"
|
||||
# include "boost/config/platform/win32.hpp"
|
||||
# include "boost/config/platform/beos.hpp"
|
||||
# include "boost/config/platform/macos.hpp"
|
||||
# include "boost/config/platform/aix.hpp"
|
||||
# include "boost/config/platform/amigaos.hpp"
|
||||
# include "boost/config/platform/qnxnto.hpp"
|
||||
# include "boost/config/platform/vxworks.hpp"
|
||||
# include "boost/config/platform/symbian.hpp"
|
||||
# include "boost/config/platform/cray.hpp"
|
||||
# include "boost/config/platform/vms.hpp"
|
||||
# include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
105
include/boost/config/select_stdlib_config.hpp
Normal file
105
include/boost/config/select_stdlib_config.hpp
Normal file
@@ -0,0 +1,105 @@
|
||||
// Boost compiler configuration selection header file
|
||||
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
|
||||
|
||||
// First include <cstddef> to determine if some version of STLport is in use as the std lib
|
||||
// (do not rely on this header being included since users can short-circuit this header
|
||||
// if they know whose std lib they are using.)
|
||||
#ifdef __cplusplus
|
||||
# include <cstddef>
|
||||
#else
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
|
||||
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
// STLPort library; this _must_ come first, otherwise since
|
||||
// STLport typically sits on top of some other library, we
|
||||
// can end up detecting that first rather than STLport:
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
||||
|
||||
#else
|
||||
|
||||
// If our std lib was not some version of STLport, and has not otherwise
|
||||
// been detected, then include <utility> as it is about
|
||||
// the smallest of the std lib headers that includes real C++ stuff.
|
||||
// Some std libs do not include their C++-related macros in <cstddef>
|
||||
// so this additional include makes sure we get those definitions.
|
||||
// Note: do not rely on this header being included since users can short-circuit this
|
||||
// #include if they know whose std lib they are using.
|
||||
#if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\
|
||||
&& !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\
|
||||
&& !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\
|
||||
&& !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||
#include <utility>
|
||||
#endif
|
||||
|
||||
#if defined(__LIBCOMO__)
|
||||
// Comeau STL:
|
||||
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
||||
|
||||
#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
|
||||
// Rogue Wave library:
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
|
||||
|
||||
#elif defined(_LIBCPP_VERSION)
|
||||
// libc++
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
|
||||
|
||||
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||
// GNU libstdc++ 3
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
||||
|
||||
#elif defined(__STL_CONFIG_H)
|
||||
// generic SGI STL
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
|
||||
|
||||
#elif defined(__MSL_CPP__)
|
||||
// MSL standard lib:
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
|
||||
|
||||
#elif defined(__IBMCPP__)
|
||||
// take the default VACPP std lib
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
|
||||
|
||||
#elif defined(MSIPL_COMPILE_H)
|
||||
// Modena C++ standard library
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
|
||||
|
||||
#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
|
||||
// Dinkumware Library (this has to appear after any possible replacement libraries):
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
|
||||
|
||||
#elif defined (BOOST_ASSERT_CONFIG)
|
||||
// this must come last - generate an error if we don't
|
||||
// recognise the library:
|
||||
# error "Unknown standard library - please configure and report the results to boost.org"
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
//
|
||||
// This section allows dependency scanners to find all the files we *might* include:
|
||||
//
|
||||
# include "boost/config/stdlib/stlport.hpp"
|
||||
# include "boost/config/stdlib/libcomo.hpp"
|
||||
# include "boost/config/stdlib/roguewave.hpp"
|
||||
# include "boost/config/stdlib/libcpp.hpp"
|
||||
# include "boost/config/stdlib/libstdcpp3.hpp"
|
||||
# include "boost/config/stdlib/sgi.hpp"
|
||||
# include "boost/config/stdlib/msl.hpp"
|
||||
# include "boost/config/stdlib/vacpp.hpp"
|
||||
# include "boost/config/stdlib/modena.hpp"
|
||||
# include "boost/config/stdlib/dinkumware.hpp"
|
||||
#endif
|
||||
|
||||
198
include/boost/config/stdlib/dinkumware.hpp
Normal file
198
include/boost/config/stdlib/dinkumware.hpp
Normal file
@@ -0,0 +1,198 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// (C) Copyright Guillaume Melquiond 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Dinkumware standard library config:
|
||||
|
||||
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||
#include <boost/config/no_tr1/utility.hpp>
|
||||
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||
#error This is not the Dinkumware lib!
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)
|
||||
// full dinkumware 3.06 and above
|
||||
// fully conforming provided the compiler supports it:
|
||||
# if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700)) // can be defined in yvals.h
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# endif
|
||||
# if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC)
|
||||
# define BOOST_NO_STD_ALLOCATOR
|
||||
# endif
|
||||
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||
// if this lib version is set up for vc6 then there is no std::use_facet:
|
||||
# define BOOST_NO_STD_USE_FACET
|
||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||
// C lib functions aren't in namespace std either:
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
// and nor is <exception>
|
||||
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||
# endif
|
||||
// There's no numeric_limits<long long> support unless _LONGLONG is defined:
|
||||
# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# endif
|
||||
// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
|
||||
// and no <slist> at all
|
||||
#else
|
||||
# define BOOST_MSVC_STD_ITERATOR 1
|
||||
# define BOOST_NO_STD_ITERATOR
|
||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||
# define BOOST_NO_STD_ALLOCATOR
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
# define BOOST_NO_STD_USE_FACET
|
||||
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||
# define BOOST_HAS_MACRO_USE_FACET
|
||||
# ifndef _CPPLIB_VER
|
||||
// Updated Dinkum library defines this, and provides
|
||||
// its own min and max definitions, as does MTA version.
|
||||
# ifndef __MTA__
|
||||
# define BOOST_NO_STD_MIN_MAX
|
||||
# endif
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// std extension namespace is stdext for vc7.1 and later,
|
||||
// the same applies to other compilers that sit on top
|
||||
// of vc7.1 (Intel and Comeau):
|
||||
//
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__)
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE stdext
|
||||
#endif
|
||||
|
||||
|
||||
#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)
|
||||
// if we're using a dinkum lib that's
|
||||
// been configured for VC6/7 then there is
|
||||
// no iterator traits (true even for icl)
|
||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||
#endif
|
||||
|
||||
#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
|
||||
// Intel C++ chokes over any non-trivial use of <locale>
|
||||
// this may be an overly restrictive define, but regex fails without it:
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
#endif
|
||||
|
||||
// Fix for VC++ 8.0 on up ( I do not have a previous version to test )
|
||||
// or clang-cl. If exceptions are off you must manually include the
|
||||
// <exception> header before including the <typeinfo> header. Admittedly
|
||||
// trying to use Boost libraries or the standard C++ libraries without
|
||||
// exception support is not suggested but currently clang-cl ( v 3.4 )
|
||||
// does not support exceptions and must be compiled with exceptions off.
|
||||
#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER)))
|
||||
#include <exception>
|
||||
#endif
|
||||
#include <typeinfo>
|
||||
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__)
|
||||
# define BOOST_NO_STD_TYPEINFO
|
||||
#endif
|
||||
|
||||
// C++0x headers implemented in 520 (as shipped by Microsoft)
|
||||
//
|
||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
#endif
|
||||
|
||||
#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
|
||||
&& (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
// C++0x headers implemented in 540 (as shipped by Microsoft)
|
||||
//
|
||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
#endif
|
||||
|
||||
// C++0x headers implemented in 610 (as shipped by Microsoft)
|
||||
//
|
||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
// 540 has std::align but it is not a conforming implementation
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
#endif
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus < 201402
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
|
||||
// Intel's compiler can't handle this header yet:
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
#endif
|
||||
|
||||
|
||||
// 520..610 have std::addressof, but it doesn't support functions
|
||||
//
|
||||
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
#endif
|
||||
|
||||
// Bug specific to VC14,
|
||||
// See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t
|
||||
// and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2
|
||||
#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650)
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
#endif
|
||||
|
||||
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
|
||||
// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr is not available.
|
||||
// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
|
||||
// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
|
||||
# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
|
||||
# define BOOST_NO_AUTO_PTR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef _CPPLIB_VER
|
||||
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
||||
#else
|
||||
# define BOOST_DINKUMWARE_STDLIB 1
|
||||
#endif
|
||||
|
||||
#ifdef _CPPLIB_VER
|
||||
# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
|
||||
#else
|
||||
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
|
||||
#endif
|
||||
83
include/boost/config/stdlib/libcomo.hpp
Normal file
83
include/boost/config/stdlib/libcomo.hpp
Normal file
@@ -0,0 +1,83 @@
|
||||
// (C) Copyright John Maddock 2002 - 2003.
|
||||
// (C) Copyright Jens Maurer 2002 - 2003.
|
||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Comeau STL:
|
||||
|
||||
#if !defined(__LIBCOMO__)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# if !defined(__LIBCOMO__)
|
||||
# error "This is not the Comeau STL!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// std::streambuf<wchar_t> is non-standard
|
||||
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
||||
// e.g. version 25 is 21 (dec)
|
||||
#if __LIBCOMO_VERSION__ <= 22
|
||||
# define BOOST_NO_STD_WSTREAMBUF
|
||||
#endif
|
||||
|
||||
#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
|
||||
#define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
#if __LIBCOMO_VERSION__ >= 31
|
||||
# define BOOST_HAS_HASH
|
||||
# define BOOST_HAS_SLIST
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus < 201402
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#else
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
|
||||
//
|
||||
// Intrinsic type_traits support.
|
||||
// The SGI STL has it's own __type_traits class, which
|
||||
// has intrinsic compiler support with SGI's compilers.
|
||||
// Whatever map SGI style type traits to boost equivalents:
|
||||
//
|
||||
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||
|
||||
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
|
||||
96
include/boost/config/stdlib/libcpp.hpp
Normal file
96
include/boost/config/stdlib/libcpp.hpp
Normal file
@@ -0,0 +1,96 @@
|
||||
// (C) Copyright Christopher Jefferson 2011.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// config for libc++
|
||||
// Might need more in here later.
|
||||
|
||||
#if !defined(_LIBCPP_VERSION)
|
||||
# include <ciso646>
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# error "This is not libc++!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
|
||||
|
||||
#define BOOST_HAS_THREADS
|
||||
|
||||
#ifdef _LIBCPP_HAS_NO_VARIADICS
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
|
||||
// allocator model. The C++11 allocator model requires a conforming
|
||||
// std::allocator_traits which is only possible with C++11 template
|
||||
// aliases since members rebind_alloc and rebind_traits require it.
|
||||
#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
#endif
|
||||
|
||||
#if __cplusplus < 201103
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
#elif _LIBCPP_VERSION < 3700
|
||||
//
|
||||
// These appear to be unusable/incomplete so far:
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
#endif
|
||||
|
||||
|
||||
#if _LIBCPP_VERSION < 3700
|
||||
// libc++ uses a non-standard messages_base
|
||||
#define BOOST_NO_STD_MESSAGES
|
||||
#endif
|
||||
|
||||
#if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
|
||||
// This is a bit of a sledgehammer, because really it's just libc++abi that has no
|
||||
// support for thread_local, leading to linker errors such as
|
||||
// "undefined reference to `__cxa_thread_atexit'". It is fixed in the
|
||||
// most recent releases of libc++abi though...
|
||||
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||
#endif
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus <= 201103
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#elif __cplusplus < 201402
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
|
||||
// --- end ---
|
||||
297
include/boost/config/stdlib/libstdcpp3.hpp
Normal file
297
include/boost/config/stdlib/libstdcpp3.hpp
Normal file
@@ -0,0 +1,297 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// config for libstdc++ v3
|
||||
// not much to go in here:
|
||||
|
||||
#define BOOST_GNU_STDLIB 1
|
||||
|
||||
#ifdef __GLIBCXX__
|
||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
|
||||
#else
|
||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
|
||||
#endif
|
||||
|
||||
#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
|
||||
# define BOOST_NO_CWCHAR
|
||||
# define BOOST_NO_CWCTYPE
|
||||
# define BOOST_NO_STD_WSTRING
|
||||
# define BOOST_NO_STD_WSTREAMBUF
|
||||
#endif
|
||||
|
||||
#if defined(__osf__) && !defined(_REENTRANT) \
|
||||
&& ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
|
||||
// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
|
||||
// file is included, therefore for consistency we define it here as well.
|
||||
# define _REENTRANT
|
||||
#endif
|
||||
|
||||
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
|
||||
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
||||
|| defined(_GLIBCXX__PTHREADS) \
|
||||
|| defined(_GLIBCXX_HAS_GTHREADS) \
|
||||
|| defined(_WIN32) \
|
||||
|| defined(_AIX) \
|
||||
|| defined(__HAIKU__)
|
||||
//
|
||||
// If the std lib has thread support turned on, then turn it on in Boost
|
||||
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
|
||||
// while others do not...
|
||||
//
|
||||
# define BOOST_HAS_THREADS
|
||||
# else
|
||||
# define BOOST_DISABLE_THREADS
|
||||
# endif
|
||||
#elif defined(__GLIBCPP__) \
|
||||
&& !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
|
||||
&& !defined(_GLIBCPP__PTHREADS)
|
||||
// disable thread support if the std lib was built single threaded:
|
||||
# define BOOST_DISABLE_THREADS
|
||||
#endif
|
||||
|
||||
#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
|
||||
// linux on arm apparently doesn't define _REENTRANT
|
||||
// so just turn on threading support whenever the std lib is thread safe:
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
#if !defined(_GLIBCPP_USE_LONG_LONG) \
|
||||
&& !defined(_GLIBCXX_USE_LONG_LONG)\
|
||||
&& defined(BOOST_HAS_LONG_LONG)
|
||||
// May have been set by compiler/*.hpp, but "long long" without library
|
||||
// support is useless.
|
||||
# undef BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
||||
# define BOOST_HAS_SLIST
|
||||
# define BOOST_HAS_HASH
|
||||
# define BOOST_SLIST_HEADER <ext/slist>
|
||||
# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
|
||||
# define BOOST_HASH_SET_HEADER <ext/hash_set>
|
||||
# define BOOST_HASH_MAP_HEADER <ext/hash_map>
|
||||
# else
|
||||
# define BOOST_HASH_SET_HEADER <backward/hash_set>
|
||||
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Decide whether we have C++11 support turned on:
|
||||
//
|
||||
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103)
|
||||
# define BOOST_LIBSTDCXX11
|
||||
#endif
|
||||
//
|
||||
// Decide which version of libstdc++ we have, normally
|
||||
// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
|
||||
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
|
||||
// developers. He also commented:
|
||||
//
|
||||
// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
|
||||
// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
|
||||
// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
|
||||
// than any release in the 4.2 series."
|
||||
//
|
||||
// Another resource for understanding stdlibc++ features is:
|
||||
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
|
||||
//
|
||||
// However, using the GCC version number fails when the compiler is clang since this
|
||||
// only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473
|
||||
// for a long discussion on this issue. What we can do though is use clang's __has_include
|
||||
// to detect the presence of a C++11 header that was introduced with a specific GCC release.
|
||||
// We still have to be careful though as many such headers were buggy and/or incomplete when
|
||||
// first introduced, so we only check for headers that were fully featured from day 1, and then
|
||||
// use that to infer the underlying GCC version:
|
||||
//
|
||||
#ifdef __clang__
|
||||
|
||||
#if __has_include(<experimental/any>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 50100
|
||||
#elif __has_include(<shared_mutex>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 40900
|
||||
#elif __has_include(<ext/cmath>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 40800
|
||||
#elif __has_include(<scoped_allocator>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 40700
|
||||
#elif __has_include(<typeindex>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 40600
|
||||
#elif __has_include(<future>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 40500
|
||||
#elif __has_include(<ratio>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 40400
|
||||
#elif __has_include(<array>)
|
||||
# define BOOST_LIBSTDCXX_VERSION 40300
|
||||
#endif
|
||||
//
|
||||
// GCC 4.8 and 9 add working versions of <atomic> and <regex> respectively.
|
||||
// However, we have no test for these as the headers were present but broken
|
||||
// in early GCC versions.
|
||||
//
|
||||
#endif
|
||||
|
||||
#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) && (__cplusplus >= 201103L)
|
||||
//
|
||||
// Oracle Solaris compiler uses it's own verison of libstdc++ but doesn't
|
||||
// set __GNUC__
|
||||
//
|
||||
#if __SUNPRO_CC >= 0x5140
|
||||
#define BOOST_LIBSTDCXX_VERSION 50100
|
||||
#else
|
||||
#define BOOST_LIBSTDCXX_VERSION 40800
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_LIBSTDCXX_VERSION)
|
||||
# define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||
#endif
|
||||
|
||||
// std::auto_ptr isn't provided with _GLIBCXX_DEPRECATED=0 (GCC 4.5 and earlier)
|
||||
// or _GLIBCXX_USE_DEPRECATED=0 (GCC 4.6 and later).
|
||||
#if defined(BOOST_LIBSTDCXX11)
|
||||
# if BOOST_LIBSTDCXX_VERSION < 40600
|
||||
# if !_GLIBCXX_DEPRECATED
|
||||
# define BOOST_NO_AUTO_PTR
|
||||
# endif
|
||||
# elif !_GLIBCXX_USE_DEPRECATED
|
||||
# define BOOST_NO_AUTO_PTR
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// C++0x headers in GCC 4.3.0 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11)
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
#endif
|
||||
|
||||
// C++0x headers in GCC 4.4.0 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11)
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
#else
|
||||
# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
|
||||
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
|
||||
#endif
|
||||
|
||||
// C++0x features in GCC 4.5.0 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11)
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
#endif
|
||||
|
||||
// C++0x features in GCC 4.6.0 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11)
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
#endif
|
||||
|
||||
// C++0x features in GCC 4.7.0 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11)
|
||||
// Note that although <chrono> existed prior to 4.7, "steady_clock" is spelled "monotonic_clock"
|
||||
// so 4.7.0 is the first truely conforming one.
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
#endif
|
||||
// C++0x features in GCC 4.8.0 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11)
|
||||
// Note that although <atomic> existed prior to gcc 4.8 it was largely unimplemented for many types:
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
#endif
|
||||
// C++0x features in GCC 4.9.0 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
|
||||
// Although <regex> is present and compilable against, the actual implementation is not functional
|
||||
// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively.
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
#endif
|
||||
|
||||
#if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7)))
|
||||
// As of clang-3.6, libstdc++ header <atomic> throws up errors with clang:
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
#endif
|
||||
//
|
||||
// C++0x features in GCC 5.1 and later
|
||||
//
|
||||
#if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11)
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
#endif
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus <= 201103
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
|
||||
//
|
||||
// Headers not present on Solaris with the Oracle compiler:
|
||||
#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5140)
|
||||
#define BOOST_NO_CXX11_HDR_FUTURE
|
||||
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
#define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
// shared_ptr is present, but is not convertible to bool
|
||||
// which causes all kinds of problems especially in Boost.Thread
|
||||
// but probably elsewhere as well.
|
||||
#define BOOST_NO_CXX11_SMART_PTR
|
||||
#endif
|
||||
|
||||
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1))
|
||||
// Headers not always available:
|
||||
# ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# endif
|
||||
# ifndef BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# endif
|
||||
# ifndef BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# endif
|
||||
# ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX)
|
||||
// Timed mutexes are not always available:
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
#endif
|
||||
|
||||
// --- end ---
|
||||
69
include/boost/config/stdlib/modena.hpp
Normal file
69
include/boost/config/stdlib/modena.hpp
Normal file
@@ -0,0 +1,69 @@
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Modena C++ standard library (comes with KAI C++)
|
||||
|
||||
#if !defined(MSIPL_COMPILE_H)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# if !defined(__MSIPL_COMPILE_H)
|
||||
# error "This is not the Modena C++ library!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef MSIPL_NL_TYPES
|
||||
#define BOOST_NO_STD_MESSAGES
|
||||
#endif
|
||||
|
||||
#ifndef MSIPL_WCHART
|
||||
#define BOOST_NO_STD_WSTRING
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus < 201402
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#else
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
|
||||
#define BOOST_STDLIB "Modena C++ standard library"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
88
include/boost/config/stdlib/msl.hpp
Normal file
88
include/boost/config/stdlib/msl.hpp
Normal file
@@ -0,0 +1,88 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright Darin Adler 2001.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Metrowerks standard library:
|
||||
|
||||
#ifndef __MSL_CPP__
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# ifndef __MSL_CPP__
|
||||
# error This is not the MSL standard library!
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if __MSL_CPP__ >= 0x6000 // Pro 6
|
||||
# define BOOST_HAS_HASH
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
|
||||
#endif
|
||||
#define BOOST_HAS_SLIST
|
||||
|
||||
#if __MSL_CPP__ < 0x6209
|
||||
# define BOOST_NO_STD_MESSAGES
|
||||
#endif
|
||||
|
||||
// check C lib version for <stdint.h>
|
||||
#include <cstddef>
|
||||
|
||||
#if defined(__MSL__) && (__MSL__ >= 0x5000)
|
||||
# define BOOST_HAS_STDINT_H
|
||||
# if !defined(__PALMOS_TRAPS__)
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
# endif
|
||||
// boilerplate code:
|
||||
# include <boost/config/posix_features.hpp>
|
||||
#endif
|
||||
|
||||
#if defined(_MWMT) || _MSL_THREADSAFE
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
|
||||
# define BOOST_NO_STD_USE_FACET
|
||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus < 201402
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#else
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
|
||||
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
|
||||
198
include/boost/config/stdlib/roguewave.hpp
Normal file
198
include/boost/config/stdlib/roguewave.hpp
Normal file
@@ -0,0 +1,198 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// (C) Copyright David Abrahams 2003.
|
||||
// (C) Copyright Boris Gubenko 2007.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Rogue Wave std lib:
|
||||
|
||||
#define BOOST_RW_STDLIB 1
|
||||
|
||||
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||
# error This is not the Rogue Wave standard library
|
||||
# endif
|
||||
#endif
|
||||
//
|
||||
// figure out a consistent version number:
|
||||
//
|
||||
#ifndef _RWSTD_VER
|
||||
# define BOOST_RWSTD_VER 0x010000
|
||||
#elif _RWSTD_VER < 0x010000
|
||||
# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
|
||||
#else
|
||||
# define BOOST_RWSTD_VER _RWSTD_VER
|
||||
#endif
|
||||
|
||||
#ifndef _RWSTD_VER
|
||||
# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
|
||||
#elif _RWSTD_VER < 0x04010200
|
||||
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
||||
#else
|
||||
# ifdef _RWSTD_VER_STR
|
||||
# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
|
||||
# else
|
||||
# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Prior to version 2.2.0 the primary template for std::numeric_limits
|
||||
// does not have compile time constants, even though specializations of that
|
||||
// template do:
|
||||
//
|
||||
#if BOOST_RWSTD_VER < 0x020200
|
||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
#endif
|
||||
|
||||
// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
|
||||
// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
|
||||
#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
|
||||
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
||||
# endif
|
||||
|
||||
//
|
||||
// Borland version of numeric_limits lacks __int64 specialisation:
|
||||
//
|
||||
#ifdef __BORLANDC__
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
#endif
|
||||
|
||||
//
|
||||
// No std::iterator if it can't figure out default template args:
|
||||
//
|
||||
#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
|
||||
# define BOOST_NO_STD_ITERATOR
|
||||
#endif
|
||||
|
||||
//
|
||||
// No iterator traits without partial specialization:
|
||||
//
|
||||
#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||
#endif
|
||||
|
||||
//
|
||||
// Prior to version 2.0, std::auto_ptr was buggy, and there were no
|
||||
// new-style iostreams, and no conformant std::allocator:
|
||||
//
|
||||
#if (BOOST_RWSTD_VER < 0x020000)
|
||||
# define BOOST_NO_AUTO_PTR
|
||||
# define BOOST_NO_STRINGSTREAM
|
||||
# define BOOST_NO_STD_ALLOCATOR
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
#endif
|
||||
|
||||
//
|
||||
// No template iterator constructors without member template support:
|
||||
//
|
||||
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
|
||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||
#endif
|
||||
|
||||
//
|
||||
// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
|
||||
// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
|
||||
// on HP aCC systems even though the allocator is in fact broken):
|
||||
//
|
||||
#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
|
||||
# define BOOST_NO_STD_ALLOCATOR
|
||||
#endif
|
||||
|
||||
//
|
||||
// If we have a std::locale, we still may not have std::use_facet:
|
||||
//
|
||||
#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
|
||||
# define BOOST_NO_STD_USE_FACET
|
||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||
#endif
|
||||
|
||||
//
|
||||
// There's no std::distance prior to version 2, or without
|
||||
// partial specialization support:
|
||||
//
|
||||
#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||
#define BOOST_NO_STD_DISTANCE
|
||||
#endif
|
||||
|
||||
//
|
||||
// Some versions of the rogue wave library don't have assignable
|
||||
// OutputIterators:
|
||||
//
|
||||
#if BOOST_RWSTD_VER < 0x020100
|
||||
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||
#endif
|
||||
|
||||
//
|
||||
// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
|
||||
//
|
||||
#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
|
||||
# undef BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
|
||||
//
|
||||
// check that on HP-UX, the proper RW library is used
|
||||
//
|
||||
#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
|
||||
# error "Boost requires Standard RW library. Please compile and link with -AA"
|
||||
#endif
|
||||
|
||||
//
|
||||
// Define macros specific to RW V2.2 on HP-UX
|
||||
//
|
||||
#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
|
||||
# ifndef __HP_TC1_MAKE_PAIR
|
||||
# define __HP_TC1_MAKE_PAIR
|
||||
# endif
|
||||
# ifndef _HP_INSTANTIATE_STD2_VL
|
||||
# define _HP_INSTANTIATE_STD2_VL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if _RWSTD_VER < 0x05000000
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
#endif
|
||||
// type_traits header is incomplete:
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
//
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus < 201402
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#else
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
158
include/boost/config/stdlib/sgi.hpp
Normal file
158
include/boost/config/stdlib/sgi.hpp
Normal file
@@ -0,0 +1,158 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Darin Adler 2001.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// Use, modification and distribution are subject to the
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// generic SGI STL:
|
||||
|
||||
#if !defined(__STL_CONFIG_H)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# if !defined(__STL_CONFIG_H)
|
||||
# error "This is not the SGI STL!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// No std::iterator traits without partial specialisation:
|
||||
//
|
||||
#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
|
||||
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||
#endif
|
||||
|
||||
//
|
||||
// No std::stringstream with gcc < 3
|
||||
//
|
||||
#if defined(__GNUC__) && (__GNUC__ < 3) && \
|
||||
((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
|
||||
!defined(__STL_USE_NEW_IOSTREAMS) || \
|
||||
defined(__APPLE_CC__)
|
||||
// Note that we only set this for GNU C++ prior to 2.95 since the
|
||||
// latest patches for that release do contain a minimal <sstream>
|
||||
// If you are running a 2.95 release prior to 2.95.3 then this will need
|
||||
// setting, but there is no way to detect that automatically (other
|
||||
// than by running the configure script).
|
||||
// Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
|
||||
// have <sstream>.
|
||||
# define BOOST_NO_STRINGSTREAM
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Assume no std::locale without own iostreams (this may be an
|
||||
// incorrect assumption in some cases):
|
||||
//
|
||||
#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
#endif
|
||||
|
||||
//
|
||||
// Original native SGI streams have non-standard std::messages facet:
|
||||
//
|
||||
#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
#endif
|
||||
|
||||
//
|
||||
// SGI's new iostreams have missing "const" in messages<>::open
|
||||
//
|
||||
#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
|
||||
# define BOOST_NO_STD_MESSAGES
|
||||
#endif
|
||||
|
||||
//
|
||||
// No template iterator constructors, or std::allocator
|
||||
// without member templates:
|
||||
//
|
||||
#if !defined(__STL_MEMBER_TEMPLATES)
|
||||
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||
# define BOOST_NO_STD_ALLOCATOR
|
||||
#endif
|
||||
|
||||
//
|
||||
// We always have SGI style hash_set, hash_map, and slist:
|
||||
//
|
||||
#define BOOST_HAS_HASH
|
||||
#define BOOST_HAS_SLIST
|
||||
|
||||
//
|
||||
// If this is GNU libstdc++2, then no <limits> and no std::wstring:
|
||||
//
|
||||
#if (defined(__GNUC__) && (__GNUC__ < 3))
|
||||
# include <string>
|
||||
# if defined(__BASTRING__)
|
||||
# define BOOST_NO_LIMITS
|
||||
// Note: <boost/limits.hpp> will provide compile-time constants
|
||||
# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
# define BOOST_NO_STD_WSTRING
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// There is no standard iterator unless we have namespace support:
|
||||
//
|
||||
#if !defined(__STL_USE_NAMESPACES)
|
||||
# define BOOST_NO_STD_ITERATOR
|
||||
#endif
|
||||
|
||||
//
|
||||
// Intrinsic type_traits support.
|
||||
// The SGI STL has it's own __type_traits class, which
|
||||
// has intrinsic compiler support with SGI's compilers.
|
||||
// Whatever map SGI style type traits to boost equivalents:
|
||||
//
|
||||
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||
# define BOOST_NO_CXX11_STD_ALIGN
|
||||
# define BOOST_NO_CXX11_ADDRESSOF
|
||||
|
||||
#if defined(__has_include)
|
||||
#if !__has_include(<shared_mutex>)
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#elif __cplusplus < 201402
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
#else
|
||||
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||
#endif
|
||||
|
||||
#define BOOST_STDLIB "SGI standard library"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user