1<library-reference> 2 <header name="boost/array.hpp"> 3 <namespace name="boost"> 4 <class name="array"> 5 <template> 6 <template-type-parameter name="T"/> 7 <template-nontype-parameter name="N"> 8 <type>std::size_t</type> 9 </template-nontype-parameter> 10 </template> 11 12 <purpose> 13 <para>STL compliant container wrapper for arrays of constant size</para> 14 </purpose> 15 <typedef name="value_type"> 16 <type>T</type> 17 </typedef> 18 <typedef name="iterator"> 19 <type>T*</type> 20 </typedef> 21 <typedef name="const_iterator"> 22 <type>const T*</type> 23 </typedef> 24 <typedef name="reverse_iterator"> 25 <type> 26 <classname>std::reverse_iterator</classname><iterator> 27 </type> 28 </typedef> 29 <typedef name="const_reverse_iterator"> 30 <type> 31 <classname>std::reverse_iterator</classname><const_iterator> 32 </type> 33 </typedef> 34 <typedef name="reference"> 35 <type>T&</type> 36 </typedef> 37 <typedef name="const_reference"> 38 <type>const T&</type> 39 </typedef> 40 <typedef name="size_type"> 41 <type>std::size_t</type> 42 </typedef> 43 <typedef name="difference_type"> 44 <type>std::ptrdiff_t</type> 45 </typedef> 46 47 <static-constant name="static_size"> 48 <type>size_type</type> 49 <default>N</default> 50 </static-constant> 51 52 <copy-assignment> 53 <template> 54 <template-type-parameter name="U"/> 55 </template> 56 <parameter name="other"> 57 <paramtype>const <classname>array</classname><U, N>&</paramtype> 58 </parameter> 59 <effects> 60 <simpara> 61 <code> 62 std::copy(rhs.<methodname>begin</methodname>(),rhs.<methodname>end</methodname>(), <methodname>begin</methodname>()) 63 </code> 64 </simpara> 65 </effects> 66 </copy-assignment> 67 68 <method-group name="iterator support"> 69 <overloaded-method name="begin"> 70 <signature> 71 <type>iterator</type> 72 </signature> 73 <signature cv="const"> 74 <type>const_iterator</type> 75 </signature> 76 77 <returns> 78 <simpara>iterator for the first element</simpara> 79 </returns> 80 <throws> 81 <simpara>will not throw</simpara> 82 </throws> 83 </overloaded-method> 84 85 <overloaded-method name="end"> 86 <signature> 87 <type>iterator</type> 88 </signature> 89 <signature cv="const"> 90 <type>const_iterator</type> 91 </signature> 92 93 <returns> 94 <simpara>iterator for position after the last element</simpara> 95 </returns> 96 <throws> 97 <simpara>will not throw</simpara> 98 </throws> 99 </overloaded-method> 100 </method-group> 101 102 <method-group name="reverse iterator support"> 103 <overloaded-method name="rbegin"> 104 <signature> 105 <type>reverse_iterator</type> 106 </signature> 107 <signature cv="const"> 108 <type>const_reverse_iterator</type> 109 </signature> 110 111 <returns> 112 <simpara>reverse iterator for the first element of reverse iteration</simpara> 113 </returns> 114 </overloaded-method> 115 116 <overloaded-method name="rend"> 117 <signature> 118 <type>reverse_iterator</type> 119 </signature> 120 <signature cv="const"> 121 <type>const_reverse_iterator</type> 122 </signature> 123 124 <returns> 125 <simpara>reverse iterator for position after the last element in reverse iteration</simpara> 126 </returns> 127 </overloaded-method> 128 </method-group> 129 130 <method-group name="capacity"> 131 <method name="size"> 132 <type>size_type</type> 133 <returns> 134 <simpara> 135 <code>N</code> 136 </simpara> 137 </returns> 138 </method> 139 <method name="empty"> 140 <type>bool</type> 141 <returns> 142 <simpara> 143 <code>N==0</code> 144 </simpara> 145 </returns> 146 <throws> 147 <simpara>will not throw</simpara> 148 </throws> 149 </method> 150 <method name="max_size"> 151 <type>size_type</type> 152 <returns> 153 <simpara> 154 <code>N</code> 155 </simpara> 156 </returns> 157 <throws> 158 <simpara>will not throw</simpara> 159 </throws> 160 </method> 161 </method-group> 162 163 <method-group name="element access"> 164 <overloaded-method name="operator[]"> 165 <signature> 166 <type>reference</type> 167 <parameter name="i"> 168 <paramtype>size_type</paramtype> 169 </parameter> 170 </signature> 171 172 <signature cv="const"> 173 <type>const_reference</type> 174 <parameter name="i"> 175 <paramtype>size_type</paramtype> 176 </parameter> 177 </signature> 178 179 <requires> 180 <simpara> 181 <code>i < N</code> 182 </simpara> 183 </requires> 184 <returns> 185 <simpara> 186 element with index <code>i</code> 187 </simpara> 188 </returns> 189 <throws> 190 <simpara>will not throw.</simpara> 191 </throws> 192 </overloaded-method> 193 194 <overloaded-method name="at"> 195 <signature> 196 <type>reference</type> 197 <parameter name="i"> 198 <paramtype>size_type</paramtype> 199 </parameter> 200 </signature> 201 202 <signature cv="const"> 203 <type>const_reference</type> 204 <parameter name="i"> 205 <paramtype>size_type</paramtype> 206 </parameter> 207 </signature> 208 209 <returns> 210 <simpara> 211 element with index <code>i</code> 212 </simpara> 213 </returns> 214 <throws> 215 <simpara> 216 <code> 217 <classname>std::range_error</classname> 218 </code> if <code>i >= N</code> 219 </simpara> 220 </throws> 221 </overloaded-method> 222 223 <overloaded-method name="front"> 224 <signature> 225 <type>reference</type> 226 </signature> 227 <signature cv="const"> 228 <type>const_reference</type> 229 </signature> 230 <requires> 231 <simpara> 232 <code>N > 0</code> 233 </simpara> 234 </requires> 235 <returns> 236 <simpara>the first element</simpara> 237 </returns> 238 <throws> 239 <simpara>will not throw</simpara> 240 </throws> 241 </overloaded-method> 242 243 <overloaded-method name="back"> 244 <signature> 245 <type>reference</type> 246 </signature> 247 <signature cv="const"> 248 <type>const_reference</type> 249 </signature> 250 <requires> 251 <simpara> 252 <code>N > 0</code> 253 </simpara> 254 </requires> 255 <returns> 256 <simpara>the last element</simpara> 257 </returns> 258 <throws> 259 <simpara>will not throw</simpara> 260 </throws> 261 </overloaded-method> 262 263 <method name="data" cv="const"> 264 <type>const T*</type> 265 <returns> 266 <simpara> 267 <code>elems</code> 268 </simpara> 269 </returns> 270 <throws> 271 <simpara>will not throw</simpara> 272 </throws> 273 </method> 274 275 <method name="c_array"> 276 <type>T*</type> 277 <returns> 278 <simpara> 279 <code>elems</code> 280 </simpara> 281 </returns> 282 <throws> 283 <simpara>will not throw</simpara> 284 </throws> 285 </method> 286 </method-group> 287 288 <method-group name="modifiers"> 289 <method name="swap"> 290 <type>void</type> 291 <parameter name="other"> 292 <paramtype><classname>array</classname><T, N>&</paramtype> 293 </parameter> 294 <effects> 295 <simpara> 296 <code> 297 std::swap_ranges(<methodname>begin</methodname>(), <methodname>end</methodname>(), other.<methodname>begin</methodname>()) 298 </code> 299 </simpara> 300 </effects> 301 <complexity> 302 <simpara> 303 linear in <code>N</code> 304 </simpara> 305 </complexity> 306 </method> 307 <method name="assign"> 308 <type>void</type> 309 <parameter name="value"> 310 <paramtype>const T&</paramtype> 311 </parameter> 312 <effects> 313 <simpara> 314 <code> 315 std::fill_n(<methodname>begin</methodname>(), N, value) 316 </code> 317 </simpara> 318 </effects> 319 </method> 320 </method-group> 321 322 <data-member name="elems[N]"> 323 <!-- HACK --> 324 <type>T</type> 325 </data-member> 326 327 <free-function-group name="specialized algorithms"> 328 <function name="swap"> 329 <template> 330 <template-type-parameter name="T"/> 331 <template-nontype-parameter name="N"> 332 <type>std::size_t</type> 333 </template-nontype-parameter> 334 </template> 335 336 <type>void</type> 337 338 <parameter name="x"> 339 <paramtype><classname>array</classname><T, N>&</paramtype> 340 </parameter> 341 <parameter name="y"> 342 <paramtype><classname>array</classname><T, N>&</paramtype> 343 </parameter> 344 345 <effects> 346 <simpara> 347 <code> 348 x.<methodname>swap</methodname>(y) 349 </code> 350 </simpara> 351 </effects> 352 <throws> 353 <simpara>will not throw.</simpara> 354 </throws> 355 </function> 356 </free-function-group> 357 358 <free-function-group name="comparisons"> 359 <function name="operator=="> 360 <template> 361 <template-type-parameter name="T"/> 362 <template-nontype-parameter name="N"> 363 <type>std::size_t</type> 364 </template-nontype-parameter> 365 </template> 366 367 <type>bool</type> 368 369 <parameter name="x"> 370 <paramtype>const <classname>array</classname><T, N>&</paramtype> 371 </parameter> 372 <parameter name="y"> 373 <paramtype>const <classname>array</classname><T, N>&</paramtype> 374 </parameter> 375 376 <returns> 377 <simpara> 378 <code> 379 std::equal(x.<methodname>begin</methodname>(), x.<methodname>end</methodname>(), y.<methodname>begin</methodname>()) 380 </code> 381 </simpara> 382 </returns> 383 </function> 384 385 <function name="operator!="> 386 <template> 387 <template-type-parameter name="T"/> 388 <template-nontype-parameter name="N"> 389 <type>std::size_t</type> 390 </template-nontype-parameter> 391 </template> 392 393 <type>bool</type> 394 395 <parameter name="x"> 396 <paramtype>const <classname>array</classname><T, N>&</paramtype> 397 </parameter> 398 <parameter name="y"> 399 <paramtype>const <classname>array</classname><T, N>&</paramtype> 400 </parameter> 401 402 <returns> 403 <simpara> 404 <code>!(x == y)</code> 405 </simpara> 406 </returns> 407 </function> 408 409 <function name="operator<"> 410 <template> 411 <template-type-parameter name="T"/> 412 <template-nontype-parameter name="N"> 413 <type>std::size_t</type> 414 </template-nontype-parameter> 415 </template> 416 417 <type>bool</type> 418 419 <parameter name="x"> 420 <paramtype>const <classname>array</classname><T, N>&</paramtype> 421 </parameter> 422 <parameter name="y"> 423 <paramtype>const <classname>array</classname><T, N>&</paramtype> 424 </parameter> 425 426 <returns> 427 <simpara> 428 <code> 429 std::lexicographical_compare(x.<methodname>begin</methodname>(), x.<methodname>end</methodname>(), y.<methodname>begin</methodname>(), y.<methodname>end</methodname>()) 430 </code> 431 </simpara> 432 </returns> 433 </function> 434 435 <function name="operator>"> 436 <template> 437 <template-type-parameter name="T"/> 438 <template-nontype-parameter name="N"> 439 <type>std::size_t</type> 440 </template-nontype-parameter> 441 </template> 442 443 <type>bool</type> 444 445 <parameter name="x"> 446 <paramtype>const <classname>array</classname><T, N>&</paramtype> 447 </parameter> 448 <parameter name="y"> 449 <paramtype>const <classname>array</classname><T, N>&</paramtype> 450 </parameter> 451 452 <returns> 453 <simpara> 454 <code>y < x</code> 455 </simpara> 456 </returns> 457 </function> 458 459 <function name="operator<="> 460 <template> 461 <template-type-parameter name="T"/> 462 <template-nontype-parameter name="N"> 463 <type>std::size_t</type> 464 </template-nontype-parameter> 465 </template> 466 467 <type>bool</type> 468 469 <parameter name="x"> 470 <paramtype>const <classname>array</classname><T, N>&</paramtype> 471 </parameter> 472 <parameter name="y"> 473 <paramtype>const <classname>array</classname><T, N>&</paramtype> 474 </parameter> 475 476 <returns> 477 <simpara> 478 <code>!(y < x)</code> 479 </simpara> 480 </returns> 481 </function> 482 483 <function name="operator>="> 484 <template> 485 <template-type-parameter name="T"/> 486 <template-nontype-parameter name="N"> 487 <type>std::size_t</type> 488 </template-nontype-parameter> 489 </template> 490 491 <type>bool</type> 492 493 <parameter name="x"> 494 <paramtype>const <classname>array</classname><T, N>&</paramtype> 495 </parameter> 496 <parameter name="y"> 497 <paramtype>const <classname>array</classname><T, N>&</paramtype> 498 </parameter> 499 500 <returns> 501 <simpara> 502 <code>!(x < y)</code> 503 </simpara> 504 </returns> 505 </function> 506 </free-function-group> 507 </class> 508 </namespace> 509 </header> 510</library-reference> 511 512