mirror of
https://github.com/boostorg/config.git
synced 2026-05-04 20:04:11 +02:00
Compare commits
1538 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bef8ef7b80 | |||
| 1d39fdec80 | |||
| d25a1df5d2 | |||
| fb33858b6e | |||
| 9d084e5310 | |||
| fe45ca1601 | |||
| 6b238b5d1c | |||
| 1f5fc3c74b | |||
| 85f716830d | |||
| d229f9be96 | |||
| cec1a860e9 | |||
| c2af669dd7 | |||
| b420491e88 | |||
| 7a5a1e1154 | |||
| 9f006ceb6c | |||
| d3084e8cb0 | |||
| fb9957101f | |||
| 96a6cd878f | |||
| 5364a2e8a7 | |||
| ec3318d47a | |||
| eb4e8d58d5 | |||
| 304a62a85a | |||
| fa426d8e24 | |||
| ffd6682a8b | |||
| d265f48d7b | |||
| cd5c825039 | |||
| 76a94a4bcf | |||
| 7143b31545 | |||
| 87f56edb22 | |||
| 447dab3d20 | |||
| 0a22b8dbed | |||
| 024dbed67e | |||
| cdf41efdd3 | |||
| fb903c7180 | |||
| 9fd87d6d7d | |||
| 47bc9827be | |||
| 11d584332c | |||
| eb68e4725a | |||
| c80a3088a0 | |||
| a97d5f32d4 | |||
| 39f48141c5 | |||
| f3ebdc4558 | |||
| 29b754ed08 | |||
| 28b1b02546 | |||
| 6d8b3bc77b | |||
| 3f10d20431 | |||
| 17c6806797 | |||
| d70b298826 | |||
| 664b2fdec8 | |||
| 42e1c7913a | |||
| 5e33b4c27a | |||
| 54c07da09b | |||
| 7238f9f0f6 | |||
| c04b991321 | |||
| 3144e2a8e4 | |||
| 620f819e3b | |||
| 07993e2e2f | |||
| 900c36e2fb | |||
| d1e0933528 | |||
| 382913d25d | |||
| ea46cf5332 | |||
| 026ebd864e | |||
| f2eca6c7fa | |||
| 3c4ea795d7 | |||
| d26ae70b20 | |||
| 90ae208868 | |||
| 82c6e933f1 | |||
| bf628a3b3e | |||
| f7165b4f70 | |||
| 83c9f74990 | |||
| bea3493fcb | |||
| 5679e66d10 | |||
| f34ea93eb2 | |||
| 9c220e9fff | |||
| 31cbd59c85 | |||
| da5012a135 | |||
| 76ee8244df | |||
| f18418b17a | |||
| c78aa62469 | |||
| e20aa6d187 | |||
| b21d168410 | |||
| 9e9ba3361d | |||
| 790a047107 | |||
| 745a1eb4f8 | |||
| 149bfe1c93 | |||
| 4370498457 | |||
| 3764d61f25 | |||
| 77a290c237 | |||
| d9d5ece1c8 | |||
| d03a3756d9 | |||
| 90238fe435 | |||
| 2814b40640 | |||
| f48572a067 | |||
| dca252c087 | |||
| 3cf434c002 | |||
| 3b709bc3ed | |||
| 5ad0730630 | |||
| 15d78e548f | |||
| 51f1178921 | |||
| f68542269a | |||
| bfd85ac978 | |||
| db4ebfca6f | |||
| 0275380f32 | |||
| 29dbea1b5a | |||
| 2de7d27bfd | |||
| bc99a449c1 | |||
| d566c119a7 | |||
| 8e14096bf3 | |||
| 81b7dfb728 | |||
| 5ac217aa3f | |||
| d0b3e9d59e | |||
| bb095bf0e7 | |||
| 73cff8ec7c | |||
| e87ea67c61 | |||
| f04e129c05 | |||
| 611d428a37 | |||
| 2ec8f0fc73 | |||
| 9d3cef6dba | |||
| 2617671fd2 | |||
| 3143e185c6 | |||
| 0ac815ed21 | |||
| cb2b706bf2 | |||
| 0d0211e4d5 | |||
| 95fe1c03ac | |||
| 3ec5a2b573 | |||
| da9f4d062b | |||
| 24a2cc623d | |||
| a28e9c6c1c | |||
| b95595517e | |||
| cc5a67a18d | |||
| d70e6fcc85 | |||
| d5986d697c | |||
| 08212107cb | |||
| f6296c0495 | |||
| 4ba6b9d545 | |||
| 5fa3b7d00c | |||
| ae3c914e70 | |||
| 884133ef7f | |||
| baeb8cd550 | |||
| 90466c9d32 | |||
| f060bb1eca | |||
| 1f86d51030 | |||
| 464f30fe36 | |||
| 44e0d3ec75 | |||
| 280ebb9129 | |||
| e376809717 | |||
| 305f5a58ef | |||
| ac0cc94982 | |||
| 4ca03928e9 | |||
| f841c990c9 | |||
| 23327d6d01 | |||
| 08bd1dbe71 | |||
| 77c6a915db | |||
| 025db91843 | |||
| aa6193c839 | |||
| 3c00cb8760 | |||
| aecc402971 | |||
| 9efa768e30 | |||
| 6e8df4186f | |||
| 74ef9af25a | |||
| 8a6d83ce29 | |||
| 644073bcf7 | |||
| 907cb7ca8b | |||
| e276412eb9 | |||
| f4d91c7aa2 | |||
| 421866a4b2 | |||
| 0cdf4a5da8 | |||
| 2356a7e9c4 | |||
| 8f1f13d0f2 | |||
| 918c5fc486 | |||
| 6102d18867 | |||
| f6c3a163f0 | |||
| a7dd324d41 | |||
| 593389dc4b | |||
| 011426d510 | |||
| 02888f5052 | |||
| 2e2285930c | |||
| 19429a2bde | |||
| b04ae6d7ab | |||
| bb22ab3c5f | |||
| 8c9e237f26 | |||
| ee11fba649 | |||
| a0147b73e8 | |||
| 17a4997aaa | |||
| b57df2a3c4 | |||
| a4815b04af | |||
| e27474534c | |||
| b8fe4fe5e0 | |||
| 994e3cbba1 | |||
| 9e51aa81ca | |||
| 1e544eae21 | |||
| d23ba31dad | |||
| 6fe0977fc4 | |||
| 186a7316b9 | |||
| b2ee38f94b | |||
| d0dab31612 | |||
| c5e6c45d93 | |||
| 911a6140e3 | |||
| 4f1df700ad | |||
| dd31807230 | |||
| 5cf4d8b369 | |||
| 04abb9270b | |||
| 8f09bc2846 | |||
| c21f170a97 | |||
| d2b16361e6 | |||
| 21830e11ff | |||
| da4c0418da | |||
| 92ab15c361 | |||
| 7e4a1c85b7 | |||
| 6415a2cd43 | |||
| 9910b354e5 | |||
| 08c7f03f29 | |||
| 573c1a5027 | |||
| e56e24f0a3 | |||
| cdfa925095 | |||
| a53698c4a8 | |||
| e2c4eb9de8 | |||
| 34f320c4c9 | |||
| 4a58e5360a | |||
| 6098c81ee0 | |||
| 80fb8000f0 | |||
| 3ffaa417c2 | |||
| 437f334745 | |||
| 214c04f139 | |||
| 97a6bdbf46 | |||
| bfd7d04440 | |||
| e6deedfb33 | |||
| 0324c92e5c | |||
| 07aa7f248d | |||
| 9aa6c016bb | |||
| 02dd07481d | |||
| d9332d3fa3 | |||
| 9b8de65f1d | |||
| d2b7f45ea2 | |||
| 7d41f597cb | |||
| fe5e07b521 | |||
| f867e70d06 | |||
| 0debb6db2f | |||
| 2dfd1a95ba | |||
| 4c7b536b3a | |||
| 62189d3b86 | |||
| 5d17cf16be | |||
| 6f0c7dfb0c | |||
| fa8c3269da | |||
| c08b859996 | |||
| a6ccb8f910 | |||
| 1995778211 | |||
| fe06370972 | |||
| 1074d5ed6e | |||
| 833634021a | |||
| 373710b7ce | |||
| 23060d8973 | |||
| 076c86864c | |||
| ffb31de966 | |||
| 18c69e9f40 | |||
| 6c452d6e28 | |||
| 6ea02d000f | |||
| 07312935fd | |||
| bcf6a6f6a4 | |||
| 9f39b329fb | |||
| 4af206ea53 | |||
| e41b4e22ac | |||
| d0d8da8823 | |||
| 1f83bcb56a | |||
| 2e38c1cded | |||
| c6d2300f07 | |||
| 3651139cc1 | |||
| da36b699fc | |||
| ba4210f244 | |||
| 15fb8c47f8 | |||
| 3df5411858 | |||
| 63b39e2758 | |||
| 493e3ba9de | |||
| cf95f4b62c | |||
| ee93e38022 | |||
| ecd1c79fd0 | |||
| 55c0e345ab | |||
| b73cb38a43 | |||
| f5afbf8e27 | |||
| 4a02ac84e2 | |||
| eec62a1162 | |||
| 0df7552f38 | |||
| cd396b619a | |||
| 219c351cb4 | |||
| 32318e41aa | |||
| 40f4e6ed2f | |||
| 15a0c119a1 | |||
| 6b64d2e803 | |||
| 6d7592091c | |||
| fd5d37f6df | |||
| 2a15c53fbb | |||
| 7398ea7955 | |||
| bc966c41ad | |||
| 118c432e74 | |||
| 8c102bcaa7 | |||
| 74c14a42a5 | |||
| 0b508cb2c9 | |||
| 2bc27c752c | |||
| 19766b0a0e | |||
| cb2216eaff | |||
| 912ebda1ca | |||
| 5317fd4193 | |||
| 0e364efe0b | |||
| 5193948558 | |||
| 79bd4b8acf | |||
| f3cea5a8e4 | |||
| 8acd1c464d | |||
| fc1f603143 | |||
| 8037ff436b | |||
| 3fbf51f31a | |||
| 7e1b05be28 | |||
| 7d09af4555 | |||
| 3eff8788b1 | |||
| d468063662 | |||
| a5ce2a0ef7 | |||
| 21d6c913ad | |||
| d88c41e681 | |||
| 272ab4c69f | |||
| 4f4927b999 | |||
| 517ee146c3 | |||
| af570a4679 | |||
| 4c3433434f | |||
| 4fb2b836bc | |||
| 6611d45398 | |||
| a12301d1cb | |||
| b16f6e1698 | |||
| 1260f88915 | |||
| 953114b284 | |||
| 0006275ddd | |||
| d5c2dbae38 | |||
| a2f7ed40ad | |||
| 86d6607582 | |||
| 3a04c2bd20 | |||
| 7f3e0414f0 | |||
| 083ad677b9 | |||
| ba7e1ed201 | |||
| 62921ff58a | |||
| ed79ada80e | |||
| 85751bb81d | |||
| 29c8ce027d | |||
| c8cc56d678 | |||
| 934c372112 | |||
| 6a89b24eed | |||
| 7a78d997d0 | |||
| 3af87f9a39 | |||
| 1f57db8ab0 | |||
| a01d4996bf | |||
| 5cce40b5fe | |||
| 5ff8f83739 | |||
| 041bf1ee1f | |||
| 3ff5ed08a2 | |||
| 1abc59c624 | |||
| 45b11f1fae | |||
| d99022e8d7 | |||
| 328f0f40c8 | |||
| 79ac4bdbeb | |||
| fb87ea1cbe | |||
| 438520d1fd | |||
| 329b4c17f0 | |||
| 2c34894d48 | |||
| 6e93ac5d72 | |||
| b44be22efc | |||
| b025db6d54 | |||
| c85095cf33 | |||
| b4628d91eb | |||
| e21b1729cb | |||
| de5f166253 | |||
| d5d1b73638 | |||
| b49f658332 | |||
| c03303bdcb | |||
| ab0fa3b3d7 | |||
| 0c45ca206a | |||
| ded49a9d32 | |||
| a1a9f07e63 | |||
| 54f108a006 | |||
| 2fd39f10cb | |||
| 25be5543ae | |||
| 553dcbec96 | |||
| 0a83dd7aa9 | |||
| 8d107ecb35 | |||
| 13f5d9c88a | |||
| 6f0c359a4e | |||
| 68b7cc8759 | |||
| 209302a3ed | |||
| 45c6f515b1 | |||
| d1c399f971 | |||
| 7a3fe1f874 | |||
| fe55aadefd | |||
| 8f9f27336c | |||
| 0229c6e5cc | |||
| 4b111941af | |||
| c717449aca | |||
| 780c29bf06 | |||
| c6e2ac028b | |||
| fa7121c0fe | |||
| 4fc6130781 | |||
| 4749434d47 | |||
| 4f974d28c1 | |||
| c45ac74369 | |||
| ccea02471c | |||
| 72116963c5 | |||
| ba60de800c | |||
| b20d7a811e | |||
| 350cfd5d82 | |||
| 9b97c79b4e | |||
| b0b52d6c75 | |||
| d7bb39764b | |||
| 10b814f19b | |||
| 6ab00cf036 | |||
| eaf874e35d | |||
| 5cb5c8e82d | |||
| 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 | |||
| f020bec68a | |||
| 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 | |||
| 0f6f5f8d65 | |||
| 7d6a6b771e | |||
| ec4827dea7 | |||
| 4a7fd6f09f | |||
| c204461f16 | |||
| d7d7441e35 | |||
| cce1a4370b | |||
| 405a113698 | |||
| b1a5420f4d | |||
| 79994e01c5 | |||
| 9763463b96 | |||
| 6fc2d361aa | |||
| 23e87f9712 | |||
| 06351de064 | |||
| b9714083dd | |||
| 8edf64db19 | |||
| dcbf16e6a6 | |||
| 698936447b | |||
| dab246947a | |||
| 3e83b97f92 | |||
| 2001e370c0 | |||
| 15b2a4515d | |||
| 54b470c987 | |||
| b9e514c5be | |||
| 2d2242e7fb | |||
| 3f7a60a1ca | |||
| 13c8a4759c | |||
| 36a4261fda | |||
| 89fec50253 | |||
| d544a55259 | |||
| a279a52fc4 | |||
| 139138f018 | |||
| 99a62a621b | |||
| 1a841a3e84 | |||
| 7b4db900ad | |||
| 1241a29828 | |||
| 55524c5108 | |||
| 2d0879e400 | |||
| 37dfdf81d4 |
@@ -0,0 +1 @@
|
|||||||
|
checks/architecture/bin
|
||||||
+286
@@ -0,0 +1,286 @@
|
|||||||
|
# Copyright 2016, 2017, 2018 Peter Dimov
|
||||||
|
# Distributed under the Boost Software License, Version 1.0.
|
||||||
|
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
language: cpp
|
||||||
|
|
||||||
|
sudo: false
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- /feature\/.*/
|
||||||
|
|
||||||
|
env:
|
||||||
|
matrix:
|
||||||
|
- BOGUS_JOB=true
|
||||||
|
|
||||||
|
matrix:
|
||||||
|
|
||||||
|
exclude:
|
||||||
|
- env: BOGUS_JOB=true
|
||||||
|
|
||||||
|
include:
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
compiler: g++-4.4
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-4.4
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
compiler: g++-4.6
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-4.6
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-4.7
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-4.8
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-4.9
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-5
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-6
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z CXXSTD_DIALECT=cxxstd-dialect=gnu
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-6
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-7
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- g++-8
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-3.5
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-precise-3.5
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-3.6
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-precise-3.6
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-3.7
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-precise-3.7
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-3.8
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-precise-3.8
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-3.9
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-precise-3.9
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
compiler: clang++-4.0
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-4.0
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-trusty-4.0
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
compiler: clang++-5.0
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-5.0
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-trusty-5.0
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
compiler: clang++-libc++
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- libc++-dev
|
||||||
|
- clang-5.0
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-trusty-5.0
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
compiler: clang++-6.0
|
||||||
|
env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,1z
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-6.0
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-trusty-6.0
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
compiler: clang++-libc++
|
||||||
|
env: TOOLSET=clang COMPILER="clang++-6.0 -stdlib=libc++" CXXSTD=03,11,14
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
packages:
|
||||||
|
- clang-6.0
|
||||||
|
- libc++-dev
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-trusty-6.0
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
|
||||||
|
osx_image: xcode9.1
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
|
||||||
|
osx_image: xcode9
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
|
||||||
|
osx_image: xcode8.3
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
|
||||||
|
osx_image: xcode8
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
|
||||||
|
osx_image: xcode7.3
|
||||||
|
|
||||||
|
- os: osx
|
||||||
|
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
|
||||||
|
osx_image: xcode6.4
|
||||||
|
|
||||||
|
- os: linux
|
||||||
|
env: CMAKE_TEST_PROJECT=1
|
||||||
|
install: true
|
||||||
|
script:
|
||||||
|
- mkdir __build__ && cd __build__
|
||||||
|
- cmake ../test/cmake_test_project
|
||||||
|
- cmake --build .
|
||||||
|
|
||||||
|
install:
|
||||||
|
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
|
||||||
|
- cd ..
|
||||||
|
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||||
|
- cd boost-root
|
||||||
|
- git submodule update --init tools/build
|
||||||
|
- git submodule update --init libs/detail
|
||||||
|
- git submodule update --init libs/core
|
||||||
|
- git submodule update --init libs/assert
|
||||||
|
- git submodule update --init libs/type_traits
|
||||||
|
- cp -r $TRAVIS_BUILD_DIR/* libs/config
|
||||||
|
- ./bootstrap.sh
|
||||||
|
- ./b2 headers
|
||||||
|
|
||||||
|
script:
|
||||||
|
- |-
|
||||||
|
echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
|
||||||
|
- IFS=','
|
||||||
|
- for CXXLOCAL in $CXXSTD; do (cd libs/config/test && ../../../b2 config_info_travis_install toolset=$TOOLSET cxxstd=$CXXLOCAL $CXXSTD_DIALECT && echo With Standard Version $CXXLOCAL && ./config_info_travis && rm ./config_info_travis) done
|
||||||
|
- unset IFS
|
||||||
|
- ./b2 -j3 libs/config/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT
|
||||||
|
|
||||||
|
notifications:
|
||||||
|
email:
|
||||||
|
on_success: always
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# Copyright 2018 Mike Dev
|
||||||
|
# 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
|
||||||
|
#
|
||||||
|
# CAUTION!!!!
|
||||||
|
#
|
||||||
|
# This addition to Boost.Config should be considered experimental and is part
|
||||||
|
# of an ongoing effort to add CMake support Boost-wide.
|
||||||
|
#
|
||||||
|
# IT IS HIGHLY LIKELY THAT THIS FILE WILL CHANGE WITHOUT NOTICE!!!
|
||||||
|
#
|
||||||
|
# DO NOT REPLY ON THE CONTENTS OF THIS FILE!!!
|
||||||
|
#
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
project(BoostConfig LANGUAGES CXX)
|
||||||
|
|
||||||
|
add_library(boost_config INTERFACE)
|
||||||
|
add_library(Boost::config ALIAS boost_config)
|
||||||
|
|
||||||
|
target_include_directories(boost_config INTERFACE include)
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
IF NOT DEFINED CXXSTD (
|
||||||
|
ECHO %ARGS:"=%
|
||||||
|
..\..\..\b2 config_info_travis_install %ARGS:"=%
|
||||||
|
config_info_travis
|
||||||
|
del config_info_travis.exe
|
||||||
|
)
|
||||||
|
IF DEFINED CXXSTD FOR %%A IN (%CXXSTD%) DO (
|
||||||
|
ECHO %ARGS:"=%
|
||||||
|
..\..\..\b2 -a -d2 config_info_travis_install %ARGS:"=% cxxstd=%%A
|
||||||
|
config_info_travis
|
||||||
|
del config_info_travis.exe
|
||||||
|
)
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
# Copyright 2016 Peter Dimov
|
||||||
|
# Distributed under the Boost Software License, Version 1.0.
|
||||||
|
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
|
version: 1.0.{build}-{branch}
|
||||||
|
|
||||||
|
shallow_clone: true
|
||||||
|
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
|
||||||
|
platform:
|
||||||
|
- x64
|
||||||
|
|
||||||
|
environment:
|
||||||
|
matrix:
|
||||||
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
ARGS: --toolset=msvc-14.1 address-model=64
|
||||||
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
ARGS: --toolset=msvc-14.1 address-model=32
|
||||||
|
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
ARGS: --toolset=msvc-14.1 address-model=64 cxxflags=-std:c++latest cxxflags=-permissive-
|
||||||
|
- ARGS: --toolset=msvc-9.0 address-model=32
|
||||||
|
- ARGS: --toolset=msvc-10.0 address-model=32
|
||||||
|
- ARGS: --toolset=msvc-11.0 address-model=32
|
||||||
|
- ARGS: --toolset=msvc-12.0 address-model=32
|
||||||
|
- ARGS: --toolset=msvc-14.0 address-model=32
|
||||||
|
- ARGS: --toolset=msvc-12.0 address-model=64
|
||||||
|
- ARGS: --toolset=msvc-14.0 address-model=64
|
||||||
|
- ARGS: --toolset=msvc-14.0 address-model=64 cxxflags=-std:c++latest
|
||||||
|
- ARGS: --toolset=gcc address-model=64
|
||||||
|
CXXSTD: 03,11,14,1z
|
||||||
|
PATH: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
|
||||||
|
- ARGS: --toolset=gcc address-model=64
|
||||||
|
CXXSTD: 03,11,14,1z
|
||||||
|
PATH: C:\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev1\mingw64\bin;%PATH%
|
||||||
|
- ARGS: --toolset=gcc address-model=32 linkflags=-Wl,-allow-multiple-definition
|
||||||
|
CXXSTD: 03,11,14,1z
|
||||||
|
PATH: C:\MinGW\bin;%PATH%
|
||||||
|
- ARGS: --toolset=gcc address-model=64
|
||||||
|
CXXSTD: 03,11,14,1z
|
||||||
|
PATH: C:\cygwin64\bin;%PATH%
|
||||||
|
- ARGS: --toolset=gcc address-model=32
|
||||||
|
CXXSTD: 03,11,14,1z
|
||||||
|
PATH: C:\cygwin\bin;%PATH%
|
||||||
|
|
||||||
|
install:
|
||||||
|
- cd ..
|
||||||
|
- git clone -b %APPVEYOR_REPO_BRANCH% --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||||
|
- cd boost-root
|
||||||
|
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\config
|
||||||
|
- git submodule update --init tools/build
|
||||||
|
- git submodule update --init libs/detail
|
||||||
|
- git submodule update --init libs/core
|
||||||
|
- git submodule update --init libs/assert
|
||||||
|
- git submodule update --init libs/type_traits
|
||||||
|
- bootstrap
|
||||||
|
- b2 headers
|
||||||
|
|
||||||
|
build: off
|
||||||
|
|
||||||
|
test_script:
|
||||||
|
- cd libs\config\test
|
||||||
|
- ..\appveyor.bat
|
||||||
|
- ..\..\..\b2 -j3 %ARGS% cxxstd=%CXXSTD%
|
||||||
@@ -0,0 +1,209 @@
|
|||||||
|
#
|
||||||
|
# *** DO NOT EDIT THIS FILE BY HAND ***
|
||||||
|
# This file was automatically generated on Thu Aug 16 11:20:17 2018
|
||||||
|
# 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 ;
|
||||||
|
|
||||||
|
|
||||||
|
obj two_arg_use_facet : test_case.cpp : <define>TEST_BOOST_HAS_TWO_ARG_USE_FACET ;
|
||||||
|
obj bethreads : test_case.cpp : <define>TEST_BOOST_HAS_BETHREADS ;
|
||||||
|
obj clock_gettime : test_case.cpp : <define>TEST_BOOST_HAS_CLOCK_GETTIME ;
|
||||||
|
obj pragma_detect_mismatch : test_case.cpp : <define>TEST_BOOST_HAS_PRAGMA_DETECT_MISMATCH ;
|
||||||
|
obj dirent_h : test_case.cpp : <define>TEST_BOOST_HAS_DIRENT_H ;
|
||||||
|
obj expm1 : test_case.cpp : <define>TEST_BOOST_HAS_EXPM1 ;
|
||||||
|
obj float128 : test_case.cpp : <define>TEST_BOOST_HAS_FLOAT128 ;
|
||||||
|
obj ftime : test_case.cpp : <define>TEST_BOOST_HAS_FTIME ;
|
||||||
|
obj getsystemtimeasfiletime : test_case.cpp : <define>TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME ;
|
||||||
|
obj gettimeofday : test_case.cpp : <define>TEST_BOOST_HAS_GETTIMEOFDAY ;
|
||||||
|
obj hash : test_case.cpp : <define>TEST_BOOST_HAS_HASH ;
|
||||||
|
obj int128 : test_case.cpp : <define>TEST_BOOST_HAS_INT128 ;
|
||||||
|
obj log1p : test_case.cpp : <define>TEST_BOOST_HAS_LOG1P ;
|
||||||
|
obj long_long : test_case.cpp : <define>TEST_BOOST_HAS_LONG_LONG ;
|
||||||
|
obj macro_use_facet : test_case.cpp : <define>TEST_BOOST_HAS_MACRO_USE_FACET ;
|
||||||
|
obj ms_int64 : test_case.cpp : <define>TEST_BOOST_HAS_MS_INT64 ;
|
||||||
|
obj nanosleep : test_case.cpp : <define>TEST_BOOST_HAS_NANOSLEEP ;
|
||||||
|
obj nl_types_h : test_case.cpp : <define>TEST_BOOST_HAS_NL_TYPES_H ;
|
||||||
|
obj nrvo : test_case.cpp : <define>TEST_BOOST_HAS_NRVO ;
|
||||||
|
obj partial_std_allocator : test_case.cpp : <define>TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR ;
|
||||||
|
obj pthread_delay_np : test_case.cpp : <define>TEST_BOOST_HAS_PTHREAD_DELAY_NP ;
|
||||||
|
obj pthread_mutexattr_settype : test_case.cpp : <define>TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE ;
|
||||||
|
obj pthread_yield : test_case.cpp : <define>TEST_BOOST_HAS_PTHREAD_YIELD ;
|
||||||
|
obj pthreads : test_case.cpp : <define>TEST_BOOST_HAS_PTHREADS ;
|
||||||
|
obj rvalue_refs : test_case.cpp : <define>TEST_BOOST_HAS_RVALUE_REFS ;
|
||||||
|
obj sched_yield : test_case.cpp : <define>TEST_BOOST_HAS_SCHED_YIELD ;
|
||||||
|
obj sgi_type_traits : test_case.cpp : <define>TEST_BOOST_HAS_SGI_TYPE_TRAITS ;
|
||||||
|
obj sigaction : test_case.cpp : <define>TEST_BOOST_HAS_SIGACTION ;
|
||||||
|
obj slist : test_case.cpp : <define>TEST_BOOST_HAS_SLIST ;
|
||||||
|
obj static_assert : test_case.cpp : <define>TEST_BOOST_HAS_STATIC_ASSERT ;
|
||||||
|
obj stdint_h : test_case.cpp : <define>TEST_BOOST_HAS_STDINT_H ;
|
||||||
|
obj stlp_use_facet : test_case.cpp : <define>TEST_BOOST_HAS_STLP_USE_FACET ;
|
||||||
|
obj unistd_h : test_case.cpp : <define>TEST_BOOST_HAS_UNISTD_H ;
|
||||||
|
obj variadic_tmpl : test_case.cpp : <define>TEST_BOOST_HAS_VARIADIC_TMPL ;
|
||||||
|
obj boost_msvc6_member_templates : test_case.cpp : <define>TEST_BOOST_MSVC6_MEMBER_TEMPLATES ;
|
||||||
|
obj boost_msvc_std_iterator : test_case.cpp : <define>TEST_BOOST_MSVC_STD_ITERATOR ;
|
||||||
|
obj winthreads : test_case.cpp : <define>TEST_BOOST_HAS_WINTHREADS ;
|
||||||
|
obj adl_barrier : test_case.cpp : <define>TEST_BOOST_NO_ADL_BARRIER ;
|
||||||
|
obj argument_dependent_lookup : test_case.cpp : <define>TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ;
|
||||||
|
obj array_type_specializations : test_case.cpp : <define>TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS ;
|
||||||
|
obj cxx11_auto_declarations : test_case.cpp : <define>TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS ;
|
||||||
|
obj cxx11_auto_multideclarations : test_case.cpp : <define>TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS ;
|
||||||
|
obj auto_ptr : test_case.cpp : <define>TEST_BOOST_NO_AUTO_PTR ;
|
||||||
|
obj boost_bcb_partial_specialization_bug : test_case.cpp : <define>TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG ;
|
||||||
|
obj cxx11_char16_t : test_case.cpp : <define>TEST_BOOST_NO_CXX11_CHAR16_T ;
|
||||||
|
obj cxx11_char32_t : test_case.cpp : <define>TEST_BOOST_NO_CXX11_CHAR32_T ;
|
||||||
|
obj complete_value_initialization : test_case.cpp : <define>TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION ;
|
||||||
|
obj cxx11_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_CONSTEXPR ;
|
||||||
|
obj ctype_functions : test_case.cpp : <define>TEST_BOOST_NO_CTYPE_FUNCTIONS ;
|
||||||
|
obj cv_specializations : test_case.cpp : <define>TEST_BOOST_NO_CV_SPECIALIZATIONS ;
|
||||||
|
obj cv_void_specializations : test_case.cpp : <define>TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS ;
|
||||||
|
obj cwchar : test_case.cpp : <define>TEST_BOOST_NO_CWCHAR ;
|
||||||
|
obj cwctype : test_case.cpp : <define>TEST_BOOST_NO_CWCTYPE ;
|
||||||
|
obj cxx11_addressof : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ADDRESSOF ;
|
||||||
|
obj cxx11_alignas : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ALIGNAS ;
|
||||||
|
obj cxx11_allocator : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ALLOCATOR ;
|
||||||
|
obj cxx11_atomic_smart_ptr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR ;
|
||||||
|
obj cxx11_defaulted_moves : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DEFAULTED_MOVES ;
|
||||||
|
obj cxx11_final : test_case.cpp : <define>TEST_BOOST_NO_CXX11_FINAL ;
|
||||||
|
obj cxx11_hdr_array : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_ARRAY ;
|
||||||
|
obj cxx11_hdr_atomic : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_ATOMIC ;
|
||||||
|
obj cxx11_hdr_chrono : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_CHRONO ;
|
||||||
|
obj cxx11_hdr_codecvt : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_CODECVT ;
|
||||||
|
obj cxx11_hdr_condition_variable : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE ;
|
||||||
|
obj cxx11_hdr_forward_list : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST ;
|
||||||
|
obj cxx11_hdr_future : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_FUTURE ;
|
||||||
|
obj cxx11_hdr_initializer_list : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST ;
|
||||||
|
obj cxx11_hdr_mutex : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_MUTEX ;
|
||||||
|
obj cxx11_hdr_random : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_RANDOM ;
|
||||||
|
obj cxx11_hdr_ratio : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_RATIO ;
|
||||||
|
obj cxx11_hdr_regex : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_REGEX ;
|
||||||
|
obj cxx11_hdr_system_error : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR ;
|
||||||
|
obj cxx11_hdr_thread : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_THREAD ;
|
||||||
|
obj cxx11_hdr_tuple : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_TUPLE ;
|
||||||
|
obj cxx11_hdr_type_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS ;
|
||||||
|
obj cxx11_hdr_typeindex : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_TYPEINDEX ;
|
||||||
|
obj cxx11_hdr_unordered_map : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP ;
|
||||||
|
obj cxx11_hdr_unordered_set : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET ;
|
||||||
|
obj cxx11_inline_namespaces : test_case.cpp : <define>TEST_BOOST_NO_CXX11_INLINE_NAMESPACES ;
|
||||||
|
obj cxx11_non_public_defaulted_functions : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS ;
|
||||||
|
obj cxx11_numeric_limits : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NUMERIC_LIMITS ;
|
||||||
|
obj cxx11_pointer_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX11_POINTER_TRAITS ;
|
||||||
|
obj cxx11_ref_qualifiers : test_case.cpp : <define>TEST_BOOST_NO_CXX11_REF_QUALIFIERS ;
|
||||||
|
obj cxx11_sfinae_expr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_SFINAE_EXPR ;
|
||||||
|
obj cxx11_smart_ptr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_SMART_PTR ;
|
||||||
|
obj cxx11_std_align : test_case.cpp : <define>TEST_BOOST_NO_CXX11_STD_ALIGN ;
|
||||||
|
obj cxx11_thread_local : test_case.cpp : <define>TEST_BOOST_NO_CXX11_THREAD_LOCAL ;
|
||||||
|
obj cxx11_trailing_result_types : test_case.cpp : <define>TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES ;
|
||||||
|
obj cxx11_user_defined_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS ;
|
||||||
|
obj cxx14_binary_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX14_BINARY_LITERALS ;
|
||||||
|
obj cxx14_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX14_CONSTEXPR ;
|
||||||
|
obj cxx14_decltype_auto : test_case.cpp : <define>TEST_BOOST_NO_CXX14_DECLTYPE_AUTO ;
|
||||||
|
obj cxx14_digit_separators : test_case.cpp : <define>TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS ;
|
||||||
|
obj cxx14_generic_lambdas : test_case.cpp : <define>TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS ;
|
||||||
|
obj cxx14_hdr_shared_mutex : test_case.cpp : <define>TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX ;
|
||||||
|
obj cxx14_initialized_lambda_captures : test_case.cpp : <define>TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES ;
|
||||||
|
obj cxx14_aggregate_nsdmi : test_case.cpp : <define>TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI ;
|
||||||
|
obj cxx14_return_type_deduction : test_case.cpp : <define>TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION ;
|
||||||
|
obj cxx14_std_exchange : test_case.cpp : <define>TEST_BOOST_NO_CXX14_STD_EXCHANGE ;
|
||||||
|
obj cxx14_variable_templates : test_case.cpp : <define>TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES ;
|
||||||
|
obj cxx17_fold_expressions : test_case.cpp : <define>TEST_BOOST_NO_CXX17_FOLD_EXPRESSIONS ;
|
||||||
|
obj cxx17_hdr_optional : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_OPTIONAL ;
|
||||||
|
obj cxx17_hdr_string_view : test_case.cpp : <define>TEST_BOOST_NO_CXX17_HDR_STRING_VIEW ;
|
||||||
|
obj cxx17_if_constexpr : test_case.cpp : <define>TEST_BOOST_NO_CXX17_IF_CONSTEXPR ;
|
||||||
|
obj cxx17_inline_variables : test_case.cpp : <define>TEST_BOOST_NO_CXX17_INLINE_VARIABLES ;
|
||||||
|
obj cxx17_iterator_traits : test_case.cpp : <define>TEST_BOOST_NO_CXX17_ITERATOR_TRAITS ;
|
||||||
|
obj cxx17_std_apply : test_case.cpp : <define>TEST_BOOST_NO_CXX17_STD_APPLY ;
|
||||||
|
obj cxx17_std_invoke : test_case.cpp : <define>TEST_BOOST_NO_CXX17_STD_INVOKE ;
|
||||||
|
obj cxx17_structured_bindings : test_case.cpp : <define>TEST_BOOST_NO_CXX17_STRUCTURED_BINDINGS ;
|
||||||
|
obj cxx98_binders : test_case.cpp : <define>TEST_BOOST_NO_CXX98_BINDERS ;
|
||||||
|
obj cxx98_function_base : test_case.cpp : <define>TEST_BOOST_NO_CXX98_FUNCTION_BASE ;
|
||||||
|
obj cxx98_random_shuffle : test_case.cpp : <define>TEST_BOOST_NO_CXX98_RANDOM_SHUFFLE ;
|
||||||
|
obj cxx11_hdr_functional : test_case.cpp : <define>TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL ;
|
||||||
|
obj cxx11_decltype : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DECLTYPE ;
|
||||||
|
obj cxx11_decltype_n3276 : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DECLTYPE_N3276 ;
|
||||||
|
obj boost_deduced_typename : test_case.cpp : <define>TEST_BOOST_DEDUCED_TYPENAME ;
|
||||||
|
obj cxx11_defaulted_functions : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS ;
|
||||||
|
obj cxx11_deleted_functions : test_case.cpp : <define>TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS ;
|
||||||
|
obj dependent_nested_derivations : test_case.cpp : <define>TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS ;
|
||||||
|
obj dependent_types_in_template_value_parameters : test_case.cpp : <define>TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS ;
|
||||||
|
obj exception_std_namespace : test_case.cpp : <define>TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE ;
|
||||||
|
obj exceptions : test_case.cpp : <define>TEST_BOOST_NO_EXCEPTIONS ;
|
||||||
|
obj explicit_function_template_arguments : test_case.cpp : <define>TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS ;
|
||||||
|
obj cxx11_explicit_conversion_operators : test_case.cpp : <define>TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS ;
|
||||||
|
obj cxx11_extern_template : test_case.cpp : <define>TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE ;
|
||||||
|
obj fenv_h : test_case.cpp : <define>TEST_BOOST_NO_FENV_H ;
|
||||||
|
obj cxx11_fixed_length_variadic_template_expansion_packs : test_case.cpp : <define>TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS ;
|
||||||
|
obj function_template_ordering : test_case.cpp : <define>TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING ;
|
||||||
|
obj cxx11_function_template_default_args : test_case.cpp : <define>TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS ;
|
||||||
|
obj function_type_specializations : test_case.cpp : <define>TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS ;
|
||||||
|
obj ms_int64_numeric_limits : test_case.cpp : <define>TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS ;
|
||||||
|
obj inclass_member_initialization : test_case.cpp : <define>TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION ;
|
||||||
|
obj integral_int64_t : test_case.cpp : <define>TEST_BOOST_NO_INTEGRAL_INT64_T ;
|
||||||
|
obj iosfwd : test_case.cpp : <define>TEST_BOOST_NO_IOSFWD ;
|
||||||
|
obj iostream : test_case.cpp : <define>TEST_BOOST_NO_IOSTREAM ;
|
||||||
|
obj is_abstract : test_case.cpp : <define>TEST_BOOST_NO_IS_ABSTRACT ;
|
||||||
|
obj templated_iterator_constructors : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS ;
|
||||||
|
obj cxx11_lambdas : test_case.cpp : <define>TEST_BOOST_NO_CXX11_LAMBDAS ;
|
||||||
|
obj limits : test_case.cpp : <define>TEST_BOOST_NO_LIMITS ;
|
||||||
|
obj limits_compile_time_constants : test_case.cpp : <define>TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS ;
|
||||||
|
obj long_long_numeric_limits : test_case.cpp : <define>TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS ;
|
||||||
|
obj member_function_specializations : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS ;
|
||||||
|
obj member_template_keyword : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD ;
|
||||||
|
obj pointer_to_member_template_parameters : test_case.cpp : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS ;
|
||||||
|
obj member_template_friends : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS ;
|
||||||
|
obj member_templates : test_case.cpp : <define>TEST_BOOST_NO_MEMBER_TEMPLATES ;
|
||||||
|
obj nested_friendship : test_case.cpp : <define>TEST_BOOST_NO_NESTED_FRIENDSHIP ;
|
||||||
|
obj cxx11_noexcept : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NOEXCEPT ;
|
||||||
|
obj cxx11_nullptr : test_case.cpp : <define>TEST_BOOST_NO_CXX11_NULLPTR ;
|
||||||
|
obj operators_in_namespace : test_case.cpp : <define>TEST_BOOST_NO_OPERATORS_IN_NAMESPACE ;
|
||||||
|
obj partial_specialization_implicit_default_args : test_case.cpp : <define>TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS ;
|
||||||
|
obj template_partial_specialization : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ;
|
||||||
|
obj private_in_aggregate : test_case.cpp : <define>TEST_BOOST_NO_PRIVATE_IN_AGGREGATE ;
|
||||||
|
obj pointer_to_member_const : test_case.cpp : <define>TEST_BOOST_NO_POINTER_TO_MEMBER_CONST ;
|
||||||
|
obj cxx11_range_based_for : test_case.cpp : <define>TEST_BOOST_NO_CXX11_RANGE_BASED_FOR ;
|
||||||
|
obj cxx11_raw_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_RAW_LITERALS ;
|
||||||
|
obj restrict_references : test_case.cpp : <define>TEST_BOOST_NO_RESTRICT_REFERENCES ;
|
||||||
|
obj unreachable_return_detection : test_case.cpp : <define>TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION ;
|
||||||
|
obj rtti : test_case.cpp : <define>TEST_BOOST_NO_RTTI ;
|
||||||
|
obj cxx11_rvalue_references : test_case.cpp : <define>TEST_BOOST_NO_CXX11_RVALUE_REFERENCES ;
|
||||||
|
obj cxx11_scoped_enums : test_case.cpp : <define>TEST_BOOST_NO_CXX11_SCOPED_ENUMS ;
|
||||||
|
obj sfinae : test_case.cpp : <define>TEST_BOOST_NO_SFINAE ;
|
||||||
|
obj sfinae_expr : test_case.cpp : <define>TEST_BOOST_NO_SFINAE_EXPR ;
|
||||||
|
obj stringstream : test_case.cpp : <define>TEST_BOOST_NO_STRINGSTREAM ;
|
||||||
|
obj cxx11_static_assert : test_case.cpp : <define>TEST_BOOST_NO_CXX11_STATIC_ASSERT ;
|
||||||
|
obj std_allocator : test_case.cpp : <define>TEST_BOOST_NO_STD_ALLOCATOR ;
|
||||||
|
obj std_distance : test_case.cpp : <define>TEST_BOOST_NO_STD_DISTANCE ;
|
||||||
|
obj std_iterator_traits : test_case.cpp : <define>TEST_BOOST_NO_STD_ITERATOR_TRAITS ;
|
||||||
|
obj std_iterator : test_case.cpp : <define>TEST_BOOST_NO_STD_ITERATOR ;
|
||||||
|
obj std_locale : test_case.cpp : <define>TEST_BOOST_NO_STD_LOCALE ;
|
||||||
|
obj std_messages : test_case.cpp : <define>TEST_BOOST_NO_STD_MESSAGES ;
|
||||||
|
obj std_min_max : test_case.cpp : <define>TEST_BOOST_NO_STD_MIN_MAX ;
|
||||||
|
obj std_output_iterator_assign : test_case.cpp : <define>TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN ;
|
||||||
|
obj std_typeinfo : test_case.cpp : <define>TEST_BOOST_NO_STD_TYPEINFO ;
|
||||||
|
obj std_use_facet : test_case.cpp : <define>TEST_BOOST_NO_STD_USE_FACET ;
|
||||||
|
obj std_wstreambuf : test_case.cpp : <define>TEST_BOOST_NO_STD_WSTREAMBUF ;
|
||||||
|
obj std_wstring : test_case.cpp : <define>TEST_BOOST_NO_STD_WSTRING ;
|
||||||
|
obj stdc_namespace : test_case.cpp : <define>TEST_BOOST_NO_STDC_NAMESPACE ;
|
||||||
|
obj swprintf : test_case.cpp : <define>TEST_BOOST_NO_SWPRINTF ;
|
||||||
|
obj cxx11_local_class_template_parameters : test_case.cpp : <define>TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS ;
|
||||||
|
obj cxx11_template_aliases : test_case.cpp : <define>TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES ;
|
||||||
|
obj templated_iostreams : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATED_IOSTREAMS ;
|
||||||
|
obj template_templates : test_case.cpp : <define>TEST_BOOST_NO_TEMPLATE_TEMPLATES ;
|
||||||
|
obj two_phase_name_lookup : test_case.cpp : <define>TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP ;
|
||||||
|
obj typeid : test_case.cpp : <define>TEST_BOOST_NO_TYPEID ;
|
||||||
|
obj typename_with_ctor : test_case.cpp : <define>TEST_BOOST_NO_TYPENAME_WITH_CTOR ;
|
||||||
|
obj cxx11_unicode_literals : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNICODE_LITERALS ;
|
||||||
|
obj cxx11_unified_initialization_syntax : test_case.cpp : <define>TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX ;
|
||||||
|
obj boost_function_scope_using_declaration_breaks_adl : test_case.cpp : <define>TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL ;
|
||||||
|
obj using_declaration_overloads_from_typename_base : test_case.cpp : <define>TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE ;
|
||||||
|
obj using_template : test_case.cpp : <define>TEST_BOOST_NO_USING_TEMPLATE ;
|
||||||
|
obj cxx11_variadic_macros : test_case.cpp : <define>TEST_BOOST_NO_CXX11_VARIADIC_MACROS ;
|
||||||
|
obj cxx11_variadic_templates : test_case.cpp : <define>TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES ;
|
||||||
|
obj void_returns : test_case.cpp : <define>TEST_BOOST_NO_VOID_RETURNS ;
|
||||||
|
obj intrinsic_wchar_t : test_case.cpp : <define>TEST_BOOST_NO_INTRINSIC_WCHAR_T ;
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
bin
|
||||||
@@ -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];
|
||||||
@@ -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];
|
||||||
@@ -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 ;
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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) ;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,999 @@
|
|||||||
|
// This file was automatically generated on Thu Aug 16 11:20:17 2018
|
||||||
|
// 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$
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#ifdef TEST_BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
|
# ifndef BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
|
# error "Feature macro BOOST_HAS_TWO_ARG_USE_FACET is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_BETHREADS
|
||||||
|
# ifndef BOOST_HAS_BETHREADS
|
||||||
|
# error "Feature macro BOOST_HAS_BETHREADS is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_CLOCK_GETTIME
|
||||||
|
# ifndef BOOST_HAS_CLOCK_GETTIME
|
||||||
|
# error "Feature macro BOOST_HAS_CLOCK_GETTIME is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||||
|
# ifndef BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||||
|
# error "Feature macro BOOST_HAS_PRAGMA_DETECT_MISMATCH is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_DIRENT_H
|
||||||
|
# ifndef BOOST_HAS_DIRENT_H
|
||||||
|
# error "Feature macro BOOST_HAS_DIRENT_H is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_EXPM1
|
||||||
|
# ifndef BOOST_HAS_EXPM1
|
||||||
|
# error "Feature macro BOOST_HAS_EXPM1 is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_FLOAT128
|
||||||
|
# ifndef BOOST_HAS_FLOAT128
|
||||||
|
# error "Feature macro BOOST_HAS_FLOAT128 is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_FTIME
|
||||||
|
# ifndef BOOST_HAS_FTIME
|
||||||
|
# error "Feature macro BOOST_HAS_FTIME is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||||
|
# ifndef BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||||
|
# error "Feature macro BOOST_HAS_GETSYSTEMTIMEASFILETIME is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# error "Feature macro BOOST_HAS_GETTIMEOFDAY is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_HASH
|
||||||
|
# ifndef BOOST_HAS_HASH
|
||||||
|
# error "Feature macro BOOST_HAS_HASH is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_INT128
|
||||||
|
# ifndef BOOST_HAS_INT128
|
||||||
|
# error "Feature macro BOOST_HAS_INT128 is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_LOG1P
|
||||||
|
# ifndef BOOST_HAS_LOG1P
|
||||||
|
# error "Feature macro BOOST_HAS_LOG1P is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_LONG_LONG
|
||||||
|
# ifndef BOOST_HAS_LONG_LONG
|
||||||
|
# error "Feature macro BOOST_HAS_LONG_LONG is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_MACRO_USE_FACET
|
||||||
|
# ifndef BOOST_HAS_MACRO_USE_FACET
|
||||||
|
# error "Feature macro BOOST_HAS_MACRO_USE_FACET is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_MS_INT64
|
||||||
|
# ifndef BOOST_HAS_MS_INT64
|
||||||
|
# error "Feature macro BOOST_HAS_MS_INT64 is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_NANOSLEEP
|
||||||
|
# ifndef BOOST_HAS_NANOSLEEP
|
||||||
|
# error "Feature macro BOOST_HAS_NANOSLEEP is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_NL_TYPES_H
|
||||||
|
# ifndef BOOST_HAS_NL_TYPES_H
|
||||||
|
# error "Feature macro BOOST_HAS_NL_TYPES_H is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_NRVO
|
||||||
|
# ifndef BOOST_HAS_NRVO
|
||||||
|
# error "Feature macro BOOST_HAS_NRVO is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
|
# ifndef BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
|
# error "Feature macro BOOST_HAS_PARTIAL_STD_ALLOCATOR is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_PTHREAD_DELAY_NP
|
||||||
|
# ifndef BOOST_HAS_PTHREAD_DELAY_NP
|
||||||
|
# error "Feature macro BOOST_HAS_PTHREAD_DELAY_NP is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# error "Feature macro BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_PTHREAD_YIELD
|
||||||
|
# ifndef BOOST_HAS_PTHREAD_YIELD
|
||||||
|
# error "Feature macro BOOST_HAS_PTHREAD_YIELD is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_PTHREADS
|
||||||
|
# ifndef BOOST_HAS_PTHREADS
|
||||||
|
# error "Feature macro BOOST_HAS_PTHREADS is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_RVALUE_REFS
|
||||||
|
# ifndef BOOST_HAS_RVALUE_REFS
|
||||||
|
# error "Feature macro BOOST_HAS_RVALUE_REFS is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_SCHED_YIELD
|
||||||
|
# ifndef BOOST_HAS_SCHED_YIELD
|
||||||
|
# error "Feature macro BOOST_HAS_SCHED_YIELD is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_SGI_TYPE_TRAITS
|
||||||
|
# ifndef BOOST_HAS_SGI_TYPE_TRAITS
|
||||||
|
# error "Feature macro BOOST_HAS_SGI_TYPE_TRAITS is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_SIGACTION
|
||||||
|
# ifndef BOOST_HAS_SIGACTION
|
||||||
|
# error "Feature macro BOOST_HAS_SIGACTION is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_SLIST
|
||||||
|
# ifndef BOOST_HAS_SLIST
|
||||||
|
# error "Feature macro BOOST_HAS_SLIST is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_STATIC_ASSERT
|
||||||
|
# ifndef BOOST_HAS_STATIC_ASSERT
|
||||||
|
# error "Feature macro BOOST_HAS_STATIC_ASSERT is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_STDINT_H
|
||||||
|
# ifndef BOOST_HAS_STDINT_H
|
||||||
|
# error "Feature macro BOOST_HAS_STDINT_H is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_STLP_USE_FACET
|
||||||
|
# ifndef BOOST_HAS_STLP_USE_FACET
|
||||||
|
# error "Feature macro BOOST_HAS_STLP_USE_FACET is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_UNISTD_H
|
||||||
|
# ifndef BOOST_HAS_UNISTD_H
|
||||||
|
# error "Feature macro BOOST_HAS_UNISTD_H is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_VARIADIC_TMPL
|
||||||
|
# ifndef BOOST_HAS_VARIADIC_TMPL
|
||||||
|
# error "Feature macro BOOST_HAS_VARIADIC_TMPL is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_MSVC6_MEMBER_TEMPLATES
|
||||||
|
# ifndef BOOST_MSVC6_MEMBER_TEMPLATES
|
||||||
|
# error "Feature macro BOOST_MSVC6_MEMBER_TEMPLATES is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_MSVC_STD_ITERATOR
|
||||||
|
# ifndef BOOST_MSVC_STD_ITERATOR
|
||||||
|
# error "Feature macro BOOST_MSVC_STD_ITERATOR is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_HAS_WINTHREADS
|
||||||
|
# ifndef BOOST_HAS_WINTHREADS
|
||||||
|
# error "Feature macro BOOST_HAS_WINTHREADS is not defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_ADL_BARRIER
|
||||||
|
# ifdef BOOST_NO_ADL_BARRIER
|
||||||
|
# error "Defect macro BOOST_NO_ADL_BARRIER is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
|
# ifdef BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
|
# error "Defect macro BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||||
|
# ifdef BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||||
|
# error "Defect macro BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# ifdef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_AUTO_DECLARATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
# ifdef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_AUTO_PTR
|
||||||
|
# ifdef BOOST_NO_AUTO_PTR
|
||||||
|
# error "Defect macro BOOST_NO_AUTO_PTR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||||
|
# ifdef BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||||
|
# error "Defect macro BOOST_BCB_PARTIAL_SPECIALIZATION_BUG is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# ifdef BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_CHAR16_T is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_CHAR32_T
|
||||||
|
# ifdef BOOST_NO_CXX11_CHAR32_T
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_CHAR32_T is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
# ifdef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
# error "Defect macro BOOST_NO_COMPLETE_VALUE_INITIALIZATION is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
# ifdef BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_CONSTEXPR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CTYPE_FUNCTIONS
|
||||||
|
# ifdef BOOST_NO_CTYPE_FUNCTIONS
|
||||||
|
# error "Defect macro BOOST_NO_CTYPE_FUNCTIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CV_SPECIALIZATIONS
|
||||||
|
# ifdef BOOST_NO_CV_SPECIALIZATIONS
|
||||||
|
# error "Defect macro BOOST_NO_CV_SPECIALIZATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
|
# ifdef BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
|
# error "Defect macro BOOST_NO_CV_VOID_SPECIALIZATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CWCHAR
|
||||||
|
# ifdef BOOST_NO_CWCHAR
|
||||||
|
# error "Defect macro BOOST_NO_CWCHAR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CWCTYPE
|
||||||
|
# ifdef BOOST_NO_CWCTYPE
|
||||||
|
# error "Defect macro BOOST_NO_CWCTYPE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
# ifdef BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_ADDRESSOF is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_ALIGNAS
|
||||||
|
# ifdef BOOST_NO_CXX11_ALIGNAS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_ALIGNAS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# ifdef BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_ALLOCATOR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# ifdef BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_ATOMIC_SMART_PTR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_MOVES
|
||||||
|
# ifdef BOOST_NO_CXX11_DEFAULTED_MOVES
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_DEFAULTED_MOVES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_FINAL
|
||||||
|
# ifdef BOOST_NO_CXX11_FINAL
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_FINAL is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_ARRAY is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_ATOMIC is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_CHRONO is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_CODECVT is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_CONDITION_VARIABLE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_FORWARD_LIST is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_FUTURE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_INITIALIZER_LIST is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_MUTEX is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_RANDOM is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_RATIO is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_REGEX is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_SYSTEM_ERROR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_THREAD is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_TUPLE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_TYPE_TRAITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_TYPEINDEX is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_UNORDERED_MAP is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_UNORDERED_SET is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
# ifdef BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_INLINE_NAMESPACES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||||
|
# ifdef BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# ifdef BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_NUMERIC_LIMITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# ifdef BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_POINTER_TRAITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
# ifdef BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_REF_QUALIFIERS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
# ifdef BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_SFINAE_EXPR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# ifdef BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_SMART_PTR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# ifdef BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_STD_ALIGN is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
# ifdef BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_THREAD_LOCAL is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
# ifdef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_TRAILING_RESULT_TYPES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
# ifdef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_USER_DEFINED_LITERALS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
# ifdef BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_BINARY_LITERALS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
# ifdef BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_CONSTEXPR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
# ifdef BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_DECLTYPE_AUTO is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
# ifdef BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_DIGIT_SEPARATORS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
# ifdef BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_GENERIC_LAMBDAS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
# ifdef BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_HDR_SHARED_MUTEX is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
# ifdef BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
# ifdef BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_AGGREGATE_NSDMI is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
# ifdef BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
# ifdef BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_STD_EXCHANGE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
# ifdef BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
# error "Defect macro BOOST_NO_CXX14_VARIABLE_TEMPLATES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
# ifdef BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_FOLD_EXPRESSIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_HDR_OPTIONAL
|
||||||
|
# ifdef BOOST_NO_CXX17_HDR_OPTIONAL
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_HDR_OPTIONAL is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_HDR_STRING_VIEW
|
||||||
|
# ifdef BOOST_NO_CXX17_HDR_STRING_VIEW
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_HDR_STRING_VIEW is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
# ifdef BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_IF_CONSTEXPR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
# ifdef BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_INLINE_VARIABLES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_ITERATOR_TRAITS
|
||||||
|
# ifdef BOOST_NO_CXX17_ITERATOR_TRAITS
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_ITERATOR_TRAITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# ifdef BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_STD_APPLY is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
# ifdef BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_STD_INVOKE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
# ifdef BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
# error "Defect macro BOOST_NO_CXX17_STRUCTURED_BINDINGS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX98_BINDERS
|
||||||
|
# ifdef BOOST_NO_CXX98_BINDERS
|
||||||
|
# error "Defect macro BOOST_NO_CXX98_BINDERS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX98_FUNCTION_BASE
|
||||||
|
# ifdef BOOST_NO_CXX98_FUNCTION_BASE
|
||||||
|
# error "Defect macro BOOST_NO_CXX98_FUNCTION_BASE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX98_RANDOM_SHUFFLE
|
||||||
|
# ifdef BOOST_NO_CXX98_RANDOM_SHUFFLE
|
||||||
|
# error "Defect macro BOOST_NO_CXX98_RANDOM_SHUFFLE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# ifdef BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_HDR_FUNCTIONAL is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE
|
||||||
|
# ifdef BOOST_NO_CXX11_DECLTYPE
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_DECLTYPE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
# ifdef BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_DECLTYPE_N3276 is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_DEDUCED_TYPENAME
|
||||||
|
# ifdef BOOST_DEDUCED_TYPENAME
|
||||||
|
# error "Defect macro BOOST_DEDUCED_TYPENAME is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
# ifdef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_DEFAULTED_FUNCTIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
# ifdef BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_DELETED_FUNCTIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
|
# ifdef BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
|
# error "Defect macro BOOST_NO_DEPENDENT_NESTED_DERIVATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
|
# ifdef BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
|
# error "Defect macro BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
|
# ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
|
# error "Defect macro BOOST_NO_EXCEPTION_STD_NAMESPACE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_EXCEPTIONS
|
||||||
|
# ifdef BOOST_NO_EXCEPTIONS
|
||||||
|
# error "Defect macro BOOST_NO_EXCEPTIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||||
|
# ifdef BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||||
|
# error "Defect macro BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
# ifdef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
# ifdef BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_EXTERN_TEMPLATE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_FENV_H
|
||||||
|
# ifdef BOOST_NO_FENV_H
|
||||||
|
# error "Defect macro BOOST_NO_FENV_H is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
# ifdef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
# ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
# error "Defect macro BOOST_NO_FUNCTION_TEMPLATE_ORDERING is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
# ifdef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||||
|
# ifdef BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||||
|
# error "Defect macro BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
|
# ifdef BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
|
# error "Defect macro BOOST_NO_MS_INT64_NUMERIC_LIMITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
# ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
# error "Defect macro BOOST_NO_INCLASS_MEMBER_INITIALIZATION is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# ifdef BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# error "Defect macro BOOST_NO_INTEGRAL_INT64_T is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_IOSFWD
|
||||||
|
# ifdef BOOST_NO_IOSFWD
|
||||||
|
# error "Defect macro BOOST_NO_IOSFWD is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_IOSTREAM
|
||||||
|
# ifdef BOOST_NO_IOSTREAM
|
||||||
|
# error "Defect macro BOOST_NO_IOSTREAM is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_IS_ABSTRACT
|
||||||
|
# ifdef BOOST_NO_IS_ABSTRACT
|
||||||
|
# error "Defect macro BOOST_NO_IS_ABSTRACT is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
# ifdef BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
# error "Defect macro BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_LAMBDAS
|
||||||
|
# ifdef BOOST_NO_CXX11_LAMBDAS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_LAMBDAS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_LIMITS
|
||||||
|
# ifdef BOOST_NO_LIMITS
|
||||||
|
# error "Defect macro BOOST_NO_LIMITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
# ifdef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
# error "Defect macro BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
||||||
|
# ifdef BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
||||||
|
# error "Defect macro BOOST_NO_LONG_LONG_NUMERIC_LIMITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_LONG_LONG
|
||||||
|
# ifdef BOOST_NO_LONG_LONG
|
||||||
|
# error "Defect macro BOOST_NO_LONG_LONG is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
|
# ifdef BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
|
# error "Defect macro BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
|
# ifdef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
|
# error "Defect macro BOOST_NO_MEMBER_TEMPLATE_KEYWORD is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
|
# ifdef BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
|
# error "Defect macro BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
# ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
# error "Defect macro BOOST_NO_MEMBER_TEMPLATE_FRIENDS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_MEMBER_TEMPLATES
|
||||||
|
# ifdef BOOST_NO_MEMBER_TEMPLATES
|
||||||
|
# error "Defect macro BOOST_NO_MEMBER_TEMPLATES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_NESTED_FRIENDSHIP
|
||||||
|
# ifdef BOOST_NO_NESTED_FRIENDSHIP
|
||||||
|
# error "Defect macro BOOST_NO_NESTED_FRIENDSHIP is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
# ifdef BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_NOEXCEPT is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_NULLPTR
|
||||||
|
# ifdef BOOST_NO_CXX11_NULLPTR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_NULLPTR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
|
# ifdef BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
|
# error "Defect macro BOOST_NO_OPERATORS_IN_NAMESPACE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||||
|
# ifdef BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||||
|
# error "Defect macro BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
# ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
# error "Defect macro BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
|
# ifdef BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
|
# error "Defect macro BOOST_NO_PRIVATE_IN_AGGREGATE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||||
|
# ifdef BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||||
|
# error "Defect macro BOOST_NO_POINTER_TO_MEMBER_CONST is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
# ifdef BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_RANGE_BASED_FOR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
# ifdef BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_RAW_LITERALS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_RESTRICT_REFERENCES
|
||||||
|
# ifdef BOOST_NO_RESTRICT_REFERENCES
|
||||||
|
# error "Defect macro BOOST_NO_RESTRICT_REFERENCES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
|
# ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
|
# error "Defect macro BOOST_NO_UNREACHABLE_RETURN_DETECTION is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_RTTI
|
||||||
|
# ifdef BOOST_NO_RTTI
|
||||||
|
# error "Defect macro BOOST_NO_RTTI is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
# ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_RVALUE_REFERENCES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
# ifdef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_SCOPED_ENUMS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_SFINAE
|
||||||
|
# ifdef BOOST_NO_SFINAE
|
||||||
|
# error "Defect macro BOOST_NO_SFINAE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_SFINAE_EXPR
|
||||||
|
# ifdef BOOST_NO_SFINAE_EXPR
|
||||||
|
# error "Defect macro BOOST_NO_SFINAE_EXPR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STRINGSTREAM
|
||||||
|
# ifdef BOOST_NO_STRINGSTREAM
|
||||||
|
# error "Defect macro BOOST_NO_STRINGSTREAM is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
# ifdef BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_STATIC_ASSERT is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_ALLOCATOR
|
||||||
|
# ifdef BOOST_NO_STD_ALLOCATOR
|
||||||
|
# error "Defect macro BOOST_NO_STD_ALLOCATOR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_DISTANCE
|
||||||
|
# ifdef BOOST_NO_STD_DISTANCE
|
||||||
|
# error "Defect macro BOOST_NO_STD_DISTANCE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
# ifdef BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
# error "Defect macro BOOST_NO_STD_ITERATOR_TRAITS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_ITERATOR
|
||||||
|
# ifdef BOOST_NO_STD_ITERATOR
|
||||||
|
# error "Defect macro BOOST_NO_STD_ITERATOR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_LOCALE
|
||||||
|
# ifdef BOOST_NO_STD_LOCALE
|
||||||
|
# error "Defect macro BOOST_NO_STD_LOCALE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_MESSAGES
|
||||||
|
# ifdef BOOST_NO_STD_MESSAGES
|
||||||
|
# error "Defect macro BOOST_NO_STD_MESSAGES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_MIN_MAX
|
||||||
|
# ifdef BOOST_NO_STD_MIN_MAX
|
||||||
|
# error "Defect macro BOOST_NO_STD_MIN_MAX is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||||
|
# ifdef BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||||
|
# error "Defect macro BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_TYPEINFO
|
||||||
|
# ifdef BOOST_NO_STD_TYPEINFO
|
||||||
|
# error "Defect macro BOOST_NO_STD_TYPEINFO is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_USE_FACET
|
||||||
|
# ifdef BOOST_NO_STD_USE_FACET
|
||||||
|
# error "Defect macro BOOST_NO_STD_USE_FACET is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_WSTREAMBUF
|
||||||
|
# ifdef BOOST_NO_STD_WSTREAMBUF
|
||||||
|
# error "Defect macro BOOST_NO_STD_WSTREAMBUF is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STD_WSTRING
|
||||||
|
# ifdef BOOST_NO_STD_WSTRING
|
||||||
|
# error "Defect macro BOOST_NO_STD_WSTRING is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_STDC_NAMESPACE
|
||||||
|
# ifdef BOOST_NO_STDC_NAMESPACE
|
||||||
|
# error "Defect macro BOOST_NO_STDC_NAMESPACE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_SWPRINTF
|
||||||
|
# ifdef BOOST_NO_SWPRINTF
|
||||||
|
# error "Defect macro BOOST_NO_SWPRINTF is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
# ifdef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
# ifdef BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_TEMPLATE_ALIASES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_TEMPLATED_IOSTREAMS
|
||||||
|
# ifdef BOOST_NO_TEMPLATED_IOSTREAMS
|
||||||
|
# error "Defect macro BOOST_NO_TEMPLATED_IOSTREAMS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
|
# ifdef BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
|
# error "Defect macro BOOST_NO_TEMPLATE_TEMPLATES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
# ifdef BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
# error "Defect macro BOOST_NO_TWO_PHASE_NAME_LOOKUP is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_TYPEID
|
||||||
|
# ifdef BOOST_NO_TYPEID
|
||||||
|
# error "Defect macro BOOST_NO_TYPEID is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_TYPENAME_WITH_CTOR
|
||||||
|
# ifdef BOOST_NO_TYPENAME_WITH_CTOR
|
||||||
|
# error "Defect macro BOOST_NO_TYPENAME_WITH_CTOR is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
# ifdef BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_UNICODE_LITERALS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
# ifdef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
# ifdef BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
# error "Defect macro BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
|
# ifdef BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
|
# error "Defect macro BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_USING_TEMPLATE
|
||||||
|
# ifdef BOOST_NO_USING_TEMPLATE
|
||||||
|
# error "Defect macro BOOST_NO_USING_TEMPLATE is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
# ifdef BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_VARIADIC_MACROS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# error "Defect macro BOOST_NO_CXX11_VARIADIC_TEMPLATES is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_VOID_RETURNS
|
||||||
|
# ifdef BOOST_NO_VOID_RETURNS
|
||||||
|
# error "Defect macro BOOST_NO_VOID_RETURNS is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef TEST_BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
# ifdef BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
# error "Defect macro BOOST_NO_INTRINSIC_WCHAR_T is defined."
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int main( int, char *[] )
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
+9
-1677
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,66 @@
|
|||||||
|
# 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 ;
|
||||||
|
|
||||||
|
###############################################################################
|
||||||
|
alias boostdoc ;
|
||||||
|
explicit boostdoc ;
|
||||||
|
alias boostrelease : standalone ;
|
||||||
|
explicit boostrelease ;
|
||||||
@@ -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]
|
||||||
|
|
||||||
|
|
||||||
@@ -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]
|
||||||
@@ -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/detail/suffix.hpp <boost/config/detail/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]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -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]
|
||||||
|
|
||||||
+146
@@ -0,0 +1,146 @@
|
|||||||
|
[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]
|
||||||
|
|
||||||
|
[section:intptr Integers for Storing Pointers]
|
||||||
|
|
||||||
|
The typedefs [^intptr_t] and [^uintptr_t] defined signed and unsigned integers respectively each capable of storing a pointer. The macro [^BOOST_HAS_INTPTR_T] is set when these types are available.
|
||||||
|
|
||||||
|
[endsect]
|
||||||
|
|
||||||
|
|
||||||
|
[endsect]
|
||||||
@@ -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/detail/select_compiler_config.hpp <boost/config/detail/select_compiler_config.hpp>],
|
||||||
|
[@../../../../boost/config/detail/select_platform_config.hpp <boost/config/detail/select_platform_config.hpp>] and
|
||||||
|
[@../../../../boost/config/detail/select_stdlib_config.hpp <boost/config/detail/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]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -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.79.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>
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -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.79.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>
|
||||||
@@ -0,0 +1,301 @@
|
|||||||
|
<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.79.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 class="toc">
|
||||||
|
<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>
|
||||||
|
<dt><span class="section"><a href="cstdint.html#boost_config.cstdint.intptr">Integers for Storing Pointers</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 class="section">
|
||||||
|
<div class="titlepage"><div><div><h3 class="title">
|
||||||
|
<a name="boost_config.cstdint.intptr"></a><a class="link" href="cstdint.html#boost_config.cstdint.intptr" title="Integers for Storing Pointers">Integers for Storing Pointers</a>
|
||||||
|
</h3></div></div></div>
|
||||||
|
<p>
|
||||||
|
The typedefs <code class="literal">intptr_t</code> and <code class="literal">uintptr_t</code>
|
||||||
|
defined signed and unsigned integers respectively each capable of storing
|
||||||
|
a pointer. The macro <code class="literal">BOOST_HAS_INTPTR_T</code> is set when these
|
||||||
|
types are available.
|
||||||
|
</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="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>
|
||||||
@@ -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.79.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 class="toc">
|
||||||
|
<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/detail/suffix.hpp" target="_top"><boost/config/detail/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/detail/suffix.hpp" target="_top"><boost/config/detail/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/detail/select_compiler_config.hpp" target="_top"><boost/config/detail/select_compiler_config.hpp></a>,
|
||||||
|
<a href="../../../../../boost/config/detail/select_platform_config.hpp" target="_top"><boost/config/detail/select_platform_config.hpp></a>
|
||||||
|
and <a href="../../../../../boost/config/detail/select_stdlib_config.hpp" target="_top"><boost/config/detail/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>
|
||||||
@@ -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.79.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 class="toc">
|
||||||
|
<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>
|
||||||
+1002
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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]
|
||||||
|
|
||||||
|
|
||||||
+14
-17
@@ -1,6 +1,6 @@
|
|||||||
// Boost config.hpp configuration header file ------------------------------//
|
// Boost config.hpp configuration header file ------------------------------//
|
||||||
|
|
||||||
// (C) Copyright John Maddock 2002.
|
// (C) Copyright John Maddock 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
@@ -20,6 +20,10 @@
|
|||||||
// if we don't have a user config, then use the default location:
|
// if we don't have a user config, then use the default location:
|
||||||
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
|
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
|
||||||
# define BOOST_USER_CONFIG <boost/config/user.hpp>
|
# define BOOST_USER_CONFIG <boost/config/user.hpp>
|
||||||
|
#if 0
|
||||||
|
// For dependency trackers:
|
||||||
|
# include <boost/config/user.hpp>
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
// include it first:
|
// include it first:
|
||||||
#ifdef BOOST_USER_CONFIG
|
#ifdef BOOST_USER_CONFIG
|
||||||
@@ -28,7 +32,7 @@
|
|||||||
|
|
||||||
// if we don't have a compiler config set, try and find one:
|
// 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)
|
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||||
# include <boost/config/select_compiler_config.hpp>
|
# include <boost/config/detail/select_compiler_config.hpp>
|
||||||
#endif
|
#endif
|
||||||
// if we have a compiler config, include it now:
|
// if we have a compiler config, include it now:
|
||||||
#ifdef BOOST_COMPILER_CONFIG
|
#ifdef BOOST_COMPILER_CONFIG
|
||||||
@@ -36,8 +40,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// if we don't have a std library config set, try and find one:
|
// 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)
|
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
|
||||||
# include <boost/config/select_stdlib_config.hpp>
|
# include <boost/config/detail/select_stdlib_config.hpp>
|
||||||
#endif
|
#endif
|
||||||
// if we have a std library config, include it now:
|
// if we have a std library config, include it now:
|
||||||
#ifdef BOOST_STDLIB_CONFIG
|
#ifdef BOOST_STDLIB_CONFIG
|
||||||
@@ -46,7 +50,7 @@
|
|||||||
|
|
||||||
// if we don't have a platform config set, try and find one:
|
// 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)
|
#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||||
# include <boost/config/select_platform_config.hpp>
|
# include <boost/config/detail/select_platform_config.hpp>
|
||||||
#endif
|
#endif
|
||||||
// if we have a platform config, include it now:
|
// if we have a platform config, include it now:
|
||||||
#ifdef BOOST_PLATFORM_CONFIG
|
#ifdef BOOST_PLATFORM_CONFIG
|
||||||
@@ -54,17 +58,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// get config suffix code:
|
// get config suffix code:
|
||||||
#include <boost/config/suffix.hpp>
|
#include <boost/config/detail/suffix.hpp>
|
||||||
|
|
||||||
|
#ifdef BOOST_HAS_PRAGMA_ONCE
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // BOOST_CONFIG_HPP
|
#endif // BOOST_CONFIG_HPP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
// 8026 - functions taking class by value arguments are not expanded inline
|
// 8026 - functions taking class by value arguments are not expanded inline
|
||||||
|
|
||||||
#pragma nopushoptwarn
|
#pragma nopushoptwarn
|
||||||
# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,20 @@
|
|||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
#pragma pack(push,8)
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// abi_prefix header -------------------------------------------------------//
|
// abi_prefix header -------------------------------------------------------//
|
||||||
|
|
||||||
// © Copyright John Maddock 2003
|
// (c) Copyright John Maddock 2003
|
||||||
|
|
||||||
// Use, modification and distribution are subject to the Boost Software License,
|
// Use, modification and distribution are subject to the Boost Software License,
|
||||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
@@ -18,3 +18,8 @@
|
|||||||
#ifdef BOOST_HAS_ABI_HEADERS
|
#ifdef BOOST_HAS_ABI_HEADERS
|
||||||
# include BOOST_ABI_PREFIX
|
# include BOOST_ABI_PREFIX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined( __BORLANDC__ )
|
||||||
|
#pragma nopushoptwarn
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// abi_sufffix header -------------------------------------------------------//
|
// abi_sufffix header -------------------------------------------------------//
|
||||||
|
|
||||||
// © Copyright John Maddock 2003
|
// (c) Copyright John Maddock 2003
|
||||||
|
|
||||||
// Use, modification and distribution are subject to the Boost Software License,
|
// Use, modification and distribution are subject to the Boost Software License,
|
||||||
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
// <boost/config/abi_prefix.hpp>.
|
// <boost/config/abi_prefix.hpp>.
|
||||||
|
|
||||||
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||||
# error Header boost/config/abi_prefix.hpp must only be used after boost/config/abi_prefix.hpp
|
# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
|
||||||
#else
|
#else
|
||||||
# undef BOOST_CONFIG_ABI_PREFIX_HPP
|
# undef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||||
#endif
|
#endif
|
||||||
@@ -20,4 +20,8 @@
|
|||||||
# include BOOST_ABI_SUFFIX
|
# include BOOST_ABI_SUFFIX
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined( __BORLANDC__ )
|
||||||
|
#pragma nopushoptwarn
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,12 @@ BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
|||||||
of the library selected (useful for debugging).
|
of the library selected (useful for debugging).
|
||||||
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
|
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
|
||||||
rather than a mangled-name version.
|
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.
|
||||||
|
BOOST_AUTO_LINK_SYSTEM: Specifies that we link to libraries built with the --layout=system option.
|
||||||
|
This is essentially the same as the non-name-mangled version, but with
|
||||||
|
the prefix to differentiate static and dll builds
|
||||||
|
|
||||||
These macros will be undef'ed at the end of the header, further this header
|
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!
|
has no include guards - so be sure to include it only once from your library!
|
||||||
@@ -42,6 +48,7 @@ BOOST_LIB_PREFIX
|
|||||||
+ BOOST_LIB_TOOLSET
|
+ BOOST_LIB_TOOLSET
|
||||||
+ BOOST_LIB_THREAD_OPT
|
+ BOOST_LIB_THREAD_OPT
|
||||||
+ BOOST_LIB_RT_OPT
|
+ BOOST_LIB_RT_OPT
|
||||||
|
+ BOOST_LIB_ARCH_AND_MODEL_OPT
|
||||||
"-"
|
"-"
|
||||||
+ BOOST_LIB_VERSION
|
+ BOOST_LIB_VERSION
|
||||||
|
|
||||||
@@ -57,12 +64,17 @@ BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
|
|||||||
|
|
||||||
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
||||||
contains one or more of the following letters after
|
contains one or more of the following letters after
|
||||||
a hiphen:
|
a hyphen:
|
||||||
|
|
||||||
s static runtime (dynamic if not present).
|
s static runtime (dynamic if not present).
|
||||||
d debug build (release if not present).
|
|
||||||
g debug/diagnostic runtime (release if not present).
|
g debug/diagnostic runtime (release if not present).
|
||||||
p STLPort Build.
|
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_ARCH_AND_MODEL_OPT: The architecture and address model
|
||||||
|
(-x32 or -x64 for x86/32 and x86/64 respectively)
|
||||||
|
|
||||||
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||||
|
|
||||||
@@ -109,53 +121,84 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
// select toolset if not defined already:
|
// select toolset if not defined already:
|
||||||
//
|
//
|
||||||
#ifndef BOOST_LIB_TOOLSET
|
#ifndef BOOST_LIB_TOOLSET
|
||||||
// Note: no compilers before 1200 are supported
|
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
|
||||||
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
// 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) && (BOOST_MSVC < 1910)
|
||||||
|
|
||||||
|
// vc14:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc140"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC)
|
||||||
|
|
||||||
|
// vc14.1:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc141"
|
||||||
|
|
||||||
|
# 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"
|
||||||
|
|
||||||
# ifdef UNDER_CE
|
|
||||||
// vc6:
|
|
||||||
# define BOOST_LIB_TOOLSET "evc4"
|
|
||||||
# else
|
|
||||||
// vc6:
|
|
||||||
# define BOOST_LIB_TOOLSET "vc6"
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
|
|
||||||
|
|
||||||
// vc7:
|
|
||||||
# define BOOST_LIB_TOOLSET "vc7"
|
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1310)
|
|
||||||
|
|
||||||
// vc71:
|
|
||||||
# define BOOST_LIB_TOOLSET "vc71"
|
|
||||||
|
|
||||||
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
|
|
||||||
|
|
||||||
// vc80:
|
|
||||||
# define BOOST_LIB_TOOLSET "vc80"
|
|
||||||
|
|
||||||
#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
|
#endif // BOOST_LIB_TOOLSET
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -173,11 +216,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
|
|
||||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
# 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))
|
# 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"
|
# 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)
|
# elif defined(_DEBUG)
|
||||||
# define BOOST_LIB_RT_OPT "-gdp"
|
# define BOOST_LIB_RT_OPT "-gdp"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-p"
|
# define BOOST_LIB_RT_OPT "-p"
|
||||||
@@ -185,11 +236,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
|
|
||||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
|
|
||||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
# 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"
|
# 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)
|
# elif defined(_DEBUG)
|
||||||
# define BOOST_LIB_RT_OPT "-gdpn"
|
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-pn"
|
# define BOOST_LIB_RT_OPT "-pn"
|
||||||
@@ -197,7 +256,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
# if defined(_DEBUG)
|
# 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"
|
# define BOOST_LIB_RT_OPT "-gd"
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT
|
# define BOOST_LIB_RT_OPT
|
||||||
@@ -209,11 +270,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
|
|
||||||
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
# 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))
|
# 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"
|
# 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)
|
# elif defined(_DEBUG)
|
||||||
# define BOOST_LIB_RT_OPT "-sgdp"
|
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-sp"
|
# define BOOST_LIB_RT_OPT "-sp"
|
||||||
@@ -221,11 +290,19 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
|
|
||||||
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
|
|
||||||
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
# 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"
|
# 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)
|
# elif defined(_DEBUG)
|
||||||
# define BOOST_LIB_RT_OPT "-sgdpn"
|
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||||
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
# error "Build options aren't compatible with pre-built libraries"
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-spn"
|
# define BOOST_LIB_RT_OPT "-spn"
|
||||||
@@ -233,7 +310,10 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
# if defined(_DEBUG)
|
# 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"
|
# define BOOST_LIB_RT_OPT "-sgd"
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-s"
|
# define BOOST_LIB_RT_OPT "-s"
|
||||||
@@ -255,21 +335,31 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
// sanity check:
|
// sanity check:
|
||||||
//
|
//
|
||||||
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
||||||
#error "Pre-built versions of the Boost libraries are not provided in STLPort-debug form"
|
#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
# ifdef _RTLDLL
|
# ifdef _RTLDLL
|
||||||
|
|
||||||
# ifdef BOOST_BORLAND_DEBUG
|
# 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"
|
# define BOOST_LIB_RT_OPT "-d"
|
||||||
|
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT -y
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT
|
# define BOOST_LIB_RT_OPT
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# else
|
# else
|
||||||
|
|
||||||
# ifdef BOOST_BORLAND_DEBUG
|
# 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"
|
# define BOOST_LIB_RT_OPT "-sd"
|
||||||
|
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sy"
|
||||||
# else
|
# else
|
||||||
# define BOOST_LIB_RT_OPT "-s"
|
# define BOOST_LIB_RT_OPT "-s"
|
||||||
# endif
|
# endif
|
||||||
@@ -278,6 +368,20 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// BOOST_LIB_ARCH_AND_MODEL_OPT
|
||||||
|
//
|
||||||
|
|
||||||
|
#if defined( _M_IX86 )
|
||||||
|
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-x32"
|
||||||
|
#elif defined( _M_X64 )
|
||||||
|
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-x64"
|
||||||
|
#elif defined( _M_ARM )
|
||||||
|
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-a32"
|
||||||
|
#elif defined( _M_ARM64 )
|
||||||
|
# define BOOST_LIB_ARCH_AND_MODEL_OPT "-a64"
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// select linkage opt:
|
// select linkage opt:
|
||||||
//
|
//
|
||||||
@@ -297,18 +401,34 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
&& defined(BOOST_LIB_TOOLSET) \
|
&& defined(BOOST_LIB_TOOLSET) \
|
||||||
&& defined(BOOST_LIB_THREAD_OPT) \
|
&& defined(BOOST_LIB_THREAD_OPT) \
|
||||||
&& defined(BOOST_LIB_RT_OPT) \
|
&& defined(BOOST_LIB_RT_OPT) \
|
||||||
|
&& defined(BOOST_LIB_ARCH_AND_MODEL_OPT) \
|
||||||
&& defined(BOOST_LIB_VERSION)
|
&& defined(BOOST_LIB_VERSION)
|
||||||
|
|
||||||
#ifndef BOOST_AUTO_LINK_NOMANGLE
|
#ifdef BOOST_AUTO_LINK_TAGGED
|
||||||
# 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")
|
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
# 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")
|
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||||
# endif
|
# endif
|
||||||
#else
|
#elif defined(BOOST_AUTO_LINK_SYSTEM)
|
||||||
|
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
|
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||||
|
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
|
# endif
|
||||||
|
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||||
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
# ifdef BOOST_LIB_DIAGNOSTIC
|
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||||
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
# endif
|
# 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_ARCH_AND_MODEL_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_ARCH_AND_MODEL_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_ARCH_AND_MODEL_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_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib")
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
@@ -338,6 +458,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
#if defined(BOOST_LIB_RT_OPT)
|
#if defined(BOOST_LIB_RT_OPT)
|
||||||
# undef BOOST_LIB_RT_OPT
|
# undef BOOST_LIB_RT_OPT
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(BOOST_LIB_ARCH_AND_MODEL_OPT)
|
||||||
|
# undef BOOST_LIB_ARCH_AND_MODEL_OPT
|
||||||
|
#endif
|
||||||
#if defined(BOOST_LIB_LINK_OPT)
|
#if defined(BOOST_LIB_LINK_OPT)
|
||||||
# undef BOOST_LIB_LINK_OPT
|
# undef BOOST_LIB_LINK_OPT
|
||||||
#endif
|
#endif
|
||||||
@@ -347,17 +470,5 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
|||||||
#if defined(BOOST_DYN_LINK)
|
#if defined(BOOST_DYN_LINK)
|
||||||
# undef BOOST_DYN_LINK
|
# undef BOOST_DYN_LINK
|
||||||
#endif
|
#endif
|
||||||
#if defined(BOOST_AUTO_LINK_NOMANGLE)
|
|
||||||
# undef BOOST_AUTO_LINK_NOMANGLE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,18 +14,17 @@
|
|||||||
// we don't support Borland prior to version 5.4:
|
// we don't support Borland prior to version 5.4:
|
||||||
#if __BORLANDC__ < 0x540
|
#if __BORLANDC__ < 0x540
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
#elif __BORLANDC__ < 0x581
|
|
||||||
# pragma message( "Support for Borland compilers older than BCB2006 is deprecated in Boost 1.34" )
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// last known and checked version is 0x600 (Builder X preview)
|
// last known compiler version:
|
||||||
// Or 0x582 (Borland C++ Builder 2006 Update 1):
|
#if (__BORLANDC__ > 0x613)
|
||||||
#if (__BORLANDC__ > 0x582) && (__BORLANDC__ != 0x600)
|
//# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
//# else
|
||||||
# else
|
//# pragma message( "boost: Unknown compiler version - please run the configure tests and report the results")
|
||||||
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
//# endif
|
||||||
# endif
|
#elif (__BORLANDC__ == 0x600)
|
||||||
|
# error "CBuilderX preview compiler is no longer supported"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -38,7 +37,6 @@
|
|||||||
# define BOOST_BCB_WITH_DINKUMWARE
|
# define BOOST_BCB_WITH_DINKUMWARE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Version 5.0 and below:
|
// Version 5.0 and below:
|
||||||
# if __BORLANDC__ <= 0x0550
|
# if __BORLANDC__ <= 0x0550
|
||||||
@@ -48,17 +46,23 @@
|
|||||||
// Borland C++Builder 5, command-line compiler 5.5:
|
// Borland C++Builder 5, command-line compiler 5.5:
|
||||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
|
// Variadic macros do not exist for C++ Builder versions 5 and below
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// Version 5.51 and below:
|
// Version 5.51 and below:
|
||||||
#if (__BORLANDC__ <= 0x551)
|
#if (__BORLANDC__ <= 0x551)
|
||||||
# define BOOST_NO_CV_SPECIALIZATIONS
|
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||||
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
|
||||||
# define BOOST_NO_DEDUCED_TYPENAME
|
# define BOOST_NO_DEDUCED_TYPENAME
|
||||||
// workaround for missing WCHAR_MAX/WCHAR_MIN:
|
// workaround for missing WCHAR_MAX/WCHAR_MIN:
|
||||||
|
#ifdef __cplusplus
|
||||||
#include <climits>
|
#include <climits>
|
||||||
#include <cwchar>
|
#include <cwchar>
|
||||||
|
#else
|
||||||
|
#include <limits.h>
|
||||||
|
#include <wchar.h>
|
||||||
|
#endif // __cplusplus
|
||||||
#ifndef WCHAR_MAX
|
#ifndef WCHAR_MAX
|
||||||
# define WCHAR_MAX 0xffff
|
# define WCHAR_MAX 0xffff
|
||||||
#endif
|
#endif
|
||||||
@@ -67,24 +71,10 @@
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Borland C++ Builder 2006 Update 2 and below:
|
// Borland C++ Builder 6 and below:
|
||||||
#if (__BORLANDC__ <= 0x582)
|
#if (__BORLANDC__ <= 0x564)
|
||||||
# define BOOST_NO_SFINAE
|
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
|
||||||
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
|
||||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
|
||||||
# define BOOST_NO_USING_TEMPLATE
|
|
||||||
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
|
||||||
// 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_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
|
||||||
|
|
||||||
# ifdef NDEBUG
|
# if defined(NDEBUG) && defined(__cplusplus)
|
||||||
// fix broken <cstring> so that Boost.test works:
|
// fix broken <cstring> so that Boost.test works:
|
||||||
# include <cstring>
|
# include <cstring>
|
||||||
# undef strcmp
|
# undef strcmp
|
||||||
@@ -95,6 +85,8 @@
|
|||||||
# define errno errno
|
# define errno errno
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// new bug in 5.61:
|
// new bug in 5.61:
|
||||||
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
|
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
|
||||||
@@ -102,6 +94,14 @@
|
|||||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
#endif
|
#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
|
# ifdef _WIN32
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
# elif defined(linux) || defined(__linux__) || defined(__linux)
|
# elif defined(linux) || defined(__linux__) || defined(__linux)
|
||||||
@@ -113,11 +113,149 @@
|
|||||||
# endif
|
# endif
|
||||||
#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_DEFAULTED_MOVES
|
||||||
|
#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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#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:
|
// Post 0x561 we have long long and stdint.h:
|
||||||
#if __BORLANDC__ >= 0x561
|
#if __BORLANDC__ >= 0x561
|
||||||
# ifndef __NO_LONG_LONG
|
# ifndef __NO_LONG_LONG
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
# else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
# endif
|
# endif
|
||||||
// On non-Win32 platforms let the platform config figure this out:
|
// On non-Win32 platforms let the platform config figure this out:
|
||||||
# ifdef _WIN32
|
# ifdef _WIN32
|
||||||
@@ -143,7 +281,7 @@
|
|||||||
//
|
//
|
||||||
// check for exception handling support:
|
// check for exception handling support:
|
||||||
//
|
//
|
||||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
|
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
@@ -155,13 +293,14 @@
|
|||||||
//
|
//
|
||||||
// all versions support __declspec:
|
// all versions support __declspec:
|
||||||
//
|
//
|
||||||
#ifndef __STRICT_ANSI__
|
#if defined(__STRICT_ANSI__)
|
||||||
# define BOOST_HAS_DECLSPEC
|
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||||
|
# define BOOST_SYMBOL_EXPORT
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// ABI fixing headers:
|
// ABI fixing headers:
|
||||||
//
|
//
|
||||||
#if __BORLANDC__ < 0x600 // not implemented for version 6 compiler yet
|
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
|
||||||
#ifndef BOOST_ABI_PREFIX
|
#ifndef BOOST_ABI_PREFIX
|
||||||
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||||
#endif
|
#endif
|
||||||
@@ -186,5 +325,11 @@
|
|||||||
# define BOOST_NO_VOID_RETURNS
|
# define BOOST_NO_VOID_RETURNS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
|
// 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__)
|
||||||
|
|||||||
@@ -0,0 +1,340 @@
|
|||||||
|
// (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
|
||||||
|
|
||||||
|
#ifndef __has_cpp_attribute
|
||||||
|
#define __has_cpp_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 (__c2__) && 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) || defined(__CYGWIN__)
|
||||||
|
# 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_VISIBLE __attribute__((__visibility__("default")))
|
||||||
|
# define BOOST_SYMBOL_IMPORT
|
||||||
|
#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 !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang 3.9+ in c++1z
|
||||||
|
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus < 201103L
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#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
|
||||||
|
|
||||||
|
#if (__clang_major__ == 3) && (__clang_minor__ == 0)
|
||||||
|
// Apparently a clang bug:
|
||||||
|
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang has supported the 'unused' attribute since the first release.
|
||||||
|
#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
|
||||||
|
|
||||||
|
// Type aliasing hint.
|
||||||
|
#if __has_attribute(__may_alias__)
|
||||||
|
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macro used to identify the Clang compiler.
|
||||||
|
#define BOOST_CLANG 1
|
||||||
|
|
||||||
@@ -0,0 +1,239 @@
|
|||||||
|
// (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 "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# else
|
||||||
|
# pragma message( "boost: 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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#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__)
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
|
|
||||||
// Comeau C++ compiler setup:
|
// Comeau C++ compiler setup:
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
#if (__COMO_VERSION__ <= 4245)
|
#if (__COMO_VERSION__ <= 4245)
|
||||||
|
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
// last known and checked version is 4245:
|
// last known and checked version is 4245:
|
||||||
#if (__COMO_VERSION__ > 4245)
|
#if (__COMO_VERSION__ > 4245)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// (C) Copyright Markus Schoepflin 2005.
|
// (C) Copyright Markus Schoepflin 2005.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
@@ -33,30 +33,128 @@
|
|||||||
|
|
||||||
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
|
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
|
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// See also kai.hpp which checks a Kai-specific symbol for EH
|
// See also kai.hpp which checks a Kai-specific symbol for EH
|
||||||
# if !defined(__KCC) && !defined(__EXCEPTIONS)
|
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if !defined(__NO_LONG_LONG)
|
# if !defined(__NO_LONG_LONG)
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
# else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
# endif
|
# 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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef c_plusplus
|
#ifdef c_plusplus
|
||||||
// EDG has "long long" in non-strict mode
|
// EDG has "long long" in non-strict mode
|
||||||
// However, some libraries have insufficient "long long" support
|
// However, some libraries have insufficient "long long" support
|
||||||
// #define BOOST_HAS_LONG_LONG
|
// #define BOOST_HAS_LONG_LONG
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
|
|
||||||
// See http://www.boost.org for most recent version.
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
// Dec Alpha True64 C++ compiler setup:
|
// Tru64 C++ compiler setup (now HP):
|
||||||
|
|
||||||
#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER)
|
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
|
|||||||
@@ -0,0 +1,440 @@
|
|||||||
|
// Copyright 2011 John Maddock
|
||||||
|
// Copyright 2013, 2017-2018 Cray, Inc.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Cray C++ compiler setup.
|
||||||
|
//
|
||||||
|
// There are a few parameters that affect the macros defined in this file:
|
||||||
|
//
|
||||||
|
// - What version of CCE (Cray Compiling Environment) are we running? This
|
||||||
|
// comes from the '_RELEASE_MAJOR', '_RELEASE_MINOR', and
|
||||||
|
// '_RELEASE_PATCHLEVEL' macros.
|
||||||
|
// - What C++ standards conformance level are we using (e.g. '-h
|
||||||
|
// std=c++14')? This comes from the '__cplusplus' macro.
|
||||||
|
// - Are we using GCC extensions ('-h gnu' or '-h nognu')? If we have '-h
|
||||||
|
// gnu' then CCE emulates GCC, and the macros '__GNUC__',
|
||||||
|
// '__GNUC_MINOR__', and '__GNUC_PATCHLEVEL__' are defined.
|
||||||
|
//
|
||||||
|
// This file is organized as follows:
|
||||||
|
//
|
||||||
|
// - Verify that the combination of parameters listed above is supported.
|
||||||
|
// If we have an unsupported combination, we abort with '#error'.
|
||||||
|
// - Establish baseline values for all Boost macros.
|
||||||
|
// - Apply changes to the baseline macros based on compiler version. These
|
||||||
|
// changes are cummulative so each version section only describes the
|
||||||
|
// changes since the previous version.
|
||||||
|
// - Within each version section, we may also apply changes based on
|
||||||
|
// other parameters (i.e. C++ standards conformance level and GCC
|
||||||
|
// extensions).
|
||||||
|
//
|
||||||
|
// To test changes to this file:
|
||||||
|
//
|
||||||
|
// ```
|
||||||
|
// module load cce/8.6.5 # Pick the version you want to test.
|
||||||
|
// cd boost/libs/config/test/all
|
||||||
|
// b2 -j 8 toolset=cray cxxstd=03 cxxstd=11 cxxstd=14 cxxstd-dialect=gnu linkflags=-lrt
|
||||||
|
// ```
|
||||||
|
// Note: Using 'cxxstd-dialect=iso' is not supported at this time (the
|
||||||
|
// tests run, but many tests fail).
|
||||||
|
//
|
||||||
|
// Note: 'linkflags=-lrt' is needed in Cray Linux Environment. Otherwise
|
||||||
|
// you get an 'undefined reference to clock_gettime' error.
|
||||||
|
//
|
||||||
|
// Note: If a test '*_fail.cpp' file compiles, but fails to run, then it is
|
||||||
|
// reported as a defect. However, this is not actually a defect. This is an
|
||||||
|
// area where the test system is somewhat broken. Tests that are failing
|
||||||
|
// because of this problem are noted in the comments.
|
||||||
|
//
|
||||||
|
// Pay attention to the macro definitions for the macros you wish to
|
||||||
|
// modify. For example, only macros categorized as compiler macros should
|
||||||
|
// appear in this file; platform macros should not appear in this file.
|
||||||
|
// Also, some macros have to be defined to specific values; it is not
|
||||||
|
// always enough to define or undefine a macro.
|
||||||
|
//
|
||||||
|
// Macro definitions are available in the source code at:
|
||||||
|
//
|
||||||
|
// `boost/libs/config/doc/html/boost_config/boost_macro_reference.html`
|
||||||
|
//
|
||||||
|
// Macro definitions are also available online at:
|
||||||
|
//
|
||||||
|
// http://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html
|
||||||
|
//
|
||||||
|
// Typically, if you enable a feature, and the tests pass, then you have
|
||||||
|
// nothing to worry about. However, it's sometimes hard to figure out if a
|
||||||
|
// disabled feature needs to stay disabled. To get a list of disabled
|
||||||
|
// features, run 'b2' in 'boost/libs/config/checks'. These are the macros
|
||||||
|
// you should pay attention to (in addition to macros that cause test
|
||||||
|
// failures).
|
||||||
|
|
||||||
|
////
|
||||||
|
//// Front matter
|
||||||
|
////
|
||||||
|
|
||||||
|
// In a developer build of the Cray compiler (i.e. a compiler built by a
|
||||||
|
// Cray employee), the release patch level is reported as "x". This gives
|
||||||
|
// versions that look like e.g. "8.6.x".
|
||||||
|
//
|
||||||
|
// To accomplish this, the the Cray compiler preprocessor inserts:
|
||||||
|
//
|
||||||
|
// #define _RELEASE_PATCHLEVEL x
|
||||||
|
//
|
||||||
|
// If we are using a developer build of the compiler, we want to use the
|
||||||
|
// configuration macros for the most recent patch level of the release. To
|
||||||
|
// accomplish this, we'll pretend that _RELEASE_PATCHLEVEL is 99.
|
||||||
|
//
|
||||||
|
// However, it's difficult to detect if _RELEASE_PATCHLEVEL is x. We must
|
||||||
|
// consider that the x will be expanded if x is defined as a macro
|
||||||
|
// elsewhere. For example, imagine if someone put "-D x=3" on the command
|
||||||
|
// line, and _RELEASE_PATCHLEVEL is x. Then _RELEASE_PATCHLEVEL would
|
||||||
|
// expand to 3, and we could not distinguish it from an actual
|
||||||
|
// _RELEASE_PATCHLEVEL of 3. This problem only affects developer builds; in
|
||||||
|
// production builds, _RELEASE_PATCHLEVEL is always an integer.
|
||||||
|
//
|
||||||
|
// IMPORTANT: In developer builds, if x is defined as a macro, you will get
|
||||||
|
// an incorrect configuration. The behavior in this case is undefined.
|
||||||
|
//
|
||||||
|
// Even if x is not defined, we have to use some trickery to detect if
|
||||||
|
// _RELEASE_PATCHLEVEL is x. First we define BOOST_CRAY_x to some arbitrary
|
||||||
|
// magic value, 9867657. Then we use BOOST_CRAY_APPEND to append the
|
||||||
|
// expanded value of _RELEASE_PATCHLEVEL to the string "BOOST_CRAY_".
|
||||||
|
//
|
||||||
|
// - If _RELEASE_PATCHLEVEL is undefined, we get "BOOST_CRAY_".
|
||||||
|
// - If _RELEASE_PATCHLEVEL is 5, we get "BOOST_CRAY_5".
|
||||||
|
// - If _RELEASE_PATCHLEVEL is x (and x is not defined) we get
|
||||||
|
// "BOOST_CRAY_x":
|
||||||
|
//
|
||||||
|
// Then we check if BOOST_CRAY_x is equal to the output of
|
||||||
|
// BOOST_CRAY_APPEND. In other words, the output of BOOST_CRAY_APPEND is
|
||||||
|
// treated as a macro name, and expanded again. If we can safely assume
|
||||||
|
// that BOOST_CRAY_ is not a macro defined as our magic number, and
|
||||||
|
// BOOST_CRAY_5 is not a macro defined as our magic number, then the only
|
||||||
|
// way the equality test can pass is if _RELEASE_PATCHLEVEL expands to x.
|
||||||
|
//
|
||||||
|
// So, that is how we detect if we are using a developer build of the Cray
|
||||||
|
// compiler.
|
||||||
|
|
||||||
|
#define BOOST_CRAY_x 9867657 // Arbitrary number
|
||||||
|
#define BOOST_CRAY_APPEND(MACRO) BOOST_CRAY_APPEND_INTERNAL(MACRO)
|
||||||
|
#define BOOST_CRAY_APPEND_INTERNAL(MACRO) BOOST_CRAY_##MACRO
|
||||||
|
|
||||||
|
#if BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL)
|
||||||
|
|
||||||
|
// This is a developer build.
|
||||||
|
//
|
||||||
|
// - _RELEASE_PATCHLEVEL is defined as x, and x is not defined as a macro.
|
||||||
|
|
||||||
|
// Pretend _RELEASE_PATCHLEVEL is 99, so we get the configuration for the
|
||||||
|
// most recent patch level in this release.
|
||||||
|
|
||||||
|
#define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + 99)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
// This is a production build.
|
||||||
|
//
|
||||||
|
// _RELEASE_PATCHLEVEL is not defined as x, or x is defined as a macro.
|
||||||
|
|
||||||
|
#define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + _RELEASE_PATCHLEVEL)
|
||||||
|
|
||||||
|
#endif // BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL)
|
||||||
|
|
||||||
|
#undef BOOST_CRAY_APPEND_INTERNAL
|
||||||
|
#undef BOOST_CRAY_APPEND
|
||||||
|
#undef BOOST_CRAY_x
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
# define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "Cray C++ version " BOOST_STRINGIZE(_RELEASE_MAJOR) "." BOOST_STRINGIZE(_RELEASE_MINOR) "." BOOST_STRINGIZE(_RELEASE_PATCHLEVEL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Since the Cray compiler defines '__GNUC__', we have to emulate some
|
||||||
|
// additional GCC macros in order to make everything work.
|
||||||
|
//
|
||||||
|
// FIXME: Perhaps Cray should fix the compiler to define these additional
|
||||||
|
// macros for GCC emulation?
|
||||||
|
|
||||||
|
#if __cplusplus >= 201103L && defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
|
# define __GXX_EXPERIMENTAL_CXX0X__ 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
////
|
||||||
|
//// Parameter validation
|
||||||
|
////
|
||||||
|
|
||||||
|
// FIXME: Do we really need to support compilers before 8.5? Do they pass
|
||||||
|
// the Boost.Config tests?
|
||||||
|
|
||||||
|
#if BOOST_CRAY_VERSION < 80000
|
||||||
|
# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// We only support recent EDG based compilers.
|
||||||
|
|
||||||
|
#ifndef __EDG__
|
||||||
|
# error "Unsupported Cray compiler, please try running the configure script."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
////
|
||||||
|
//// Baseline values
|
||||||
|
////
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
#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_FINAL
|
||||||
|
#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_REF_QUALIFIERS
|
||||||
|
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
|
||||||
|
//#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.
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
////
|
||||||
|
//// Version changes
|
||||||
|
////
|
||||||
|
|
||||||
|
//
|
||||||
|
// 8.5.0
|
||||||
|
//
|
||||||
|
|
||||||
|
#if BOOST_CRAY_VERSION >= 80500
|
||||||
|
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
|
||||||
|
#undef BOOST_HAS_NRVO
|
||||||
|
#undef BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
#undef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#undef BOOST_NO_CXX11_CHAR16_T
|
||||||
|
#undef BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#undef BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#undef BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#undef BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#undef BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#undef BOOST_NO_CXX11_FINAL
|
||||||
|
#undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#undef BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
#undef BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#undef BOOST_NO_CXX11_NULLPTR
|
||||||
|
#undef BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#undef BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
#undef BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#undef BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#undef BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#undef BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#undef BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#undef BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#undef BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#undef BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#undef BOOST_NO_SFINAE_EXPR
|
||||||
|
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#undef BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||||
|
#undef BOOST_SP_USE_PTHREADS
|
||||||
|
#undef BOOST_AC_USE_PTHREADS
|
||||||
|
|
||||||
|
#define BOOST_HAS_VARIADIC_TMPL
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
|
||||||
|
#define BOOST_HAS_TR1_COMPLEX_OVERLOADS
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
#define BOOST_HAS_STATIC_ASSERT
|
||||||
|
#define BOOST_HAS_SIGACTION
|
||||||
|
#define BOOST_HAS_SCHED_YIELD
|
||||||
|
#define BOOST_HAS_RVALUE_REFS
|
||||||
|
#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_NO_CXX11_SMART_PTR
|
||||||
|
#define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
#define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
#define BOOST_HAS_FLOAT128
|
||||||
|
|
||||||
|
#if __cplusplus < 201402L
|
||||||
|
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#endif // __cplusplus < 201402L
|
||||||
|
|
||||||
|
#endif // __cplusplus >= 201103L
|
||||||
|
|
||||||
|
#endif // BOOST_CRAY_VERSION >= 80500
|
||||||
|
|
||||||
|
//
|
||||||
|
// 8.6.4
|
||||||
|
// (versions prior to 8.6.5 do not define _RELEASE_PATCHLEVEL)
|
||||||
|
//
|
||||||
|
|
||||||
|
#if BOOST_CRAY_VERSION >= 80600
|
||||||
|
|
||||||
|
#if __cplusplus >= 199711L
|
||||||
|
#define BOOST_HAS_FLOAT128
|
||||||
|
#define BOOST_HAS_PTHREAD_YIELD // This is a platform macro, but it improves test results.
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION // This is correct. Test compiles, but fails to run.
|
||||||
|
#undef BOOST_NO_CXX11_CHAR16_T
|
||||||
|
#undef BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#undef BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#undef BOOST_NO_CXX11_FINAL
|
||||||
|
#undef BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
#undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR // This is correct, even though '*_fail.cpp' test fails.
|
||||||
|
#undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#undef BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
// 'BOOST_NO_DEDUCED_TYPENAME' test is broken. The test files are enabled /
|
||||||
|
// disabled with an '#ifdef BOOST_DEDUCED_TYPENAME'. However,
|
||||||
|
// 'boost/libs/config/include/boost/config/detail/suffix.hpp' ensures that
|
||||||
|
// 'BOOST_DEDUCED_TYPENAME' is always defined (the value it is defined as
|
||||||
|
// depends on 'BOOST_NO_DEDUCED_TYPENAME'). So, modifying
|
||||||
|
// 'BOOST_NO_DEDUCED_TYPENAME' has no effect on which tests are run.
|
||||||
|
//
|
||||||
|
// The 'no_ded_typename_pass.cpp' test should always compile and run
|
||||||
|
// successfully, because 'BOOST_DEDUCED_TYPENAME' must always have an
|
||||||
|
// appropriate value (it's not just something that you turn on or off).
|
||||||
|
// Therefore, if you wish to test changes to 'BOOST_NO_DEDUCED_TYPENAME',
|
||||||
|
// you have to modify 'no_ded_typename_pass.cpp' to unconditionally include
|
||||||
|
// 'boost_no_ded_typename.ipp'.
|
||||||
|
#undef BOOST_NO_DEDUCED_TYPENAME // This is correct. Test is broken.
|
||||||
|
#undef BOOST_NO_SFINAE_EXPR
|
||||||
|
#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#endif // __cplusplus >= 199711L
|
||||||
|
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
#undef BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#undef BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
#undef BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
#define BOOST_NO_CXX11_HDR_REGEX // This is correct. Test compiles, but fails to run.
|
||||||
|
#undef BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#undef BOOST_NO_CXX11_SMART_PTR
|
||||||
|
#undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#endif // __cplusplus >= 201103L
|
||||||
|
|
||||||
|
#if __cplusplus >= 201402L
|
||||||
|
#undef BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif // __cplusplus == 201402L
|
||||||
|
|
||||||
|
#endif // BOOST_CRAY_VERSION >= 80600
|
||||||
|
|
||||||
|
//
|
||||||
|
// 8.6.5
|
||||||
|
// (no change from 8.6.4)
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// 8.7.0
|
||||||
|
//
|
||||||
|
|
||||||
|
#if BOOST_CRAY_VERSION >= 80700
|
||||||
|
|
||||||
|
#if __cplusplus >= 199711L
|
||||||
|
#endif // __cplusplus >= 199711L
|
||||||
|
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
#undef BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
#undef BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
#endif // __cplusplus >= 201103L
|
||||||
|
|
||||||
|
#if __cplusplus >= 201402L
|
||||||
|
#endif // __cplusplus == 201402L
|
||||||
|
|
||||||
|
#endif // BOOST_CRAY_VERSION >= 80700
|
||||||
|
|
||||||
|
//
|
||||||
|
// Next release
|
||||||
|
//
|
||||||
|
|
||||||
|
#if BOOST_CRAY_VERSION > 80799
|
||||||
|
|
||||||
|
#if __cplusplus >= 199711L
|
||||||
|
#endif // __cplusplus >= 199711L
|
||||||
|
|
||||||
|
#if __cplusplus >= 201103L
|
||||||
|
#endif // __cplusplus >= 201103L
|
||||||
|
|
||||||
|
#if __cplusplus >= 201402L
|
||||||
|
#endif // __cplusplus == 201402L
|
||||||
|
|
||||||
|
#endif // BOOST_CRAY_VERSION > 80799
|
||||||
|
|
||||||
|
////
|
||||||
|
//// Remove temporary macros
|
||||||
|
////
|
||||||
|
|
||||||
|
// I've commented out some '#undef' statements to signify that we purposely
|
||||||
|
// want to keep certain macros.
|
||||||
|
|
||||||
|
//#undef __GXX_EXPERIMENTAL_CXX0X__
|
||||||
|
//#undef BOOST_COMPILER
|
||||||
|
#undef BOOST_GCC_VERSION
|
||||||
|
#undef BOOST_CRAY_VERSION
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
// (C) Copyright Brian Kuhl 2016.
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __EDG_VERSION__
|
||||||
|
# error "Unknown Diab compiler version - please run the configure tests and report the results"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS
|
||||||
|
|
||||||
|
#define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
|
||||||
|
#define BOOST_LOG_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
#define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
#define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__)
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
// Copyright (C) Christof Meerwald 2003
|
// Copyright (C) Christof Meerwald 2003
|
||||||
// Copyright (C) Dan Watkins 2003
|
// Copyright (C) Dan Watkins 2003
|
||||||
//
|
//
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Digital Mars C++ compiler setup:
|
// Digital Mars C++ compiler setup:
|
||||||
@@ -11,15 +11,7 @@
|
|||||||
#define BOOST_HAS_LONG_LONG
|
#define BOOST_HAS_LONG_LONG
|
||||||
#define BOOST_HAS_PRAGMA_ONCE
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
|
||||||
#if (__DMC__ <= 0x833)
|
#if !defined(BOOST_STRICT_CONFIG)
|
||||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
|
||||||
#define BOOST_NO_TEMPLATE_TEMPLATES
|
|
||||||
#define BOOST_NEEDS_TOKEN_PASTING_OP_FOR_TOKENS_JUXTAPOSING
|
|
||||||
#define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
|
||||||
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
|
||||||
#endif
|
|
||||||
#if (__DMC__ <= 0x840) || !defined(BOOST_STRICT_CONFIG)
|
|
||||||
#define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
|
||||||
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
#define BOOST_NO_OPERATORS_IN_NAMESPACE
|
#define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
@@ -30,20 +22,119 @@
|
|||||||
|
|
||||||
//
|
//
|
||||||
// has macros:
|
// has macros:
|
||||||
#if (__DMC__ >= 0x840)
|
|
||||||
#define BOOST_HAS_DIRENT_H
|
#define BOOST_HAS_DIRENT_H
|
||||||
#define BOOST_HAS_STDINT_H
|
#define BOOST_HAS_STDINT_H
|
||||||
#define BOOST_HAS_WINTHREADS
|
#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
|
#endif
|
||||||
|
|
||||||
|
|
||||||
// check for exception handling support:
|
// check for exception handling support:
|
||||||
#ifndef _CPPUNWIND
|
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__DMC__ < 0x840)
|
//
|
||||||
|
// 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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#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)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -1,62 +1,69 @@
|
|||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Darin Adler 2001 - 2002.
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2002.
|
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||||
// (C) Copyright Douglas Gregor 2002.
|
// (C) Copyright Douglas Gregor 2002.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Synge Todo 2003.
|
// (C) Copyright Synge Todo 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
|
|
||||||
// GNU C++ compiler setup:
|
// GNU C++ compiler setup.
|
||||||
|
|
||||||
#if __GNUC__ < 3
|
//
|
||||||
# if __GNUC_MINOR__ == 91
|
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
|
||||||
// egcs 1.1 won't parse shared_ptr.hpp without this:
|
//
|
||||||
# define BOOST_NO_AUTO_PTR
|
#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
# endif
|
#if !defined(__CUDACC__)
|
||||||
# if __GNUC_MINOR__ < 95
|
#define BOOST_GCC BOOST_GCC_VERSION
|
||||||
//
|
#endif
|
||||||
// Prior to gcc 2.95 member templates only partly
|
|
||||||
// work - define BOOST_MSVC6_MEMBER_TEMPLATES
|
|
||||||
// instead since inline member templates mostly work.
|
|
||||||
//
|
|
||||||
# define BOOST_NO_MEMBER_TEMPLATES
|
|
||||||
# if __GNUC_MINOR__ >= 9
|
|
||||||
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# if __GNUC_MINOR__ < 96
|
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
|
||||||
# define BOOST_NO_SFINAE
|
# define BOOST_GCC_CXX11
|
||||||
# endif
|
#endif
|
||||||
|
|
||||||
# if __GNUC_MINOR__ <= 97
|
#if __GNUC__ == 3
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# if defined (__PATHSCALE__)
|
||||||
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
# endif
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
|
||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
|
||||||
#elif __GNUC__ == 3
|
|
||||||
//
|
|
||||||
// gcc-3.x problems:
|
|
||||||
//
|
|
||||||
// Bug specific to gcc 3.1 and 3.2:
|
|
||||||
//
|
|
||||||
# if ((__GNUC_MINOR__ == 1) || (__GNUC_MINOR__ == 2))
|
|
||||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if __GNUC_MINOR__ < 4
|
# if __GNUC_MINOR__ < 4
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# 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
|
#endif
|
||||||
|
|
||||||
#ifndef __EXCEPTIONS
|
// 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
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -68,38 +75,285 @@
|
|||||||
//
|
//
|
||||||
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// gcc has "long long"
|
// gcc has "long long"
|
||||||
|
// Except on Darwin with standard compliance enabled (-pedantic)
|
||||||
|
// Apple gcc helpfully defines this macro we can query
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_LONG_LONG
|
#if !defined(__DARWIN_NO_LONG_LONG)
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// gcc implements the named return value optimization since version 3.1
|
// gcc implements the named return value optimization since version 3.1
|
||||||
//
|
//
|
||||||
#if __GNUC__ > 3 || ( __GNUC__ == 3 && __GNUC_MINOR__ >= 1 )
|
|
||||||
#define BOOST_HAS_NRVO
|
#define BOOST_HAS_NRVO
|
||||||
#endif
|
|
||||||
|
|
||||||
#define BOOST_COMPILER "GNU C++ version " __VERSION__
|
// Branch prediction hints
|
||||||
|
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||||
|
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
// we don't know gcc prior to version 2.90:
|
|
||||||
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
|
|
||||||
# error "Compiler not configured - please reconfigure"
|
|
||||||
#endif
|
|
||||||
//
|
//
|
||||||
// last known and checked version is 4.0 (Pre-release):
|
#if __GNUC__ >= 4
|
||||||
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0))
|
# if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
|
||||||
|
// so does not define _WIN32 or its variants, but still supports dllexport/dllimport.
|
||||||
|
# define BOOST_HAS_DECLSPEC
|
||||||
|
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
|
||||||
|
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
|
||||||
# else
|
# else
|
||||||
// we don't emit warnings here anymore since there are no defect macros defined for
|
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
|
||||||
// gcc post 3.4, so any failures are gcc regressions...
|
# define BOOST_SYMBOL_IMPORT
|
||||||
//# warning "Unknown compiler version - please run the configure tests and report the results"
|
# 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_DEFAULTED_MOVES
|
||||||
|
#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
|
||||||
|
# define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#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
|
||||||
#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 (BOOST_GCC_VERSION < 50200) || !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ >= 7
|
||||||
|
# define BOOST_FALLTHROUGH __attribute__((fallthrough))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __MINGW32__
|
||||||
|
// Currently (June 2017) thread_local is broken on mingw for all current compiler releases, see
|
||||||
|
// https://sourceforge.net/p/mingw-w64/bugs/527/
|
||||||
|
// Not setting this causes program termination on thread exit.
|
||||||
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Unused attribute:
|
||||||
|
#if __GNUC__ >= 4
|
||||||
|
# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Type aliasing hint. Supported since gcc 3.3.
|
||||||
|
#define BOOST_MAY_ALIAS __attribute__((__may_alias__))
|
||||||
|
|
||||||
|
//
|
||||||
|
// __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 8.1:
|
||||||
|
#if (BOOST_GCC_VERSION > 80100)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Boost.Config is older than your compiler - please check for an updated Boost release."
|
||||||
|
# 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 "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// (C) Copyright John Maddock 2006.
|
// (C) Copyright John Maddock 2006.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
@@ -18,13 +18,94 @@
|
|||||||
//
|
//
|
||||||
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||||
# define BOOST_HAS_THREADS
|
# define BOOST_HAS_THREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// gcc has "long long"
|
// gcc has "long long"
|
||||||
//
|
//
|
||||||
#define BOOST_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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
|
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// versions check:
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
// last known and checked version is 0:
|
// last known and checked version is 0:
|
||||||
#if (__ghs > 0)
|
#if (__ghs > 0)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,21 +1,19 @@
|
|||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Toon Knapen 2003.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||||
// (C) Copyright Toon Knapen 2003.
|
// Use, modification and distribution are subject to the
|
||||||
// (C) Copyright Boris Gubenko 2006.
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// 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)
|
// 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 for most recent version.
|
||||||
|
|
||||||
// HP aCC C++ compiler setup:
|
// HP aCC C++ compiler setup:
|
||||||
|
|
||||||
#if (__HP_aCC >= 61200) && defined(__EDG__)
|
#if defined(__EDG__)
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__HP_aCC <= 33100)
|
#if (__HP_aCC <= 33100)
|
||||||
@@ -34,14 +32,18 @@
|
|||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__HP_aCC < 60000)
|
#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_UNREACHABLE_RETURN_DETECTION
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// optional features rather than defects:
|
// optional features rather than defects:
|
||||||
#if (__HP_aCC >= 33900)
|
#if (__HP_aCC >= 33900)
|
||||||
@@ -53,6 +55,15 @@
|
|||||||
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
#endif
|
#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)
|
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -61,12 +72,76 @@
|
|||||||
#if __HP_aCC < 33000
|
#if __HP_aCC < 33000
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// last known and checked version is 61300:
|
// Extended checks for supporting aCC on PA-RISC
|
||||||
#if (__HP_aCC > 61300)
|
#if __HP_aCC > 30000 && __HP_aCC < 50000
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if __HP_aCC < 38000
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
// versions prior to version A.03.80 not supported
|
||||||
# endif
|
# 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
|
#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_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 "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001-8.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright Jens Maurer 2001.
|
// (C) Copyright Jens Maurer 2001.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
@@ -14,10 +14,59 @@
|
|||||||
|
|
||||||
// Intel compiler setup:
|
// Intel compiler setup:
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#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
|
||||||
|
|
||||||
|
#if (__INTEL_COMPILER <= 1600) && !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else // defined(_MSC_VER)
|
||||||
|
|
||||||
|
#include <boost/config/compiler/gcc.hpp>
|
||||||
|
|
||||||
|
#undef BOOST_GCC_VERSION
|
||||||
|
#undef BOOST_GCC_CXX11
|
||||||
|
#undef BOOST_GCC
|
||||||
|
#undef BOOST_FALLTHROUGH
|
||||||
|
|
||||||
|
// Broken in all versions up to 17 (newer versions not tested)
|
||||||
|
#if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__INTEL_COMPILER >= 1800) && (__cplusplus >= 201703)
|
||||||
|
# define BOOST_FALLTHROUGH [[fallthrough]]
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // defined(_MSC_VER)
|
||||||
|
|
||||||
|
#undef BOOST_COMPILER
|
||||||
|
|
||||||
#if defined(__INTEL_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
|
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
|
||||||
|
#endif
|
||||||
#elif defined(__ICL)
|
#elif defined(__ICL)
|
||||||
# define BOOST_INTEL_CXX_VERSION __ICL
|
# define BOOST_INTEL_CXX_VERSION __ICL
|
||||||
#elif defined(__ICC)
|
#elif defined(__ICC)
|
||||||
@@ -26,7 +75,26 @@
|
|||||||
# define BOOST_INTEL_CXX_VERSION __ECC
|
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
// 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
|
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(_WIN64)
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
@@ -35,9 +103,50 @@
|
|||||||
# define BOOST_INTEL_LINUX BOOST_INTEL
|
# define BOOST_INTEL_LINUX BOOST_INTEL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (BOOST_INTEL_CXX_VERSION <= 500) && defined(_MSC_VER)
|
#else // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
|
||||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
#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
|
#endif
|
||||||
|
|
||||||
#if (BOOST_INTEL_CXX_VERSION <= 600)
|
#if (BOOST_INTEL_CXX_VERSION <= 600)
|
||||||
@@ -99,13 +208,17 @@
|
|||||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
# endif
|
# endif
|
||||||
#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
|
// 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
|
// set correctly, if we don't do this now, we will get errors later
|
||||||
// in type_traits code among other things, getting this correct
|
// in type_traits code among other things, getting this correct
|
||||||
// for the Intel compiler is actually remarkably fragile and tricky:
|
// for the Intel compiler is actually remarkably fragile and tricky:
|
||||||
//
|
//
|
||||||
|
#ifdef __cplusplus
|
||||||
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
||||||
#include <cwchar>
|
#include <cwchar>
|
||||||
template< typename T > struct assert_no_intrinsic_wchar_t;
|
template< typename T > struct assert_no_intrinsic_wchar_t;
|
||||||
@@ -119,12 +232,14 @@ 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:
|
// 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> {};
|
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#if _MSC_VER+0 >= 1000
|
#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
|
||||||
# if _MSC_VER >= 1200
|
# if _MSC_VER >= 1200
|
||||||
# define BOOST_HAS_MS_INT64
|
# define BOOST_HAS_MS_INT64
|
||||||
# endif
|
# endif
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
# define BOOST_DISABLE_WIN32
|
# define BOOST_DISABLE_WIN32
|
||||||
#endif
|
#endif
|
||||||
@@ -136,23 +251,319 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
|||||||
# define BOOST_HAS_NRVO
|
# define BOOST_HAS_NRVO
|
||||||
#endif
|
#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:
|
// versions check:
|
||||||
// we don't support Intel prior to version 5.0:
|
// we don't support Intel prior to version 6.0:
|
||||||
#if BOOST_INTEL_CXX_VERSION < 500
|
#if BOOST_INTEL_CXX_VERSION < 600
|
||||||
# error "Compiler not supported or configured - please reconfigure"
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#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
|
||||||
|
|
||||||
//
|
//
|
||||||
// last known and checked version:
|
// An attempt to value-initialize a pointer-to-member may trigger an
|
||||||
#if (BOOST_INTEL_CXX_VERSION > 910)
|
// internal error on Intel <= 11.1 (last checked version), as was
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
// reported by John Maddock, Intel support issue 589832, May 2010.
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
// Moreover, according to test results from Huang-Vista-x86_32_intel,
|
||||||
# elif defined(_MSC_VER)
|
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
||||||
# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
// 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
|
||||||
#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
|
||||||
|
|
||||||
|
// Type aliasing hint
|
||||||
|
#if defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1300)
|
||||||
|
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
|
||||||
|
#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_SFINAE_EXPR
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && !defined(_MSC_VER)
|
||||||
|
# undef BOOST_NO_CXX11_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 // defined(BOOST_INTEL_STDCXX0X)
|
||||||
|
|
||||||
|
//
|
||||||
|
// 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 // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
|
||||||
|
//
|
||||||
|
// last known and checked version:
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION > 1700)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Boost.Config is older than your compiler - please check for an updated Boost release."
|
||||||
|
# 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("boost: Unknown compiler version - please run the configure tests and report the results")
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
// Kai C++ compiler setup:
|
// Kai C++ compiler setup:
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
|
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
|
||||||
// at least on Sun, the contents of <cwchar> is not in namespace std
|
// at least on Sun, the contents of <cwchar> is not in namespace std
|
||||||
@@ -17,17 +17,15 @@
|
|||||||
# endif
|
# endif
|
||||||
|
|
||||||
// see also common_edg.hpp which needs a special check for __KCC
|
// see also common_edg.hpp which needs a special check for __KCC
|
||||||
# if !defined(_EXCEPTIONS)
|
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// last known and checked version is 4001:
|
// last known and checked version is 4001:
|
||||||
#if (__KCC_VERSION > 4001)
|
#if (__KCC_VERSION > 4001)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright Darin Adler 2001.
|
// (C) Copyright Darin Adler 2001.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright David Abrahams 2001 - 2002.
|
// (C) Copyright David Abrahams 2001 - 2002.
|
||||||
// (C) Copyright Beman Dawes 2001 - 2003.
|
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||||
// (C) Copyright Stefan Slapeta 2004.
|
// (C) Copyright Stefan Slapeta 2004.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
// locale support is disabled when linking with the dynamic runtime
|
// locale support is disabled when linking with the dynamic runtime
|
||||||
# ifdef _MSL_NO_LOCALE
|
# ifdef _MSL_NO_LOCALE
|
||||||
# define BOOST_NO_STD_LOCALE
|
# define BOOST_NO_STD_LOCALE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if __MWERKS__ <= 0x2301 // 5.3
|
# if __MWERKS__ <= 0x2301 // 5.3
|
||||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
||||||
// tested version *only*:
|
// tested version *only*:
|
||||||
# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5
|
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# endif
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !__option(exceptions)
|
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
# define BOOST_NO_EXCEPTIONS
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -73,6 +73,8 @@
|
|||||||
# define BOOST_COMPILER_VERSION 9.4
|
# define BOOST_COMPILER_VERSION 9.4
|
||||||
# elif __MWERKS__ == 0x3206
|
# elif __MWERKS__ == 0x3206
|
||||||
# define BOOST_COMPILER_VERSION 9.5
|
# define BOOST_COMPILER_VERSION 9.5
|
||||||
|
# elif __MWERKS__ == 0x3207
|
||||||
|
# define BOOST_COMPILER_VERSION 9.6
|
||||||
# else
|
# else
|
||||||
# define BOOST_COMPILER_VERSION __MWERKS__
|
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||||
# endif
|
# endif
|
||||||
@@ -80,6 +82,95 @@
|
|||||||
# define BOOST_COMPILER_VERSION __MWERKS__
|
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||||
#endif
|
#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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -92,7 +183,7 @@
|
|||||||
// last known and checked version:
|
// last known and checked version:
|
||||||
#if (__MWERKS__ > 0x3205)
|
#if (__MWERKS__ > 0x3205)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// (C) Copyright John Maddock 2001 - 2002.
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
@@ -32,6 +32,92 @@
|
|||||||
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
|
||||||
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
|
# 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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -44,7 +130,7 @@
|
|||||||
// last known and checked version is 0x890:
|
// last known and checked version is 0x890:
|
||||||
#if (MPW_CPLUS > 0x890)
|
#if (MPW_CPLUS > 0x890)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
// (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
|
||||||
|
|
||||||
|
#if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__)
|
||||||
|
# define BOOST_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__)
|
||||||
|
#else
|
||||||
|
// We don't really know what the CUDA version is, but it's definitely before 7.5:
|
||||||
|
# define BOOST_CUDA_VERSION 7000000
|
||||||
|
#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 BOOST_CUDA_VERSION < 7050000
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
// The same bug is back again in 8.0:
|
||||||
|
#if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000)
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
// CUDA (8.0) has no constexpr support in msvc mode:
|
||||||
|
#if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000)
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __CUDACC__
|
||||||
|
//
|
||||||
|
// When compiing .cu files, there's a bunch of stuff that doesn't work with msvc:
|
||||||
|
//
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// And this one effects the NVCC front end,
|
||||||
|
// See https://svn.boost.org/trac/boost/ticket/13049
|
||||||
|
//
|
||||||
|
#if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000)
|
||||||
|
# define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
// (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__ >= 6
|
||||||
|
// PathCC is based on clang, and supports the __has_*() builtins used
|
||||||
|
// to detect features in clang.hpp. Since the clang toolset is much
|
||||||
|
// better maintained, it is more convenient to reuse its definitions.
|
||||||
|
# include "boost/config/compiler/clang.hpp"
|
||||||
|
#elif __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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
// (C) Copyright Noel Belcourt 2007.
|
||||||
|
// Copyright 2017, NVIDIA CORPORATION.
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// PGI is mostly GNU compatible. So start with that.
|
||||||
|
#include <boost/config/compiler/gcc.hpp>
|
||||||
|
|
||||||
|
// Now adjust for things that are different.
|
||||||
|
|
||||||
|
// __float128 is a typedef, not a distinct type.
|
||||||
|
#undef BOOST_HAS_FLOAT128
|
||||||
|
|
||||||
|
// __int128 is not supported.
|
||||||
|
#undef BOOST_HAS_INT128
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
||||||
|
|
||||||
#include "boost/config/compiler/common_edg.hpp"
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
//
|
//
|
||||||
// Threading support:
|
// Threading support:
|
||||||
@@ -17,6 +17,11 @@
|
|||||||
// if no threading API is detected.
|
// if no threading API is detected.
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_THREADS
|
#define BOOST_HAS_THREADS
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
|
||||||
|
#undef BOOST_NO_SWPRINTF
|
||||||
|
#undef BOOST_DEDUCED_TYPENAME
|
||||||
|
|
||||||
//
|
//
|
||||||
// version check:
|
// version check:
|
||||||
// probably nothing to do here?
|
// probably nothing to do here?
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// (C) Copyright John Maddock 2001.
|
// (C) Copyright John Maddock 2001.
|
||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// (C) Copyright Peter Dimov 2002.
|
// (C) Copyright Peter Dimov 2002.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
@@ -34,13 +34,13 @@
|
|||||||
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if (__SUNPRO_CC <= 0x530)
|
# if (__SUNPRO_CC <= 0x530)
|
||||||
// Requesting debug info (-g) with Boost.Python results
|
// Requesting debug info (-g) with Boost.Python results
|
||||||
// in an internal compiler error for "static const"
|
// in an internal compiler error for "static const"
|
||||||
// initialized in-class.
|
// initialized in-class.
|
||||||
// >> Assertion: (../links/dbg_cstabs.cc, line 611)
|
// >> Assertion: (../links/dbg_cstabs.cc, line 611)
|
||||||
// while processing ../test.cpp at line 0.
|
// while processing ../test.cpp at line 0.
|
||||||
// (Jens Maurer according to Gottfried Ganßauge 04 Mar 2002)
|
// (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
|
||||||
// SunPro 5.3 has better support for partial specialization,
|
// SunPro 5.3 has better support for partial specialization,
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# if (__SUNPRO_CC < 0x570)
|
# if (__SUNPRO_CC < 0x570)
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
// see http://lists.boost.org/MailArchives/boost/msg47184.php
|
// see http://lists.boost.org/MailArchives/boost/msg47184.php
|
||||||
// and http://lists.boost.org/MailArchives/boost/msg47220.php
|
// and http://lists.boost.org/MailArchives/boost/msg47220.php
|
||||||
@@ -65,10 +65,137 @@
|
|||||||
# define BOOST_NO_SFINAE
|
# define BOOST_NO_SFINAE
|
||||||
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||||
# endif
|
# endif
|
||||||
# if (__SUNPRO_CC <= 0x580)
|
# if (__SUNPRO_CC <= 0x580)
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
# endif
|
# 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
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
|
||||||
|
// 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) || (__cplusplus < 201402L)
|
||||||
|
# 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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#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)
|
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -78,15 +205,9 @@
|
|||||||
#error "Compiler not supported or configured - please reconfigure"
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// last known and checked version is 0x570:
|
// last known and checked version:
|
||||||
#if (__SUNPRO_CC > 0x580)
|
#if (__SUNPRO_CC > 0x5150)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "Boost.Config is older than your compiler - please check for an updated Boost release."
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Toon Knapen 2001 - 2003.
|
// (C) Copyright Toon Knapen 2001 - 2003.
|
||||||
// (C) Copyright Lie-Quan Lee 2001.
|
// (C) Copyright Lie-Quan Lee 2001.
|
||||||
// (C) Copyright Markus Schöpflin 2002 - 2003.
|
// (C) Copyright Markus Schoepflin 2002 - 2003.
|
||||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (__IBMCPP__ <= 502)
|
#if (__IBMCPP__ <= 502)
|
||||||
// Actually the compiler supports inclass member initialization but it
|
// Actually the compiler supports inclass member initialization but it
|
||||||
// requires a definition for the class member and it doesn't recognize
|
// requires a definition for the class member and it doesn't recognize
|
||||||
// it as an integral constant expression when used as a template argument.
|
// it as an integral constant expression when used as a template argument.
|
||||||
@@ -29,6 +29,14 @@
|
|||||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
#endif
|
#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:
|
// On AIX thread support seems to be indicated by _THREAD_SAFE:
|
||||||
//
|
//
|
||||||
@@ -45,13 +53,131 @@
|
|||||||
#error "Compiler not supported or configured - please reconfigure"
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// last known and checked version is 600:
|
// last known and checked version is 1210:
|
||||||
#if (__IBMCPP__ > 600)
|
#if (__IBMCPP__ > 1210)
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown compiler version - please run the configure tests and report the results"
|
||||||
# endif
|
# endif
|
||||||
#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
|
||||||
|
|
||||||
|
// Type aliasing hint. Supported since XL C++ 13.1
|
||||||
|
#if (__IBMCPP__ >= 1310)
|
||||||
|
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
|
||||||
|
#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_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
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -1,117 +1,272 @@
|
|||||||
// (C) Copyright John Maddock 2001 - 2003.
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
// (C) Copyright Darin Adler 2001 - 2002.
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
// (C) Copyright Peter Dimov 2001.
|
// (C) Copyright Peter Dimov 2001.
|
||||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
// (C) Copyright David Abrahams 2002 - 2003.
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
// (C) Copyright Beman Dawes 2002 - 2003.
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// 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 for most recent version.
|
||||||
|
//
|
||||||
// Microsoft Visual C++ compiler setup:
|
// 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
|
#define BOOST_MSVC _MSC_VER
|
||||||
|
|
||||||
// turn off the warnings before we #include anything
|
//
|
||||||
|
// 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
|
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||||
|
|
||||||
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
|
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
//
|
||||||
# define BOOST_NO_VOID_RETURNS
|
// versions check:
|
||||||
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
// we don't support Visual C++ prior to version 7.1:
|
||||||
// disable min/max macro defines on vc6:
|
#if _MSC_VER < 1310
|
||||||
//
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
|
#if _MSC_FULL_VER < 180020827
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
|
|
||||||
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
|
||||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
|
||||||
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
|
||||||
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
|
||||||
# define BOOST_NO_INTEGRAL_INT64_T
|
|
||||||
# define BOOST_NO_DEDUCED_TYPENAME
|
|
||||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
|
||||||
|
|
||||||
// VC++ 6/7 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_CV_VOID_SPECIALIZATIONS
|
|
||||||
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
|
||||||
# define BOOST_NO_USING_TEMPLATE
|
|
||||||
# define BOOST_NO_SWPRINTF
|
|
||||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
|
||||||
# define BOOST_NO_SFINAE
|
|
||||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
|
||||||
# define BOOST_NO_IS_ABSTRACT
|
|
||||||
// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
|
|
||||||
# if (_MSC_VER > 1200)
|
|
||||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
|
||||||
# endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _MSC_VER < 1400
|
#if _MSC_VER < 1400
|
||||||
// although a conforming signature for swprint exists in VC7.1
|
// although a conforming signature for swprint exists in VC7.1
|
||||||
// it appears not to actually work:
|
// it appears not to actually work:
|
||||||
# define BOOST_NO_SWPRINTF
|
# 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
|
#endif
|
||||||
|
|
||||||
#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
|
#if _MSC_VER < 1500 // 140X == VC++ 8.0
|
||||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if _MSC_VER < 1600 // 150X == VC++ 9.0
|
||||||
|
// A bug in VC9:
|
||||||
|
# define BOOST_NO_ADL_BARRIER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef _NATIVE_WCHAR_T_DEFINED
|
#ifndef _NATIVE_WCHAR_T_DEFINED
|
||||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32_WCE
|
//
|
||||||
# define BOOST_NO_THREADEX
|
// check for exception handling support:
|
||||||
# define BOOST_NO_GETSYSTEMTIMEASFILETIME
|
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
|
||||||
// check for exception handling support:
|
|
||||||
#ifndef _CPPUNWIND
|
|
||||||
# define BOOST_NO_EXCEPTIONS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// __int64 support:
|
// __int64 support:
|
||||||
//
|
//
|
||||||
#if (_MSC_VER >= 1200)
|
#define BOOST_HAS_MS_INT64
|
||||||
# define BOOST_HAS_MS_INT64
|
#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
|
||||||
#endif
|
|
||||||
#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
|
|
||||||
# define BOOST_HAS_LONG_LONG
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
#endif
|
#endif
|
||||||
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
||||||
# define BOOST_HAS_NRVO
|
# define BOOST_HAS_NRVO
|
||||||
#endif
|
#endif
|
||||||
|
#if _MSC_VER >= 1600 // 160X == VC++ 10.0
|
||||||
|
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||||
|
#endif
|
||||||
//
|
//
|
||||||
// disable Win32 API's if compiler extentions are
|
// disable Win32 API's if compiler extensions are
|
||||||
// turned off:
|
// turned off:
|
||||||
//
|
//
|
||||||
#ifndef _MSC_EXTENSIONS
|
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
|
||||||
# define BOOST_DISABLE_WIN32
|
# define BOOST_DISABLE_WIN32
|
||||||
#endif
|
#endif
|
||||||
|
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// all versions support __declspec:
|
// TR1 features:
|
||||||
//
|
//
|
||||||
#define BOOST_HAS_DECLSPEC
|
#if (_MSC_VER >= 1700) && defined(_HAS_CXX17) && (_HAS_CXX17 > 0)
|
||||||
|
// # 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_DEFAULTED_MOVES
|
||||||
|
# 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
|
||||||
|
|
||||||
|
// C++14 features supported by VC++ 14.1 (Visual Studio 2017)
|
||||||
|
//
|
||||||
|
#if (_MSC_VER < 1910)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17 features supported by VC++ 14.1 (Visual Studio 2017) Update 3
|
||||||
|
//
|
||||||
|
#if (_MSC_VER < 1911) || (_MSVC_LANG < 201703)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
# define BOOST_NO_CXX17_HDR_OPTIONAL
|
||||||
|
# define BOOST_NO_CXX17_HDR_STRING_VIEW
|
||||||
|
#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)
|
||||||
|
// Still present in VC15.5, Dec 2017.
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
//
|
||||||
|
// C++ 11:
|
||||||
|
//
|
||||||
|
// This is supported with /permissive- for 15.5 onwards, unfortunately we appear to have no way to tell
|
||||||
|
// if this is in effect or not, in any case nothing in Boost is currently using this, so we'll just go
|
||||||
|
// on defining it for now:
|
||||||
|
//
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
|
||||||
|
#if (_MSC_VER < 1912) || (_MSVC_LANG < 201402)
|
||||||
|
// Supported from msvc-15.5 onwards:
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
|
#if (_MSC_VER < 1915) || (_MSVC_LANG < 201402)
|
||||||
|
// C++ 14:
|
||||||
|
// Still gives internal compiler error for msvc-15.5:
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
// C++ 17:
|
||||||
|
#if (_MSC_VER < 1912) || (_MSVC_LANG < 201703)
|
||||||
|
#define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Things that don't work in clr mode:
|
||||||
|
//
|
||||||
|
#ifdef _M_CEE
|
||||||
|
#ifndef BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_SFINAE_EXPR
|
||||||
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef _M_CEE_PURE
|
||||||
|
#ifndef BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// prefix and suffix headers:
|
// prefix and suffix headers:
|
||||||
//
|
//
|
||||||
@@ -122,57 +277,83 @@
|
|||||||
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
|
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
// TODO:
|
// TODO:
|
||||||
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
|
// 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
|
// 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
|
// 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.
|
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
|
||||||
// IOW, you can't use these 'versions' in any sensible way. Sorry.
|
// IOW, you can't use these 'versions' in any sensible way. Sorry.
|
||||||
# if defined(UNDER_CE)
|
# if defined(UNDER_CE)
|
||||||
# if _MSC_VER < 1200
|
# if _MSC_VER < 1400
|
||||||
// Note: these are so far off, they are not really supported
|
// Note: I'm not aware of any CE compiler with version 13xx
|
||||||
# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# define BOOST_COMPILER_VERSION evc4.0
|
# error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||||
# elif _MSC_VER == 1400
|
# else
|
||||||
|
# pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")
|
||||||
|
# endif
|
||||||
|
# elif _MSC_VER < 1500
|
||||||
# define BOOST_COMPILER_VERSION evc8
|
# 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
|
# else
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
# error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||||
# else
|
# else
|
||||||
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
|
# pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
# else
|
# else
|
||||||
# if _MSC_VER < 1200
|
# if _MSC_VER < 1200
|
||||||
// Note: these are so far off, they are not really supported
|
// Note: Versions up to 7.0 aren't supported.
|
||||||
# define BOOST_COMPILER_VERSION 5.0
|
# define BOOST_COMPILER_VERSION 5.0
|
||||||
# elif _MSC_VER < 1300
|
# elif _MSC_VER < 1300
|
||||||
# define BOOST_COMPILER_VERSION 6.0
|
# define BOOST_COMPILER_VERSION 6.0
|
||||||
# elif _MSC_VER == 1300
|
# elif _MSC_VER < 1310
|
||||||
# define BOOST_COMPILER_VERSION 7.0
|
# define BOOST_COMPILER_VERSION 7.0
|
||||||
# elif _MSC_VER == 1310
|
# elif _MSC_VER < 1400
|
||||||
# define BOOST_COMPILER_VERSION 7.1
|
# define BOOST_COMPILER_VERSION 7.1
|
||||||
# elif _MSC_VER == 1400
|
# elif _MSC_VER < 1500
|
||||||
# define BOOST_COMPILER_VERSION 8.0
|
# 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 < 1910
|
||||||
|
# define BOOST_COMPILER_VERSION 14.0
|
||||||
|
# elif _MSC_VER < 1920
|
||||||
|
# define BOOST_COMPILER_VERSION 14.1
|
||||||
# else
|
# else
|
||||||
# define BOOST_COMPILER_VERSION _MSC_VER
|
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/config/pragma_message.hpp>
|
||||||
|
|
||||||
//
|
//
|
||||||
// versions check:
|
// last known and checked version is 19.12.25830.2 (VC++ 2017.3):
|
||||||
// we don't support Visual C++ prior to version 6:
|
#if (_MSC_VER > 1912)
|
||||||
#if _MSC_VER < 1200
|
|
||||||
#error "Compiler not supported or configured - please reconfigure"
|
|
||||||
#endif
|
|
||||||
//
|
|
||||||
// last known and checked version is 1400 (VC8):
|
|
||||||
#if (_MSC_VER > 1400)
|
|
||||||
# if defined(BOOST_ASSERT_CONFIG)
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
# error "Boost.Config is older than your current compiler version."
|
||||||
# else
|
# elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE)
|
||||||
# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
//
|
||||||
|
// Disabled as of March 2018 - the pace of VS releases is hard to keep up with
|
||||||
|
// and in any case, we have relatively few defect macros defined now.
|
||||||
|
// BOOST_PRAGMA_MESSAGE("Info: Boost.Config is older than your compiler version - probably nothing bad will happen - but you may wish to look for an updated Boost version. Define BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE to suppress this message.")
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -0,0 +1,285 @@
|
|||||||
|
// (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
|
||||||
|
|
||||||
|
#ifndef __has_cpp_attribute
|
||||||
|
#define __has_cpp_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 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 !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
|
||||||
|
# define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang 3.9+ in c++1z
|
||||||
|
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#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
|
||||||
|
|
||||||
|
// Type aliasing hint.
|
||||||
|
#if __has_attribute(__may_alias__)
|
||||||
|
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macro used to identify the Clang compiler.
|
||||||
|
#define BOOST_CLANG 1
|
||||||
|
|
||||||
@@ -0,0 +1,170 @@
|
|||||||
|
// Copyright (c) 2017 Dynatrace
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Compiler setup for IBM z/OS XL C/C++ compiler.
|
||||||
|
|
||||||
|
// Oldest compiler version currently supported is 2.1 (V2R1)
|
||||||
|
#if !defined(__IBMCPP__) || !defined(__COMPILER_VER__) || __COMPILER_VER__ < 0x42010000
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __COMPILER_VER__ > 0x42010000
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "IBM z/OS XL C/C++ version " BOOST_STRINGIZE(__COMPILER_VER__)
|
||||||
|
#define BOOST_XLCPP_ZOS __COMPILER_VER__
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#include <features.h> // For __UU, __C99, __TR1, ...
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS)
|
||||||
|
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#if defined(__UU) || defined(__C99) || defined(__TR1)
|
||||||
|
# define BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_EXPM1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__C99) || defined(__TR1)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
|
||||||
|
#if !defined(__RTTI_ALL__)
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL)
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) || defined(_LP64)
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
|
||||||
|
#if defined(__IBMCPP_VARIADIC_TEMPLATES)
|
||||||
|
# define BOOST_HAS_VARIADIC_TMPL
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__IBMCPP_STATIC_ASSERT)
|
||||||
|
# define BOOST_HAS_STATIC_ASSERT
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__IBMCPP_RVALUE_REFERENCES)
|
||||||
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_SCOPED_ENUM)
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_EXPLICIT_CONVERSION_OPERATORS)
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_DECLTYPE)
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#else
|
||||||
|
# define BOOST_HAS_DECLTYPE
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_INLINE_NAMESPACE)
|
||||||
|
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_AUTO_TYPEDEDUCTION)
|
||||||
|
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBM_CHAR32_T__)
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#endif
|
||||||
|
#if !defined(__IBM_CHAR16_T__)
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_CONSTEXPR)
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#define BOOST_NO_CXX11_NULLPTR
|
||||||
|
#define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#define BOOST_NO_CXX11_FINAL
|
||||||
|
#define BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#define BOOST_NO_CXX17_IF_CONSTEXPR
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#if defined(__IBM_ATTRIBUTES)
|
||||||
|
# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
|
||||||
|
# define BOOST_NOINLINE __attribute__ ((__noinline__))
|
||||||
|
# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
|
||||||
|
// No BOOST_ALIGNMENT - explicit alignment support is broken (V2R1).
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern "builtin" long __builtin_expect(long, long);
|
||||||
|
|
||||||
|
#define BOOST_LIKELY(x) __builtin_expect((x) && true, 1)
|
||||||
|
#define BOOST_UNLIKELY(x) __builtin_expect((x) && true, 0)
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
// 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(__ibmxl__)
|
||||||
|
// 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 __DCC__
|
||||||
|
// Wind River Diab C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/diab.hpp"
|
||||||
|
|
||||||
|
#elif defined(__PGI)
|
||||||
|
// Portland Group Inc.
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.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(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
|
||||||
|
// IBM z/OS XL C/C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp_zos.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 _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/xlcpp_zos.hpp>
|
||||||
|
#include <boost/config/compiler/xlcpp.hpp>
|
||||||
|
#include <boost/config/compiler/vacpp.hpp>
|
||||||
|
#include <boost/config/compiler/pgi.hpp>
|
||||||
|
#include <boost/config/compiler/visualc.hpp>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
+56
-4
@@ -13,8 +13,8 @@
|
|||||||
// <header_name> in order to prevent macro expansion within the header
|
// <header_name> in order to prevent macro expansion within the header
|
||||||
// name (for example "linux" is a macro on linux systems).
|
// name (for example "linux" is a macro on linux systems).
|
||||||
|
|
||||||
#if defined(linux) || defined(__linux) || defined(__linux__)
|
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
|
||||||
// linux:
|
// 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"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
||||||
|
|
||||||
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
@@ -41,6 +41,10 @@
|
|||||||
// win32:
|
// win32:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
|
# 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__)
|
#elif defined(__BEOS__)
|
||||||
// BeOS
|
// BeOS
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
|
||||||
@@ -49,8 +53,12 @@
|
|||||||
// MacOS
|
// MacOS
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
|
||||||
|
|
||||||
|
#elif defined(__TOS_MVS__)
|
||||||
|
// IBM z/OS
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/zos.hpp"
|
||||||
|
|
||||||
#elif defined(__IBMCPP__) || defined(_AIX)
|
#elif defined(__IBMCPP__) || defined(_AIX)
|
||||||
// IBM
|
// IBM AIX
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
|
||||||
|
|
||||||
#elif defined(__amigaos__)
|
#elif defined(__amigaos__)
|
||||||
@@ -61,6 +69,25 @@
|
|||||||
// QNX:
|
// QNX:
|
||||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
|
# 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
|
#else
|
||||||
|
|
||||||
# if defined(unix) \
|
# if defined(unix) \
|
||||||
@@ -74,7 +101,7 @@
|
|||||||
# define BOOST_HAS_UNISTD_H
|
# define BOOST_HAS_UNISTD_H
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
# include <boost/config/posix_features.hpp>
|
# include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
@@ -86,5 +113,30 @@
|
|||||||
|
|
||||||
#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/zos.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/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
+50
-8
@@ -11,13 +11,14 @@
|
|||||||
|
|
||||||
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
|
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
|
||||||
|
|
||||||
// we need to include a std lib header here in order to detect which
|
// First include <cstddef> to determine if some version of STLport is in use as the std lib
|
||||||
// library is in use, use <utility> as it's about the smallest
|
// (do not rely on this header being included since users can short-circuit this header
|
||||||
// of the std lib headers - do not rely on this header being included -
|
// if they know whose std lib they are using.)
|
||||||
// users can short-circuit this header if they know whose std lib
|
#ifdef __cplusplus
|
||||||
// they are using.
|
# include <cstddef>
|
||||||
|
#else
|
||||||
#include <boost/config/no_tr1/utility.hpp>
|
# include <stddef.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
// STLPort library; this _must_ come first, otherwise since
|
// STLPort library; this _must_ come first, otherwise since
|
||||||
@@ -25,7 +26,23 @@
|
|||||||
// can end up detecting that first rather than STLport:
|
// can end up detecting that first rather than STLport:
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
||||||
|
|
||||||
#elif defined(__LIBCOMO__)
|
#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:
|
// Comeau STL:
|
||||||
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
||||||
|
|
||||||
@@ -33,6 +50,10 @@
|
|||||||
// Rogue Wave library:
|
// Rogue Wave library:
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
|
# 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__)
|
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||||
// GNU libstdc++ 3
|
// GNU libstdc++ 3
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
||||||
@@ -45,6 +66,10 @@
|
|||||||
// MSL standard lib:
|
// MSL standard lib:
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
|
||||||
|
|
||||||
|
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
|
||||||
|
// IBM z/OS XL C/C++
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/xlcpp_zos.hpp"
|
||||||
|
|
||||||
#elif defined(__IBMCPP__)
|
#elif defined(__IBMCPP__)
|
||||||
// take the default VACPP std lib
|
// take the default VACPP std lib
|
||||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
|
||||||
@@ -64,5 +89,22 @@
|
|||||||
|
|
||||||
#endif
|
#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/xlcpp_zos.hpp"
|
||||||
|
# include "boost/config/stdlib/vacpp.hpp"
|
||||||
|
# include "boost/config/stdlib/modena.hpp"
|
||||||
|
# include "boost/config/stdlib/dinkumware.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,26 @@
|
|||||||
|
#ifndef BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED
|
||||||
|
#define BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED
|
||||||
|
|
||||||
|
// Copyright 2017 Peter Dimov.
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
// BOOST_HEADER_DEPRECATED("<alternative>")
|
||||||
|
//
|
||||||
|
// Expands to the equivalent of
|
||||||
|
// BOOST_PRAGMA_MESSAGE("This header is deprecated. Use <alternative> instead.")
|
||||||
|
//
|
||||||
|
// Note that this header is C compatible.
|
||||||
|
|
||||||
|
#include <boost/config/pragma_message.hpp>
|
||||||
|
|
||||||
|
#if defined(BOOST_ALLOW_DEPRECATED_HEADERS)
|
||||||
|
# define BOOST_HEADER_DEPRECATED(a)
|
||||||
|
#else
|
||||||
|
# define BOOST_HEADER_DEPRECATED(a) BOOST_PRAGMA_MESSAGE("This header is deprecated. Use " a " instead.")
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_CONFIG_HEADER_DEPRECATED_HPP_INCLUDED
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#ifndef BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
|
||||||
|
#define BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
|
||||||
|
|
||||||
|
// Copyright 2001 John Maddock.
|
||||||
|
// Copyright 2017 Peter Dimov.
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
// BOOST_STRINGIZE(X)
|
||||||
|
// BOOST_JOIN(X, Y)
|
||||||
|
//
|
||||||
|
// Note that this header is C compatible.
|
||||||
|
|
||||||
|
//
|
||||||
|
// Helper macro BOOST_STRINGIZE:
|
||||||
|
// Converts the parameter X to a string after macro replacement
|
||||||
|
// on X has been performed.
|
||||||
|
//
|
||||||
|
#define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
|
||||||
|
#define BOOST_DO_STRINGIZE(X) #X
|
||||||
|
|
||||||
|
//
|
||||||
|
// Helper macro BOOST_JOIN:
|
||||||
|
// The following piece of macro magic joins the two
|
||||||
|
// arguments together, even when one of the arguments is
|
||||||
|
// itself a macro (see 16.3.1 in C++ standard). The key
|
||||||
|
// is that macro expansion of macro arguments does not
|
||||||
|
// occur in BOOST_DO_JOIN2 but does in BOOST_DO_JOIN.
|
||||||
|
//
|
||||||
|
#define BOOST_JOIN(X, Y) BOOST_DO_JOIN(X, Y)
|
||||||
|
#define BOOST_DO_JOIN(X, Y) BOOST_DO_JOIN2(X,Y)
|
||||||
|
#define BOOST_DO_JOIN2(X, Y) X##Y
|
||||||
|
|
||||||
|
#endif // BOOST_CONFIG_HELPER_MACROS_HPP_INCLUDED
|
||||||
@@ -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
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
//#define BOOST_HAS_PTHREAD_YIELD
|
//#define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -36,20 +36,33 @@
|
|||||||
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
|
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
|
||||||
// and not in <unistd.h>
|
// and not in <unistd.h>
|
||||||
//
|
//
|
||||||
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3)) || defined(__OpenBSD__)
|
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|
||||||
|
|| defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
# define BOOST_HAS_PTHREADS
|
# define BOOST_HAS_PTHREADS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// No wide character support in the BSD header files:
|
// No wide character support in the BSD header files:
|
||||||
//
|
//
|
||||||
#if !(defined(__FreeBSD__) && (__FreeBSD__ >= 5))
|
#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
|
# define BOOST_NO_CWCHAR
|
||||||
#endif
|
#endif
|
||||||
//
|
//
|
||||||
// The BSD <ctype.h> has macros only, no functions:
|
// The BSD <ctype.h> has macros only, no functions:
|
||||||
//
|
//
|
||||||
#if !defined(__OpenBSD__)
|
#if !defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
# define BOOST_NO_CTYPE_FUNCTIONS
|
# define BOOST_NO_CTYPE_FUNCTIONS
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -64,7 +77,7 @@
|
|||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -8,10 +8,9 @@
|
|||||||
// cygwin specific config options:
|
// cygwin specific config options:
|
||||||
|
|
||||||
#define BOOST_PLATFORM "Cygwin"
|
#define BOOST_PLATFORM "Cygwin"
|
||||||
#define BOOST_NO_CWCTYPE
|
|
||||||
#define BOOST_NO_CWCHAR
|
|
||||||
#define BOOST_NO_SWPRINTF
|
|
||||||
#define BOOST_HAS_DIRENT_H
|
#define BOOST_HAS_DIRENT_H
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
|
||||||
//
|
//
|
||||||
// Threading API:
|
// Threading API:
|
||||||
@@ -24,7 +23,7 @@
|
|||||||
# define BOOST_HAS_SCHED_YIELD
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
# define BOOST_HAS_SIGACTION
|
//# define BOOST_HAS_SIGACTION
|
||||||
#else
|
#else
|
||||||
# if !defined(BOOST_HAS_WINTHREADS)
|
# if !defined(BOOST_HAS_WINTHREADS)
|
||||||
# define BOOST_HAS_WINTHREADS
|
# define BOOST_HAS_WINTHREADS
|
||||||
@@ -39,10 +38,31 @@
|
|||||||
#ifdef _STDINT_H
|
#ifdef _STDINT_H
|
||||||
#define BOOST_HAS_STDINT_H
|
#define BOOST_HAS_STDINT_H
|
||||||
#endif
|
#endif
|
||||||
|
#if __GNUC__ > 5 && !defined(BOOST_HAS_STDINT_H)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Cygwin has no fenv.h
|
||||||
|
#define BOOST_NO_FENV_H
|
||||||
|
|
||||||
|
// Cygwin has it's own <pthread.h> which breaks <shared_mutex> unless the correct compiler flags are used:
|
||||||
|
#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#include <pthread.h>
|
||||||
|
#if !(__XSI_VISIBLE >= 500 || __POSIX_VISIBLE >= 200112)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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/detail/posix_features.hpp>
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
// (C) Copyright David Abrahams 2002.
|
// (C) Copyright David Abrahams 2002.
|
||||||
// (C) Copyright Toon Knapen 2003.
|
// (C) Copyright Toon Knapen 2003.
|
||||||
// (C) Copyright Boris Gubenko 2006.
|
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||||
// Use, modification and distribution are subject to the
|
// Use, modification and distribution are subject to the
|
||||||
// Boost Software License, Version 1.0. (See accompanying file
|
// Boost Software License, Version 1.0. (See accompanying file
|
||||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
@@ -23,6 +23,8 @@
|
|||||||
|
|
||||||
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
|
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
|
||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
|
#endif
|
||||||
|
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
|
||||||
# define BOOST_NO_CWCTYPE
|
# define BOOST_NO_CWCTYPE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -41,7 +43,7 @@
|
|||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
// the following are always available:
|
// the following are always available:
|
||||||
#ifndef BOOST_HAS_GETTIMEOFDAY
|
#ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
@@ -72,7 +74,9 @@
|
|||||||
# define BOOST_HAS_SIGACTION
|
# define BOOST_HAS_SIGACTION
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_NRVO
|
#ifndef BOOST_HAS_NRVO
|
||||||
# define BOOST_HAS_NRVO
|
# ifndef __parisc
|
||||||
|
# define BOOST_HAS_NRVO
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#ifndef BOOST_HAS_LOG1P
|
#ifndef BOOST_HAS_LOG1P
|
||||||
# define BOOST_HAS_LOG1P
|
# define BOOST_HAS_LOG1P
|
||||||
@@ -81,5 +85,3 @@
|
|||||||
# define BOOST_HAS_EXPM1
|
# define BOOST_HAS_EXPM1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,11 @@
|
|||||||
#define BOOST_PLATFORM "linux"
|
#define BOOST_PLATFORM "linux"
|
||||||
|
|
||||||
// make sure we have __GLIBC_PREREQ if available at all
|
// make sure we have __GLIBC_PREREQ if available at all
|
||||||
|
#ifdef __cplusplus
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
|
#else
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// <stdint.h> added to glibc 2.1.1
|
// <stdint.h> added to glibc 2.1.1
|
||||||
@@ -20,8 +24,9 @@
|
|||||||
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
|
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
|
||||||
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
|
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
|
||||||
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
|
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
|
||||||
// only when using GCC.
|
// only when using GCC. Update 2017: this appears not to be the case for
|
||||||
# if defined __GNUC__
|
// recent glibc releases, see bug report: https://svn.boost.org/trac/boost/ticket/13045
|
||||||
|
# if defined(__GNUC__) || ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 5)))
|
||||||
# define BOOST_HAS_STDINT_H
|
# define BOOST_HAS_STDINT_H
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
@@ -67,7 +72,10 @@
|
|||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
#if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID)
|
||||||
|
#define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __GNUC__
|
#ifndef __GNUC__
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
// to replace the platform-native BSD one. G++ users
|
// to replace the platform-native BSD one. G++ users
|
||||||
// should also always be able to do this on MaxOS X.
|
// should also always be able to do this on MaxOS X.
|
||||||
//
|
//
|
||||||
# include <boost/config/posix_features.hpp>
|
# include <boost/config/detail/posix_features.hpp>
|
||||||
# ifndef BOOST_HAS_STDINT_H
|
# ifndef BOOST_HAS_STDINT_H
|
||||||
# define BOOST_HAS_STDINT_H
|
# define BOOST_HAS_STDINT_H
|
||||||
# endif
|
# endif
|
||||||
@@ -47,6 +47,14 @@
|
|||||||
# define BOOST_NO_STDC_NAMESPACE
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# if (__GNUC__ >= 4)
|
||||||
|
|
||||||
|
// Both gcc and intel require these.
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// Using the MSL C library.
|
// Using the MSL C library.
|
||||||
@@ -56,16 +64,17 @@
|
|||||||
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
||||||
|
|
||||||
# if !defined(BOOST_HAS_PTHREADS)
|
# if !defined(BOOST_HAS_PTHREADS)
|
||||||
# define BOOST_HAS_MPTASKS
|
// MPTasks support is deprecated/removed from Boost:
|
||||||
|
//# define BOOST_HAS_MPTASKS
|
||||||
# elif ( __dest_os == __mac_os_x )
|
# elif ( __dest_os == __mac_os_x )
|
||||||
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
||||||
// gettimeofday and no posix.
|
// gettimeofday and no posix.
|
||||||
# define BOOST_HAS_GETTIMEOFDAY
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
// The MP task implementation of Boost Threads aims to replace MP-unsafe
|
#ifdef BOOST_HAS_PTHREADS
|
||||||
// parts of the MSL, so we turn on threads unconditionally.
|
# define BOOST_HAS_THREADS
|
||||||
# define BOOST_HAS_THREADS
|
#endif
|
||||||
|
|
||||||
// The remote call manager depends on this.
|
// The remote call manager depends on this.
|
||||||
# define BOOST_BIND_ENABLE_PASCAL
|
# define BOOST_BIND_ENABLE_PASCAL
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#define BOOST_PLATFORM "QNX"
|
#define BOOST_PLATFORM "QNX"
|
||||||
|
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
|
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
|
||||||
// or log1p and expm1:
|
// or log1p and expm1:
|
||||||
|
|||||||
@@ -14,8 +14,18 @@
|
|||||||
|
|
||||||
// boilerplate code:
|
// boilerplate code:
|
||||||
#define BOOST_HAS_UNISTD_H
|
#define BOOST_HAS_UNISTD_H
|
||||||
#include <boost/config/posix_features.hpp>
|
#include <boost/config/detail/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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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/detail/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
|
||||||
|
|
||||||
|
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,433 @@
|
|||||||
|
// (C) Copyright Dustin Spicuzza 2009.
|
||||||
|
// Adapted to vxWorks 6.9 by Peter Brockamp 2012.
|
||||||
|
// Updated for VxWorks 7 by Brian Kuhl 2016
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Old versions of vxWorks (namely everything below 6.x) are
|
||||||
|
// absolutely unable to use boost. Old STLs and compilers
|
||||||
|
// like (GCC 2.96) . 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 C89 library with no
|
||||||
|
// wide character support and no guarantee of ANSI C. The same Dinkum
|
||||||
|
// STL library is used in both contexts.
|
||||||
|
//
|
||||||
|
// Similarly the Dinkum abridged STL that supports the loosely specified
|
||||||
|
// embedded C++ standard has not been tested and is unlikely to work
|
||||||
|
// on anything but the simplest library.
|
||||||
|
// ====================================================================
|
||||||
|
//
|
||||||
|
// Additional Configuration
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Because of the ordering of include files and other issues the following
|
||||||
|
// additional definitions worked better outside this file.
|
||||||
|
//
|
||||||
|
// When building the log library add the following to the b2 invocation
|
||||||
|
// define=BOOST_LOG_WITHOUT_IPC
|
||||||
|
// and
|
||||||
|
// -DBOOST_LOG_WITHOUT_DEFAULT_FACTORIES
|
||||||
|
// to your compile options.
|
||||||
|
//
|
||||||
|
// When building the test library add
|
||||||
|
// -DBOOST_TEST_LIMITED_SIGNAL_DETAILS
|
||||||
|
// to your compile options
|
||||||
|
//
|
||||||
|
// When building containers library add
|
||||||
|
// -DHAVE_MORECORE=0
|
||||||
|
// to your c compile options so dlmalloc heap library is compiled
|
||||||
|
// without brk() calls
|
||||||
|
//
|
||||||
|
// ====================================================================
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
//
|
||||||
|
// To change the default properties for POSIX-semaphores in VxWorks 7
|
||||||
|
// enable core > CORE_USER Menu > DEFAULT_PTHREAD_PRIO_INHERIT
|
||||||
|
//
|
||||||
|
// In VxWorks 6.x so as to integrate with boost.
|
||||||
|
// - Edit the file
|
||||||
|
// installDir/vxworks-6.x/target/usr/src/posix/pthreadLib.c
|
||||||
|
// - 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 rebuild the libraries
|
||||||
|
// with the changed properties. That's it! Now, using boost should
|
||||||
|
// no longer cause any problems with task deadlocks!
|
||||||
|
//
|
||||||
|
// ====================================================================
|
||||||
|
|
||||||
|
// 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 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 detail/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
|
||||||
|
|
||||||
|
#if (_WRS_VXWORKS_MAJOR < 7)
|
||||||
|
// 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 erroneously, 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 <sys/time.h>
|
||||||
|
#endif // _WRS_VXWORKS_MAJOR < 7
|
||||||
|
|
||||||
|
#include <ioLib.h>
|
||||||
|
#include <tickLib.h>
|
||||||
|
|
||||||
|
// Use C-linkage for the following helper functions
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
#if defined ( __RTP__) && (_WRS_VXWORKS_MAJOR < 7)
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define ___unused __attribute__((unused))
|
||||||
|
#else
|
||||||
|
#define ___unused
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Fake symlink handling by dummy functions:
|
||||||
|
inline int symlink(const char* path1 ___unused, const char* path2 ___unused){
|
||||||
|
// vxWorks has no symlinks -> always return an error!
|
||||||
|
errno = EACCES;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline ssize_t readlink(const char* path1 ___unused, char* path2 ___unused, size_t size ___unused){
|
||||||
|
// vxWorks has no symlinks -> always return an error!
|
||||||
|
errno = EACCES;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (_WRS_VXWORKS_MAJOR < 7)
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} // extern "C"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* moved to os/utils/unix/freind_h/times.h in VxWorks 7
|
||||||
|
* to avoid conflict with MPL operator times
|
||||||
|
*/
|
||||||
|
#if (_WRS_VXWORKS_MAJOR < 7)
|
||||||
|
#ifdef __cplusplus
|
||||||
|
|
||||||
|
// vxWorks provides 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
namespace std {
|
||||||
|
using ::times;
|
||||||
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
#endif // _WRS_VXWORKS_MAJOR < 7
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
#if (_WRS_VXWORKS_MAJOR < 7)
|
||||||
|
using ::gettimeofday;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif // __cplusplus
|
||||||
|
|
||||||
|
// 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>
|
||||||
|
#if (_WRS_VXWORKS_MAJOR < 7)
|
||||||
|
#define getpagesize() sysconf(_SC_PAGESIZE) // getpagesize is deprecated anyway!
|
||||||
|
inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks!
|
||||||
|
#endif
|
||||||
|
#ifndef S_ISSOCK
|
||||||
|
# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
|
||||||
|
#endif
|
||||||
|
#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 not present in vxWorks!
|
||||||
|
|
||||||
|
// #include boilerplate code:
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
// vxWorks lies about XSI conformance, there is no nl_types.h:
|
||||||
|
#undef BOOST_HAS_NL_TYPES_H
|
||||||
|
|
||||||
|
// vxWorks 7 adds C++11 support
|
||||||
|
// however it is optional, and does not match exactly the support determined
|
||||||
|
// by examining the Dinkum STL version and GCC version (or ICC and DCC)
|
||||||
|
#ifndef _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF // C11 addressof operator on memory location
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS // max_digits10 in test/../print_helper.hpp
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
|
||||||
|
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST //serialization/test/test_list.cpp
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM //math/../test_data.hpp
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
#else
|
||||||
|
#ifndef BOOST_SYSTEM_NO_DEPRECATED
|
||||||
|
# define BOOST_SYSTEM_NO_DEPRECATED // workaround link error in spirit
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// NONE is used in enums in lamda and other libraries
|
||||||
|
#undef NONE
|
||||||
|
// restrict is an iostreams class
|
||||||
|
#undef restrict
|
||||||
|
|
||||||
|
// use fake poll() from Unix layer in ASIO to get full functionality
|
||||||
|
// most libraries will use select() but this define allows 'iostream' functionality
|
||||||
|
// which is based on poll() only
|
||||||
|
#if (_WRS_VXWORKS_MAJOR > 6)
|
||||||
|
# ifndef BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR
|
||||||
|
# define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -21,17 +21,32 @@
|
|||||||
# define BOOST_NO_SWPRINTF
|
# define BOOST_NO_SWPRINTF
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC)
|
// 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_HAS_DECLSPEC
|
||||||
|
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
|
||||||
|
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
|
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
|
||||||
# define BOOST_HAS_STDINT_H
|
# define BOOST_HAS_STDINT_H
|
||||||
# define __STDC_LIMIT_MACROS
|
# ifndef __STDC_LIMIT_MACROS
|
||||||
|
# define __STDC_LIMIT_MACROS
|
||||||
|
# endif
|
||||||
# define BOOST_HAS_DIRENT_H
|
# define BOOST_HAS_DIRENT_H
|
||||||
# define BOOST_HAS_UNISTD_H
|
# define BOOST_HAS_UNISTD_H
|
||||||
#endif
|
#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,
|
// Win32 will normally be using native Win32 threads,
|
||||||
// but there is a pthread library avaliable as an option,
|
// but there is a pthread library avaliable as an option,
|
||||||
@@ -42,14 +57,31 @@
|
|||||||
// all translation units (needed for shared_ptr etc).
|
// all translation units (needed for shared_ptr etc).
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifdef _WIN32_WCE
|
|
||||||
# define BOOST_NO_ANSI_APIS
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef BOOST_HAS_PTHREADS
|
#ifndef BOOST_HAS_PTHREADS
|
||||||
# define BOOST_HAS_WINTHREADS
|
# define BOOST_HAS_WINTHREADS
|
||||||
#endif
|
#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
|
#ifndef BOOST_DISABLE_WIN32
|
||||||
// WEK: Added
|
// WEK: Added
|
||||||
#define BOOST_HAS_FTIME
|
#define BOOST_HAS_FTIME
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
// Copyright (c) 2017 Dynatrace
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Platform setup for IBM z/OS.
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "IBM z/OS"
|
||||||
|
|
||||||
|
#include <features.h> // For __UU, __C99, __TR1, ...
|
||||||
|
|
||||||
|
#if defined(__UU)
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_OPEN_THREADS) || defined(__SUSV3_THR)
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SUSV3) || defined(__SUSV3_THR)
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_HAS_SIGACTION
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#define BOOST_HAS_DIRENT_H
|
||||||
|
#define BOOST_HAS_NL_TYPES_H
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
#ifndef BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
|
||||||
|
#define BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
|
||||||
|
|
||||||
|
// Copyright 2017 Peter Dimov.
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
// BOOST_PRAGMA_MESSAGE("message")
|
||||||
|
//
|
||||||
|
// Expands to the equivalent of #pragma message("message")
|
||||||
|
//
|
||||||
|
// Note that this header is C compatible.
|
||||||
|
|
||||||
|
#include <boost/config/helper_macros.hpp>
|
||||||
|
|
||||||
|
#if defined(BOOST_DISABLE_PRAGMA_MESSAGE)
|
||||||
|
# define BOOST_PRAGMA_MESSAGE(x)
|
||||||
|
#elif defined(__INTEL_COMPILER)
|
||||||
|
# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x))
|
||||||
|
#elif defined(__GNUC__)
|
||||||
|
# define BOOST_PRAGMA_MESSAGE(x) _Pragma(BOOST_STRINGIZE(message(x)))
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
# define BOOST_PRAGMA_MESSAGE(x) __pragma(message(__FILE__ "(" BOOST_STRINGIZE(__LINE__) "): note: " x))
|
||||||
|
#else
|
||||||
|
# define BOOST_PRAGMA_MESSAGE(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_CONFIG_PRAGMA_MESSAGE_HPP_INCLUDED
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
// Boost compiler configuration selection header file
|
|
||||||
|
|
||||||
// (C) Copyright John Maddock 2001 - 2003.
|
|
||||||
// (C) Copyright Martin Wille 2003.
|
|
||||||
// (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.
|
|
||||||
|
|
||||||
// locate which compiler we are using and define
|
|
||||||
// BOOST_COMPILER_CONFIG as needed:
|
|
||||||
|
|
||||||
#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 __COMO__
|
|
||||||
// Comeau C++
|
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
|
||||||
|
|
||||||
#elif defined __DMC__
|
|
||||||
// Digital Mars C++
|
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
|
|
||||||
|
|
||||||
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
|
||||||
// Intel
|
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
|
|
||||||
|
|
||||||
# elif defined __GNUC__
|
|
||||||
// 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 __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(__IBMCPP__)
|
|
||||||
// IBM Visual Age
|
|
||||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.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
|
|
||||||
@@ -55,8 +55,10 @@
|
|||||||
# define BOOST_HAS_MACRO_USE_FACET
|
# define BOOST_HAS_MACRO_USE_FACET
|
||||||
# ifndef _CPPLIB_VER
|
# ifndef _CPPLIB_VER
|
||||||
// Updated Dinkum library defines this, and provides
|
// Updated Dinkum library defines this, and provides
|
||||||
// its own min and max definitions.
|
// its own min and max definitions, as does MTA version.
|
||||||
# define BOOST_NO_STD_MIN_MAX
|
# ifndef __MTA__
|
||||||
|
# define BOOST_NO_STD_MIN_MAX
|
||||||
|
# endif
|
||||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
@@ -84,6 +86,165 @@
|
|||||||
# define BOOST_NO_STD_LOCALE
|
# define BOOST_NO_STD_LOCALE
|
||||||
#endif
|
#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__)) || (defined(__ghs__) && !_HAS_NAMESPACE) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \
|
||||||
|
&& !defined(__VXWORKS__)
|
||||||
|
# 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
|
||||||
|
|
||||||
|
// Before 650 std::pointer_traits has a broken rebind template
|
||||||
|
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#elif defined(BOOST_MSVC) && BOOST_MSVC < 1910
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif (__cplusplus < 201402) && !defined(_MSC_VER)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_ITERATOR_TRAITS
|
||||||
|
#endif
|
||||||
|
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709)
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0))
|
||||||
|
// Deprecated std::iterator:
|
||||||
|
# define BOOST_NO_STD_ITERATOR
|
||||||
|
#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 and std::random_shuffle are 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
|
||||||
|
# define BOOST_NO_CXX98_RANDOM_SHUFFLE
|
||||||
|
# define BOOST_NO_CXX98_FUNCTION_BASE
|
||||||
|
# define BOOST_NO_CXX98_BINDERS
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Things not supported by the CLR:
|
||||||
|
#ifdef _M_CEE
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
#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
|
||||||
|
#ifndef BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_FENV_H
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef _CPPLIB_VER
|
#ifdef _CPPLIB_VER
|
||||||
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
||||||
#else
|
#else
|
||||||
@@ -95,12 +256,3 @@
|
|||||||
#else
|
#else
|
||||||
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
|
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,54 @@
|
|||||||
# define BOOST_HAS_SLIST
|
# define BOOST_HAS_SLIST
|
||||||
#endif
|
#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_POINTER_TRAITS
|
||||||
|
# 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
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
# define BOOST_NO_CXX17_ITERATOR_TRAITS
|
||||||
|
|
||||||
//
|
//
|
||||||
// Intrinsic type_traits support.
|
// Intrinsic type_traits support.
|
||||||
// The SGI STL has it's own __type_traits class, which
|
// The SGI STL has it's own __type_traits class, which
|
||||||
@@ -42,5 +90,3 @@
|
|||||||
#define BOOST_HAS_SGI_TYPE_TRAITS
|
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||||
|
|
||||||
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
|
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,143 @@
|
|||||||
|
// (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
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus < 201103
|
||||||
|
//
|
||||||
|
// These two appear to be somewhat useable in C++03 mode, there may be others...
|
||||||
|
//
|
||||||
|
//# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
//# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# 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_POINTER_TRAITS
|
||||||
|
# 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
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
#if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L)
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
#if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L)
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_HDR_OPTIONAL
|
||||||
|
# define BOOST_NO_CXX17_HDR_STRING_VIEW
|
||||||
|
#endif
|
||||||
|
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
|
# define BOOST_NO_AUTO_PTR
|
||||||
|
#endif
|
||||||
|
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE)
|
||||||
|
# define BOOST_NO_CXX98_RANDOM_SHUFFLE
|
||||||
|
#endif
|
||||||
|
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
|
||||||
|
# define BOOST_NO_CXX98_BINDERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX17_ITERATOR_TRAITS
|
||||||
|
#define BOOST_NO_CXX17_STD_INVOKE // Invoke support is incomplete (no invoke_result)
|
||||||
|
|
||||||
|
#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(__linux__) && (_LIBCPP_VERSION < 6000) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)
|
||||||
|
// After libc++-dev is installed on Trusty, clang++-libc++ almost works,
|
||||||
|
// except uses of `thread_local` fail with undefined reference to
|
||||||
|
// `__cxa_thread_atexit`.
|
||||||
|
//
|
||||||
|
// clang's libc++abi provides an implementation by deferring to the glibc
|
||||||
|
// implementation, which may or may not be available (it is not on Trusty).
|
||||||
|
// clang 4's libc++abi will provide an implementation if one is not in glibc
|
||||||
|
// though, so thread local support should work with clang 4 and above as long
|
||||||
|
// as libc++abi is linked in.
|
||||||
|
# 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
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_CXX14_HDR_SHARED_MUTEX) && (_LIBCPP_VERSION < 5000)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// --- end ---
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user