@eosrio/node-abieos 2.1.0-beta.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (740) hide show
  1. package/README.md +4 -1
  2. package/dist/abieos.node +0 -0
  3. package/lib/abieos.d.ts +19 -0
  4. package/lib/abieos.d.ts.map +1 -0
  5. package/lib/abieos.js +100 -0
  6. package/lib/abieos.ts +107 -0
  7. package/package.json +13 -8
  8. package/.gitmodules +0 -6
  9. package/.idea/misc.xml +0 -6
  10. package/.idea/modules.xml +0 -8
  11. package/.idea/node-abieos.iml +0 -12
  12. package/.idea/vcs.xml +0 -9
  13. package/.idea/workspace.xml +0 -266
  14. package/CMakeLists.txt +0 -35
  15. package/abieos.d.ts +0 -21
  16. package/abieos.js +0 -59
  17. package/eosio.json +0 -1596
  18. package/external/date/CMakeLists.txt +0 -175
  19. package/external/date/LICENSE.txt +0 -31
  20. package/external/date/README.md +0 -61
  21. package/external/date/compile_fail.sh +0 -16
  22. package/external/date/include/date/chrono_io.h +0 -34
  23. package/external/date/include/date/date.h +0 -8335
  24. package/external/date/include/date/ios.h +0 -50
  25. package/external/date/include/date/islamic.h +0 -3031
  26. package/external/date/include/date/iso_week.h +0 -1745
  27. package/external/date/include/date/julian.h +0 -3046
  28. package/external/date/include/date/ptz.h +0 -592
  29. package/external/date/include/date/tz.h +0 -2760
  30. package/external/date/include/date/tz_private.h +0 -318
  31. package/external/date/src/ios.mm +0 -337
  32. package/external/date/src/tz.cpp +0 -3801
  33. package/external/date/test/clock_cast_test/custom_clock.pass.cpp +0 -213
  34. package/external/date/test/clock_cast_test/deprecated.pass.cpp +0 -90
  35. package/external/date/test/clock_cast_test/local_t.pass.cpp +0 -132
  36. package/external/date/test/clock_cast_test/noncastable.pass.cpp +0 -251
  37. package/external/date/test/clock_cast_test/normal_clocks.pass.cpp +0 -102
  38. package/external/date/test/clock_cast_test/to_sys_return_int.fail.cpp +0 -49
  39. package/external/date/test/clock_cast_test/to_sys_return_reference.fail.cpp +0 -51
  40. package/external/date/test/clock_cast_test/to_sys_return_utc_time.fail.cpp +0 -49
  41. package/external/date/test/date_test/day.pass.cpp +0 -143
  42. package/external/date/test/date_test/daypday.fail.cpp +0 -32
  43. package/external/date/test/date_test/daysmday.fail.cpp +0 -32
  44. package/external/date/test/date_test/daysmweekday.fail.cpp +0 -32
  45. package/external/date/test/date_test/detail/decimal_format_seconds.pass.cpp +0 -145
  46. package/external/date/test/date_test/detail/make_precision.pass.cpp +0 -63
  47. package/external/date/test/date_test/detail/static_pow10.pass.cpp +0 -50
  48. package/external/date/test/date_test/detail/width.pass.cpp +0 -64
  49. package/external/date/test/date_test/durations.pass.cpp +0 -62
  50. package/external/date/test/date_test/durations_output.pass.cpp +0 -328
  51. package/external/date/test/date_test/format/century.pass.cpp +0 -117
  52. package/external/date/test/date_test/format/misc.pass.cpp +0 -52
  53. package/external/date/test/date_test/format/range.pass.cpp +0 -78
  54. package/external/date/test/date_test/format/two_dight_year.pass.cpp +0 -121
  55. package/external/date/test/date_test/last.pass.cpp +0 -34
  56. package/external/date/test/date_test/make_time.pass.cpp +0 -164
  57. package/external/date/test/date_test/month.pass.cpp +0 -181
  58. package/external/date/test/date_test/month_day.pass.cpp +0 -82
  59. package/external/date/test/date_test/month_day_last.pass.cpp +0 -75
  60. package/external/date/test/date_test/month_weekday.pass.cpp +0 -77
  61. package/external/date/test/date_test/month_weekday_last.pass.cpp +0 -77
  62. package/external/date/test/date_test/month_weekday_last_less.fail.cpp +0 -34
  63. package/external/date/test/date_test/month_weekday_less.fail.cpp +0 -34
  64. package/external/date/test/date_test/monthpmonth.fail.cpp +0 -32
  65. package/external/date/test/date_test/months_m_year_month.fail.cpp +0 -33
  66. package/external/date/test/date_test/months_m_year_month_day.fail.cpp +0 -33
  67. package/external/date/test/date_test/monthsmmonth.fail.cpp +0 -32
  68. package/external/date/test/date_test/multi_year_duration_addition.pass.cpp +0 -297
  69. package/external/date/test/date_test/op_div_day_day.fail.cpp +0 -33
  70. package/external/date/test/date_test/op_div_int_month.fail.cpp +0 -33
  71. package/external/date/test/date_test/op_div_int_year.fail.cpp +0 -33
  72. package/external/date/test/date_test/op_div_last_last.fail.cpp +0 -33
  73. package/external/date/test/date_test/op_div_month_day.pass.cpp +0 -41
  74. package/external/date/test/date_test/op_div_month_day_last.pass.cpp +0 -39
  75. package/external/date/test/date_test/op_div_month_day_month_day.fail.cpp +0 -33
  76. package/external/date/test/date_test/op_div_month_month.fail.cpp +0 -33
  77. package/external/date/test/date_test/op_div_month_weekday.pass.cpp +0 -39
  78. package/external/date/test/date_test/op_div_month_weekday_last.pass.cpp +0 -39
  79. package/external/date/test/date_test/op_div_month_year.fail.cpp +0 -33
  80. package/external/date/test/date_test/op_div_survey.pass.cpp +0 -437
  81. package/external/date/test/date_test/op_div_weekday_indexed_weekday_indexed.fail.cpp +0 -33
  82. package/external/date/test/date_test/op_div_weekday_last_weekday_last.fail.cpp +0 -33
  83. package/external/date/test/date_test/op_div_year_month.pass.cpp +0 -35
  84. package/external/date/test/date_test/op_div_year_month_day.pass.cpp +0 -43
  85. package/external/date/test/date_test/op_div_year_month_day_last.pass.cpp +0 -41
  86. package/external/date/test/date_test/op_div_year_month_weekday.pass.cpp +0 -41
  87. package/external/date/test/date_test/op_div_year_month_weekday_last.pass.cpp +0 -41
  88. package/external/date/test/date_test/op_div_year_month_year_month.fail.cpp +0 -33
  89. package/external/date/test/date_test/op_div_year_year.fail.cpp +0 -33
  90. package/external/date/test/date_test/parse.pass.cpp +0 -904
  91. package/external/date/test/date_test/sizeof.pass.cpp +0 -62
  92. package/external/date/test/date_test/time_of_day_hours.pass.cpp +0 -104
  93. package/external/date/test/date_test/time_of_day_microfortnights.pass.cpp +0 -119
  94. package/external/date/test/date_test/time_of_day_milliseconds.pass.cpp +0 -126
  95. package/external/date/test/date_test/time_of_day_minutes.pass.cpp +0 -110
  96. package/external/date/test/date_test/time_of_day_nanoseconds.pass.cpp +0 -126
  97. package/external/date/test/date_test/time_of_day_seconds.pass.cpp +0 -116
  98. package/external/date/test/date_test/weekday.pass.cpp +0 -201
  99. package/external/date/test/date_test/weekday_indexed.pass.cpp +0 -70
  100. package/external/date/test/date_test/weekday_last.pass.cpp +0 -66
  101. package/external/date/test/date_test/weekday_lessthan.fail.cpp +0 -32
  102. package/external/date/test/date_test/weekday_sum.fail.cpp +0 -32
  103. package/external/date/test/date_test/year.pass.cpp +0 -146
  104. package/external/date/test/date_test/year_month.pass.cpp +0 -142
  105. package/external/date/test/date_test/year_month_day.pass.cpp +0 -244
  106. package/external/date/test/date_test/year_month_day_last.pass.cpp +0 -177
  107. package/external/date/test/date_test/year_month_day_m_year_month_day.fail.cpp +0 -33
  108. package/external/date/test/date_test/year_month_day_p_year_month_day.fail.cpp +0 -33
  109. package/external/date/test/date_test/year_month_p_year_month.fail.cpp +0 -33
  110. package/external/date/test/date_test/year_month_weekday.pass.cpp +0 -178
  111. package/external/date/test/date_test/year_month_weekday_last.pass.cpp +0 -169
  112. package/external/date/test/date_test/year_p_year.fail.cpp +0 -32
  113. package/external/date/test/date_test/years_m_year.fail.cpp +0 -32
  114. package/external/date/test/date_test/years_m_year_month.fail.cpp +0 -33
  115. package/external/date/test/date_test/years_m_year_month_day.fail.cpp +0 -33
  116. package/external/date/test/iso_week/last.pass.cpp +0 -34
  117. package/external/date/test/iso_week/lastweek_weekday.pass.cpp +0 -82
  118. package/external/date/test/iso_week/op_div_survey.pass.cpp +0 -196
  119. package/external/date/test/iso_week/weekday.pass.cpp +0 -227
  120. package/external/date/test/iso_week/weekday_lessthan.fail.cpp +0 -32
  121. package/external/date/test/iso_week/weekday_sum.fail.cpp +0 -32
  122. package/external/date/test/iso_week/weeknum.pass.cpp +0 -121
  123. package/external/date/test/iso_week/weeknum_p_weeknum.fail.cpp +0 -32
  124. package/external/date/test/iso_week/weeknum_weekday.pass.cpp +0 -86
  125. package/external/date/test/iso_week/year.pass.cpp +0 -120
  126. package/external/date/test/iso_week/year_lastweek.pass.cpp +0 -97
  127. package/external/date/test/iso_week/year_lastweek_weekday.pass.cpp +0 -129
  128. package/external/date/test/iso_week/year_p_year.fail.cpp +0 -32
  129. package/external/date/test/iso_week/year_weeknum.pass.cpp +0 -97
  130. package/external/date/test/iso_week/year_weeknum_weekday.pass.cpp +0 -139
  131. package/external/date/test/iso_week/years_m_year.fail.cpp +0 -32
  132. package/external/date/test/just.pass.cpp +0 -26
  133. package/external/date/test/testit +0 -177
  134. package/external/date/test/tz_test/OffsetZone.pass.cpp +0 -81
  135. package/external/date/test/tz_test/README.md +0 -22
  136. package/external/date/test/tz_test/tzdata2015e.txt.zip +0 -0
  137. package/external/date/test/tz_test/tzdata2015f.txt.zip +0 -0
  138. package/external/date/test/tz_test/tzdata2016c.txt.zip +0 -0
  139. package/external/date/test/tz_test/tzdata2016d.txt.zip +0 -0
  140. package/external/date/test/tz_test/tzdata2016e.txt.zip +0 -0
  141. package/external/date/test/tz_test/tzdata2016f.txt.zip +0 -0
  142. package/external/date/test/tz_test/validate.cpp +0 -165
  143. package/external/date/test/tz_test/zone.pass.cpp +0 -37
  144. package/external/date/test/tz_test/zoned_time.pass.cpp +0 -464
  145. package/external/date/test_fail.sh +0 -10
  146. package/external/rapidjson/.gitattributes +0 -22
  147. package/external/rapidjson/.gitmodules +0 -3
  148. package/external/rapidjson/.travis.yml +0 -99
  149. package/external/rapidjson/CHANGELOG.md +0 -158
  150. package/external/rapidjson/CMakeLists.txt +0 -221
  151. package/external/rapidjson/CMakeModules/FindGTestSrc.cmake +0 -30
  152. package/external/rapidjson/RapidJSON.pc.in +0 -7
  153. package/external/rapidjson/RapidJSONConfig.cmake.in +0 -15
  154. package/external/rapidjson/RapidJSONConfigVersion.cmake.in +0 -10
  155. package/external/rapidjson/appveyor.yml +0 -54
  156. package/external/rapidjson/bin/data/glossary.json +0 -22
  157. package/external/rapidjson/bin/data/menu.json +0 -27
  158. package/external/rapidjson/bin/data/readme.txt +0 -1
  159. package/external/rapidjson/bin/data/sample.json +0 -3315
  160. package/external/rapidjson/bin/data/webapp.json +0 -88
  161. package/external/rapidjson/bin/data/widget.json +0 -26
  162. package/external/rapidjson/bin/encodings/utf16be.json +0 -0
  163. package/external/rapidjson/bin/encodings/utf16bebom.json +0 -0
  164. package/external/rapidjson/bin/encodings/utf16le.json +0 -0
  165. package/external/rapidjson/bin/encodings/utf16lebom.json +0 -0
  166. package/external/rapidjson/bin/encodings/utf32be.json +0 -0
  167. package/external/rapidjson/bin/encodings/utf32bebom.json +0 -0
  168. package/external/rapidjson/bin/encodings/utf32le.json +0 -0
  169. package/external/rapidjson/bin/encodings/utf32lebom.json +0 -0
  170. package/external/rapidjson/bin/encodings/utf8.json +0 -7
  171. package/external/rapidjson/bin/encodings/utf8bom.json +0 -7
  172. package/external/rapidjson/bin/jsonchecker/fail1.json +0 -1
  173. package/external/rapidjson/bin/jsonchecker/fail10.json +0 -1
  174. package/external/rapidjson/bin/jsonchecker/fail11.json +0 -1
  175. package/external/rapidjson/bin/jsonchecker/fail12.json +0 -1
  176. package/external/rapidjson/bin/jsonchecker/fail13.json +0 -1
  177. package/external/rapidjson/bin/jsonchecker/fail14.json +0 -1
  178. package/external/rapidjson/bin/jsonchecker/fail15.json +0 -1
  179. package/external/rapidjson/bin/jsonchecker/fail16.json +0 -1
  180. package/external/rapidjson/bin/jsonchecker/fail17.json +0 -1
  181. package/external/rapidjson/bin/jsonchecker/fail18.json +0 -1
  182. package/external/rapidjson/bin/jsonchecker/fail19.json +0 -1
  183. package/external/rapidjson/bin/jsonchecker/fail2.json +0 -1
  184. package/external/rapidjson/bin/jsonchecker/fail20.json +0 -1
  185. package/external/rapidjson/bin/jsonchecker/fail21.json +0 -1
  186. package/external/rapidjson/bin/jsonchecker/fail22.json +0 -1
  187. package/external/rapidjson/bin/jsonchecker/fail23.json +0 -1
  188. package/external/rapidjson/bin/jsonchecker/fail24.json +0 -1
  189. package/external/rapidjson/bin/jsonchecker/fail25.json +0 -1
  190. package/external/rapidjson/bin/jsonchecker/fail26.json +0 -1
  191. package/external/rapidjson/bin/jsonchecker/fail27.json +0 -2
  192. package/external/rapidjson/bin/jsonchecker/fail28.json +0 -2
  193. package/external/rapidjson/bin/jsonchecker/fail29.json +0 -1
  194. package/external/rapidjson/bin/jsonchecker/fail3.json +0 -1
  195. package/external/rapidjson/bin/jsonchecker/fail30.json +0 -1
  196. package/external/rapidjson/bin/jsonchecker/fail31.json +0 -1
  197. package/external/rapidjson/bin/jsonchecker/fail32.json +0 -1
  198. package/external/rapidjson/bin/jsonchecker/fail33.json +0 -1
  199. package/external/rapidjson/bin/jsonchecker/fail4.json +0 -1
  200. package/external/rapidjson/bin/jsonchecker/fail5.json +0 -1
  201. package/external/rapidjson/bin/jsonchecker/fail6.json +0 -1
  202. package/external/rapidjson/bin/jsonchecker/fail7.json +0 -1
  203. package/external/rapidjson/bin/jsonchecker/fail8.json +0 -1
  204. package/external/rapidjson/bin/jsonchecker/fail9.json +0 -1
  205. package/external/rapidjson/bin/jsonchecker/pass1.json +0 -58
  206. package/external/rapidjson/bin/jsonchecker/pass2.json +0 -1
  207. package/external/rapidjson/bin/jsonchecker/pass3.json +0 -6
  208. package/external/rapidjson/bin/jsonchecker/readme.txt +0 -3
  209. package/external/rapidjson/bin/types/booleans.json +0 -102
  210. package/external/rapidjson/bin/types/floats.json +0 -102
  211. package/external/rapidjson/bin/types/guids.json +0 -102
  212. package/external/rapidjson/bin/types/integers.json +0 -102
  213. package/external/rapidjson/bin/types/mixed.json +0 -592
  214. package/external/rapidjson/bin/types/nulls.json +0 -102
  215. package/external/rapidjson/bin/types/paragraphs.json +0 -102
  216. package/external/rapidjson/bin/types/readme.txt +0 -1
  217. package/external/rapidjson/contrib/natvis/LICENSE +0 -45
  218. package/external/rapidjson/contrib/natvis/README.md +0 -7
  219. package/external/rapidjson/contrib/natvis/rapidjson.natvis +0 -38
  220. package/external/rapidjson/doc/CMakeLists.txt +0 -27
  221. package/external/rapidjson/doc/Doxyfile.in +0 -2369
  222. package/external/rapidjson/doc/Doxyfile.zh-cn.in +0 -2369
  223. package/external/rapidjson/doc/diagram/architecture.dot +0 -50
  224. package/external/rapidjson/doc/diagram/architecture.png +0 -0
  225. package/external/rapidjson/doc/diagram/insituparsing.dot +0 -65
  226. package/external/rapidjson/doc/diagram/insituparsing.png +0 -0
  227. package/external/rapidjson/doc/diagram/iterative-parser-states-diagram.dot +0 -62
  228. package/external/rapidjson/doc/diagram/iterative-parser-states-diagram.png +0 -0
  229. package/external/rapidjson/doc/diagram/move1.dot +0 -47
  230. package/external/rapidjson/doc/diagram/move1.png +0 -0
  231. package/external/rapidjson/doc/diagram/move2.dot +0 -62
  232. package/external/rapidjson/doc/diagram/move2.png +0 -0
  233. package/external/rapidjson/doc/diagram/move3.dot +0 -60
  234. package/external/rapidjson/doc/diagram/move3.png +0 -0
  235. package/external/rapidjson/doc/diagram/normalparsing.dot +0 -56
  236. package/external/rapidjson/doc/diagram/normalparsing.png +0 -0
  237. package/external/rapidjson/doc/diagram/simpledom.dot +0 -54
  238. package/external/rapidjson/doc/diagram/simpledom.png +0 -0
  239. package/external/rapidjson/doc/diagram/tutorial.dot +0 -58
  240. package/external/rapidjson/doc/diagram/tutorial.png +0 -0
  241. package/external/rapidjson/doc/diagram/utilityclass.dot +0 -73
  242. package/external/rapidjson/doc/diagram/utilityclass.png +0 -0
  243. package/external/rapidjson/doc/dom.md +0 -280
  244. package/external/rapidjson/doc/dom.zh-cn.md +0 -284
  245. package/external/rapidjson/doc/encoding.md +0 -146
  246. package/external/rapidjson/doc/encoding.zh-cn.md +0 -152
  247. package/external/rapidjson/doc/faq.md +0 -289
  248. package/external/rapidjson/doc/faq.zh-cn.md +0 -290
  249. package/external/rapidjson/doc/features.md +0 -104
  250. package/external/rapidjson/doc/features.zh-cn.md +0 -103
  251. package/external/rapidjson/doc/internals.md +0 -368
  252. package/external/rapidjson/doc/internals.zh-cn.md +0 -363
  253. package/external/rapidjson/doc/logo/rapidjson.png +0 -0
  254. package/external/rapidjson/doc/logo/rapidjson.svg +0 -119
  255. package/external/rapidjson/doc/misc/DoxygenLayout.xml +0 -194
  256. package/external/rapidjson/doc/misc/doxygenextra.css +0 -274
  257. package/external/rapidjson/doc/misc/footer.html +0 -11
  258. package/external/rapidjson/doc/misc/header.html +0 -24
  259. package/external/rapidjson/doc/npm.md +0 -31
  260. package/external/rapidjson/doc/performance.md +0 -26
  261. package/external/rapidjson/doc/performance.zh-cn.md +0 -26
  262. package/external/rapidjson/doc/pointer.md +0 -234
  263. package/external/rapidjson/doc/pointer.zh-cn.md +0 -234
  264. package/external/rapidjson/doc/sax.md +0 -509
  265. package/external/rapidjson/doc/sax.zh-cn.md +0 -487
  266. package/external/rapidjson/doc/schema.md +0 -505
  267. package/external/rapidjson/doc/schema.zh-cn.md +0 -237
  268. package/external/rapidjson/doc/stream.md +0 -429
  269. package/external/rapidjson/doc/stream.zh-cn.md +0 -429
  270. package/external/rapidjson/doc/tutorial.md +0 -536
  271. package/external/rapidjson/doc/tutorial.zh-cn.md +0 -535
  272. package/external/rapidjson/docker/debian/Dockerfile +0 -8
  273. package/external/rapidjson/example/CMakeLists.txt +0 -45
  274. package/external/rapidjson/example/archiver/archiver.cpp +0 -292
  275. package/external/rapidjson/example/archiver/archiver.h +0 -145
  276. package/external/rapidjson/example/archiver/archivertest.cpp +0 -287
  277. package/external/rapidjson/example/capitalize/capitalize.cpp +0 -67
  278. package/external/rapidjson/example/condense/condense.cpp +0 -32
  279. package/external/rapidjson/example/filterkey/filterkey.cpp +0 -135
  280. package/external/rapidjson/example/filterkeydom/filterkeydom.cpp +0 -170
  281. package/external/rapidjson/example/jsonx/jsonx.cpp +0 -207
  282. package/external/rapidjson/example/lookaheadparser/lookaheadparser.cpp +0 -350
  283. package/external/rapidjson/example/messagereader/messagereader.cpp +0 -105
  284. package/external/rapidjson/example/parsebyparts/parsebyparts.cpp +0 -176
  285. package/external/rapidjson/example/pretty/pretty.cpp +0 -30
  286. package/external/rapidjson/example/prettyauto/prettyauto.cpp +0 -56
  287. package/external/rapidjson/example/schemavalidator/schemavalidator.cpp +0 -78
  288. package/external/rapidjson/example/serialize/serialize.cpp +0 -173
  289. package/external/rapidjson/example/simpledom/simpledom.cpp +0 -29
  290. package/external/rapidjson/example/simplepullreader/simplepullreader.cpp +0 -53
  291. package/external/rapidjson/example/simplereader/simplereader.cpp +0 -42
  292. package/external/rapidjson/example/simplewriter/simplewriter.cpp +0 -36
  293. package/external/rapidjson/example/tutorial/tutorial.cpp +0 -151
  294. package/external/rapidjson/include/rapidjson/allocators.h +0 -284
  295. package/external/rapidjson/include/rapidjson/cursorstreamwrapper.h +0 -78
  296. package/external/rapidjson/include/rapidjson/document.h +0 -2646
  297. package/external/rapidjson/include/rapidjson/encodedstream.h +0 -299
  298. package/external/rapidjson/include/rapidjson/encodings.h +0 -716
  299. package/external/rapidjson/include/rapidjson/error/en.h +0 -74
  300. package/external/rapidjson/include/rapidjson/error/error.h +0 -161
  301. package/external/rapidjson/include/rapidjson/filereadstream.h +0 -99
  302. package/external/rapidjson/include/rapidjson/filewritestream.h +0 -104
  303. package/external/rapidjson/include/rapidjson/fwd.h +0 -151
  304. package/external/rapidjson/include/rapidjson/internal/biginteger.h +0 -290
  305. package/external/rapidjson/include/rapidjson/internal/diyfp.h +0 -271
  306. package/external/rapidjson/include/rapidjson/internal/dtoa.h +0 -245
  307. package/external/rapidjson/include/rapidjson/internal/ieee754.h +0 -78
  308. package/external/rapidjson/include/rapidjson/internal/itoa.h +0 -308
  309. package/external/rapidjson/include/rapidjson/internal/meta.h +0 -186
  310. package/external/rapidjson/include/rapidjson/internal/pow10.h +0 -55
  311. package/external/rapidjson/include/rapidjson/internal/regex.h +0 -732
  312. package/external/rapidjson/include/rapidjson/internal/stack.h +0 -231
  313. package/external/rapidjson/include/rapidjson/internal/strfunc.h +0 -69
  314. package/external/rapidjson/include/rapidjson/internal/strtod.h +0 -290
  315. package/external/rapidjson/include/rapidjson/internal/swap.h +0 -46
  316. package/external/rapidjson/include/rapidjson/istreamwrapper.h +0 -113
  317. package/external/rapidjson/include/rapidjson/memorybuffer.h +0 -70
  318. package/external/rapidjson/include/rapidjson/memorystream.h +0 -71
  319. package/external/rapidjson/include/rapidjson/msinttypes/inttypes.h +0 -316
  320. package/external/rapidjson/include/rapidjson/msinttypes/stdint.h +0 -300
  321. package/external/rapidjson/include/rapidjson/ostreamwrapper.h +0 -81
  322. package/external/rapidjson/include/rapidjson/pointer.h +0 -1357
  323. package/external/rapidjson/include/rapidjson/prettywriter.h +0 -277
  324. package/external/rapidjson/include/rapidjson/rapidjson.h +0 -654
  325. package/external/rapidjson/include/rapidjson/reader.h +0 -2230
  326. package/external/rapidjson/include/rapidjson/schema.h +0 -2494
  327. package/external/rapidjson/include/rapidjson/stream.h +0 -223
  328. package/external/rapidjson/include/rapidjson/stringbuffer.h +0 -121
  329. package/external/rapidjson/include/rapidjson/writer.h +0 -710
  330. package/external/rapidjson/include_dirs.js +0 -2
  331. package/external/rapidjson/library.json +0 -15
  332. package/external/rapidjson/license.txt +0 -57
  333. package/external/rapidjson/package.json +0 -24
  334. package/external/rapidjson/rapidjson.autopkg +0 -77
  335. package/external/rapidjson/readme.md +0 -160
  336. package/external/rapidjson/readme.zh-cn.md +0 -152
  337. package/external/rapidjson/test/CMakeLists.txt +0 -20
  338. package/external/rapidjson/test/perftest/CMakeLists.txt +0 -28
  339. package/external/rapidjson/test/perftest/misctest.cpp +0 -974
  340. package/external/rapidjson/test/perftest/perftest.cpp +0 -24
  341. package/external/rapidjson/test/perftest/perftest.h +0 -185
  342. package/external/rapidjson/test/perftest/platformtest.cpp +0 -166
  343. package/external/rapidjson/test/perftest/rapidjsontest.cpp +0 -472
  344. package/external/rapidjson/test/perftest/schematest.cpp +0 -223
  345. package/external/rapidjson/test/unittest/CMakeLists.txt +0 -92
  346. package/external/rapidjson/test/unittest/allocatorstest.cpp +0 -100
  347. package/external/rapidjson/test/unittest/bigintegertest.cpp +0 -138
  348. package/external/rapidjson/test/unittest/cursorstreamwrappertest.cpp +0 -115
  349. package/external/rapidjson/test/unittest/documenttest.cpp +0 -672
  350. package/external/rapidjson/test/unittest/dtoatest.cpp +0 -98
  351. package/external/rapidjson/test/unittest/encodedstreamtest.cpp +0 -313
  352. package/external/rapidjson/test/unittest/encodingstest.cpp +0 -451
  353. package/external/rapidjson/test/unittest/filestreamtest.cpp +0 -112
  354. package/external/rapidjson/test/unittest/fwdtest.cpp +0 -230
  355. package/external/rapidjson/test/unittest/istreamwrappertest.cpp +0 -181
  356. package/external/rapidjson/test/unittest/itoatest.cpp +0 -160
  357. package/external/rapidjson/test/unittest/jsoncheckertest.cpp +0 -143
  358. package/external/rapidjson/test/unittest/namespacetest.cpp +0 -70
  359. package/external/rapidjson/test/unittest/ostreamwrappertest.cpp +0 -92
  360. package/external/rapidjson/test/unittest/pointertest.cpp +0 -1529
  361. package/external/rapidjson/test/unittest/prettywritertest.cpp +0 -373
  362. package/external/rapidjson/test/unittest/readertest.cpp +0 -2190
  363. package/external/rapidjson/test/unittest/regextest.cpp +0 -638
  364. package/external/rapidjson/test/unittest/schematest.cpp +0 -2072
  365. package/external/rapidjson/test/unittest/simdtest.cpp +0 -219
  366. package/external/rapidjson/test/unittest/strfunctest.cpp +0 -30
  367. package/external/rapidjson/test/unittest/stringbuffertest.cpp +0 -192
  368. package/external/rapidjson/test/unittest/strtodtest.cpp +0 -132
  369. package/external/rapidjson/test/unittest/unittest.cpp +0 -51
  370. package/external/rapidjson/test/unittest/unittest.h +0 -140
  371. package/external/rapidjson/test/unittest/valuetest.cpp +0 -1851
  372. package/external/rapidjson/test/unittest/writertest.cpp +0 -598
  373. package/external/rapidjson/test/valgrind.supp +0 -17
  374. package/external/rapidjson/thirdparty/gtest/.travis.yml +0 -81
  375. package/external/rapidjson/thirdparty/gtest/BUILD.bazel +0 -175
  376. package/external/rapidjson/thirdparty/gtest/CMakeLists.txt +0 -33
  377. package/external/rapidjson/thirdparty/gtest/CONTRIBUTING.md +0 -160
  378. package/external/rapidjson/thirdparty/gtest/LICENSE +0 -28
  379. package/external/rapidjson/thirdparty/gtest/Makefile.am +0 -14
  380. package/external/rapidjson/thirdparty/gtest/README.md +0 -122
  381. package/external/rapidjson/thirdparty/gtest/WORKSPACE +0 -8
  382. package/external/rapidjson/thirdparty/gtest/appveyor.yml +0 -104
  383. package/external/rapidjson/thirdparty/gtest/ci/build-linux-autotools.sh +0 -44
  384. package/external/rapidjson/thirdparty/gtest/ci/build-linux-bazel.sh +0 -36
  385. package/external/rapidjson/thirdparty/gtest/ci/env-linux.sh +0 -41
  386. package/external/rapidjson/thirdparty/gtest/ci/env-osx.sh +0 -40
  387. package/external/rapidjson/thirdparty/gtest/ci/get-nprocessors.sh +0 -48
  388. package/external/rapidjson/thirdparty/gtest/ci/install-linux.sh +0 -49
  389. package/external/rapidjson/thirdparty/gtest/ci/install-osx.sh +0 -39
  390. package/external/rapidjson/thirdparty/gtest/ci/log-config.sh +0 -51
  391. package/external/rapidjson/thirdparty/gtest/ci/travis.sh +0 -44
  392. package/external/rapidjson/thirdparty/gtest/configure.ac +0 -16
  393. package/external/rapidjson/thirdparty/gtest/googlemock/CHANGES +0 -126
  394. package/external/rapidjson/thirdparty/gtest/googlemock/CMakeLists.txt +0 -242
  395. package/external/rapidjson/thirdparty/gtest/googlemock/CONTRIBUTORS +0 -40
  396. package/external/rapidjson/thirdparty/gtest/googlemock/LICENSE +0 -28
  397. package/external/rapidjson/thirdparty/gtest/googlemock/Makefile.am +0 -224
  398. package/external/rapidjson/thirdparty/gtest/googlemock/README.md +0 -344
  399. package/external/rapidjson/thirdparty/gtest/googlemock/build-aux/.keep +0 -0
  400. package/external/rapidjson/thirdparty/gtest/googlemock/cmake/gmock.pc.in +0 -9
  401. package/external/rapidjson/thirdparty/gtest/googlemock/cmake/gmock_main.pc.in +0 -9
  402. package/external/rapidjson/thirdparty/gtest/googlemock/configure.ac +0 -146
  403. package/external/rapidjson/thirdparty/gtest/googlemock/docs/CheatSheet.md +0 -564
  404. package/external/rapidjson/thirdparty/gtest/googlemock/docs/CookBook.md +0 -3660
  405. package/external/rapidjson/thirdparty/gtest/googlemock/docs/DesignDoc.md +0 -280
  406. package/external/rapidjson/thirdparty/gtest/googlemock/docs/Documentation.md +0 -15
  407. package/external/rapidjson/thirdparty/gtest/googlemock/docs/ForDummies.md +0 -447
  408. package/external/rapidjson/thirdparty/gtest/googlemock/docs/FrequentlyAskedQuestions.md +0 -627
  409. package/external/rapidjson/thirdparty/gtest/googlemock/docs/KnownIssues.md +0 -19
  410. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-actions.h +0 -1262
  411. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-cardinalities.h +0 -147
  412. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h +0 -2571
  413. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-actions.h.pump +0 -833
  414. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h +0 -1379
  415. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +0 -347
  416. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h +0 -2258
  417. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-matchers.h.pump +0 -675
  418. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h +0 -458
  419. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-generated-nice-strict.h.pump +0 -178
  420. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-matchers.h +0 -5255
  421. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-actions.h +0 -246
  422. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-more-matchers.h +0 -91
  423. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock-spec-builders.h +0 -1918
  424. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/gmock.h +0 -95
  425. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +0 -8
  426. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +0 -10
  427. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-matchers.h +0 -38
  428. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/custom/gmock-port.h +0 -46
  429. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h +0 -286
  430. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-generated-internal-utils.h.pump +0 -136
  431. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-internal-utils.h +0 -574
  432. package/external/rapidjson/thirdparty/gtest/googlemock/include/gmock/internal/gmock-port.h +0 -87
  433. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.sln +0 -32
  434. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock.vcproj +0 -191
  435. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_config.vsprops +0 -15
  436. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_main.vcproj +0 -187
  437. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2005/gmock_test.vcproj +0 -201
  438. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.sln +0 -46
  439. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock.vcxproj +0 -145
  440. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_config.props +0 -19
  441. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_main.vcxproj +0 -151
  442. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2010/gmock_test.vcxproj +0 -176
  443. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.sln +0 -46
  444. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock.vcxproj +0 -145
  445. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_config.props +0 -19
  446. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_main.vcxproj +0 -151
  447. package/external/rapidjson/thirdparty/gtest/googlemock/msvc/2015/gmock_test.vcxproj +0 -176
  448. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/fuse_gmock_files.py +0 -240
  449. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/LICENSE +0 -203
  450. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README +0 -34
  451. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/README.cppclean +0 -115
  452. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  453. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/ast.py +0 -1733
  454. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class.py +0 -227
  455. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/gmock_class_test.py +0 -448
  456. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/keywords.py +0 -59
  457. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/tokenize.py +0 -287
  458. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/cpp/utils.py +0 -41
  459. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/generator/gmock_gen.py +0 -31
  460. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/gmock-config.in +0 -303
  461. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/gmock_doctor.py +0 -640
  462. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/upload.py +0 -1387
  463. package/external/rapidjson/thirdparty/gtest/googlemock/scripts/upload_gmock.py +0 -78
  464. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-all.cc +0 -47
  465. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-cardinalities.cc +0 -156
  466. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-internal-utils.cc +0 -204
  467. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-matchers.cc +0 -573
  468. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock-spec-builders.cc +0 -883
  469. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock.cc +0 -205
  470. package/external/rapidjson/thirdparty/gtest/googlemock/src/gmock_main.cc +0 -54
  471. package/external/rapidjson/thirdparty/gtest/googlemock/test/BUILD.bazel +0 -123
  472. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-actions_test.cc +0 -1575
  473. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-cardinalities_test.cc +0 -428
  474. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-actions_test.cc +0 -1230
  475. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-function-mockers_test.cc +0 -647
  476. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-internal-utils_test.cc +0 -129
  477. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-generated-matchers_test.cc +0 -1341
  478. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-internal-utils_test.cc +0 -718
  479. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-matchers_test.cc +0 -6767
  480. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-more-actions_test.cc +0 -710
  481. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-nice-strict_test.cc +0 -511
  482. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-port_test.cc +0 -43
  483. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock-spec-builders_test.cc +0 -2771
  484. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_all_test.cc +0 -51
  485. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_ex_test.cc +0 -81
  486. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test.py +0 -108
  487. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_leak_test_.cc +0 -100
  488. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_link2_test.cc +0 -40
  489. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.cc +0 -40
  490. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_link_test.h +0 -691
  491. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test.py +0 -183
  492. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_.cc +0 -310
  493. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_output_test_golden.txt +0 -317
  494. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_stress_test.cc +0 -323
  495. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_test.cc +0 -262
  496. package/external/rapidjson/thirdparty/gtest/googlemock/test/gmock_test_utils.py +0 -110
  497. package/external/rapidjson/thirdparty/gtest/googletest/CHANGES +0 -157
  498. package/external/rapidjson/thirdparty/gtest/googletest/CMakeLists.txt +0 -312
  499. package/external/rapidjson/thirdparty/gtest/googletest/CONTRIBUTORS +0 -37
  500. package/external/rapidjson/thirdparty/gtest/googletest/LICENSE +0 -28
  501. package/external/rapidjson/thirdparty/gtest/googletest/Makefile.am +0 -339
  502. package/external/rapidjson/thirdparty/gtest/googletest/README.md +0 -341
  503. package/external/rapidjson/thirdparty/gtest/googletest/cmake/gtest.pc.in +0 -9
  504. package/external/rapidjson/thirdparty/gtest/googletest/cmake/gtest_main.pc.in +0 -10
  505. package/external/rapidjson/thirdparty/gtest/googletest/cmake/internal_utils.cmake +0 -280
  506. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest.cbproj +0 -138
  507. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest.groupproj +0 -54
  508. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_all.cc +0 -38
  509. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_link.cc +0 -40
  510. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_main.cbproj +0 -82
  511. package/external/rapidjson/thirdparty/gtest/googletest/codegear/gtest_unittest.cbproj +0 -88
  512. package/external/rapidjson/thirdparty/gtest/googletest/configure.ac +0 -68
  513. package/external/rapidjson/thirdparty/gtest/googletest/docs/Pkgconfig.md +0 -146
  514. package/external/rapidjson/thirdparty/gtest/googletest/docs/PumpManual.md +0 -177
  515. package/external/rapidjson/thirdparty/gtest/googletest/docs/XcodeGuide.md +0 -93
  516. package/external/rapidjson/thirdparty/gtest/googletest/docs/advanced.md +0 -2416
  517. package/external/rapidjson/thirdparty/gtest/googletest/docs/faq.md +0 -1092
  518. package/external/rapidjson/thirdparty/gtest/googletest/docs/primer.md +0 -536
  519. package/external/rapidjson/thirdparty/gtest/googletest/docs/samples.md +0 -14
  520. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-death-test.h +0 -342
  521. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-message.h +0 -249
  522. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h +0 -1438
  523. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-param-test.h.pump +0 -501
  524. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-printers.h +0 -1082
  525. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-spi.h +0 -231
  526. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-test-part.h +0 -179
  527. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest-typed-test.h +0 -264
  528. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest.h +0 -2332
  529. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_pred_impl.h +0 -357
  530. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/gtest_prod.h +0 -61
  531. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-port.h +0 -70
  532. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest-printers.h +0 -42
  533. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/custom/gtest.h +0 -45
  534. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-death-test-internal.h +0 -275
  535. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-filepath.h +0 -205
  536. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-internal.h +0 -1277
  537. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-linked_ptr.h +0 -243
  538. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h +0 -5139
  539. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -279
  540. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-param-util.h +0 -723
  541. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port-arch.h +0 -100
  542. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-port.h +0 -2687
  543. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-string.h +0 -167
  544. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h +0 -1020
  545. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-tuple.h.pump +0 -347
  546. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h +0 -3347
  547. package/external/rapidjson/thirdparty/gtest/googletest/include/gtest/internal/gtest-type-util.h.pump +0 -313
  548. package/external/rapidjson/thirdparty/gtest/googletest/m4/acx_pthread.m4 +0 -363
  549. package/external/rapidjson/thirdparty/gtest/googletest/m4/gtest.m4 +0 -74
  550. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.sln +0 -55
  551. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj +0 -149
  552. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest-md.vcxproj.filters +0 -18
  553. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.sln +0 -55
  554. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj +0 -149
  555. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest.vcxproj.filters +0 -18
  556. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj +0 -154
  557. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main-md.vcxproj.filters +0 -18
  558. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj +0 -162
  559. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_main.vcxproj.filters +0 -18
  560. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj +0 -199
  561. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test-md.vcxproj.filters +0 -26
  562. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj +0 -191
  563. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_prod_test.vcxproj.filters +0 -26
  564. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj +0 -188
  565. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest-md.vcxproj.filters +0 -18
  566. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj +0 -180
  567. package/external/rapidjson/thirdparty/gtest/googletest/msvc/2010/gtest_unittest.vcxproj.filters +0 -18
  568. package/external/rapidjson/thirdparty/gtest/googletest/samples/prime_tables.h +0 -127
  569. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample1.cc +0 -68
  570. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample1.h +0 -43
  571. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample10_unittest.cc +0 -140
  572. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample1_unittest.cc +0 -154
  573. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample2.cc +0 -56
  574. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample2.h +0 -85
  575. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample2_unittest.cc +0 -110
  576. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample3-inl.h +0 -172
  577. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample3_unittest.cc +0 -152
  578. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample4.cc +0 -46
  579. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample4.h +0 -53
  580. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample4_unittest.cc +0 -49
  581. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample5_unittest.cc +0 -199
  582. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample6_unittest.cc +0 -225
  583. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample7_unittest.cc +0 -118
  584. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample8_unittest.cc +0 -174
  585. package/external/rapidjson/thirdparty/gtest/googletest/samples/sample9_unittest.cc +0 -157
  586. package/external/rapidjson/thirdparty/gtest/googletest/scripts/common.py +0 -83
  587. package/external/rapidjson/thirdparty/gtest/googletest/scripts/fuse_gtest_files.py +0 -253
  588. package/external/rapidjson/thirdparty/gtest/googletest/scripts/gen_gtest_pred_impl.py +0 -730
  589. package/external/rapidjson/thirdparty/gtest/googletest/scripts/gtest-config.in +0 -274
  590. package/external/rapidjson/thirdparty/gtest/googletest/scripts/pump.py +0 -855
  591. package/external/rapidjson/thirdparty/gtest/googletest/scripts/release_docs.py +0 -158
  592. package/external/rapidjson/thirdparty/gtest/googletest/scripts/upload.py +0 -1387
  593. package/external/rapidjson/thirdparty/gtest/googletest/scripts/upload_gtest.py +0 -78
  594. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-all.cc +0 -48
  595. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-death-test.cc +0 -1536
  596. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-filepath.cc +0 -385
  597. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-internal-inl.h +0 -1175
  598. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-port.cc +0 -1277
  599. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-printers.cc +0 -458
  600. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-test-part.cc +0 -102
  601. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest-typed-test.cc +0 -119
  602. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest.cc +0 -5846
  603. package/external/rapidjson/thirdparty/gtest/googletest/src/gtest_main.cc +0 -38
  604. package/external/rapidjson/thirdparty/gtest/googletest/test/BUILD.bazel +0 -396
  605. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_ex_test.cc +0 -93
  606. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-death-test_test.cc +0 -1424
  607. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-filepath_test.cc +0 -652
  608. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-linked_ptr_test.cc +0 -154
  609. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-listener_test.cc +0 -311
  610. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-message_test.cc +0 -159
  611. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-options_test.cc +0 -213
  612. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test2_test.cc +0 -61
  613. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.cc +0 -1110
  614. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-param-test_test.h +0 -53
  615. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-port_test.cc +0 -1303
  616. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-printers_test.cc +0 -1737
  617. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-test-part_test.cc +0 -208
  618. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-tuple_test.cc +0 -320
  619. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test2_test.cc +0 -45
  620. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.cc +0 -380
  621. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-typed-test_test.h +0 -66
  622. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest-unittest-api_test.cc +0 -341
  623. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_all_test.cc +0 -47
  624. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_assert_by_exception_test.cc +0 -119
  625. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest.py +0 -210
  626. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_break_on_failure_unittest_.cc +0 -87
  627. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test.py +0 -235
  628. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_catch_exceptions_test_.cc +0 -311
  629. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test.py +0 -129
  630. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_color_test_.cc +0 -63
  631. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test.py +0 -119
  632. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_env_var_test_.cc +0 -124
  633. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_environment_test.cc +0 -189
  634. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest.py +0 -638
  635. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_filter_unittest_.cc +0 -138
  636. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test.py +0 -172
  637. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_help_test_.cc +0 -46
  638. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_json_outfiles_test.py +0 -162
  639. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_json_output_unittest.py +0 -611
  640. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_json_test_utils.py +0 -60
  641. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest.py +0 -207
  642. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_list_tests_unittest_.cc +0 -157
  643. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_main_unittest.cc +0 -45
  644. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_no_test_unittest.cc +0 -56
  645. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test.py +0 -344
  646. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_.cc +0 -1067
  647. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_output_test_golden_lin.txt +0 -781
  648. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_pred_impl_unittest.cc +0 -2427
  649. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_premature_exit_test.cc +0 -127
  650. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_prod_test.cc +0 -57
  651. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_repeat_test.cc +0 -236
  652. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test.py +0 -325
  653. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_shuffle_test_.cc +0 -103
  654. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_sole_header_test.cc +0 -57
  655. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_stress_test.cc +0 -250
  656. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_test_utils.py +0 -318
  657. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test.py +0 -65
  658. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_testbridge_test_.cc +0 -44
  659. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_ex_test.cc +0 -92
  660. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test.py +0 -171
  661. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_throw_on_failure_test_.cc +0 -72
  662. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test.py +0 -69
  663. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_uninitialized_test_.cc +0 -43
  664. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_unittest.cc +0 -7797
  665. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile1_test_.cc +0 -48
  666. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfile2_test_.cc +0 -48
  667. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_outfiles_test.py +0 -140
  668. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest.py +0 -378
  669. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_output_unittest_.cc +0 -179
  670. package/external/rapidjson/thirdparty/gtest/googletest/test/gtest_xml_test_utils.py +0 -196
  671. package/external/rapidjson/thirdparty/gtest/googletest/test/production.cc +0 -36
  672. package/external/rapidjson/thirdparty/gtest/googletest/test/production.h +0 -55
  673. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/DebugProject.xcconfig +0 -30
  674. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/FrameworkTarget.xcconfig +0 -17
  675. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/General.xcconfig +0 -41
  676. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/ReleaseProject.xcconfig +0 -32
  677. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/StaticLibraryTarget.xcconfig +0 -18
  678. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Config/TestTarget.xcconfig +0 -8
  679. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Resources/Info.plist +0 -30
  680. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/Info.plist +0 -28
  681. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj +0 -457
  682. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/runtests.sh +0 -62
  683. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.cc +0 -63
  684. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget.h +0 -59
  685. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Samples/FrameworkSample/widget_test.cc +0 -68
  686. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/runtests.sh +0 -65
  687. package/external/rapidjson/thirdparty/gtest/googletest/xcode/Scripts/versiongenerate.py +0 -100
  688. package/external/rapidjson/thirdparty/gtest/googletest/xcode/gtest.xcodeproj/project.pbxproj +0 -1182
  689. package/external/rapidjson/travis-doxygen.sh +0 -121
  690. package/include/.clang-format +0 -76
  691. package/include/eosio/abi.hpp +0 -286
  692. package/include/eosio/asset.hpp +0 -458
  693. package/include/eosio/bytes.hpp +0 -27
  694. package/include/eosio/chain_conversions.hpp +0 -450
  695. package/include/eosio/chain_types.hpp +0 -14
  696. package/include/eosio/check.hpp +0 -178
  697. package/include/eosio/convert.hpp +0 -95
  698. package/include/eosio/crypto.hpp +0 -147
  699. package/include/eosio/eosio_outcome.hpp +0 -41
  700. package/include/eosio/fixed_bytes.hpp +0 -246
  701. package/include/eosio/float.hpp +0 -35
  702. package/include/eosio/for_each_field.hpp +0 -48
  703. package/include/eosio/fpconv.c +0 -336
  704. package/include/eosio/fpconv.h +0 -41
  705. package/include/eosio/fpconv.license +0 -23
  706. package/include/eosio/from_bin.hpp +0 -272
  707. package/include/eosio/from_json.hpp +0 -737
  708. package/include/eosio/from_string.hpp +0 -28
  709. package/include/eosio/map_macro.h +0 -64
  710. package/include/eosio/murmur.hpp +0 -55
  711. package/include/eosio/name.hpp +0 -174
  712. package/include/eosio/opaque.hpp +0 -108
  713. package/include/eosio/operators.hpp +0 -71
  714. package/include/eosio/powers.h +0 -76
  715. package/include/eosio/reflection.hpp +0 -61
  716. package/include/eosio/ship_protocol.hpp +0 -850
  717. package/include/eosio/stream.hpp +0 -231
  718. package/include/eosio/symbol.hpp +0 -300
  719. package/include/eosio/time.hpp +0 -264
  720. package/include/eosio/to_bin.hpp +0 -189
  721. package/include/eosio/to_json.hpp +0 -279
  722. package/include/eosio/to_key.hpp +0 -298
  723. package/include/eosio/types.hpp +0 -97
  724. package/include/eosio/varint.hpp +0 -452
  725. package/include/outcome-basic.hpp +0 -6836
  726. package/src/abi.cpp +0 -297
  727. package/src/abieos.cpp +0 -263
  728. package/src/abieos.h +0 -76
  729. package/src/abieos.hpp +0 -1010
  730. package/src/abieos_exception.hpp +0 -89
  731. package/src/abieos_numeric.hpp +0 -94
  732. package/src/abieos_ripemd160.hpp +0 -417
  733. package/src/crypto.cpp +0 -215
  734. package/src/key_test.cpp +0 -218
  735. package/src/main.cpp +0 -242
  736. package/src/reflect_test.cpp +0 -28
  737. package/src/template_test.cpp +0 -240
  738. package/src/test.cpp +0 -940
  739. package/tools/CMakeLists.txt +0 -9
  740. package/tools/name.cpp +0 -86
@@ -1,3031 +0,0 @@
1
- #ifndef ISLAMIC_H
2
- #define ISLAMIC_H
3
-
4
- // The MIT License (MIT)
5
- //
6
- // Copyright (c) 2016 Howard Hinnant
7
- //
8
- // Permission is hereby granted, free of charge, to any person obtaining a copy
9
- // of this software and associated documentation files (the "Software"), to deal
10
- // in the Software without restriction, including without limitation the rights
11
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12
- // copies of the Software, and to permit persons to whom the Software is
13
- // furnished to do so, subject to the following conditions:
14
- //
15
- // The above copyright notice and this permission notice shall be included in all
16
- // copies or substantial portions of the Software.
17
- //
18
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
- // SOFTWARE.
25
- //
26
- // Our apologies. When the previous paragraph was written, lowercase had not yet
27
- // been invented (that would involve another several millennia of evolution).
28
- // We did not mean to shout.
29
-
30
- #include "date.h"
31
-
32
- namespace islamic
33
- {
34
-
35
- // durations
36
-
37
- using days = date::days;
38
-
39
- using weeks = date::weeks;
40
-
41
- using years = std::chrono::duration
42
- <int, std::ratio_multiply<std::ratio<10631, 30>, days::period>>;
43
-
44
- using months = std::chrono::duration
45
- <int, std::ratio_divide<years::period, std::ratio<12>>>;
46
-
47
- // time_point
48
-
49
- using sys_days = date::sys_days;
50
- using local_days = date::local_days;
51
-
52
- // types
53
-
54
- struct last_spec
55
- {
56
- explicit last_spec() = default;
57
- };
58
-
59
- class day;
60
- class month;
61
- class year;
62
-
63
- class weekday;
64
- class weekday_indexed;
65
- class weekday_last;
66
-
67
- class month_day;
68
- class month_day_last;
69
- class month_weekday;
70
- class month_weekday_last;
71
-
72
- class year_month;
73
-
74
- class year_month_day;
75
- class year_month_day_last;
76
- class year_month_weekday;
77
- class year_month_weekday_last;
78
-
79
- // date composition operators
80
-
81
- CONSTCD11 year_month operator/(const year& y, const month& m) NOEXCEPT;
82
- CONSTCD11 year_month operator/(const year& y, int m) NOEXCEPT;
83
-
84
- CONSTCD11 month_day operator/(const day& d, const month& m) NOEXCEPT;
85
- CONSTCD11 month_day operator/(const day& d, int m) NOEXCEPT;
86
- CONSTCD11 month_day operator/(const month& m, const day& d) NOEXCEPT;
87
- CONSTCD11 month_day operator/(const month& m, int d) NOEXCEPT;
88
- CONSTCD11 month_day operator/(int m, const day& d) NOEXCEPT;
89
-
90
- CONSTCD11 month_day_last operator/(const month& m, last_spec) NOEXCEPT;
91
- CONSTCD11 month_day_last operator/(int m, last_spec) NOEXCEPT;
92
- CONSTCD11 month_day_last operator/(last_spec, const month& m) NOEXCEPT;
93
- CONSTCD11 month_day_last operator/(last_spec, int m) NOEXCEPT;
94
-
95
- CONSTCD11 month_weekday operator/(const month& m, const weekday_indexed& wdi) NOEXCEPT;
96
- CONSTCD11 month_weekday operator/(int m, const weekday_indexed& wdi) NOEXCEPT;
97
- CONSTCD11 month_weekday operator/(const weekday_indexed& wdi, const month& m) NOEXCEPT;
98
- CONSTCD11 month_weekday operator/(const weekday_indexed& wdi, int m) NOEXCEPT;
99
-
100
- CONSTCD11 month_weekday_last operator/(const month& m, const weekday_last& wdl) NOEXCEPT;
101
- CONSTCD11 month_weekday_last operator/(int m, const weekday_last& wdl) NOEXCEPT;
102
- CONSTCD11 month_weekday_last operator/(const weekday_last& wdl, const month& m) NOEXCEPT;
103
- CONSTCD11 month_weekday_last operator/(const weekday_last& wdl, int m) NOEXCEPT;
104
-
105
- CONSTCD11 year_month_day operator/(const year_month& ym, const day& d) NOEXCEPT;
106
- CONSTCD11 year_month_day operator/(const year_month& ym, int d) NOEXCEPT;
107
- CONSTCD11 year_month_day operator/(const year& y, const month_day& md) NOEXCEPT;
108
- CONSTCD11 year_month_day operator/(int y, const month_day& md) NOEXCEPT;
109
- CONSTCD11 year_month_day operator/(const month_day& md, const year& y) NOEXCEPT;
110
- CONSTCD11 year_month_day operator/(const month_day& md, int y) NOEXCEPT;
111
-
112
- CONSTCD11
113
- year_month_day_last operator/(const year_month& ym, last_spec) NOEXCEPT;
114
- CONSTCD11
115
- year_month_day_last operator/(const year& y, const month_day_last& mdl) NOEXCEPT;
116
- CONSTCD11
117
- year_month_day_last operator/(int y, const month_day_last& mdl) NOEXCEPT;
118
- CONSTCD11
119
- year_month_day_last operator/(const month_day_last& mdl, const year& y) NOEXCEPT;
120
- CONSTCD11
121
- year_month_day_last operator/(const month_day_last& mdl, int y) NOEXCEPT;
122
-
123
- CONSTCD11
124
- year_month_weekday
125
- operator/(const year_month& ym, const weekday_indexed& wdi) NOEXCEPT;
126
-
127
- CONSTCD11
128
- year_month_weekday
129
- operator/(const year& y, const month_weekday& mwd) NOEXCEPT;
130
-
131
- CONSTCD11
132
- year_month_weekday
133
- operator/(int y, const month_weekday& mwd) NOEXCEPT;
134
-
135
- CONSTCD11
136
- year_month_weekday
137
- operator/(const month_weekday& mwd, const year& y) NOEXCEPT;
138
-
139
- CONSTCD11
140
- year_month_weekday
141
- operator/(const month_weekday& mwd, int y) NOEXCEPT;
142
-
143
- CONSTCD11
144
- year_month_weekday_last
145
- operator/(const year_month& ym, const weekday_last& wdl) NOEXCEPT;
146
-
147
- CONSTCD11
148
- year_month_weekday_last
149
- operator/(const year& y, const month_weekday_last& mwdl) NOEXCEPT;
150
-
151
- CONSTCD11
152
- year_month_weekday_last
153
- operator/(int y, const month_weekday_last& mwdl) NOEXCEPT;
154
-
155
- CONSTCD11
156
- year_month_weekday_last
157
- operator/(const month_weekday_last& mwdl, const year& y) NOEXCEPT;
158
-
159
- CONSTCD11
160
- year_month_weekday_last
161
- operator/(const month_weekday_last& mwdl, int y) NOEXCEPT;
162
-
163
- // Detailed interface
164
-
165
- // day
166
-
167
- class day
168
- {
169
- unsigned char d_;
170
-
171
- public:
172
- explicit CONSTCD11 day(unsigned d) NOEXCEPT;
173
-
174
- CONSTCD14 day& operator++() NOEXCEPT;
175
- CONSTCD14 day operator++(int) NOEXCEPT;
176
- CONSTCD14 day& operator--() NOEXCEPT;
177
- CONSTCD14 day operator--(int) NOEXCEPT;
178
-
179
- CONSTCD14 day& operator+=(const days& d) NOEXCEPT;
180
- CONSTCD14 day& operator-=(const days& d) NOEXCEPT;
181
-
182
- CONSTCD11 explicit operator unsigned() const NOEXCEPT;
183
- CONSTCD11 bool ok() const NOEXCEPT;
184
- };
185
-
186
- CONSTCD11 bool operator==(const day& x, const day& y) NOEXCEPT;
187
- CONSTCD11 bool operator!=(const day& x, const day& y) NOEXCEPT;
188
- CONSTCD11 bool operator< (const day& x, const day& y) NOEXCEPT;
189
- CONSTCD11 bool operator> (const day& x, const day& y) NOEXCEPT;
190
- CONSTCD11 bool operator<=(const day& x, const day& y) NOEXCEPT;
191
- CONSTCD11 bool operator>=(const day& x, const day& y) NOEXCEPT;
192
-
193
- CONSTCD11 day operator+(const day& x, const days& y) NOEXCEPT;
194
- CONSTCD11 day operator+(const days& x, const day& y) NOEXCEPT;
195
- CONSTCD11 day operator-(const day& x, const days& y) NOEXCEPT;
196
- CONSTCD11 days operator-(const day& x, const day& y) NOEXCEPT;
197
-
198
- template<class CharT, class Traits>
199
- std::basic_ostream<CharT, Traits>&
200
- operator<<(std::basic_ostream<CharT, Traits>& os, const day& d);
201
-
202
- // month
203
-
204
- class month
205
- {
206
- unsigned char m_;
207
-
208
- public:
209
- explicit CONSTCD11 month(unsigned m) NOEXCEPT;
210
-
211
- CONSTCD14 month& operator++() NOEXCEPT;
212
- CONSTCD14 month operator++(int) NOEXCEPT;
213
- CONSTCD14 month& operator--() NOEXCEPT;
214
- CONSTCD14 month operator--(int) NOEXCEPT;
215
-
216
- CONSTCD14 month& operator+=(const months& m) NOEXCEPT;
217
- CONSTCD14 month& operator-=(const months& m) NOEXCEPT;
218
-
219
- CONSTCD11 explicit operator unsigned() const NOEXCEPT;
220
- CONSTCD11 bool ok() const NOEXCEPT;
221
- };
222
-
223
- CONSTCD11 bool operator==(const month& x, const month& y) NOEXCEPT;
224
- CONSTCD11 bool operator!=(const month& x, const month& y) NOEXCEPT;
225
- CONSTCD11 bool operator< (const month& x, const month& y) NOEXCEPT;
226
- CONSTCD11 bool operator> (const month& x, const month& y) NOEXCEPT;
227
- CONSTCD11 bool operator<=(const month& x, const month& y) NOEXCEPT;
228
- CONSTCD11 bool operator>=(const month& x, const month& y) NOEXCEPT;
229
-
230
- CONSTCD14 month operator+(const month& x, const months& y) NOEXCEPT;
231
- CONSTCD14 month operator+(const months& x, const month& y) NOEXCEPT;
232
- CONSTCD14 month operator-(const month& x, const months& y) NOEXCEPT;
233
- CONSTCD14 months operator-(const month& x, const month& y) NOEXCEPT;
234
-
235
- template<class CharT, class Traits>
236
- std::basic_ostream<CharT, Traits>&
237
- operator<<(std::basic_ostream<CharT, Traits>& os, const month& m);
238
-
239
- // year
240
-
241
- class year
242
- {
243
- short y_;
244
-
245
- public:
246
- explicit CONSTCD11 year(int y) NOEXCEPT;
247
-
248
- CONSTCD14 year& operator++() NOEXCEPT;
249
- CONSTCD14 year operator++(int) NOEXCEPT;
250
- CONSTCD14 year& operator--() NOEXCEPT;
251
- CONSTCD14 year operator--(int) NOEXCEPT;
252
-
253
- CONSTCD14 year& operator+=(const years& y) NOEXCEPT;
254
- CONSTCD14 year& operator-=(const years& y) NOEXCEPT;
255
-
256
- CONSTCD14 bool is_leap() const NOEXCEPT;
257
-
258
- CONSTCD11 explicit operator int() const NOEXCEPT;
259
- CONSTCD11 bool ok() const NOEXCEPT;
260
-
261
- static CONSTCD11 year min() NOEXCEPT;
262
- static CONSTCD11 year max() NOEXCEPT;
263
- };
264
-
265
- CONSTCD11 bool operator==(const year& x, const year& y) NOEXCEPT;
266
- CONSTCD11 bool operator!=(const year& x, const year& y) NOEXCEPT;
267
- CONSTCD11 bool operator< (const year& x, const year& y) NOEXCEPT;
268
- CONSTCD11 bool operator> (const year& x, const year& y) NOEXCEPT;
269
- CONSTCD11 bool operator<=(const year& x, const year& y) NOEXCEPT;
270
- CONSTCD11 bool operator>=(const year& x, const year& y) NOEXCEPT;
271
-
272
- CONSTCD11 year operator+(const year& x, const years& y) NOEXCEPT;
273
- CONSTCD11 year operator+(const years& x, const year& y) NOEXCEPT;
274
- CONSTCD11 year operator-(const year& x, const years& y) NOEXCEPT;
275
- CONSTCD11 years operator-(const year& x, const year& y) NOEXCEPT;
276
-
277
- template<class CharT, class Traits>
278
- std::basic_ostream<CharT, Traits>&
279
- operator<<(std::basic_ostream<CharT, Traits>& os, const year& y);
280
-
281
- // weekday
282
-
283
- class weekday
284
- {
285
- unsigned char wd_;
286
- public:
287
- explicit CONSTCD11 weekday(unsigned wd) NOEXCEPT;
288
- explicit weekday(int) = delete;
289
- CONSTCD11 weekday(const sys_days& dp) NOEXCEPT;
290
- CONSTCD11 explicit weekday(const local_days& dp) NOEXCEPT;
291
-
292
- CONSTCD14 weekday& operator++() NOEXCEPT;
293
- CONSTCD14 weekday operator++(int) NOEXCEPT;
294
- CONSTCD14 weekday& operator--() NOEXCEPT;
295
- CONSTCD14 weekday operator--(int) NOEXCEPT;
296
-
297
- CONSTCD14 weekday& operator+=(const days& d) NOEXCEPT;
298
- CONSTCD14 weekday& operator-=(const days& d) NOEXCEPT;
299
-
300
- CONSTCD11 explicit operator unsigned() const NOEXCEPT;
301
- CONSTCD11 bool ok() const NOEXCEPT;
302
-
303
- CONSTCD11 weekday_indexed operator[](unsigned index) const NOEXCEPT;
304
- CONSTCD11 weekday_last operator[](last_spec) const NOEXCEPT;
305
-
306
- private:
307
- static CONSTCD11 unsigned char weekday_from_days(int z) NOEXCEPT;
308
- };
309
-
310
- CONSTCD11 bool operator==(const weekday& x, const weekday& y) NOEXCEPT;
311
- CONSTCD11 bool operator!=(const weekday& x, const weekday& y) NOEXCEPT;
312
-
313
- CONSTCD14 weekday operator+(const weekday& x, const days& y) NOEXCEPT;
314
- CONSTCD14 weekday operator+(const days& x, const weekday& y) NOEXCEPT;
315
- CONSTCD14 weekday operator-(const weekday& x, const days& y) NOEXCEPT;
316
- CONSTCD14 days operator-(const weekday& x, const weekday& y) NOEXCEPT;
317
-
318
- template<class CharT, class Traits>
319
- std::basic_ostream<CharT, Traits>&
320
- operator<<(std::basic_ostream<CharT, Traits>& os, const weekday& wd);
321
-
322
- // weekday_indexed
323
-
324
- class weekday_indexed
325
- {
326
- unsigned char wd_ : 4;
327
- unsigned char index_ : 4;
328
-
329
- public:
330
- CONSTCD11 weekday_indexed(const islamic::weekday& wd, unsigned index) NOEXCEPT;
331
-
332
- CONSTCD11 islamic::weekday weekday() const NOEXCEPT;
333
- CONSTCD11 unsigned index() const NOEXCEPT;
334
- CONSTCD11 bool ok() const NOEXCEPT;
335
- };
336
-
337
- CONSTCD11 bool operator==(const weekday_indexed& x, const weekday_indexed& y) NOEXCEPT;
338
- CONSTCD11 bool operator!=(const weekday_indexed& x, const weekday_indexed& y) NOEXCEPT;
339
-
340
- template<class CharT, class Traits>
341
- std::basic_ostream<CharT, Traits>&
342
- operator<<(std::basic_ostream<CharT, Traits>& os, const weekday_indexed& wdi);
343
-
344
- // weekday_last
345
-
346
- class weekday_last
347
- {
348
- islamic::weekday wd_;
349
-
350
- public:
351
- explicit CONSTCD11 weekday_last(const islamic::weekday& wd) NOEXCEPT;
352
-
353
- CONSTCD11 islamic::weekday weekday() const NOEXCEPT;
354
- CONSTCD11 bool ok() const NOEXCEPT;
355
- };
356
-
357
- CONSTCD11 bool operator==(const weekday_last& x, const weekday_last& y) NOEXCEPT;
358
- CONSTCD11 bool operator!=(const weekday_last& x, const weekday_last& y) NOEXCEPT;
359
-
360
- template<class CharT, class Traits>
361
- std::basic_ostream<CharT, Traits>&
362
- operator<<(std::basic_ostream<CharT, Traits>& os, const weekday_last& wdl);
363
-
364
- // year_month
365
-
366
- class year_month
367
- {
368
- islamic::year y_;
369
- islamic::month m_;
370
-
371
- public:
372
- CONSTCD11 year_month(const islamic::year& y, const islamic::month& m) NOEXCEPT;
373
-
374
- CONSTCD11 islamic::year year() const NOEXCEPT;
375
- CONSTCD11 islamic::month month() const NOEXCEPT;
376
-
377
- CONSTCD14 year_month& operator+=(const months& dm) NOEXCEPT;
378
- CONSTCD14 year_month& operator-=(const months& dm) NOEXCEPT;
379
- CONSTCD14 year_month& operator+=(const years& dy) NOEXCEPT;
380
- CONSTCD14 year_month& operator-=(const years& dy) NOEXCEPT;
381
-
382
- CONSTCD11 bool ok() const NOEXCEPT;
383
- };
384
-
385
- CONSTCD11 bool operator==(const year_month& x, const year_month& y) NOEXCEPT;
386
- CONSTCD11 bool operator!=(const year_month& x, const year_month& y) NOEXCEPT;
387
- CONSTCD11 bool operator< (const year_month& x, const year_month& y) NOEXCEPT;
388
- CONSTCD11 bool operator> (const year_month& x, const year_month& y) NOEXCEPT;
389
- CONSTCD11 bool operator<=(const year_month& x, const year_month& y) NOEXCEPT;
390
- CONSTCD11 bool operator>=(const year_month& x, const year_month& y) NOEXCEPT;
391
-
392
- CONSTCD14 year_month operator+(const year_month& ym, const months& dm) NOEXCEPT;
393
- CONSTCD14 year_month operator+(const months& dm, const year_month& ym) NOEXCEPT;
394
- CONSTCD14 year_month operator-(const year_month& ym, const months& dm) NOEXCEPT;
395
-
396
- CONSTCD11 months operator-(const year_month& x, const year_month& y) NOEXCEPT;
397
- CONSTCD11 year_month operator+(const year_month& ym, const years& dy) NOEXCEPT;
398
- CONSTCD11 year_month operator+(const years& dy, const year_month& ym) NOEXCEPT;
399
- CONSTCD11 year_month operator-(const year_month& ym, const years& dy) NOEXCEPT;
400
-
401
- template<class CharT, class Traits>
402
- std::basic_ostream<CharT, Traits>&
403
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month& ym);
404
-
405
- // month_day
406
-
407
- class month_day
408
- {
409
- islamic::month m_;
410
- islamic::day d_;
411
-
412
- public:
413
- CONSTCD11 month_day(const islamic::month& m, const islamic::day& d) NOEXCEPT;
414
-
415
- CONSTCD11 islamic::month month() const NOEXCEPT;
416
- CONSTCD11 islamic::day day() const NOEXCEPT;
417
-
418
- CONSTCD14 bool ok() const NOEXCEPT;
419
- };
420
-
421
- CONSTCD11 bool operator==(const month_day& x, const month_day& y) NOEXCEPT;
422
- CONSTCD11 bool operator!=(const month_day& x, const month_day& y) NOEXCEPT;
423
- CONSTCD11 bool operator< (const month_day& x, const month_day& y) NOEXCEPT;
424
- CONSTCD11 bool operator> (const month_day& x, const month_day& y) NOEXCEPT;
425
- CONSTCD11 bool operator<=(const month_day& x, const month_day& y) NOEXCEPT;
426
- CONSTCD11 bool operator>=(const month_day& x, const month_day& y) NOEXCEPT;
427
-
428
- template<class CharT, class Traits>
429
- std::basic_ostream<CharT, Traits>&
430
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_day& md);
431
-
432
- // month_day_last
433
-
434
- class month_day_last
435
- {
436
- islamic::month m_;
437
-
438
- public:
439
- CONSTCD11 explicit month_day_last(const islamic::month& m) NOEXCEPT;
440
-
441
- CONSTCD11 islamic::month month() const NOEXCEPT;
442
- CONSTCD11 bool ok() const NOEXCEPT;
443
- };
444
-
445
- CONSTCD11 bool operator==(const month_day_last& x, const month_day_last& y) NOEXCEPT;
446
- CONSTCD11 bool operator!=(const month_day_last& x, const month_day_last& y) NOEXCEPT;
447
- CONSTCD11 bool operator< (const month_day_last& x, const month_day_last& y) NOEXCEPT;
448
- CONSTCD11 bool operator> (const month_day_last& x, const month_day_last& y) NOEXCEPT;
449
- CONSTCD11 bool operator<=(const month_day_last& x, const month_day_last& y) NOEXCEPT;
450
- CONSTCD11 bool operator>=(const month_day_last& x, const month_day_last& y) NOEXCEPT;
451
-
452
- template<class CharT, class Traits>
453
- std::basic_ostream<CharT, Traits>&
454
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_day_last& mdl);
455
-
456
- // month_weekday
457
-
458
- class month_weekday
459
- {
460
- islamic::month m_;
461
- islamic::weekday_indexed wdi_;
462
- public:
463
- CONSTCD11 month_weekday(const islamic::month& m,
464
- const islamic::weekday_indexed& wdi) NOEXCEPT;
465
-
466
- CONSTCD11 islamic::month month() const NOEXCEPT;
467
- CONSTCD11 islamic::weekday_indexed weekday_indexed() const NOEXCEPT;
468
-
469
- CONSTCD11 bool ok() const NOEXCEPT;
470
- };
471
-
472
- CONSTCD11 bool operator==(const month_weekday& x, const month_weekday& y) NOEXCEPT;
473
- CONSTCD11 bool operator!=(const month_weekday& x, const month_weekday& y) NOEXCEPT;
474
-
475
- template<class CharT, class Traits>
476
- std::basic_ostream<CharT, Traits>&
477
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_weekday& mwd);
478
-
479
- // month_weekday_last
480
-
481
- class month_weekday_last
482
- {
483
- islamic::month m_;
484
- islamic::weekday_last wdl_;
485
-
486
- public:
487
- CONSTCD11 month_weekday_last(const islamic::month& m,
488
- const islamic::weekday_last& wd) NOEXCEPT;
489
-
490
- CONSTCD11 islamic::month month() const NOEXCEPT;
491
- CONSTCD11 islamic::weekday_last weekday_last() const NOEXCEPT;
492
-
493
- CONSTCD11 bool ok() const NOEXCEPT;
494
- };
495
-
496
- CONSTCD11
497
- bool operator==(const month_weekday_last& x, const month_weekday_last& y) NOEXCEPT;
498
- CONSTCD11
499
- bool operator!=(const month_weekday_last& x, const month_weekday_last& y) NOEXCEPT;
500
-
501
- template<class CharT, class Traits>
502
- std::basic_ostream<CharT, Traits>&
503
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_weekday_last& mwdl);
504
-
505
- // class year_month_day
506
-
507
- class year_month_day
508
- {
509
- islamic::year y_;
510
- islamic::month m_;
511
- islamic::day d_;
512
-
513
- public:
514
- CONSTCD11 year_month_day(const islamic::year& y, const islamic::month& m,
515
- const islamic::day& d) NOEXCEPT;
516
- CONSTCD14 year_month_day(const year_month_day_last& ymdl) NOEXCEPT;
517
-
518
- CONSTCD14 year_month_day(sys_days dp) NOEXCEPT;
519
- CONSTCD14 explicit year_month_day(local_days dp) NOEXCEPT;
520
-
521
- CONSTCD14 year_month_day& operator+=(const months& m) NOEXCEPT;
522
- CONSTCD14 year_month_day& operator-=(const months& m) NOEXCEPT;
523
- CONSTCD14 year_month_day& operator+=(const years& y) NOEXCEPT;
524
- CONSTCD14 year_month_day& operator-=(const years& y) NOEXCEPT;
525
-
526
- CONSTCD11 islamic::year year() const NOEXCEPT;
527
- CONSTCD11 islamic::month month() const NOEXCEPT;
528
- CONSTCD11 islamic::day day() const NOEXCEPT;
529
-
530
- CONSTCD14 operator sys_days() const NOEXCEPT;
531
- CONSTCD14 explicit operator local_days() const NOEXCEPT;
532
- CONSTCD14 bool ok() const NOEXCEPT;
533
-
534
- private:
535
- static CONSTCD14 year_month_day from_days(days dp) NOEXCEPT;
536
- CONSTCD14 days to_days() const NOEXCEPT;
537
- };
538
-
539
- CONSTCD11 bool operator==(const year_month_day& x, const year_month_day& y) NOEXCEPT;
540
- CONSTCD11 bool operator!=(const year_month_day& x, const year_month_day& y) NOEXCEPT;
541
- CONSTCD11 bool operator< (const year_month_day& x, const year_month_day& y) NOEXCEPT;
542
- CONSTCD11 bool operator> (const year_month_day& x, const year_month_day& y) NOEXCEPT;
543
- CONSTCD11 bool operator<=(const year_month_day& x, const year_month_day& y) NOEXCEPT;
544
- CONSTCD11 bool operator>=(const year_month_day& x, const year_month_day& y) NOEXCEPT;
545
-
546
- CONSTCD14 year_month_day operator+(const year_month_day& ymd, const months& dm) NOEXCEPT;
547
- CONSTCD14 year_month_day operator+(const months& dm, const year_month_day& ymd) NOEXCEPT;
548
- CONSTCD14 year_month_day operator-(const year_month_day& ymd, const months& dm) NOEXCEPT;
549
- CONSTCD11 year_month_day operator+(const year_month_day& ymd, const years& dy) NOEXCEPT;
550
- CONSTCD11 year_month_day operator+(const years& dy, const year_month_day& ymd) NOEXCEPT;
551
- CONSTCD11 year_month_day operator-(const year_month_day& ymd, const years& dy) NOEXCEPT;
552
-
553
- template<class CharT, class Traits>
554
- std::basic_ostream<CharT, Traits>&
555
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_day& ymd);
556
-
557
- // year_month_day_last
558
-
559
- class year_month_day_last
560
- {
561
- islamic::year y_;
562
- islamic::month_day_last mdl_;
563
-
564
- public:
565
- CONSTCD11 year_month_day_last(const islamic::year& y,
566
- const islamic::month_day_last& mdl) NOEXCEPT;
567
-
568
- CONSTCD14 year_month_day_last& operator+=(const months& m) NOEXCEPT;
569
- CONSTCD14 year_month_day_last& operator-=(const months& m) NOEXCEPT;
570
- CONSTCD14 year_month_day_last& operator+=(const years& y) NOEXCEPT;
571
- CONSTCD14 year_month_day_last& operator-=(const years& y) NOEXCEPT;
572
-
573
- CONSTCD11 islamic::year year() const NOEXCEPT;
574
- CONSTCD11 islamic::month month() const NOEXCEPT;
575
- CONSTCD11 islamic::month_day_last month_day_last() const NOEXCEPT;
576
- CONSTCD14 islamic::day day() const NOEXCEPT;
577
-
578
- CONSTCD14 operator sys_days() const NOEXCEPT;
579
- CONSTCD14 explicit operator local_days() const NOEXCEPT;
580
- CONSTCD11 bool ok() const NOEXCEPT;
581
- };
582
-
583
- CONSTCD11
584
- bool operator==(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT;
585
- CONSTCD11
586
- bool operator!=(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT;
587
- CONSTCD11
588
- bool operator< (const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT;
589
- CONSTCD11
590
- bool operator> (const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT;
591
- CONSTCD11
592
- bool operator<=(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT;
593
- CONSTCD11
594
- bool operator>=(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT;
595
-
596
- CONSTCD14
597
- year_month_day_last
598
- operator+(const year_month_day_last& ymdl, const months& dm) NOEXCEPT;
599
-
600
- CONSTCD14
601
- year_month_day_last
602
- operator+(const months& dm, const year_month_day_last& ymdl) NOEXCEPT;
603
-
604
- CONSTCD11
605
- year_month_day_last
606
- operator+(const year_month_day_last& ymdl, const years& dy) NOEXCEPT;
607
-
608
- CONSTCD11
609
- year_month_day_last
610
- operator+(const years& dy, const year_month_day_last& ymdl) NOEXCEPT;
611
-
612
- CONSTCD14
613
- year_month_day_last
614
- operator-(const year_month_day_last& ymdl, const months& dm) NOEXCEPT;
615
-
616
- CONSTCD11
617
- year_month_day_last
618
- operator-(const year_month_day_last& ymdl, const years& dy) NOEXCEPT;
619
-
620
- template<class CharT, class Traits>
621
- std::basic_ostream<CharT, Traits>&
622
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_day_last& ymdl);
623
-
624
- // year_month_weekday
625
-
626
- class year_month_weekday
627
- {
628
- islamic::year y_;
629
- islamic::month m_;
630
- islamic::weekday_indexed wdi_;
631
-
632
- public:
633
- CONSTCD11 year_month_weekday(const islamic::year& y, const islamic::month& m,
634
- const islamic::weekday_indexed& wdi) NOEXCEPT;
635
- CONSTCD14 year_month_weekday(const sys_days& dp) NOEXCEPT;
636
- CONSTCD14 explicit year_month_weekday(const local_days& dp) NOEXCEPT;
637
-
638
- CONSTCD14 year_month_weekday& operator+=(const months& m) NOEXCEPT;
639
- CONSTCD14 year_month_weekday& operator-=(const months& m) NOEXCEPT;
640
- CONSTCD14 year_month_weekday& operator+=(const years& y) NOEXCEPT;
641
- CONSTCD14 year_month_weekday& operator-=(const years& y) NOEXCEPT;
642
-
643
- CONSTCD11 islamic::year year() const NOEXCEPT;
644
- CONSTCD11 islamic::month month() const NOEXCEPT;
645
- CONSTCD11 islamic::weekday weekday() const NOEXCEPT;
646
- CONSTCD11 unsigned index() const NOEXCEPT;
647
- CONSTCD11 islamic::weekday_indexed weekday_indexed() const NOEXCEPT;
648
-
649
- CONSTCD14 operator sys_days() const NOEXCEPT;
650
- CONSTCD14 explicit operator local_days() const NOEXCEPT;
651
- CONSTCD14 bool ok() const NOEXCEPT;
652
-
653
- private:
654
- static CONSTCD14 year_month_weekday from_days(days dp) NOEXCEPT;
655
- CONSTCD14 days to_days() const NOEXCEPT;
656
- };
657
-
658
- CONSTCD11
659
- bool operator==(const year_month_weekday& x, const year_month_weekday& y) NOEXCEPT;
660
- CONSTCD11
661
- bool operator!=(const year_month_weekday& x, const year_month_weekday& y) NOEXCEPT;
662
-
663
- CONSTCD14
664
- year_month_weekday
665
- operator+(const year_month_weekday& ymwd, const months& dm) NOEXCEPT;
666
-
667
- CONSTCD14
668
- year_month_weekday
669
- operator+(const months& dm, const year_month_weekday& ymwd) NOEXCEPT;
670
-
671
- CONSTCD11
672
- year_month_weekday
673
- operator+(const year_month_weekday& ymwd, const years& dy) NOEXCEPT;
674
-
675
- CONSTCD11
676
- year_month_weekday
677
- operator+(const years& dy, const year_month_weekday& ymwd) NOEXCEPT;
678
-
679
- CONSTCD14
680
- year_month_weekday
681
- operator-(const year_month_weekday& ymwd, const months& dm) NOEXCEPT;
682
-
683
- CONSTCD11
684
- year_month_weekday
685
- operator-(const year_month_weekday& ymwd, const years& dy) NOEXCEPT;
686
-
687
- template<class CharT, class Traits>
688
- std::basic_ostream<CharT, Traits>&
689
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_weekday& ymwdi);
690
-
691
- // year_month_weekday_last
692
-
693
- class year_month_weekday_last
694
- {
695
- islamic::year y_;
696
- islamic::month m_;
697
- islamic::weekday_last wdl_;
698
-
699
- public:
700
- CONSTCD11 year_month_weekday_last(const islamic::year& y, const islamic::month& m,
701
- const islamic::weekday_last& wdl) NOEXCEPT;
702
-
703
- CONSTCD14 year_month_weekday_last& operator+=(const months& m) NOEXCEPT;
704
- CONSTCD14 year_month_weekday_last& operator-=(const months& m) NOEXCEPT;
705
- CONSTCD14 year_month_weekday_last& operator+=(const years& y) NOEXCEPT;
706
- CONSTCD14 year_month_weekday_last& operator-=(const years& y) NOEXCEPT;
707
-
708
- CONSTCD11 islamic::year year() const NOEXCEPT;
709
- CONSTCD11 islamic::month month() const NOEXCEPT;
710
- CONSTCD11 islamic::weekday weekday() const NOEXCEPT;
711
- CONSTCD11 islamic::weekday_last weekday_last() const NOEXCEPT;
712
-
713
- CONSTCD14 operator sys_days() const NOEXCEPT;
714
- CONSTCD14 explicit operator local_days() const NOEXCEPT;
715
- CONSTCD11 bool ok() const NOEXCEPT;
716
-
717
- private:
718
- CONSTCD14 days to_days() const NOEXCEPT;
719
- };
720
-
721
- CONSTCD11
722
- bool
723
- operator==(const year_month_weekday_last& x, const year_month_weekday_last& y) NOEXCEPT;
724
-
725
- CONSTCD11
726
- bool
727
- operator!=(const year_month_weekday_last& x, const year_month_weekday_last& y) NOEXCEPT;
728
-
729
- CONSTCD14
730
- year_month_weekday_last
731
- operator+(const year_month_weekday_last& ymwdl, const months& dm) NOEXCEPT;
732
-
733
- CONSTCD14
734
- year_month_weekday_last
735
- operator+(const months& dm, const year_month_weekday_last& ymwdl) NOEXCEPT;
736
-
737
- CONSTCD11
738
- year_month_weekday_last
739
- operator+(const year_month_weekday_last& ymwdl, const years& dy) NOEXCEPT;
740
-
741
- CONSTCD11
742
- year_month_weekday_last
743
- operator+(const years& dy, const year_month_weekday_last& ymwdl) NOEXCEPT;
744
-
745
- CONSTCD14
746
- year_month_weekday_last
747
- operator-(const year_month_weekday_last& ymwdl, const months& dm) NOEXCEPT;
748
-
749
- CONSTCD11
750
- year_month_weekday_last
751
- operator-(const year_month_weekday_last& ymwdl, const years& dy) NOEXCEPT;
752
-
753
- template<class CharT, class Traits>
754
- std::basic_ostream<CharT, Traits>&
755
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_weekday_last& ymwdl);
756
-
757
- #if !defined(_MSC_VER) || (_MSC_VER >= 1900)
758
- inline namespace literals
759
- {
760
-
761
- CONSTCD11 islamic::day operator "" _d(unsigned long long d) NOEXCEPT;
762
- CONSTCD11 islamic::year operator "" _y(unsigned long long y) NOEXCEPT;
763
-
764
- } // inline namespace literals
765
- #endif // !defined(_MSC_VER) || (_MSC_VER >= 1900)
766
-
767
- //----------------+
768
- // Implementation |
769
- //----------------+
770
-
771
- // day
772
-
773
- CONSTCD11 inline day::day(unsigned d) NOEXCEPT : d_(static_cast<unsigned char>(d)) {}
774
- CONSTCD14 inline day& day::operator++() NOEXCEPT {++d_; return *this;}
775
- CONSTCD14 inline day day::operator++(int) NOEXCEPT {auto tmp(*this); ++(*this); return tmp;}
776
- CONSTCD14 inline day& day::operator--() NOEXCEPT {--d_; return *this;}
777
- CONSTCD14 inline day day::operator--(int) NOEXCEPT {auto tmp(*this); --(*this); return tmp;}
778
- CONSTCD14 inline day& day::operator+=(const days& d) NOEXCEPT {*this = *this + d; return *this;}
779
- CONSTCD14 inline day& day::operator-=(const days& d) NOEXCEPT {*this = *this - d; return *this;}
780
- CONSTCD11 inline day::operator unsigned() const NOEXCEPT {return d_;}
781
- CONSTCD11 inline bool day::ok() const NOEXCEPT {return 1 <= d_ && d_ <= 30;}
782
-
783
- CONSTCD11
784
- inline
785
- bool
786
- operator==(const day& x, const day& y) NOEXCEPT
787
- {
788
- return static_cast<unsigned>(x) == static_cast<unsigned>(y);
789
- }
790
-
791
- CONSTCD11
792
- inline
793
- bool
794
- operator!=(const day& x, const day& y) NOEXCEPT
795
- {
796
- return !(x == y);
797
- }
798
-
799
- CONSTCD11
800
- inline
801
- bool
802
- operator<(const day& x, const day& y) NOEXCEPT
803
- {
804
- return static_cast<unsigned>(x) < static_cast<unsigned>(y);
805
- }
806
-
807
- CONSTCD11
808
- inline
809
- bool
810
- operator>(const day& x, const day& y) NOEXCEPT
811
- {
812
- return y < x;
813
- }
814
-
815
- CONSTCD11
816
- inline
817
- bool
818
- operator<=(const day& x, const day& y) NOEXCEPT
819
- {
820
- return !(y < x);
821
- }
822
-
823
- CONSTCD11
824
- inline
825
- bool
826
- operator>=(const day& x, const day& y) NOEXCEPT
827
- {
828
- return !(x < y);
829
- }
830
-
831
- CONSTCD11
832
- inline
833
- days
834
- operator-(const day& x, const day& y) NOEXCEPT
835
- {
836
- return days{static_cast<days::rep>(static_cast<unsigned>(x)
837
- - static_cast<unsigned>(y))};
838
- }
839
-
840
- CONSTCD11
841
- inline
842
- day
843
- operator+(const day& x, const days& y) NOEXCEPT
844
- {
845
- return day{static_cast<unsigned>(x) + static_cast<unsigned>(y.count())};
846
- }
847
-
848
- CONSTCD11
849
- inline
850
- day
851
- operator+(const days& x, const day& y) NOEXCEPT
852
- {
853
- return y + x;
854
- }
855
-
856
- CONSTCD11
857
- inline
858
- day
859
- operator-(const day& x, const days& y) NOEXCEPT
860
- {
861
- return x + -y;
862
- }
863
-
864
- template<class CharT, class Traits>
865
- inline
866
- std::basic_ostream<CharT, Traits>&
867
- operator<<(std::basic_ostream<CharT, Traits>& os, const day& d)
868
- {
869
- date::detail::save_ostream<CharT, Traits> _(os);
870
- os.fill('0');
871
- os.flags(std::ios::dec | std::ios::right);
872
- os.width(2);
873
- os << static_cast<unsigned>(d);
874
- return os;
875
- }
876
-
877
- // month
878
-
879
- CONSTCD11 inline month::month(unsigned m) NOEXCEPT : m_(static_cast<decltype(m_)>(m)) {}
880
- CONSTCD14 inline month& month::operator++() NOEXCEPT {if (++m_ == 13) m_ = 1; return *this;}
881
- CONSTCD14 inline month month::operator++(int) NOEXCEPT {auto tmp(*this); ++(*this); return tmp;}
882
- CONSTCD14 inline month& month::operator--() NOEXCEPT {if (--m_ == 0) m_ = 12; return *this;}
883
- CONSTCD14 inline month month::operator--(int) NOEXCEPT {auto tmp(*this); --(*this); return tmp;}
884
-
885
- CONSTCD14
886
- inline
887
- month&
888
- month::operator+=(const months& m) NOEXCEPT
889
- {
890
- *this = *this + m;
891
- return *this;
892
- }
893
-
894
- CONSTCD14
895
- inline
896
- month&
897
- month::operator-=(const months& m) NOEXCEPT
898
- {
899
- *this = *this - m;
900
- return *this;
901
- }
902
-
903
- CONSTCD11 inline month::operator unsigned() const NOEXCEPT {return m_;}
904
- CONSTCD11 inline bool month::ok() const NOEXCEPT {return 1 <= m_ && m_ <= 12;}
905
-
906
- CONSTCD11
907
- inline
908
- bool
909
- operator==(const month& x, const month& y) NOEXCEPT
910
- {
911
- return static_cast<unsigned>(x) == static_cast<unsigned>(y);
912
- }
913
-
914
- CONSTCD11
915
- inline
916
- bool
917
- operator!=(const month& x, const month& y) NOEXCEPT
918
- {
919
- return !(x == y);
920
- }
921
-
922
- CONSTCD11
923
- inline
924
- bool
925
- operator<(const month& x, const month& y) NOEXCEPT
926
- {
927
- return static_cast<unsigned>(x) < static_cast<unsigned>(y);
928
- }
929
-
930
- CONSTCD11
931
- inline
932
- bool
933
- operator>(const month& x, const month& y) NOEXCEPT
934
- {
935
- return y < x;
936
- }
937
-
938
- CONSTCD11
939
- inline
940
- bool
941
- operator<=(const month& x, const month& y) NOEXCEPT
942
- {
943
- return !(y < x);
944
- }
945
-
946
- CONSTCD11
947
- inline
948
- bool
949
- operator>=(const month& x, const month& y) NOEXCEPT
950
- {
951
- return !(x < y);
952
- }
953
-
954
- CONSTCD14
955
- inline
956
- months
957
- operator-(const month& x, const month& y) NOEXCEPT
958
- {
959
- auto const d = static_cast<unsigned>(x) - static_cast<unsigned>(y);
960
- return months(d <= 11 ? d : d + 12);
961
- }
962
-
963
- CONSTCD14
964
- inline
965
- month
966
- operator+(const month& x, const months& y) NOEXCEPT
967
- {
968
- auto const mu = static_cast<long long>(static_cast<unsigned>(x)) - 1 + y.count();
969
- auto const yr = (mu >= 0 ? mu : mu-11) / 12;
970
- return month{static_cast<unsigned>(mu - yr * 12 + 1)};
971
- }
972
-
973
- CONSTCD14
974
- inline
975
- month
976
- operator+(const months& x, const month& y) NOEXCEPT
977
- {
978
- return y + x;
979
- }
980
-
981
- CONSTCD14
982
- inline
983
- month
984
- operator-(const month& x, const months& y) NOEXCEPT
985
- {
986
- return x + -y;
987
- }
988
-
989
- template<class CharT, class Traits>
990
- inline
991
- std::basic_ostream<CharT, Traits>&
992
- operator<<(std::basic_ostream<CharT, Traits>& os, const month& m)
993
- {
994
- switch (static_cast<unsigned>(m))
995
- {
996
- case 1:
997
- os << "Muharram";
998
- break;
999
- case 2:
1000
- os << "Safar";
1001
- break;
1002
- case 3:
1003
- os << "Rabi' al-awwal";
1004
- break;
1005
- case 4:
1006
- os << "Rabi' al-thani";
1007
- break;
1008
- case 5:
1009
- os << "Jumada al-awwal";
1010
- break;
1011
- case 6:
1012
- os << "Jumada al-Thani";
1013
- break;
1014
- case 7:
1015
- os << "Rajab";
1016
- break;
1017
- case 8:
1018
- os << "Sha'ban";
1019
- break;
1020
- case 9:
1021
- os << "Ramadan";
1022
- break;
1023
- case 10:
1024
- os << "Shawwal";
1025
- break;
1026
- case 11:
1027
- os << "Dhu al-Qi'dah";
1028
- break;
1029
- case 12:
1030
- os << "Dhu al-Hijjah";
1031
- break;
1032
- default:
1033
- os << static_cast<unsigned>(m) << " is not a valid month";
1034
- break;
1035
- }
1036
- return os;
1037
- }
1038
-
1039
- // year
1040
-
1041
- CONSTCD11 inline year::year(int y) NOEXCEPT : y_(static_cast<decltype(y_)>(y)) {}
1042
- CONSTCD14 inline year& year::operator++() NOEXCEPT {++y_; return *this;}
1043
- CONSTCD14 inline year year::operator++(int) NOEXCEPT {auto tmp(*this); ++(*this); return tmp;}
1044
- CONSTCD14 inline year& year::operator--() NOEXCEPT {--y_; return *this;}
1045
- CONSTCD14 inline year year::operator--(int) NOEXCEPT {auto tmp(*this); --(*this); return tmp;}
1046
- CONSTCD14 inline year& year::operator+=(const years& y) NOEXCEPT {*this = *this + y; return *this;}
1047
- CONSTCD14 inline year& year::operator-=(const years& y) NOEXCEPT {*this = *this - y; return *this;}
1048
-
1049
- CONSTCD14
1050
- inline
1051
- bool
1052
- year::is_leap() const NOEXCEPT
1053
- {
1054
- int y = y_ - 1;
1055
- const int era = (y >= 0 ? y : y-29) / 30;
1056
- const unsigned yoe = static_cast<unsigned>(y - era * 30);
1057
- switch (yoe)
1058
- {
1059
- case 1:
1060
- case 4:
1061
- case 6:
1062
- case 9:
1063
- case 12:
1064
- case 15:
1065
- case 17:
1066
- case 20:
1067
- case 23:
1068
- case 25:
1069
- case 28:
1070
- return true;
1071
- default:
1072
- return false;
1073
- }
1074
- }
1075
-
1076
- CONSTCD11 inline year::operator int() const NOEXCEPT {return y_;}
1077
- CONSTCD11 inline bool year::ok() const NOEXCEPT {return true;}
1078
-
1079
- CONSTCD11
1080
- inline
1081
- year
1082
- year::min() NOEXCEPT
1083
- {
1084
- return year{std::numeric_limits<short>::min()};
1085
- }
1086
-
1087
- CONSTCD11
1088
- inline
1089
- year
1090
- year::max() NOEXCEPT
1091
- {
1092
- return year{std::numeric_limits<short>::max()};
1093
- }
1094
-
1095
- CONSTCD11
1096
- inline
1097
- bool
1098
- operator==(const year& x, const year& y) NOEXCEPT
1099
- {
1100
- return static_cast<int>(x) == static_cast<int>(y);
1101
- }
1102
-
1103
- CONSTCD11
1104
- inline
1105
- bool
1106
- operator!=(const year& x, const year& y) NOEXCEPT
1107
- {
1108
- return !(x == y);
1109
- }
1110
-
1111
- CONSTCD11
1112
- inline
1113
- bool
1114
- operator<(const year& x, const year& y) NOEXCEPT
1115
- {
1116
- return static_cast<int>(x) < static_cast<int>(y);
1117
- }
1118
-
1119
- CONSTCD11
1120
- inline
1121
- bool
1122
- operator>(const year& x, const year& y) NOEXCEPT
1123
- {
1124
- return y < x;
1125
- }
1126
-
1127
- CONSTCD11
1128
- inline
1129
- bool
1130
- operator<=(const year& x, const year& y) NOEXCEPT
1131
- {
1132
- return !(y < x);
1133
- }
1134
-
1135
- CONSTCD11
1136
- inline
1137
- bool
1138
- operator>=(const year& x, const year& y) NOEXCEPT
1139
- {
1140
- return !(x < y);
1141
- }
1142
-
1143
- CONSTCD11
1144
- inline
1145
- years
1146
- operator-(const year& x, const year& y) NOEXCEPT
1147
- {
1148
- return years{static_cast<int>(x) - static_cast<int>(y)};
1149
- }
1150
-
1151
- CONSTCD11
1152
- inline
1153
- year
1154
- operator+(const year& x, const years& y) NOEXCEPT
1155
- {
1156
- return year{static_cast<int>(x) + y.count()};
1157
- }
1158
-
1159
- CONSTCD11
1160
- inline
1161
- year
1162
- operator+(const years& x, const year& y) NOEXCEPT
1163
- {
1164
- return y + x;
1165
- }
1166
-
1167
- CONSTCD11
1168
- inline
1169
- year
1170
- operator-(const year& x, const years& y) NOEXCEPT
1171
- {
1172
- return year{static_cast<int>(x) - y.count()};
1173
- }
1174
-
1175
- template<class CharT, class Traits>
1176
- inline
1177
- std::basic_ostream<CharT, Traits>&
1178
- operator<<(std::basic_ostream<CharT, Traits>& os, const year& y)
1179
- {
1180
- date::detail::save_ostream<CharT, Traits> _(os);
1181
- os.fill('0');
1182
- os.flags(std::ios::dec | std::ios::internal);
1183
- os.width(4 + (y < year{0}));
1184
- os << static_cast<int>(y);
1185
- return os;
1186
- }
1187
-
1188
- // weekday
1189
-
1190
- CONSTCD11
1191
- inline
1192
- unsigned char
1193
- weekday::weekday_from_days(int z) NOEXCEPT
1194
- {
1195
- return static_cast<unsigned char>(static_cast<unsigned>(
1196
- z >= -4 ? (z+4) % 7 : (z+5) % 7 + 6));
1197
- }
1198
-
1199
- CONSTCD11
1200
- inline
1201
- weekday::weekday(unsigned wd) NOEXCEPT
1202
- : wd_(static_cast<decltype(wd_)>(wd))
1203
- {}
1204
-
1205
- CONSTCD11
1206
- inline
1207
- weekday::weekday(const sys_days& dp) NOEXCEPT
1208
- : wd_(weekday_from_days(dp.time_since_epoch().count()))
1209
- {}
1210
-
1211
- CONSTCD11
1212
- inline
1213
- weekday::weekday(const local_days& dp) NOEXCEPT
1214
- : wd_(weekday_from_days(dp.time_since_epoch().count()))
1215
- {}
1216
-
1217
- CONSTCD14 inline weekday& weekday::operator++() NOEXCEPT {if (++wd_ == 7) wd_ = 0; return *this;}
1218
- CONSTCD14 inline weekday weekday::operator++(int) NOEXCEPT {auto tmp(*this); ++(*this); return tmp;}
1219
- CONSTCD14 inline weekday& weekday::operator--() NOEXCEPT {if (wd_-- == 0) wd_ = 6; return *this;}
1220
- CONSTCD14 inline weekday weekday::operator--(int) NOEXCEPT {auto tmp(*this); --(*this); return tmp;}
1221
-
1222
- CONSTCD14
1223
- inline
1224
- weekday&
1225
- weekday::operator+=(const days& d) NOEXCEPT
1226
- {
1227
- *this = *this + d;
1228
- return *this;
1229
- }
1230
-
1231
- CONSTCD14
1232
- inline
1233
- weekday&
1234
- weekday::operator-=(const days& d) NOEXCEPT
1235
- {
1236
- *this = *this - d;
1237
- return *this;
1238
- }
1239
-
1240
- CONSTCD11
1241
- inline
1242
- weekday::operator unsigned() const NOEXCEPT
1243
- {
1244
- return static_cast<unsigned>(wd_);
1245
- }
1246
-
1247
- CONSTCD11 inline bool weekday::ok() const NOEXCEPT {return wd_ <= 6;}
1248
-
1249
- CONSTCD11
1250
- inline
1251
- bool
1252
- operator==(const weekday& x, const weekday& y) NOEXCEPT
1253
- {
1254
- return static_cast<unsigned>(x) == static_cast<unsigned>(y);
1255
- }
1256
-
1257
- CONSTCD11
1258
- inline
1259
- bool
1260
- operator!=(const weekday& x, const weekday& y) NOEXCEPT
1261
- {
1262
- return !(x == y);
1263
- }
1264
-
1265
- CONSTCD14
1266
- inline
1267
- days
1268
- operator-(const weekday& x, const weekday& y) NOEXCEPT
1269
- {
1270
- auto const diff = static_cast<unsigned>(x) - static_cast<unsigned>(y);
1271
- return days{diff <= 6 ? diff : diff + 7};
1272
- }
1273
-
1274
- CONSTCD14
1275
- inline
1276
- weekday
1277
- operator+(const weekday& x, const days& y) NOEXCEPT
1278
- {
1279
- auto const wdu = static_cast<long long>(static_cast<unsigned>(x)) + y.count();
1280
- auto const wk = (wdu >= 0 ? wdu : wdu-6) / 7;
1281
- return weekday{static_cast<unsigned>(wdu - wk * 7)};
1282
- }
1283
-
1284
- CONSTCD14
1285
- inline
1286
- weekday
1287
- operator+(const days& x, const weekday& y) NOEXCEPT
1288
- {
1289
- return y + x;
1290
- }
1291
-
1292
- CONSTCD14
1293
- inline
1294
- weekday
1295
- operator-(const weekday& x, const days& y) NOEXCEPT
1296
- {
1297
- return x + -y;
1298
- }
1299
-
1300
- template<class CharT, class Traits>
1301
- inline
1302
- std::basic_ostream<CharT, Traits>&
1303
- operator<<(std::basic_ostream<CharT, Traits>& os, const weekday& wd)
1304
- {
1305
- switch (static_cast<unsigned>(wd))
1306
- {
1307
- case 0:
1308
- os << "al-Aḥad";
1309
- break;
1310
- case 1:
1311
- os << "al-Ithnayn";
1312
- break;
1313
- case 2:
1314
- os << "ath-Thulāthā’";
1315
- break;
1316
- case 3:
1317
- os << "al-Arba‘ā’";
1318
- break;
1319
- case 4:
1320
- os << "al-Khamīs";
1321
- break;
1322
- case 5:
1323
- os << "al-Jum‘ah";
1324
- break;
1325
- case 6:
1326
- os << "as-Sabt";
1327
- break;
1328
- default:
1329
- os << static_cast<unsigned>(wd) << " is not a valid weekday";
1330
- break;
1331
- }
1332
- return os;
1333
- }
1334
-
1335
- #if !defined(_MSC_VER) || (_MSC_VER >= 1900)
1336
- inline namespace literals
1337
- {
1338
-
1339
- CONSTCD11
1340
- inline
1341
- islamic::day
1342
- operator "" _d(unsigned long long d) NOEXCEPT
1343
- {
1344
- return islamic::day{static_cast<unsigned>(d)};
1345
- }
1346
-
1347
- CONSTCD11
1348
- inline
1349
- islamic::year
1350
- operator "" _y(unsigned long long y) NOEXCEPT
1351
- {
1352
- return islamic::year(static_cast<int>(y));
1353
- }
1354
- #endif // !defined(_MSC_VER) || (_MSC_VER >= 1900)
1355
-
1356
- CONSTDATA islamic::last_spec last{};
1357
-
1358
- #if !defined(_MSC_VER) || (_MSC_VER >= 1900)
1359
- } // inline namespace literals
1360
- #endif
1361
-
1362
- // weekday_indexed
1363
-
1364
- CONSTCD11
1365
- inline
1366
- weekday
1367
- weekday_indexed::weekday() const NOEXCEPT
1368
- {
1369
- return islamic::weekday{static_cast<unsigned>(wd_)};
1370
- }
1371
-
1372
- CONSTCD11 inline unsigned weekday_indexed::index() const NOEXCEPT {return index_;}
1373
-
1374
- CONSTCD11
1375
- inline
1376
- bool
1377
- weekday_indexed::ok() const NOEXCEPT
1378
- {
1379
- return weekday().ok() && 1 <= index_ && index_ <= 5;
1380
- }
1381
-
1382
- CONSTCD11
1383
- inline
1384
- weekday_indexed::weekday_indexed(const islamic::weekday& wd, unsigned index) NOEXCEPT
1385
- : wd_(static_cast<decltype(wd_)>(static_cast<unsigned>(wd)))
1386
- , index_(static_cast<decltype(index_)>(index))
1387
- {}
1388
-
1389
- template<class CharT, class Traits>
1390
- inline
1391
- std::basic_ostream<CharT, Traits>&
1392
- operator<<(std::basic_ostream<CharT, Traits>& os, const weekday_indexed& wdi)
1393
- {
1394
- return os << wdi.weekday() << '[' << wdi.index() << ']';
1395
- }
1396
-
1397
- CONSTCD11
1398
- inline
1399
- weekday_indexed
1400
- weekday::operator[](unsigned index) const NOEXCEPT
1401
- {
1402
- return {*this, index};
1403
- }
1404
-
1405
- CONSTCD11
1406
- inline
1407
- bool
1408
- operator==(const weekday_indexed& x, const weekday_indexed& y) NOEXCEPT
1409
- {
1410
- return x.weekday() == y.weekday() && x.index() == y.index();
1411
- }
1412
-
1413
- CONSTCD11
1414
- inline
1415
- bool
1416
- operator!=(const weekday_indexed& x, const weekday_indexed& y) NOEXCEPT
1417
- {
1418
- return !(x == y);
1419
- }
1420
-
1421
- // weekday_last
1422
-
1423
- CONSTCD11 inline islamic::weekday weekday_last::weekday() const NOEXCEPT {return wd_;}
1424
- CONSTCD11 inline bool weekday_last::ok() const NOEXCEPT {return wd_.ok();}
1425
- CONSTCD11 inline weekday_last::weekday_last(const islamic::weekday& wd) NOEXCEPT : wd_(wd) {}
1426
-
1427
- CONSTCD11
1428
- inline
1429
- bool
1430
- operator==(const weekday_last& x, const weekday_last& y) NOEXCEPT
1431
- {
1432
- return x.weekday() == y.weekday();
1433
- }
1434
-
1435
- CONSTCD11
1436
- inline
1437
- bool
1438
- operator!=(const weekday_last& x, const weekday_last& y) NOEXCEPT
1439
- {
1440
- return !(x == y);
1441
- }
1442
-
1443
- template<class CharT, class Traits>
1444
- inline
1445
- std::basic_ostream<CharT, Traits>&
1446
- operator<<(std::basic_ostream<CharT, Traits>& os, const weekday_last& wdl)
1447
- {
1448
- return os << wdl.weekday() << "[last]";
1449
- }
1450
-
1451
- CONSTCD11
1452
- inline
1453
- weekday_last
1454
- weekday::operator[](last_spec) const NOEXCEPT
1455
- {
1456
- return weekday_last{*this};
1457
- }
1458
-
1459
- // year_month
1460
-
1461
- CONSTCD11
1462
- inline
1463
- year_month::year_month(const islamic::year& y, const islamic::month& m) NOEXCEPT
1464
- : y_(y)
1465
- , m_(m)
1466
- {}
1467
-
1468
- CONSTCD11 inline year year_month::year() const NOEXCEPT {return y_;}
1469
- CONSTCD11 inline month year_month::month() const NOEXCEPT {return m_;}
1470
- CONSTCD11 inline bool year_month::ok() const NOEXCEPT {return y_.ok() && m_.ok();}
1471
-
1472
- CONSTCD14
1473
- inline
1474
- year_month&
1475
- year_month::operator+=(const months& dm) NOEXCEPT
1476
- {
1477
- *this = *this + dm;
1478
- return *this;
1479
- }
1480
-
1481
- CONSTCD14
1482
- inline
1483
- year_month&
1484
- year_month::operator-=(const months& dm) NOEXCEPT
1485
- {
1486
- *this = *this - dm;
1487
- return *this;
1488
- }
1489
-
1490
- CONSTCD14
1491
- inline
1492
- year_month&
1493
- year_month::operator+=(const years& dy) NOEXCEPT
1494
- {
1495
- *this = *this + dy;
1496
- return *this;
1497
- }
1498
-
1499
- CONSTCD14
1500
- inline
1501
- year_month&
1502
- year_month::operator-=(const years& dy) NOEXCEPT
1503
- {
1504
- *this = *this - dy;
1505
- return *this;
1506
- }
1507
-
1508
- CONSTCD11
1509
- inline
1510
- bool
1511
- operator==(const year_month& x, const year_month& y) NOEXCEPT
1512
- {
1513
- return x.year() == y.year() && x.month() == y.month();
1514
- }
1515
-
1516
- CONSTCD11
1517
- inline
1518
- bool
1519
- operator!=(const year_month& x, const year_month& y) NOEXCEPT
1520
- {
1521
- return !(x == y);
1522
- }
1523
-
1524
- CONSTCD11
1525
- inline
1526
- bool
1527
- operator<(const year_month& x, const year_month& y) NOEXCEPT
1528
- {
1529
- return x.year() < y.year() ? true
1530
- : (x.year() > y.year() ? false
1531
- : (x.month() < y.month()));
1532
- }
1533
-
1534
- CONSTCD11
1535
- inline
1536
- bool
1537
- operator>(const year_month& x, const year_month& y) NOEXCEPT
1538
- {
1539
- return y < x;
1540
- }
1541
-
1542
- CONSTCD11
1543
- inline
1544
- bool
1545
- operator<=(const year_month& x, const year_month& y) NOEXCEPT
1546
- {
1547
- return !(y < x);
1548
- }
1549
-
1550
- CONSTCD11
1551
- inline
1552
- bool
1553
- operator>=(const year_month& x, const year_month& y) NOEXCEPT
1554
- {
1555
- return !(x < y);
1556
- }
1557
-
1558
- CONSTCD14
1559
- inline
1560
- year_month
1561
- operator+(const year_month& ym, const months& dm) NOEXCEPT
1562
- {
1563
- auto dmi = static_cast<int>(static_cast<unsigned>(ym.month())) - 1 + dm.count();
1564
- auto dy = (dmi >= 0 ? dmi : dmi-11) / 12;
1565
- dmi = dmi - dy * 12 + 1;
1566
- return (ym.year() + years(dy)) / month(static_cast<unsigned>(dmi));
1567
- }
1568
-
1569
- CONSTCD14
1570
- inline
1571
- year_month
1572
- operator+(const months& dm, const year_month& ym) NOEXCEPT
1573
- {
1574
- return ym + dm;
1575
- }
1576
-
1577
- CONSTCD14
1578
- inline
1579
- year_month
1580
- operator-(const year_month& ym, const months& dm) NOEXCEPT
1581
- {
1582
- return ym + -dm;
1583
- }
1584
-
1585
- CONSTCD11
1586
- inline
1587
- months
1588
- operator-(const year_month& x, const year_month& y) NOEXCEPT
1589
- {
1590
- return (x.year() - y.year()) +
1591
- months(static_cast<unsigned>(x.month()) - static_cast<unsigned>(y.month()));
1592
- }
1593
-
1594
- CONSTCD11
1595
- inline
1596
- year_month
1597
- operator+(const year_month& ym, const years& dy) NOEXCEPT
1598
- {
1599
- return (ym.year() + dy) / ym.month();
1600
- }
1601
-
1602
- CONSTCD11
1603
- inline
1604
- year_month
1605
- operator+(const years& dy, const year_month& ym) NOEXCEPT
1606
- {
1607
- return ym + dy;
1608
- }
1609
-
1610
- CONSTCD11
1611
- inline
1612
- year_month
1613
- operator-(const year_month& ym, const years& dy) NOEXCEPT
1614
- {
1615
- return ym + -dy;
1616
- }
1617
-
1618
- template<class CharT, class Traits>
1619
- inline
1620
- std::basic_ostream<CharT, Traits>&
1621
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month& ym)
1622
- {
1623
- return os << ym.year() << '/' << ym.month();
1624
- }
1625
-
1626
- // month_day
1627
-
1628
- CONSTCD11
1629
- inline
1630
- month_day::month_day(const islamic::month& m, const islamic::day& d) NOEXCEPT
1631
- : m_(m)
1632
- , d_(d)
1633
- {}
1634
-
1635
- CONSTCD11 inline islamic::month month_day::month() const NOEXCEPT {return m_;}
1636
- CONSTCD11 inline islamic::day month_day::day() const NOEXCEPT {return d_;}
1637
-
1638
- CONSTCD14
1639
- inline
1640
- bool
1641
- month_day::ok() const NOEXCEPT
1642
- {
1643
- CONSTDATA islamic::day d[] =
1644
- {30_d, 29_d, 30_d, 29_d, 30_d, 29_d, 30_d, 29_d, 30_d, 29_d, 30_d, 30_d};
1645
- return m_.ok() && 1_d <= d_ && d_ <= d[static_cast<unsigned>(m_)-1];
1646
- }
1647
-
1648
- CONSTCD11
1649
- inline
1650
- bool
1651
- operator==(const month_day& x, const month_day& y) NOEXCEPT
1652
- {
1653
- return x.month() == y.month() && x.day() == y.day();
1654
- }
1655
-
1656
- CONSTCD11
1657
- inline
1658
- bool
1659
- operator!=(const month_day& x, const month_day& y) NOEXCEPT
1660
- {
1661
- return !(x == y);
1662
- }
1663
-
1664
- CONSTCD11
1665
- inline
1666
- bool
1667
- operator<(const month_day& x, const month_day& y) NOEXCEPT
1668
- {
1669
- return x.month() < y.month() ? true
1670
- : (x.month() > y.month() ? false
1671
- : (x.day() < y.day()));
1672
- }
1673
-
1674
- CONSTCD11
1675
- inline
1676
- bool
1677
- operator>(const month_day& x, const month_day& y) NOEXCEPT
1678
- {
1679
- return y < x;
1680
- }
1681
-
1682
- CONSTCD11
1683
- inline
1684
- bool
1685
- operator<=(const month_day& x, const month_day& y) NOEXCEPT
1686
- {
1687
- return !(y < x);
1688
- }
1689
-
1690
- CONSTCD11
1691
- inline
1692
- bool
1693
- operator>=(const month_day& x, const month_day& y) NOEXCEPT
1694
- {
1695
- return !(x < y);
1696
- }
1697
-
1698
- template<class CharT, class Traits>
1699
- inline
1700
- std::basic_ostream<CharT, Traits>&
1701
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_day& md)
1702
- {
1703
- return os << md.month() << '/' << md.day();
1704
- }
1705
-
1706
- // month_day_last
1707
-
1708
- CONSTCD11 inline month month_day_last::month() const NOEXCEPT {return m_;}
1709
- CONSTCD11 inline bool month_day_last::ok() const NOEXCEPT {return m_.ok();}
1710
- CONSTCD11 inline month_day_last::month_day_last(const islamic::month& m) NOEXCEPT : m_(m) {}
1711
-
1712
- CONSTCD11
1713
- inline
1714
- bool
1715
- operator==(const month_day_last& x, const month_day_last& y) NOEXCEPT
1716
- {
1717
- return x.month() == y.month();
1718
- }
1719
-
1720
- CONSTCD11
1721
- inline
1722
- bool
1723
- operator!=(const month_day_last& x, const month_day_last& y) NOEXCEPT
1724
- {
1725
- return !(x == y);
1726
- }
1727
-
1728
- CONSTCD11
1729
- inline
1730
- bool
1731
- operator<(const month_day_last& x, const month_day_last& y) NOEXCEPT
1732
- {
1733
- return x.month() < y.month();
1734
- }
1735
-
1736
- CONSTCD11
1737
- inline
1738
- bool
1739
- operator>(const month_day_last& x, const month_day_last& y) NOEXCEPT
1740
- {
1741
- return y < x;
1742
- }
1743
-
1744
- CONSTCD11
1745
- inline
1746
- bool
1747
- operator<=(const month_day_last& x, const month_day_last& y) NOEXCEPT
1748
- {
1749
- return !(y < x);
1750
- }
1751
-
1752
- CONSTCD11
1753
- inline
1754
- bool
1755
- operator>=(const month_day_last& x, const month_day_last& y) NOEXCEPT
1756
- {
1757
- return !(x < y);
1758
- }
1759
-
1760
- template<class CharT, class Traits>
1761
- inline
1762
- std::basic_ostream<CharT, Traits>&
1763
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_day_last& mdl)
1764
- {
1765
- return os << mdl.month() << "/last";
1766
- }
1767
-
1768
- // month_weekday
1769
-
1770
- CONSTCD11
1771
- inline
1772
- month_weekday::month_weekday(const islamic::month& m,
1773
- const islamic::weekday_indexed& wdi) NOEXCEPT
1774
- : m_(m)
1775
- , wdi_(wdi)
1776
- {}
1777
-
1778
- CONSTCD11 inline month month_weekday::month() const NOEXCEPT {return m_;}
1779
-
1780
- CONSTCD11
1781
- inline
1782
- weekday_indexed
1783
- month_weekday::weekday_indexed() const NOEXCEPT
1784
- {
1785
- return wdi_;
1786
- }
1787
-
1788
- CONSTCD11
1789
- inline
1790
- bool
1791
- month_weekday::ok() const NOEXCEPT
1792
- {
1793
- return m_.ok() && wdi_.ok();
1794
- }
1795
-
1796
- CONSTCD11
1797
- inline
1798
- bool
1799
- operator==(const month_weekday& x, const month_weekday& y) NOEXCEPT
1800
- {
1801
- return x.month() == y.month() && x.weekday_indexed() == y.weekday_indexed();
1802
- }
1803
-
1804
- CONSTCD11
1805
- inline
1806
- bool
1807
- operator!=(const month_weekday& x, const month_weekday& y) NOEXCEPT
1808
- {
1809
- return !(x == y);
1810
- }
1811
-
1812
- template<class CharT, class Traits>
1813
- inline
1814
- std::basic_ostream<CharT, Traits>&
1815
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_weekday& mwd)
1816
- {
1817
- return os << mwd.month() << '/' << mwd.weekday_indexed();
1818
- }
1819
-
1820
- // month_weekday_last
1821
-
1822
- CONSTCD11
1823
- inline
1824
- month_weekday_last::month_weekday_last(const islamic::month& m,
1825
- const islamic::weekday_last& wdl) NOEXCEPT
1826
- : m_(m)
1827
- , wdl_(wdl)
1828
- {}
1829
-
1830
- CONSTCD11 inline month month_weekday_last::month() const NOEXCEPT {return m_;}
1831
-
1832
- CONSTCD11
1833
- inline
1834
- weekday_last
1835
- month_weekday_last::weekday_last() const NOEXCEPT
1836
- {
1837
- return wdl_;
1838
- }
1839
-
1840
- CONSTCD11
1841
- inline
1842
- bool
1843
- month_weekday_last::ok() const NOEXCEPT
1844
- {
1845
- return m_.ok() && wdl_.ok();
1846
- }
1847
-
1848
- CONSTCD11
1849
- inline
1850
- bool
1851
- operator==(const month_weekday_last& x, const month_weekday_last& y) NOEXCEPT
1852
- {
1853
- return x.month() == y.month() && x.weekday_last() == y.weekday_last();
1854
- }
1855
-
1856
- CONSTCD11
1857
- inline
1858
- bool
1859
- operator!=(const month_weekday_last& x, const month_weekday_last& y) NOEXCEPT
1860
- {
1861
- return !(x == y);
1862
- }
1863
-
1864
- template<class CharT, class Traits>
1865
- inline
1866
- std::basic_ostream<CharT, Traits>&
1867
- operator<<(std::basic_ostream<CharT, Traits>& os, const month_weekday_last& mwdl)
1868
- {
1869
- return os << mwdl.month() << '/' << mwdl.weekday_last();
1870
- }
1871
-
1872
- // year_month_day_last
1873
-
1874
- CONSTCD11
1875
- inline
1876
- year_month_day_last::year_month_day_last(const islamic::year& y,
1877
- const islamic::month_day_last& mdl) NOEXCEPT
1878
- : y_(y)
1879
- , mdl_(mdl)
1880
- {}
1881
-
1882
- CONSTCD14
1883
- inline
1884
- year_month_day_last&
1885
- year_month_day_last::operator+=(const months& m) NOEXCEPT
1886
- {
1887
- *this = *this + m;
1888
- return *this;
1889
- }
1890
-
1891
- CONSTCD14
1892
- inline
1893
- year_month_day_last&
1894
- year_month_day_last::operator-=(const months& m) NOEXCEPT
1895
- {
1896
- *this = *this - m;
1897
- return *this;
1898
- }
1899
-
1900
- CONSTCD14
1901
- inline
1902
- year_month_day_last&
1903
- year_month_day_last::operator+=(const years& y) NOEXCEPT
1904
- {
1905
- *this = *this + y;
1906
- return *this;
1907
- }
1908
-
1909
- CONSTCD14
1910
- inline
1911
- year_month_day_last&
1912
- year_month_day_last::operator-=(const years& y) NOEXCEPT
1913
- {
1914
- *this = *this - y;
1915
- return *this;
1916
- }
1917
-
1918
- CONSTCD11 inline year year_month_day_last::year() const NOEXCEPT {return y_;}
1919
- CONSTCD11 inline month year_month_day_last::month() const NOEXCEPT {return mdl_.month();}
1920
-
1921
- CONSTCD11
1922
- inline
1923
- month_day_last
1924
- year_month_day_last::month_day_last() const NOEXCEPT
1925
- {
1926
- return mdl_;
1927
- }
1928
-
1929
- CONSTCD14
1930
- inline
1931
- day
1932
- year_month_day_last::day() const NOEXCEPT
1933
- {
1934
- CONSTDATA islamic::day d[] =
1935
- {30_d, 29_d, 30_d, 29_d, 30_d, 29_d, 30_d, 29_d, 30_d, 29_d, 30_d, 29_d};
1936
- return month() != islamic::month(12) || !y_.is_leap() ?
1937
- d[static_cast<unsigned>(month())-1] : 30_d;
1938
- }
1939
-
1940
- CONSTCD14
1941
- inline
1942
- year_month_day_last::operator sys_days() const NOEXCEPT
1943
- {
1944
- return sys_days(year()/month()/day());
1945
- }
1946
-
1947
- CONSTCD14
1948
- inline
1949
- year_month_day_last::operator local_days() const NOEXCEPT
1950
- {
1951
- return local_days(year()/month()/day());
1952
- }
1953
-
1954
- CONSTCD11
1955
- inline
1956
- bool
1957
- year_month_day_last::ok() const NOEXCEPT
1958
- {
1959
- return y_.ok() && mdl_.ok();
1960
- }
1961
-
1962
- CONSTCD11
1963
- inline
1964
- bool
1965
- operator==(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT
1966
- {
1967
- return x.year() == y.year() && x.month_day_last() == y.month_day_last();
1968
- }
1969
-
1970
- CONSTCD11
1971
- inline
1972
- bool
1973
- operator!=(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT
1974
- {
1975
- return !(x == y);
1976
- }
1977
-
1978
- CONSTCD11
1979
- inline
1980
- bool
1981
- operator<(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT
1982
- {
1983
- return x.year() < y.year() ? true
1984
- : (x.year() > y.year() ? false
1985
- : (x.month_day_last() < y.month_day_last()));
1986
- }
1987
-
1988
- CONSTCD11
1989
- inline
1990
- bool
1991
- operator>(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT
1992
- {
1993
- return y < x;
1994
- }
1995
-
1996
- CONSTCD11
1997
- inline
1998
- bool
1999
- operator<=(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT
2000
- {
2001
- return !(y < x);
2002
- }
2003
-
2004
- CONSTCD11
2005
- inline
2006
- bool
2007
- operator>=(const year_month_day_last& x, const year_month_day_last& y) NOEXCEPT
2008
- {
2009
- return !(x < y);
2010
- }
2011
-
2012
- template<class CharT, class Traits>
2013
- inline
2014
- std::basic_ostream<CharT, Traits>&
2015
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_day_last& ymdl)
2016
- {
2017
- return os << ymdl.year() << '/' << ymdl.month_day_last();
2018
- }
2019
-
2020
- CONSTCD14
2021
- inline
2022
- year_month_day_last
2023
- operator+(const year_month_day_last& ymdl, const months& dm) NOEXCEPT
2024
- {
2025
- return (ymdl.year() / ymdl.month() + dm) / last;
2026
- }
2027
-
2028
- CONSTCD14
2029
- inline
2030
- year_month_day_last
2031
- operator+(const months& dm, const year_month_day_last& ymdl) NOEXCEPT
2032
- {
2033
- return ymdl + dm;
2034
- }
2035
-
2036
- CONSTCD14
2037
- inline
2038
- year_month_day_last
2039
- operator-(const year_month_day_last& ymdl, const months& dm) NOEXCEPT
2040
- {
2041
- return ymdl + (-dm);
2042
- }
2043
-
2044
- CONSTCD11
2045
- inline
2046
- year_month_day_last
2047
- operator+(const year_month_day_last& ymdl, const years& dy) NOEXCEPT
2048
- {
2049
- return {ymdl.year()+dy, ymdl.month_day_last()};
2050
- }
2051
-
2052
- CONSTCD11
2053
- inline
2054
- year_month_day_last
2055
- operator+(const years& dy, const year_month_day_last& ymdl) NOEXCEPT
2056
- {
2057
- return ymdl + dy;
2058
- }
2059
-
2060
- CONSTCD11
2061
- inline
2062
- year_month_day_last
2063
- operator-(const year_month_day_last& ymdl, const years& dy) NOEXCEPT
2064
- {
2065
- return ymdl + (-dy);
2066
- }
2067
-
2068
- // year_month_day
2069
-
2070
- CONSTCD11
2071
- inline
2072
- year_month_day::year_month_day(const islamic::year& y, const islamic::month& m,
2073
- const islamic::day& d) NOEXCEPT
2074
- : y_(y)
2075
- , m_(m)
2076
- , d_(d)
2077
- {}
2078
-
2079
- CONSTCD14
2080
- inline
2081
- year_month_day::year_month_day(const year_month_day_last& ymdl) NOEXCEPT
2082
- : y_(ymdl.year())
2083
- , m_(ymdl.month())
2084
- , d_(ymdl.day())
2085
- {}
2086
-
2087
- CONSTCD14
2088
- inline
2089
- year_month_day::year_month_day(sys_days dp) NOEXCEPT
2090
- : year_month_day(from_days(dp.time_since_epoch()))
2091
- {}
2092
-
2093
- CONSTCD14
2094
- inline
2095
- year_month_day::year_month_day(local_days dp) NOEXCEPT
2096
- : year_month_day(from_days(dp.time_since_epoch()))
2097
- {}
2098
-
2099
- CONSTCD11 inline year year_month_day::year() const NOEXCEPT {return y_;}
2100
- CONSTCD11 inline month year_month_day::month() const NOEXCEPT {return m_;}
2101
- CONSTCD11 inline day year_month_day::day() const NOEXCEPT {return d_;}
2102
-
2103
- CONSTCD14
2104
- inline
2105
- year_month_day&
2106
- year_month_day::operator+=(const months& m) NOEXCEPT
2107
- {
2108
- *this = *this + m;
2109
- return *this;
2110
- }
2111
-
2112
- CONSTCD14
2113
- inline
2114
- year_month_day&
2115
- year_month_day::operator-=(const months& m) NOEXCEPT
2116
- {
2117
- *this = *this - m;
2118
- return *this;
2119
- }
2120
-
2121
- CONSTCD14
2122
- inline
2123
- year_month_day&
2124
- year_month_day::operator+=(const years& y) NOEXCEPT
2125
- {
2126
- *this = *this + y;
2127
- return *this;
2128
- }
2129
-
2130
- CONSTCD14
2131
- inline
2132
- year_month_day&
2133
- year_month_day::operator-=(const years& y) NOEXCEPT
2134
- {
2135
- *this = *this - y;
2136
- return *this;
2137
- }
2138
-
2139
- CONSTCD14
2140
- inline
2141
- days
2142
- year_month_day::to_days() const NOEXCEPT
2143
- {
2144
- static_assert(std::numeric_limits<unsigned>::digits >= 18,
2145
- "This algorithm has not been ported to a 16 bit unsigned integer");
2146
- static_assert(std::numeric_limits<int>::digits >= 20,
2147
- "This algorithm has not been ported to a 16 bit signed integer");
2148
- auto const y = static_cast<int>(y_) - 1;
2149
- auto const m = static_cast<unsigned>(m_);
2150
- auto const d = static_cast<unsigned>(d_);
2151
- auto const era = (y >= 0 ? y : y-29) / 30;
2152
- auto const yoe = static_cast<unsigned>(y - era * 30); // [0, 29]
2153
- auto const doy = 29*(m-1) + m/2 + d-1; // [0, 354]
2154
- auto const doe = yoe * 354 + (11*(yoe+1)+3)/30 + doy; // [0, 10630]
2155
- return days{era * 10631 + static_cast<int>(doe) - 492148};
2156
- }
2157
-
2158
- CONSTCD14
2159
- inline
2160
- year_month_day::operator sys_days() const NOEXCEPT
2161
- {
2162
- return sys_days{to_days()};
2163
- }
2164
-
2165
- CONSTCD14
2166
- inline
2167
- year_month_day::operator local_days() const NOEXCEPT
2168
- {
2169
- return local_days{to_days()};
2170
- }
2171
-
2172
- CONSTCD14
2173
- inline
2174
- bool
2175
- year_month_day::ok() const NOEXCEPT
2176
- {
2177
- if (!(y_.ok() && m_.ok()))
2178
- return false;
2179
- return 1_d <= d_ && d_ <= (y_/m_/last).day();
2180
- }
2181
-
2182
- CONSTCD11
2183
- inline
2184
- bool
2185
- operator==(const year_month_day& x, const year_month_day& y) NOEXCEPT
2186
- {
2187
- return x.year() == y.year() && x.month() == y.month() && x.day() == y.day();
2188
- }
2189
-
2190
- CONSTCD11
2191
- inline
2192
- bool
2193
- operator!=(const year_month_day& x, const year_month_day& y) NOEXCEPT
2194
- {
2195
- return !(x == y);
2196
- }
2197
-
2198
- CONSTCD11
2199
- inline
2200
- bool
2201
- operator<(const year_month_day& x, const year_month_day& y) NOEXCEPT
2202
- {
2203
- return x.year() < y.year() ? true
2204
- : (x.year() > y.year() ? false
2205
- : (x.month() < y.month() ? true
2206
- : (x.month() > y.month() ? false
2207
- : (x.day() < y.day()))));
2208
- }
2209
-
2210
- CONSTCD11
2211
- inline
2212
- bool
2213
- operator>(const year_month_day& x, const year_month_day& y) NOEXCEPT
2214
- {
2215
- return y < x;
2216
- }
2217
-
2218
- CONSTCD11
2219
- inline
2220
- bool
2221
- operator<=(const year_month_day& x, const year_month_day& y) NOEXCEPT
2222
- {
2223
- return !(y < x);
2224
- }
2225
-
2226
- CONSTCD11
2227
- inline
2228
- bool
2229
- operator>=(const year_month_day& x, const year_month_day& y) NOEXCEPT
2230
- {
2231
- return !(x < y);
2232
- }
2233
-
2234
- template<class CharT, class Traits>
2235
- inline
2236
- std::basic_ostream<CharT, Traits>&
2237
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_day& ymd)
2238
- {
2239
- date::detail::save_ostream<CharT, Traits> _(os);
2240
- os.fill('0');
2241
- os.flags(std::ios::dec | std::ios::right);
2242
- os << ymd.year() << '-';
2243
- os.width(2);
2244
- os << static_cast<unsigned>(ymd.month()) << '-';
2245
- os << ymd.day();
2246
- return os;
2247
- }
2248
-
2249
- CONSTCD14
2250
- inline
2251
- year_month_day
2252
- year_month_day::from_days(days dp) NOEXCEPT
2253
- {
2254
- static_assert(std::numeric_limits<unsigned>::digits >= 18,
2255
- "This algorithm has not been ported to a 16 bit unsigned integer");
2256
- static_assert(std::numeric_limits<int>::digits >= 20,
2257
- "This algorithm has not been ported to a 16 bit signed integer");
2258
- auto const z = dp.count() + 492148;
2259
- auto const era = (z >= 0 ? z : z - 10630) / 10631;
2260
- auto const doe = static_cast<unsigned>(z - era * 10631); // [0, 10630]
2261
- auto const yoe = (30*doe + 10646)/10631 - 1; // [0, 29]
2262
- auto const y = static_cast<sys_days::rep>(yoe) + era * 30 + 1;
2263
- auto const doy = doe - (yoe * 354 + (11*(yoe+1)+3)/30); // [0, 354]
2264
- auto const m = (11*doy + 330) / 325; // [1, 12]
2265
- auto const d = doy - (29*(m-1) + m/2) + 1; // [1, 30]
2266
- return year_month_day{islamic::year{y}, islamic::month(m), islamic::day(d)};
2267
- }
2268
-
2269
- CONSTCD14
2270
- inline
2271
- year_month_day
2272
- operator+(const year_month_day& ymd, const months& dm) NOEXCEPT
2273
- {
2274
- return (ymd.year() / ymd.month() + dm) / ymd.day();
2275
- }
2276
-
2277
- CONSTCD14
2278
- inline
2279
- year_month_day
2280
- operator+(const months& dm, const year_month_day& ymd) NOEXCEPT
2281
- {
2282
- return ymd + dm;
2283
- }
2284
-
2285
- CONSTCD14
2286
- inline
2287
- year_month_day
2288
- operator-(const year_month_day& ymd, const months& dm) NOEXCEPT
2289
- {
2290
- return ymd + (-dm);
2291
- }
2292
-
2293
- CONSTCD11
2294
- inline
2295
- year_month_day
2296
- operator+(const year_month_day& ymd, const years& dy) NOEXCEPT
2297
- {
2298
- return (ymd.year() + dy) / ymd.month() / ymd.day();
2299
- }
2300
-
2301
- CONSTCD11
2302
- inline
2303
- year_month_day
2304
- operator+(const years& dy, const year_month_day& ymd) NOEXCEPT
2305
- {
2306
- return ymd + dy;
2307
- }
2308
-
2309
- CONSTCD11
2310
- inline
2311
- year_month_day
2312
- operator-(const year_month_day& ymd, const years& dy) NOEXCEPT
2313
- {
2314
- return ymd + (-dy);
2315
- }
2316
-
2317
- // year_month_weekday
2318
-
2319
- CONSTCD11
2320
- inline
2321
- year_month_weekday::year_month_weekday(const islamic::year& y, const islamic::month& m,
2322
- const islamic::weekday_indexed& wdi)
2323
- NOEXCEPT
2324
- : y_(y)
2325
- , m_(m)
2326
- , wdi_(wdi)
2327
- {}
2328
-
2329
- CONSTCD14
2330
- inline
2331
- year_month_weekday::year_month_weekday(const sys_days& dp) NOEXCEPT
2332
- : year_month_weekday(from_days(dp.time_since_epoch()))
2333
- {}
2334
-
2335
- CONSTCD14
2336
- inline
2337
- year_month_weekday::year_month_weekday(const local_days& dp) NOEXCEPT
2338
- : year_month_weekday(from_days(dp.time_since_epoch()))
2339
- {}
2340
-
2341
- CONSTCD14
2342
- inline
2343
- year_month_weekday&
2344
- year_month_weekday::operator+=(const months& m) NOEXCEPT
2345
- {
2346
- *this = *this + m;
2347
- return *this;
2348
- }
2349
-
2350
- CONSTCD14
2351
- inline
2352
- year_month_weekday&
2353
- year_month_weekday::operator-=(const months& m) NOEXCEPT
2354
- {
2355
- *this = *this - m;
2356
- return *this;
2357
- }
2358
-
2359
- CONSTCD14
2360
- inline
2361
- year_month_weekday&
2362
- year_month_weekday::operator+=(const years& y) NOEXCEPT
2363
- {
2364
- *this = *this + y;
2365
- return *this;
2366
- }
2367
-
2368
- CONSTCD14
2369
- inline
2370
- year_month_weekday&
2371
- year_month_weekday::operator-=(const years& y) NOEXCEPT
2372
- {
2373
- *this = *this - y;
2374
- return *this;
2375
- }
2376
-
2377
- CONSTCD11 inline year year_month_weekday::year() const NOEXCEPT {return y_;}
2378
- CONSTCD11 inline month year_month_weekday::month() const NOEXCEPT {return m_;}
2379
-
2380
- CONSTCD11
2381
- inline
2382
- weekday
2383
- year_month_weekday::weekday() const NOEXCEPT
2384
- {
2385
- return wdi_.weekday();
2386
- }
2387
-
2388
- CONSTCD11
2389
- inline
2390
- unsigned
2391
- year_month_weekday::index() const NOEXCEPT
2392
- {
2393
- return wdi_.index();
2394
- }
2395
-
2396
- CONSTCD11
2397
- inline
2398
- weekday_indexed
2399
- year_month_weekday::weekday_indexed() const NOEXCEPT
2400
- {
2401
- return wdi_;
2402
- }
2403
-
2404
- CONSTCD14
2405
- inline
2406
- year_month_weekday::operator sys_days() const NOEXCEPT
2407
- {
2408
- return sys_days{to_days()};
2409
- }
2410
-
2411
- CONSTCD14
2412
- inline
2413
- year_month_weekday::operator local_days() const NOEXCEPT
2414
- {
2415
- return local_days{to_days()};
2416
- }
2417
-
2418
- CONSTCD14
2419
- inline
2420
- bool
2421
- year_month_weekday::ok() const NOEXCEPT
2422
- {
2423
- if (!y_.ok() || !m_.ok() || !wdi_.weekday().ok() || wdi_.index() < 1)
2424
- return false;
2425
- if (wdi_.index() <= 4)
2426
- return true;
2427
- auto d2 = wdi_.weekday() - islamic::weekday(y_/m_/1) + days((wdi_.index()-1)*7 + 1);
2428
- return static_cast<unsigned>(d2.count()) <= static_cast<unsigned>((y_/m_/last).day());
2429
- }
2430
-
2431
- CONSTCD14
2432
- inline
2433
- year_month_weekday
2434
- year_month_weekday::from_days(days d) NOEXCEPT
2435
- {
2436
- sys_days dp{d};
2437
- auto const wd = islamic::weekday(dp);
2438
- auto const ymd = year_month_day(dp);
2439
- return {ymd.year(), ymd.month(), wd[(static_cast<unsigned>(ymd.day())-1)/7+1]};
2440
- }
2441
-
2442
- CONSTCD14
2443
- inline
2444
- days
2445
- year_month_weekday::to_days() const NOEXCEPT
2446
- {
2447
- auto d = sys_days(y_/m_/1);
2448
- return (d + (wdi_.weekday() - islamic::weekday(d) + days{(wdi_.index()-1)*7})
2449
- ).time_since_epoch();
2450
- }
2451
-
2452
- CONSTCD11
2453
- inline
2454
- bool
2455
- operator==(const year_month_weekday& x, const year_month_weekday& y) NOEXCEPT
2456
- {
2457
- return x.year() == y.year() && x.month() == y.month() &&
2458
- x.weekday_indexed() == y.weekday_indexed();
2459
- }
2460
-
2461
- CONSTCD11
2462
- inline
2463
- bool
2464
- operator!=(const year_month_weekday& x, const year_month_weekday& y) NOEXCEPT
2465
- {
2466
- return !(x == y);
2467
- }
2468
-
2469
- template<class CharT, class Traits>
2470
- inline
2471
- std::basic_ostream<CharT, Traits>&
2472
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_weekday& ymwdi)
2473
- {
2474
- return os << ymwdi.year() << '/' << ymwdi.month()
2475
- << '/' << ymwdi.weekday_indexed();
2476
- }
2477
-
2478
- CONSTCD14
2479
- inline
2480
- year_month_weekday
2481
- operator+(const year_month_weekday& ymwd, const months& dm) NOEXCEPT
2482
- {
2483
- return (ymwd.year() / ymwd.month() + dm) / ymwd.weekday_indexed();
2484
- }
2485
-
2486
- CONSTCD14
2487
- inline
2488
- year_month_weekday
2489
- operator+(const months& dm, const year_month_weekday& ymwd) NOEXCEPT
2490
- {
2491
- return ymwd + dm;
2492
- }
2493
-
2494
- CONSTCD14
2495
- inline
2496
- year_month_weekday
2497
- operator-(const year_month_weekday& ymwd, const months& dm) NOEXCEPT
2498
- {
2499
- return ymwd + (-dm);
2500
- }
2501
-
2502
- CONSTCD11
2503
- inline
2504
- year_month_weekday
2505
- operator+(const year_month_weekday& ymwd, const years& dy) NOEXCEPT
2506
- {
2507
- return {ymwd.year()+dy, ymwd.month(), ymwd.weekday_indexed()};
2508
- }
2509
-
2510
- CONSTCD11
2511
- inline
2512
- year_month_weekday
2513
- operator+(const years& dy, const year_month_weekday& ymwd) NOEXCEPT
2514
- {
2515
- return ymwd + dy;
2516
- }
2517
-
2518
- CONSTCD11
2519
- inline
2520
- year_month_weekday
2521
- operator-(const year_month_weekday& ymwd, const years& dy) NOEXCEPT
2522
- {
2523
- return ymwd + (-dy);
2524
- }
2525
-
2526
- // year_month_weekday_last
2527
-
2528
- CONSTCD11
2529
- inline
2530
- year_month_weekday_last::year_month_weekday_last(const islamic::year& y,
2531
- const islamic::month& m,
2532
- const islamic::weekday_last& wdl) NOEXCEPT
2533
- : y_(y)
2534
- , m_(m)
2535
- , wdl_(wdl)
2536
- {}
2537
-
2538
- CONSTCD14
2539
- inline
2540
- year_month_weekday_last&
2541
- year_month_weekday_last::operator+=(const months& m) NOEXCEPT
2542
- {
2543
- *this = *this + m;
2544
- return *this;
2545
- }
2546
-
2547
- CONSTCD14
2548
- inline
2549
- year_month_weekday_last&
2550
- year_month_weekday_last::operator-=(const months& m) NOEXCEPT
2551
- {
2552
- *this = *this - m;
2553
- return *this;
2554
- }
2555
-
2556
- CONSTCD14
2557
- inline
2558
- year_month_weekday_last&
2559
- year_month_weekday_last::operator+=(const years& y) NOEXCEPT
2560
- {
2561
- *this = *this + y;
2562
- return *this;
2563
- }
2564
-
2565
- CONSTCD14
2566
- inline
2567
- year_month_weekday_last&
2568
- year_month_weekday_last::operator-=(const years& y) NOEXCEPT
2569
- {
2570
- *this = *this - y;
2571
- return *this;
2572
- }
2573
-
2574
- CONSTCD11 inline year year_month_weekday_last::year() const NOEXCEPT {return y_;}
2575
- CONSTCD11 inline month year_month_weekday_last::month() const NOEXCEPT {return m_;}
2576
-
2577
- CONSTCD11
2578
- inline
2579
- weekday
2580
- year_month_weekday_last::weekday() const NOEXCEPT
2581
- {
2582
- return wdl_.weekday();
2583
- }
2584
-
2585
- CONSTCD11
2586
- inline
2587
- weekday_last
2588
- year_month_weekday_last::weekday_last() const NOEXCEPT
2589
- {
2590
- return wdl_;
2591
- }
2592
-
2593
- CONSTCD14
2594
- inline
2595
- year_month_weekday_last::operator sys_days() const NOEXCEPT
2596
- {
2597
- return sys_days{to_days()};
2598
- }
2599
-
2600
- CONSTCD14
2601
- inline
2602
- year_month_weekday_last::operator local_days() const NOEXCEPT
2603
- {
2604
- return local_days{to_days()};
2605
- }
2606
-
2607
- CONSTCD11
2608
- inline
2609
- bool
2610
- year_month_weekday_last::ok() const NOEXCEPT
2611
- {
2612
- return y_.ok() && m_.ok() && wdl_.ok();
2613
- }
2614
-
2615
- CONSTCD14
2616
- inline
2617
- days
2618
- year_month_weekday_last::to_days() const NOEXCEPT
2619
- {
2620
- auto const d = sys_days(y_/m_/last);
2621
- return (d - (islamic::weekday{d} - wdl_.weekday())).time_since_epoch();
2622
- }
2623
-
2624
- CONSTCD11
2625
- inline
2626
- bool
2627
- operator==(const year_month_weekday_last& x, const year_month_weekday_last& y) NOEXCEPT
2628
- {
2629
- return x.year() == y.year() && x.month() == y.month() &&
2630
- x.weekday_last() == y.weekday_last();
2631
- }
2632
-
2633
- CONSTCD11
2634
- inline
2635
- bool
2636
- operator!=(const year_month_weekday_last& x, const year_month_weekday_last& y) NOEXCEPT
2637
- {
2638
- return !(x == y);
2639
- }
2640
-
2641
- template<class CharT, class Traits>
2642
- inline
2643
- std::basic_ostream<CharT, Traits>&
2644
- operator<<(std::basic_ostream<CharT, Traits>& os, const year_month_weekday_last& ymwdl)
2645
- {
2646
- return os << ymwdl.year() << '/' << ymwdl.month() << '/' << ymwdl.weekday_last();
2647
- }
2648
-
2649
- CONSTCD14
2650
- inline
2651
- year_month_weekday_last
2652
- operator+(const year_month_weekday_last& ymwdl, const months& dm) NOEXCEPT
2653
- {
2654
- return (ymwdl.year() / ymwdl.month() + dm) / ymwdl.weekday_last();
2655
- }
2656
-
2657
- CONSTCD14
2658
- inline
2659
- year_month_weekday_last
2660
- operator+(const months& dm, const year_month_weekday_last& ymwdl) NOEXCEPT
2661
- {
2662
- return ymwdl + dm;
2663
- }
2664
-
2665
- CONSTCD14
2666
- inline
2667
- year_month_weekday_last
2668
- operator-(const year_month_weekday_last& ymwdl, const months& dm) NOEXCEPT
2669
- {
2670
- return ymwdl + (-dm);
2671
- }
2672
-
2673
- CONSTCD11
2674
- inline
2675
- year_month_weekday_last
2676
- operator+(const year_month_weekday_last& ymwdl, const years& dy) NOEXCEPT
2677
- {
2678
- return {ymwdl.year()+dy, ymwdl.month(), ymwdl.weekday_last()};
2679
- }
2680
-
2681
- CONSTCD11
2682
- inline
2683
- year_month_weekday_last
2684
- operator+(const years& dy, const year_month_weekday_last& ymwdl) NOEXCEPT
2685
- {
2686
- return ymwdl + dy;
2687
- }
2688
-
2689
- CONSTCD11
2690
- inline
2691
- year_month_weekday_last
2692
- operator-(const year_month_weekday_last& ymwdl, const years& dy) NOEXCEPT
2693
- {
2694
- return ymwdl + (-dy);
2695
- }
2696
-
2697
- // year_month from operator/()
2698
-
2699
- CONSTCD11
2700
- inline
2701
- year_month
2702
- operator/(const year& y, const month& m) NOEXCEPT
2703
- {
2704
- return {y, m};
2705
- }
2706
-
2707
- CONSTCD11
2708
- inline
2709
- year_month
2710
- operator/(const year& y, int m) NOEXCEPT
2711
- {
2712
- return y / month(static_cast<unsigned>(m));
2713
- }
2714
-
2715
- // month_day from operator/()
2716
-
2717
- CONSTCD11
2718
- inline
2719
- month_day
2720
- operator/(const month& m, const day& d) NOEXCEPT
2721
- {
2722
- return {m, d};
2723
- }
2724
-
2725
- CONSTCD11
2726
- inline
2727
- month_day
2728
- operator/(const day& d, const month& m) NOEXCEPT
2729
- {
2730
- return m / d;
2731
- }
2732
-
2733
- CONSTCD11
2734
- inline
2735
- month_day
2736
- operator/(const month& m, int d) NOEXCEPT
2737
- {
2738
- return m / day(static_cast<unsigned>(d));
2739
- }
2740
-
2741
- CONSTCD11
2742
- inline
2743
- month_day
2744
- operator/(int m, const day& d) NOEXCEPT
2745
- {
2746
- return month(static_cast<unsigned>(m)) / d;
2747
- }
2748
-
2749
- CONSTCD11 inline month_day operator/(const day& d, int m) NOEXCEPT {return m / d;}
2750
-
2751
- // month_day_last from operator/()
2752
-
2753
- CONSTCD11
2754
- inline
2755
- month_day_last
2756
- operator/(const month& m, last_spec) NOEXCEPT
2757
- {
2758
- return month_day_last{m};
2759
- }
2760
-
2761
- CONSTCD11
2762
- inline
2763
- month_day_last
2764
- operator/(last_spec, const month& m) NOEXCEPT
2765
- {
2766
- return m/last;
2767
- }
2768
-
2769
- CONSTCD11
2770
- inline
2771
- month_day_last
2772
- operator/(int m, last_spec) NOEXCEPT
2773
- {
2774
- return month(static_cast<unsigned>(m))/last;
2775
- }
2776
-
2777
- CONSTCD11
2778
- inline
2779
- month_day_last
2780
- operator/(last_spec, int m) NOEXCEPT
2781
- {
2782
- return m/last;
2783
- }
2784
-
2785
- // month_weekday from operator/()
2786
-
2787
- CONSTCD11
2788
- inline
2789
- month_weekday
2790
- operator/(const month& m, const weekday_indexed& wdi) NOEXCEPT
2791
- {
2792
- return {m, wdi};
2793
- }
2794
-
2795
- CONSTCD11
2796
- inline
2797
- month_weekday
2798
- operator/(const weekday_indexed& wdi, const month& m) NOEXCEPT
2799
- {
2800
- return m / wdi;
2801
- }
2802
-
2803
- CONSTCD11
2804
- inline
2805
- month_weekday
2806
- operator/(int m, const weekday_indexed& wdi) NOEXCEPT
2807
- {
2808
- return month(static_cast<unsigned>(m)) / wdi;
2809
- }
2810
-
2811
- CONSTCD11
2812
- inline
2813
- month_weekday
2814
- operator/(const weekday_indexed& wdi, int m) NOEXCEPT
2815
- {
2816
- return m / wdi;
2817
- }
2818
-
2819
- // month_weekday_last from operator/()
2820
-
2821
- CONSTCD11
2822
- inline
2823
- month_weekday_last
2824
- operator/(const month& m, const weekday_last& wdl) NOEXCEPT
2825
- {
2826
- return {m, wdl};
2827
- }
2828
-
2829
- CONSTCD11
2830
- inline
2831
- month_weekday_last
2832
- operator/(const weekday_last& wdl, const month& m) NOEXCEPT
2833
- {
2834
- return m / wdl;
2835
- }
2836
-
2837
- CONSTCD11
2838
- inline
2839
- month_weekday_last
2840
- operator/(int m, const weekday_last& wdl) NOEXCEPT
2841
- {
2842
- return month(static_cast<unsigned>(m)) / wdl;
2843
- }
2844
-
2845
- CONSTCD11
2846
- inline
2847
- month_weekday_last
2848
- operator/(const weekday_last& wdl, int m) NOEXCEPT
2849
- {
2850
- return m / wdl;
2851
- }
2852
-
2853
- // year_month_day from operator/()
2854
-
2855
- CONSTCD11
2856
- inline
2857
- year_month_day
2858
- operator/(const year_month& ym, const day& d) NOEXCEPT
2859
- {
2860
- return {ym.year(), ym.month(), d};
2861
- }
2862
-
2863
- CONSTCD11
2864
- inline
2865
- year_month_day
2866
- operator/(const year_month& ym, int d) NOEXCEPT
2867
- {
2868
- return ym / day(static_cast<unsigned>(d));
2869
- }
2870
-
2871
- CONSTCD11
2872
- inline
2873
- year_month_day
2874
- operator/(const year& y, const month_day& md) NOEXCEPT
2875
- {
2876
- return y / md.month() / md.day();
2877
- }
2878
-
2879
- CONSTCD11
2880
- inline
2881
- year_month_day
2882
- operator/(int y, const month_day& md) NOEXCEPT
2883
- {
2884
- return year(y) / md;
2885
- }
2886
-
2887
- CONSTCD11
2888
- inline
2889
- year_month_day
2890
- operator/(const month_day& md, const year& y) NOEXCEPT
2891
- {
2892
- return y / md;
2893
- }
2894
-
2895
- CONSTCD11
2896
- inline
2897
- year_month_day
2898
- operator/(const month_day& md, int y) NOEXCEPT
2899
- {
2900
- return year(y) / md;
2901
- }
2902
-
2903
- // year_month_day_last from operator/()
2904
-
2905
- CONSTCD11
2906
- inline
2907
- year_month_day_last
2908
- operator/(const year_month& ym, last_spec) NOEXCEPT
2909
- {
2910
- return {ym.year(), month_day_last{ym.month()}};
2911
- }
2912
-
2913
- CONSTCD11
2914
- inline
2915
- year_month_day_last
2916
- operator/(const year& y, const month_day_last& mdl) NOEXCEPT
2917
- {
2918
- return {y, mdl};
2919
- }
2920
-
2921
- CONSTCD11
2922
- inline
2923
- year_month_day_last
2924
- operator/(int y, const month_day_last& mdl) NOEXCEPT
2925
- {
2926
- return year(y) / mdl;
2927
- }
2928
-
2929
- CONSTCD11
2930
- inline
2931
- year_month_day_last
2932
- operator/(const month_day_last& mdl, const year& y) NOEXCEPT
2933
- {
2934
- return y / mdl;
2935
- }
2936
-
2937
- CONSTCD11
2938
- inline
2939
- year_month_day_last
2940
- operator/(const month_day_last& mdl, int y) NOEXCEPT
2941
- {
2942
- return year(y) / mdl;
2943
- }
2944
-
2945
- // year_month_weekday from operator/()
2946
-
2947
- CONSTCD11
2948
- inline
2949
- year_month_weekday
2950
- operator/(const year_month& ym, const weekday_indexed& wdi) NOEXCEPT
2951
- {
2952
- return {ym.year(), ym.month(), wdi};
2953
- }
2954
-
2955
- CONSTCD11
2956
- inline
2957
- year_month_weekday
2958
- operator/(const year& y, const month_weekday& mwd) NOEXCEPT
2959
- {
2960
- return {y, mwd.month(), mwd.weekday_indexed()};
2961
- }
2962
-
2963
- CONSTCD11
2964
- inline
2965
- year_month_weekday
2966
- operator/(int y, const month_weekday& mwd) NOEXCEPT
2967
- {
2968
- return year(y) / mwd;
2969
- }
2970
-
2971
- CONSTCD11
2972
- inline
2973
- year_month_weekday
2974
- operator/(const month_weekday& mwd, const year& y) NOEXCEPT
2975
- {
2976
- return y / mwd;
2977
- }
2978
-
2979
- CONSTCD11
2980
- inline
2981
- year_month_weekday
2982
- operator/(const month_weekday& mwd, int y) NOEXCEPT
2983
- {
2984
- return year(y) / mwd;
2985
- }
2986
-
2987
- // year_month_weekday_last from operator/()
2988
-
2989
- CONSTCD11
2990
- inline
2991
- year_month_weekday_last
2992
- operator/(const year_month& ym, const weekday_last& wdl) NOEXCEPT
2993
- {
2994
- return {ym.year(), ym.month(), wdl};
2995
- }
2996
-
2997
- CONSTCD11
2998
- inline
2999
- year_month_weekday_last
3000
- operator/(const year& y, const month_weekday_last& mwdl) NOEXCEPT
3001
- {
3002
- return {y, mwdl.month(), mwdl.weekday_last()};
3003
- }
3004
-
3005
- CONSTCD11
3006
- inline
3007
- year_month_weekday_last
3008
- operator/(int y, const month_weekday_last& mwdl) NOEXCEPT
3009
- {
3010
- return year(y) / mwdl;
3011
- }
3012
-
3013
- CONSTCD11
3014
- inline
3015
- year_month_weekday_last
3016
- operator/(const month_weekday_last& mwdl, const year& y) NOEXCEPT
3017
- {
3018
- return y / mwdl;
3019
- }
3020
-
3021
- CONSTCD11
3022
- inline
3023
- year_month_weekday_last
3024
- operator/(const month_weekday_last& mwdl, int y) NOEXCEPT
3025
- {
3026
- return year(y) / mwdl;
3027
- }
3028
-
3029
- } // namespace islamic
3030
-
3031
- #endif // ISLAMIC_H