├── bower_components ├── core-component-page │ ├── bowager-logo.png │ ├── bower.json │ ├── README.md │ ├── .bower.json │ ├── index.html │ └── demo.html ├── core-ajax │ ├── README.md │ ├── bower.json │ ├── test │ │ ├── index.html │ │ ├── core-ajax-race.html │ │ ├── core-ajax-progress.html │ │ └── core-ajax.html │ ├── .bower.json │ ├── index.html │ ├── metadata.html │ ├── demo.html │ ├── demo-progress.html │ ├── core-xhr.html │ └── core-ajax.html ├── webcomponentsjs │ ├── bower.json │ ├── .bower.json │ ├── package.json │ ├── build.log │ ├── README.md │ └── CustomElements.min.js ├── cxx-html-doc-framework │ ├── bower.json │ ├── email.html │ ├── range.html │ ├── .bower.json │ ├── note.html │ ├── term.html │ ├── example.html │ ├── weak-break.html │ ├── ednote.html │ ├── foreign-index.js │ ├── foreign-index.html │ ├── definition-section.html │ ├── codeblock.html │ ├── publish.html │ ├── figure.html │ ├── footnote.html │ ├── include.js │ ├── clause.html │ ├── framework.html │ ├── section.html │ ├── toc.html │ ├── definition-section.js │ ├── toc.js │ ├── ref.html │ ├── grammar.html │ ├── ref.js │ ├── util │ │ └── get-element-by-id.html │ ├── foreword.html │ ├── section.js │ ├── titlepage.js │ ├── table.html │ ├── promise-0.1.1.min.js │ ├── function.html │ ├── base.css │ ├── README.md │ ├── publish.js │ ├── titlepage.html │ └── LICENSE └── polymer │ ├── polymer.html │ ├── build.log │ ├── bower.json │ ├── .bower.json │ ├── README.md │ └── layout.html ├── front_matter.html ├── main.html ├── scope.html ├── algorithms_list.txt ├── README.md ├── normative_references.html ├── cxx_N3797_index.json ├── terms_and_definitions.html ├── general.html ├── exceptions.html └── execution_policies.html /bower_components/core-component-page/bowager-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cplusplus/parallelism-ts/HEAD/bower_components/core-component-page/bowager-logo.png -------------------------------------------------------------------------------- /bower_components/core-ajax/README.md: -------------------------------------------------------------------------------- 1 | core-ajax 2 | ========= 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-ajax) for more information. 5 | -------------------------------------------------------------------------------- /bower_components/core-component-page/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs", 6 | "polymer": "Polymer/polymer#^0.5" 7 | }, 8 | "version": "0.5.6" 9 | } -------------------------------------------------------------------------------- /bower_components/core-ajax/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-ajax", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "polymer-test-tools": "Polymer/polymer-test-tools#master" 9 | }, 10 | "version": "0.5.2" 11 | } -------------------------------------------------------------------------------- /bower_components/webcomponentsjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.5", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [] 14 | } -------------------------------------------------------------------------------- /bower_components/core-ajax/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /front_matter.html: -------------------------------------------------------------------------------- 1 | 2 | N4698 3 | 19570 4 | 5 | N4669 6 | 7 | Jared Hoberock
8 | NVIDIA Corporation
9 | jhoberock@nvidia.com 10 |
11 |

Technical Specification for C++ Extensions for Parallelism Version 2

12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cxx-html-doc-framework", 3 | "description": "A set of custom HTML elements to make writing well-formatted C++ papers and ISO documents easier.", 4 | "main": "framework.html", 5 | "homepage": "https://github.com/cplusplus/html-doc-framework", 6 | "ignore": [ 7 | "**/.*", 8 | "bower_components", 9 | "test", 10 | "tests" 11 | ], 12 | "dependencies": { 13 | "polymer": "Polymer/polymer#0.5.2", 14 | "core-ajax": "Polymer/core-ajax#0.5.2" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /bower_components/core-component-page/README.md: -------------------------------------------------------------------------------- 1 | core-component-page 2 | =================== 3 | 4 | **This element is compatible with Polymer 0.5 and lower only, and will be deprecated.** 5 | You can check out a similar 0.8-compatible version of this element at [https://github.com/polymerelements/iron-components-page](https://github.com/polymerelements/iron-component-page) 6 | 7 | See the [component page](https://www.polymer-project.org/0.5/docs/elements/core-component-page.html) for more information. 8 | 9 | Note: this is the vulcanized version of [`core-component-page-dev`](https://github.com/Polymer/core-component-page-dev) (the source). 10 | -------------------------------------------------------------------------------- /bower_components/polymer/polymer.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /bower_components/core-ajax/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-ajax", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "polymer-test-tools": "Polymer/polymer-test-tools#master" 9 | }, 10 | "version": "0.5.2", 11 | "homepage": "https://github.com/Polymer/core-ajax", 12 | "_release": "0.5.2", 13 | "_resolution": { 14 | "type": "version", 15 | "tag": "0.5.2", 16 | "commit": "3ef7992d54e89e290b813a463950d9d8953160a1" 17 | }, 18 | "_source": "git://github.com/Polymer/core-ajax.git", 19 | "_target": "0.5.2", 20 | "_originalSource": "Polymer/core-ajax" 21 | } -------------------------------------------------------------------------------- /bower_components/core-component-page/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs", 6 | "polymer": "Polymer/polymer#^0.5" 7 | }, 8 | "version": "0.5.6", 9 | "homepage": "https://github.com/Polymer/core-component-page", 10 | "_release": "0.5.6", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.6", 14 | "commit": "01a1d3968d7ece144783bcd03bc87b18344265e3" 15 | }, 16 | "_source": "git://github.com/Polymer/core-component-page.git", 17 | "_target": "^0.5.0", 18 | "_originalSource": "Polymer/core-component-page" 19 | } -------------------------------------------------------------------------------- /bower_components/webcomponentsjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.5", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [], 14 | "_release": "0.5.5", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.5.5", 18 | "commit": "46f8f2665f7b91e3f248bc9bdb20a29b91f921b5" 19 | }, 20 | "_source": "git://github.com/Polymer/webcomponentsjs.git", 21 | "_target": "^0.5.0", 22 | "_originalSource": "Polymer/webcomponentsjs" 23 | } -------------------------------------------------------------------------------- /bower_components/polymer/build.log: -------------------------------------------------------------------------------- 1 | BUILD LOG 2 | --------- 3 | Build Time: 2014-12-11T12:46:30 4 | 5 | NODEJS INFORMATION 6 | ================== 7 | nodejs: v0.10.33 8 | grunt: 0.4.5 9 | grunt-audit: 1.0.0 10 | grunt-contrib-concat: 0.5.0 11 | grunt-contrib-copy: 0.7.0 12 | grunt-contrib-uglify: 0.6.0 13 | grunt-string-replace: 1.0.0 14 | 15 | REPO REVISIONS 16 | ============== 17 | polymer-expressions: 197c3a0150e7a13374cfcc72e7066113723a623d 18 | polymer-gestures: 17a6304916521be39409af292e8adf899bae0ce7 19 | polymer: a74e9f36526361dccb6df91be439ff9c3e043f41 20 | 21 | BUILD HASHES 22 | ============ 23 | dist/polymer.js: b9ad4c86af79c748cf4ea722f6d56671079fadf7 24 | dist/polymer.min.js: 2f2021ba9682b0bb702ee7fb68fb6fbfd288eac2 25 | dist/layout.html: 348d358a91712ecc2f8811efa430fcd954b4590c -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/email.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /bower_components/polymer/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5.0", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.2" 23 | } -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/range.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /bower_components/core-ajax/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /bower_components/core-component-page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cxx-html-doc-framework", 3 | "description": "A set of custom HTML elements to make writing well-formatted C++ papers and ISO documents easier.", 4 | "main": "framework.html", 5 | "homepage": "https://github.com/cplusplus/html-doc-framework", 6 | "ignore": [ 7 | "**/.*", 8 | "bower_components", 9 | "test", 10 | "tests" 11 | ], 12 | "dependencies": { 13 | "polymer": "Polymer/polymer#0.5.2", 14 | "core-ajax": "Polymer/core-ajax#0.5.2" 15 | }, 16 | "version": "0.3.2", 17 | "_release": "0.3.2", 18 | "_resolution": { 19 | "type": "version", 20 | "tag": "0.3.2", 21 | "commit": "9604bb1ff78b2f33fbcbcb941ea0fbae2e65d943" 22 | }, 23 | "_source": "git://github.com/cplusplus/html-doc-framework.git", 24 | "_target": "~0.3.2", 25 | "_originalSource": "cplusplus/html-doc-framework", 26 | "_direct": true 27 | } -------------------------------------------------------------------------------- /bower_components/webcomponentsjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponents.js", 3 | "version": "0.5.5", 4 | "description": "webcomponents.js", 5 | "main": "webcomponents.js", 6 | "directories": { 7 | "test": "tests" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/webcomponents/webcomponentsjs.git" 12 | }, 13 | "author": "The Polymer Authors", 14 | "license": { 15 | "type": "BSD-3-Clause", 16 | "url": "http://polymer.github.io/LICENSE.txt" 17 | }, 18 | "bugs": { 19 | "url": "https://github.com/webcomponents/webcomponentsjs/issues" 20 | }, 21 | "homepage": "http://webcomponents.org", 22 | "devDependencies": { 23 | "gulp": "^3.8.8", 24 | "gulp-audit": "^1.0.0", 25 | "gulp-concat": "^2.4.1", 26 | "gulp-header": "^1.1.1", 27 | "gulp-uglify": "^1.0.1", 28 | "run-sequence": "^1.0.1", 29 | "web-component-tester": "*" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /main.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /bower_components/core-component-page/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/note.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 23 | 24 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/term.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 18 | 19 | 20 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /bower_components/core-ajax/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/example.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 27 | 28 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/weak-break.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 19 | 20 | 21 | 25 | 26 | -------------------------------------------------------------------------------- /bower_components/webcomponentsjs/build.log: -------------------------------------------------------------------------------- 1 | BUILD LOG 2 | --------- 3 | Build Time: 2015-02-17T17:24:48-0800 4 | 5 | NODEJS INFORMATION 6 | ================== 7 | nodejs: v0.12.0 8 | gulp: 3.8.11 9 | gulp-audit: 1.0.0 10 | gulp-concat: 2.5.0 11 | gulp-header: 1.2.2 12 | gulp-uglify: 1.1.0 13 | run-sequence: 1.0.2 14 | web-component-tester: 2.2.3 15 | 16 | REPO REVISIONS 17 | ============== 18 | webcomponentsjs: 74b6b18443dd13e1cee184f688e23ae3930ed30c 19 | 20 | BUILD HASHES 21 | ============ 22 | CustomElements.js: 939c4b32847bf8085532995428001c3402f96cff 23 | CustomElements.min.js: cb3fd472ea0a9c45f5f03f86a6c5083f5077e907 24 | HTMLImports.js: 018bc32bc02bc6dc7dcacbd409438b26c31c2e6d 25 | HTMLImports.min.js: a3cb3e4ded3d708ba8333a8d5927ec93587fc191 26 | ShadowDOM.js: e34e8e3707d015a0ac9ec718d17b93c54500d028 27 | ShadowDOM.min.js: b3c2f09259d03ec44bd08ebbe9ed67dae3a06aaf 28 | webcomponents-lite.js: 83f6c69c9f38d6c88b1717427e713e57a96e7d70 29 | webcomponents-lite.min.js: d369074b523ff3806e7f71770a4d360f33331d48 30 | webcomponents.js: b91a9a8ae8c79bfc0275a766f3153f390ef74d81 31 | webcomponents.min.js: 91901c97731fc010ba5bb43624aa37d5320071c4 -------------------------------------------------------------------------------- /bower_components/polymer/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5.0", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.2", 23 | "_release": "0.5.2", 24 | "_resolution": { 25 | "type": "version", 26 | "tag": "0.5.2", 27 | "commit": "2a9ca53fa79ca09907e818f1adf806765409ec9c" 28 | }, 29 | "_source": "git://github.com/Polymer/polymer.git", 30 | "_target": "0.5.2", 31 | "_originalSource": "Polymer/polymer" 32 | } -------------------------------------------------------------------------------- /scope.html: -------------------------------------------------------------------------------- 1 | 2 |

Scope

3 |

This Technical Specification describes requirements for implementations of an 4 | interface that computer programs written in the C++ programming language may 5 | use to invoke algorithms with parallel execution. The algorithms described by 6 | this Technical Specification are realizable across a broad class of 7 | computer architectures.

8 | 9 |

This Technical Specification is non-normative. Some of the functionality 10 | described by this Technical Specification may be considered for standardization 11 | in a future version of C++, but it is not currently part of any C++ standard. 12 | Some of the functionality in this Technical Specification may never be 13 | standardized, and other functionality may be standardized in a substantially 14 | changed form.

15 | 16 |

The goal of this Technical Specification is to build widespread existing 17 | practice for parallelism in the C++ standard algorithms library. It gives 18 | advice on extensions to those vendors who wish to provide them.

19 |
20 | 21 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/ednote.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 30 | 31 | -------------------------------------------------------------------------------- /algorithms_list.txt: -------------------------------------------------------------------------------- 1 | adjacent_difference 2 | adjacent_find 3 | all_of 4 | any_of 5 | copy 6 | copy_if 7 | copy_n 8 | count 9 | count_if 10 | equal 11 | exclusive_scan 12 | fill 13 | fill_n 14 | find 15 | find_end 16 | find_first_of 17 | find_if 18 | find_if_not 19 | for_each 20 | for_each_n 21 | generate 22 | generate_n 23 | includes 24 | inclusive_scan 25 | inner_product 26 | inplace_merge 27 | is_heap 28 | is_heap_until 29 | is_partitioned 30 | is_sorted 31 | is_sorted_until 32 | lexicographical_compare 33 | max_element 34 | merge 35 | min_element 36 | minmax_element 37 | mismatch 38 | move 39 | none_of 40 | nth_element 41 | partial_sort 42 | partial_sort_copy 43 | partition 44 | partition_copy 45 | reduce 46 | remove 47 | remove_copy 48 | remove_copy_if 49 | remove_if 50 | replace 51 | replace_copy 52 | replace_copy_if 53 | replace_if 54 | reverse 55 | reverse_copy 56 | rotate 57 | rotate_copy 58 | search 59 | search_n 60 | set_difference 61 | set_intersection 62 | set_symmetric_difference 63 | set_union 64 | sort 65 | stable_partition 66 | stable_sort 67 | swap_ranges 68 | transform 69 | transform_exclusive_scan 70 | transform_inclusive_scan 71 | transform_reduce 72 | uninitialized_copy 73 | uninitialized_copy_n 74 | uninitialized_fill 75 | uninitialized_fill_n 76 | unique 77 | unique_copy 78 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Document Number: N4699 2 | Date: 2017-10-16 3 | Revises: 4 | Project: Programming Language C++ 5 | Project Number: TS 19570 6 | Reply-to: Jared Hoberock 7 | NVIDIA Corporation 8 | jhoberock@nvidia.com 9 | 10 | # Parallelism TS Editor's Report, pre-Albuquerque mailing 11 | 12 | N4698 is the proposed working draft of Parallelism TS Version 2. It contains changes to the Parallelism TS as directed by the committee at the Toronto meeting, and editorial changes. 13 | 14 | N4698 updates the previous draft, N4669, published in the pre-Toronto mailing. 15 | 16 | # Technical Changes 17 | 18 | * Apply P0076R4 - Vector and Wavefront Policies. 19 | 20 | # Editorial Changes 21 | 22 | * Reformat Table 1 - Feature Test Macro(s), to match the style of the Library Fundamentals TS. 23 | 24 | # Notes 25 | 26 | * The pre-existing content of N4698 has not yet been harmonized with C++17. As a result, this content is named and namespaced inconsistently with the newly applied content of P0076R4. We anticipate that these inconsistencies will be harmonized by a future revision. 27 | * N4698 contains forward references to `for_loop` and `for_loop_strided`. We anticipate their introduction in a future revision. 28 | 29 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/foreign-index.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | Polymer('cxx-foreign-index', { 17 | attachIndex: function(e) { 18 | this.index = e.detail.response; 19 | if (typeof(this.index) != 'object') { 20 | this.index = JSON.parse(this.index); 21 | } 22 | 23 | for (var property in this.index) { 24 | if (this.index.hasOwnProperty(property) && 25 | typeof(this.index[property]) != 'string') { 26 | console.error(this.src, 27 | 'should map section names to their numbers, but', 28 | property, 'mapped to', this.index[property]); 29 | } 30 | } 31 | } 32 | }); 33 | -------------------------------------------------------------------------------- /normative_references.html: -------------------------------------------------------------------------------- 1 | 2 |

Normative references

3 | 4 |

The following referenced document is indispensable for the 5 | application of this document. For dated references, only the 6 | edition cited applies. For undated references, the latest edition 7 | of the referenced document (including any amendments) applies.

8 | 9 |
    10 |
  • ISO/IEC 14882:—To be published. Section references are relative to N3937., 11 | Programming Languages — C++ 12 |
  • 13 |
14 | 15 |

ISO/IEC 14882:— is herein called the C++ Standard. 16 | The library described in ISO/IEC 14882:— clauses 17-30 is herein called 17 | the C++ Standard Library. The C++ Standard Library components described in 18 | ISO/IEC 14882:— clauses 25, 26.7 and 20.7.2 are herein called the C++ Standard 19 | Algorithms Library.

20 | 21 |

Unless otherwise specified, the whole of the C++ Standard's Library 22 | introduction () is included into this 23 | Technical Specification by reference.

24 |
25 | 26 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/foreign-index.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 21 | 22 | 24 | 25 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /bower_components/polymer/README.md: -------------------------------------------------------------------------------- 1 | # Polymer 2 | 3 | [![Polymer build status](http://www.polymer-project.org/build/polymer-dev/status.png "Polymer build status")](http://build.chromium.org/p/client.polymer/waterfall) 4 | 5 | ## Brief Overview 6 | 7 | For more detailed info goto [http://polymer-project.org/](http://polymer-project.org/). 8 | 9 | Polymer is a new type of library for the web, designed to leverage the existing browser infrastructure to provide the encapsulation and extendability currently only available in JS libraries. 10 | 11 | Polymer is based on a set of future technologies, including [Shadow DOM](http://w3c.github.io/webcomponents/spec/shadow/), [Custom Elements](http://w3c.github.io/webcomponents/spec/custom/) and Model Driven Views. Currently these technologies are implemented as polyfills or shims, but as browsers adopt these features natively, the platform code that drives Polymer evacipates, leaving only the value-adds. 12 | 13 | ## Tools & Testing 14 | 15 | For running tests or building minified files, consult the [tooling information](https://www.polymer-project.org/resources/tooling-strategy.html). 16 | 17 | ## Releases 18 | 19 | [Release (tagged) versions](https://github.com/Polymer/polymer/releases) of Polymer include concatenated and minified sources for your convenience. 20 | 21 | [![Analytics](https://ga-beacon.appspot.com/UA-39334307-2/Polymer/polymer/README)](https://github.com/igrigorik/ga-beacon) 22 | -------------------------------------------------------------------------------- /bower_components/core-ajax/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | core-ajax 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 24 | 25 | 28 | 29 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/definition-section.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 21 | 22 | 32 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/codeblock.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 28 | 29 | 35 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/publish.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 25 | 26 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/figure.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 20 | 21 | 34 | 47 | 48 | -------------------------------------------------------------------------------- /cxx_N3797_index.json: -------------------------------------------------------------------------------- 1 | { 2 | "basic.stc.dynamic.deallocation": "3.7.4.2", 3 | "expr": "5", 4 | "expr.call": "5.2.2", 5 | "expr.cond": "5.16", 6 | "dcl.constexpr": "7.1.5", 7 | "over.match.best": "13.3.3", 8 | "temp.deduct": "14.8.2", 9 | "library": "17", 10 | "hash.requirements": "17.6.3.4", 11 | "allocator.requirements": "17.6.3.5", 12 | "syserr": "19.5", 13 | "utility.swap": "20.2.2", 14 | "tuple.helper": "20.4.2.5", 15 | "allocator.uses": "20.7.7", 16 | "allocator.uses.construction": "20.7.7.2", 17 | "util.smartptr": "20.8.2", 18 | "util.smartptr.shared": "20.8.2.2", 19 | "util.smartptr.shared.const": "20.8.2.2.1", 20 | "util.smartptr.shared.obs": "20.8.2.2.5", 21 | "util.smartptr.shared.cast": "20.8.2.2.9", 22 | "util.smartptr.weak": "20.8.2.3", 23 | "util.smartptr.weak.const": "20.8.2.3.1", 24 | "function.objects": "20.9", 25 | "bind": "20.9.9", 26 | "func.wrap.func": "20.9.11.2", 27 | "func.wrap.func.con": "20.9.11.2.1", 28 | "func.wrap.func.mod": "20.9.11.2.2", 29 | "unord.hash": "20.9.12", 30 | "meta.rqmts": "20.10.1", 31 | "meta.unary.cat": "20.10.4.1", 32 | "meta.unary.comp": "20.10.4.2", 33 | "meta.unary.prop": "20.10.4.3", 34 | "meta.unary.prop.query": "20.10.5", 35 | "meta.rel": "20.10.6", 36 | "meta.trans.other": "20.10.7.6", 37 | "ratio.comparison": "20.11.5", 38 | "time.traits": "20.12.4", 39 | "strings.general": "21.1", 40 | "char.traits": "21.2", 41 | "container.requirements": "23.2", 42 | "iterator.traits": "24.4.1", 43 | "iterator.range": "24.7", 44 | "algorithms.general": "25.1", 45 | "rand.req.urng": "26.5.1.3", 46 | "futures.promise": "30.6.5", 47 | "futures.task": "30.6.9", 48 | "futures.task.nonmembers": "30.6.9.2" 49 | } 50 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/footnote.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 31 | 32 | 45 | 46 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/include.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | /* The element replaces itself with the contents at 17 | * 'href'. It doesn't use a shadow root so that the other document 18 | * acts exactly as part of the current document. */ 19 | 20 | (function() { 21 | "use strict"; 22 | var includeProto = Object.create(HTMLElement.prototype); 23 | includeProto.attachedCallback = function() { 24 | this.link = document.createElement('link'); 25 | this.link.setAttribute('rel', 'import'); 26 | this.link.setAttribute('href', this.getAttribute('href')); 27 | this.link.onload = this.loaded.bind(this); 28 | this.link.onerror = function(e) { 29 | console.error(e); 30 | } 31 | document.head.appendChild(this.link); 32 | }; 33 | includeProto.loaded = function(e) { 34 | var imported = this.link.import; 35 | this.link.parentNode.removeChild(this.link); 36 | var parent = this.parentNode; 37 | for (var elem = imported.body.firstChild; elem; elem = elem.nextSibling) { 38 | parent.insertBefore(elem.cloneNode(true), this); 39 | } 40 | parent.removeChild(this); 41 | }; 42 | document.registerElement('cxx-include', {prototype: includeProto}); 43 | })(); 44 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/clause.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 50 | 51 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/framework.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /bower_components/core-ajax/demo-progress.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Race condition 7 | 8 | 9 | 10 | 11 | 12 | 46 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /terms_and_definitions.html: -------------------------------------------------------------------------------- 1 | 2 |

Terms and definitions

3 | 4 |

For the purposes of this document, the terms and definitions given in the C++ Standard and the following apply.

5 | 6 |

A parallel algorithm is a function template described by this Technical Specification declared in namespace std::experimental::parallel::v2 with a formal template parameter named ExecutionPolicy.

7 | 8 |

9 | Parallel algorithms access objects indirectly accessible via their arguments by invoking the following functions: 10 | 11 |

    12 |
  • 13 | All operations of the categories of the iterators that the algorithm is instantiated with. 14 |
  • 15 | 16 |
  • 17 | Functions on those sequence elements that are required by its specification. 18 |
  • 19 | 20 |
  • 21 | User-provided function objects to be applied during the execution of the algorithm, if required by the specification. 22 |
  • 23 | 24 |
  • 25 | Operations on those function objects required by the specification. 26 | 27 | 28 | See clause 25.1 of C++ Standard Algorithms Library. 29 | 30 |
  • 31 |
32 | 33 | These functions are herein called element access functions. 34 | 35 | 36 | The sort function may invoke the following element access functions: 37 | 38 |
    39 |
  • 40 | Methods of the random-access iterator of the actual template argument, as per 24.2.7, as implied by the name of the 41 | template parameters RandomAccessIterator. 42 |
  • 43 | 44 |
  • 45 | The swap function on the elements of the sequence (as per 25.4.1.1 [sort]/2). 46 |
  • 47 | 48 |
  • 49 | The user-provided Compare function object. 50 |
  • 51 |
52 |
53 |
54 | 55 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/section.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 25 | 26 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/toc.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/definition-section.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | (function() { 17 | // Record the document that this element is declared in, so we can 18 | // pull the
template out of it. 19 | // The condition handles the HTML Imports polyfill: 20 | // http://www.polymer-project.org/platform/html-imports.html#other-notes 21 | var importDocument = document._currentScript 22 | ? document._currentScript.ownerDocument 23 | : document.currentScript.ownerDocument; 24 | 25 | Polymer('cxx-definition-section', { 26 | ready: function() { 27 | var parent_section = this.parentElement; 28 | while (parent_section && parent_section.tagName != 'CXX-SECTION') 29 | parent_section = parent_section.parentElement; 30 | if (!parent_section) { 31 | console.error('cxx-definition-section', this, 32 | 'must be a descendent of a element.'); 33 | return; 34 | } 35 | 36 | var next_term_number = 1; 37 | for (var dt = this.firstElementChild; dt; 38 | dt = dt.nextElementSibling) { 39 | if (dt.tagName != 'DT') 40 | continue; 41 | 42 | dt.parent_section = parent_section; 43 | dt.term_number = next_term_number++; 44 | 45 | var template = importDocument.getElementById( 46 | 'cxx-definition-section-term').cloneNode(true); 47 | template.removeAttribute('id'); 48 | template.model = dt; 49 | 50 | dt.createShadowRoot().appendChild(template); 51 | } 52 | } 53 | }); 54 | })(); 55 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/toc.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | (function() { 17 | Polymer('cxx-toc', { 18 | // Hierarchy :: [{ elem: Element, title: H1, sections: Hierarchy }] 19 | sections: [], 20 | 21 | // Updated with the list of elements in the document each 22 | // time such an element is attached or detached. 23 | clauses: [], 24 | 25 | collectSections: function(root) { 26 | var sections = []; 27 | for (var child = root.firstElementChild; child; 28 | child = child.nextElementSibling) { 29 | if (child.tagName.toUpperCase() != 'CXX-SECTION') 30 | continue; 31 | sections.push(this.collectSections(child)); 32 | } 33 | var h1 = root.querySelector('h1'); 34 | return {elem: root, 35 | title: h1 ? h1.textContent : root.title, 36 | sections: sections}; 37 | }, 38 | 39 | updateClauses: function() { 40 | this.clauses = document.querySelectorAll('cxx-foreword,cxx-clause'); 41 | }, 42 | 43 | clausesChanged: function() { 44 | var clause_num = 1; 45 | this.sections = this.clauses.array().map(function(clause) { 46 | if (clause.set_clause_num) { 47 | // Don't number things that can't accept numbers, indicated 48 | // by not having a set_clause_num method. 49 | clause_num = clause.set_clause_num(clause_num); 50 | } 51 | return this.collectSections(clause); 52 | }, this); 53 | }, 54 | 55 | domReady: function() { 56 | this.updateClauses(); 57 | } 58 | }) 59 | })(); 60 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/ref.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 29 | 30 | 31 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/grammar.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 26 | 27 | 33 | 34 | 35 | 38 | 39 | 45 | 46 | 47 | 48 | 52 | 53 | 59 | 60 | 61 | 64 | 65 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /bower_components/core-ajax/test/core-ajax-race.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | core-ajax 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 | 28 | 33 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/ref.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | (function() { 17 | Polymer('cxx-ref', { 18 | to: "", 19 | insynopsis: false, 20 | 21 | observe: { 22 | 'inElem.index': 'indexChanged' 23 | }, 24 | 25 | checkInvariants: function() { 26 | if (this.in) { 27 | if (!this.inElem) { 28 | console.error(this, '.in (', this.in, 29 | ') must refer to a element.'); 30 | } 31 | } else { 32 | if (!this.to) { 33 | console.error('', this, 34 | 'must have an `in` or `to` attribute.'); 35 | } else if (!this.toElem) { 36 | console.error(this, '.to (', this.to, 37 | ') must refer to the ID of another element.'); 38 | } 39 | } 40 | }, 41 | 42 | inElemChanged: function() { 43 | if (this.inElem && 44 | this.inElem.tagName.toUpperCase() != 'CXX-FOREIGN-INDEX') { 45 | console.error('.in (', this.in, 46 | ') must be a ; was', 47 | this.inElem); 48 | } 49 | }, 50 | toElemChanged: function() { 51 | if (this.toElem) { 52 | this.async(function() { 53 | // Async makes sure the toElem is upgraded. 54 | if (!(this.toElem instanceof CxxSectionElement || 55 | this.toElem instanceof CxxTableElement || 56 | this.toElem instanceof CxxFigureElement)) { 57 | console.error("Reference from", this, 58 | "refers to non-section, non-table, non-figure element", 59 | this.toElem); 60 | } 61 | }); 62 | } 63 | }, 64 | 65 | indexChanged: function() { 66 | if (!(this.to in this.inElem.index)) { 67 | console.error(this.to, 'not found in', this.inElem); 68 | } 69 | } 70 | }); 71 | })() 72 | 73 | -------------------------------------------------------------------------------- /bower_components/webcomponentsjs/README.md: -------------------------------------------------------------------------------- 1 | webcomponents.js 2 | ================ 3 | 4 | [![Join the chat at https://gitter.im/webcomponents/webcomponentsjs](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/webcomponents/webcomponentsjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 5 | 6 | A suite of polyfills supporting the [Web Components](http://webcomponents.org) specs: 7 | 8 | **Custom Elements**: allows authors to define their own custom tags ([spec](https://w3c.github.io/webcomponents/spec/custom/)). 9 | 10 | **HTML Imports**: a way to include and reuse HTML documents via other HTML documents ([spec](https://w3c.github.io/webcomponents/spec/imports/)). 11 | 12 | **Shadow DOM**: provides encapsulation by hiding DOM subtrees under shadow roots ([spec](https://w3c.github.io/webcomponents/spec/shadow/)). 13 | 14 | This also folds in polyfills for `MutationObserver` and `WeakMap`. 15 | 16 | 17 | ## Releases 18 | 19 | Pre-built (concatenated & minified) versions of the polyfills are maintained in the [tagged versions](https://github.com/webcomponents/webcomponentsjs/releases) of this repo. There are two variants: 20 | 21 | `webcomponents.js` includes all of the polyfills. 22 | 23 | `webcomponents-lite.js` includes all polyfills except for shadow DOM. 24 | 25 | 26 | ## Browser Support 27 | 28 | Our polyfills are intended to work in the latest versions of evergreen browsers. See below 29 | for our complete browser support matrix: 30 | 31 | | Polyfill | IE10 | IE11+ | Chrome* | Firefox* | Safari 7+* | Chrome Android* | Mobile Safari* | 32 | | ---------- |:----:|:-----:|:-------:|:--------:|:----------:|:---------------:|:--------------:| 33 | | Custom Elements | ~ | ✓ | ✓ | ✓ | ✓ | ✓| ✓ | 34 | | HTML Imports | ~ | ✓ | ✓ | ✓ | ✓| ✓| ✓ | 35 | | Shadow DOM | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 36 | | Templates | ✓ | ✓ | ✓ | ✓| ✓ | ✓ | ✓ | 37 | 38 | 39 | *Indicates the current version of the browser 40 | 41 | ~Indicates support may be flaky. If using Custom Elements or HTML Imports with Shadow DOM, 42 | you will get the non-flaky Mutation Observer polyfill that Shadow DOM includes. 43 | 44 | The polyfills may work in older browsers, however require additional polyfills (such as classList) 45 | to be used. We cannot guarantee support for browsers outside of our compatibility matrix. 46 | 47 | 48 | ### Manually Building 49 | 50 | If you wish to build the polyfills yourself, you'll need `node` and `gulp` on your system: 51 | 52 | * install [node.js](http://nodejs.org/) using the instructions on their website 53 | * use `npm` to install [gulp.js](http://gulpjs.com/): `npm install -g gulp` 54 | 55 | Now you are ready to build the polyfills with: 56 | 57 | # install dependencies 58 | npm install 59 | # build 60 | gulp build 61 | 62 | The builds will be placed into the `dist/` directory. 63 | 64 | ## Contribute 65 | 66 | See the [contributing guide](CONTRIBUTING.md) 67 | 68 | ## License 69 | 70 | Everything in this repository is BSD style license unless otherwise specified. 71 | 72 | Copyright (c) 2015 The Polymer Authors. All rights reserved. 73 | 74 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/util/get-element-by-id.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 24 | 25 | 26 | 85 | 86 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/foreword.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 19 | 20 | 80 | 85 | 86 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/section.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | (function() { 17 | Polymer('cxx-section', { 18 | // String section number, like "17.2.3". 1-based. 19 | sec_num: "?", 20 | 21 | checkInvariants: function() { 22 | if (!this.id) { 23 | console.error(this, 'is missing an id.'); 24 | } 25 | }, 26 | 27 | update_sec_nums: function(sec_num) { 28 | this.sec_num = sec_num + ''; 29 | var child_index = 1; 30 | // Assume there aren't any elements between cxx-section levels. 31 | for (var child = this.firstChild; child; child = child.nextSibling) { 32 | if (child instanceof CxxSectionElement) { 33 | if (child.number) 34 | child_index = Number(child.number); 35 | child.update_sec_nums(this.sec_num + '.' + child_index); 36 | child_index++; 37 | } 38 | } 39 | }, 40 | 41 | sec_numChanged: function() { 42 | if (this.title_element) { 43 | this.title_element.setAttribute( 44 | 'data-bookmark-label', 45 | this.sec_num + ' ' + this.title_element.textContent); 46 | } 47 | }, 48 | 49 | domReady: function() { 50 | var title_element = this.querySelector('h1'); 51 | if (title_element && title_element.parentElement == this) 52 | this.title_element = title_element; 53 | 54 | this.numberParagraphChildren(); 55 | }, 56 | 57 | numberParagraphChildren: function(rootElement, para_num_start) { 58 | var para_num = para_num_start || 1; 59 | for (var child = (rootElement || this).firstElementChild; 60 | child; 61 | child = child.nextElementSibling) { 62 | if (child instanceof CxxSectionElement) 63 | return para_num; 64 | else if (child instanceof HTMLParagraphElement && !child.classList.contains('cont')) 65 | para_num = this.numberParagraph(para_num, child); 66 | else if (child instanceof CxxFunctionElement) { 67 | para_num = this.numberParagraph(para_num, child); 68 | para_num = this.numberParagraphChildren(child, para_num); 69 | } else if (child instanceof CxxFunctionAttributeElement) 70 | para_num = this.numberParagraph(para_num, child); 71 | } 72 | return para_num; 73 | }, 74 | 75 | numberParagraph: function(number, element) { 76 | // If the paragraph is explicitly numbered, use that number. 77 | if (element.hasAttribute("number")) 78 | number = Number(element.getAttribute("number")) 79 | 80 | var id = this.id + '.' + number; 81 | if (element.id) { 82 | console.warn('Paragraph already has id:', element); 83 | var anchor = document.createElement('a'); 84 | anchor.id = id; 85 | element.insertBefore(anchor, element.firstChild); 86 | } else { 87 | element.id = id; 88 | } 89 | element.setAttribute('para_num', number); 90 | return number + 1 91 | } 92 | }) 93 | })(); 94 | -------------------------------------------------------------------------------- /bower_components/core-ajax/test/core-ajax-progress.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | core-ajax 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 27 | 28 | 31 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /bower_components/core-ajax/core-xhr.html: -------------------------------------------------------------------------------- 1 | 9 | 22 | 23 | 24 | 25 | 117 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/titlepage.js: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | (function() { 17 | Polymer('cxx-titlepage', { 18 | // Default properties 19 | projectNumber: null, 20 | docnum: null, 21 | hasPubdate: false, 22 | editor: null, 23 | revises: null, 24 | title: null, 25 | stage: null, 26 | 27 | computeStage: function() { 28 | var stages = ['draft', 'pdts', 'dts', 'ts']; 29 | var presentStages = stages.filter(function(stage) { 30 | return document.body.classList.contains('cxx-' + stage); 31 | }); 32 | if (presentStages.length == 0) { 33 | if (!this.stage) { 34 | console.error('Couldn\'t find a document stage in body.classList:', document.body.classList); 35 | } else if (stages.indexOf(this.stage) == -1) { 36 | console.error('Unexpected stage: ' + this.stage); 37 | } else { 38 | document.body.classList.add('cxx-' + this.stage); 39 | } 40 | } else if (presentStages.length > 1) { 41 | console.error('Found multiple document stages in body.classList:', presentStages); 42 | } else { 43 | if (this.stage) { 44 | console.warn('Document stage set on both ("' + presentStages[0] + 45 | '") and ("' + this.stage + '")'); 46 | } 47 | this.stage = presentStages[0]; 48 | } 49 | }, 50 | 51 | addISOSections: function() { 52 | if (this.stage !== 'ts') { 53 | // Only include the ISO requirements in the 54 | // document sent for publication. 55 | return; 56 | } 57 | var toc = document.querySelector('cxx-toc'); 58 | if (toc) { 59 | var foreword = document.createElement('cxx-foreword'); 60 | foreword.id = 'foreword'; 61 | document.body.insertBefore(foreword, toc.nextSibling); 62 | } 63 | }, 64 | 65 | domReady: function() { 66 | this.projectNumber = this.querySelector('cxx-project-number'); 67 | this.docnum = this.querySelector('cxx-docnum'); 68 | var pubdateElem = this.querySelector('time[pubdate]'); 69 | this.hasPubdate = !!pubdateElem; 70 | if (pubdateElem) { 71 | var pubdate = pubdateElem.textContent.split('-'); 72 | this.pubyear = pubdate[0]; 73 | this.pubmonth = pubdate[1]; 74 | this.pubday = pubdate[2]; 75 | } 76 | this.editor = this.querySelector('cxx-editor'); 77 | this.revises = this.querySelector('cxx-revises'); 78 | 79 | var title = this.querySelector('h1:lang(en)') || this.querySelector('h1'); 80 | if (title) { 81 | this.title = title.textContent; 82 | } 83 | this.title_fr = this.querySelector('h2:lang(fr)'); 84 | if (this.title_fr) { 85 | this.title_fr = this.title_fr.textContent; 86 | } 87 | 88 | this.computeStage(); 89 | var stage_suffix = ''; 90 | if (this.stage == 'draft') { 91 | stage_suffix = ", Working Draft"; 92 | } else if (this.stage == 'pdts') { 93 | stage_suffix = ", PDTS" 94 | } else if (this.stage == 'dts') { 95 | stage_suffix = ", DTS" 96 | } 97 | if (this.title) { 98 | document.title = this.title + stage_suffix; 99 | } 100 | 101 | this.addISOSections(); 102 | this.completedDomReady = true; 103 | }, 104 | }) 105 | })(); 106 | -------------------------------------------------------------------------------- /general.html: -------------------------------------------------------------------------------- 1 | 2 |

General

3 | 4 |

Namespaces and headers

5 | 6 |

Since the extensions described in this Technical Specification are 7 | experimental and not part of the C++ Standard Library, they should not be 8 | declared directly within namespace std. Unless otherwise specified, all 9 | components described in this Technical Specification are declared in namespace 10 | std::experimental::parallel::v2.

11 | 12 | 13 | Once standardized, the components described by this Technical Specification are expected to be promoted to namespace std. 14 | 15 | 16 |

Unless otherwise specified, references to such entities described in this 17 | Technical Specification are assumed to be qualified with 18 | std::experimental::parallel::v2, and references to entities described in the C++ 19 | Standard Library are assumed to be qualified with std::.

20 | 21 |

Extensions that are expected to eventually be added to an existing header 22 | <meow> are provided inside the <experimental/meow> header, 23 | which shall include the standard contents of <meow> as if by

24 | 25 |
 26 |     #include <meow>
 27 | 
28 |
29 | 30 | 31 |

Feature-testing recommendations

32 |

An implementation that provides support for this Technical Specification shall define the feature test macro(s) in Table 1.

33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 53 | 54 | 55 | 56 | 57 | 60 | 61 | 62 |
Feature Test Macro(s)
NameValueHeader
__cpp_lib_experimental_parallel_algorithm201505 48 | <experimental/algorithm>
49 | <experimental/exception_list>
50 | <experimental/execution_policy>
51 | <experimental/numeric> 52 |
__cpp_lib_experimental_parallel_task_block201510 58 | <experimental/task_block>
59 |
63 |
64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 111 | 112 | 113 |
Feature Test Macro(s)
Doc. No.TitlePrimary SectionMacro NameValueHeader
N4505Working Draft, Technical Specification for C++ Extensions for Parallelism__cpp_lib_experimental_parallel_algorithm201505 85 | <experimental/algorithm>
86 | <experimental/exception_list>
87 | <experimental/execution_policy>
88 | <experimental/numeric> 89 |
P0155R0Task Block R5__cpp_lib_experimental_parallel_task_block201510 98 | <experimental/task_block>
99 |
P0076R4Vector and Wavefront Policies, __cpp_lib_experimental_execution_vector_policy201707 108 | <experimental/algorithm>
109 | <experimental/execution>
110 |
114 | 115 |
116 |
117 | 118 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/table.html: -------------------------------------------------------------------------------- 1 | 15 | 16 | 24 | 25 | 65 | 110 | 111 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/promise-0.1.1.min.js: -------------------------------------------------------------------------------- 1 | !function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;j 15 | 16 | 17 | 30 | 31 | 32 | 36 | 37 | 38 | 48 | 63 | 64 | 65 | 70 | 71 | 72 | 73 | 78 | 79 | 80 | 85 | 86 | 87 | 92 | 93 | 94 | 99 | 100 | 101 | 106 | 107 | 108 | 113 | 114 | 115 | 120 | 121 | 122 | 127 | 128 | 129 | 134 | 135 | 136 | 141 | 142 | 143 | 148 | 149 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/base.css: -------------------------------------------------------------------------------- 1 | /* Copyright 2014 Google Inc. All rights reserved. 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | */ 15 | 16 | @page { 17 | margin: 10%; 18 | } 19 | @page :left { 20 | @top-left { content: string(docname); font-weight: bold; font-size: 10pt; } 21 | @top-right { content: normal; } 22 | @bottom-left { content: counter(page); font-size: 10pt; } 23 | @bottom-right { content: "© ISO/IEC " string(pubyear) " — All rights reserved"; 24 | font-size: 10pt; } 25 | } 26 | @page :right { 27 | @top-left { content: normal; } 28 | @top-right { content: string(docname); font-weight: bold; font-size: 10pt; } 29 | @bottom-left { content: "© ISO/IEC " string(pubyear) " — All rights reserved"; 30 | font-size: 10pt; } 31 | @bottom-right { content: counter(page); font-size: 10pt; } 32 | } 33 | @page :first { 34 | @top-left { content: normal; } 35 | @top-right { content: normal; } 36 | @bottom-left { content: normal; } 37 | @bottom-right { content: normal; } 38 | } 39 | 40 | body { margin: 0; } 41 | 42 | @media screen { 43 | body { max-width: 7in; 44 | /* Make room for paragraph numbers. */ 45 | margin-left: 2em } 46 | } 47 | 48 | @media print { 49 | html { font-size: 10pt; } 50 | * /deep/ code { font-size: 80%; } 51 | /* Note that only Prince generates clickable links. */ 52 | * /deep/ a[href] { text-decoration:none; } 53 | } 54 | 55 | @media screen { 56 | /* Needed to make the 's vertical spacing work. 57 | For print see the definition. */ 58 | html, body {height: 100%} 59 | } 60 | 61 | * /deep/ .docname { string-set: docname content(); } 62 | * /deep/ .pubyear { string-set: pubyear content(); } 63 | 64 | cxx-clause, cxx-foreword { page-break-before: always; } 65 | @media screen { 66 | cxx-clause, cxx-toc, cxx-foreword { margin-top: 3em; } 67 | } 68 | 69 | cxx-clause::shadow header, cxx-foreword::shadow h1 { font-size: 150%; } 70 | cxx-toc::shadow h1 { font-size: 150%; } 71 | cxx-clause cxx-section::shadow header { font-size: 117%; } 72 | cxx-clause cxx-section cxx-section::shadow header { font-size: 100%; } 73 | 74 | [data-bookmark-label] { bookmark-label: attr(data-bookmark-label); } 75 | h1 { bookmark-level: 1; } 76 | cxx-toc::shadow h1 { bookmark-level: 2; } 77 | cxx-clause h1, cxx-foreword h1 { bookmark-level: 2; } 78 | cxx-clause cxx-section h1 { bookmark-level: 3; } 79 | cxx-clause cxx-section cxx-section h1 { bookmark-level: 4; } 80 | /* The

is a subtitle, which shouldn't get a PDF bookmark. */ 81 | cxx-titlepage::shadow h2 { bookmark-level: none; } 82 | 83 | *::shadow .section-number { string-set: current-section "§ " content(); } 84 | 85 | p {margin-top: .5em; margin-bottom: .5em} 86 | p:first-child, ul, ol {margin-top: 0} 87 | 88 | [para_num]::before { content: attr(para_num); float: left; 89 | font-size: 70%; margin-left: -2.5em; width: 1.5em; text-align: right; } 90 | 91 | del {text-decoration: line-through; color: #8B0040;} 92 | ins {text-decoration: underline; color: #005100;} 93 | 94 | pre { 95 | margin-left: 1em; 96 | margin-top: .5em; 97 | margin-bottom: .5em; 98 | } 99 | 100 | * /deep/ wbr::after { 101 | white-space: normal; 102 | content: '\200B'; 103 | } 104 | * /deep/ code { 105 | /* Make inline code avoid line wraps unless we override it with . */ 106 | white-space: nowrap; 107 | } 108 | * /deep/ pre code { 109 | /* Keep block-code wrapping according to its context. */ 110 | white-space: inherit; 111 | } 112 | 113 | * /deep/ table { 114 | border-collapse: collapse; 115 | } 116 | * /deep/ td, th { 117 | padding-left: .2em; 118 | padding-right: .2em; 119 | border: thin solid black; 120 | } 121 | 122 | /* Use an em-dash for the list bullet. 123 | 'print' is a proxy for supporting ::marker. */ 124 | @media screen { 125 | ul { 126 | list-style: none; 127 | /* Relative positioning on the 'ul' lets the absolutely-positioned 128 | marker align relative to it.*/ 129 | position: relative; 130 | } 131 | ul li:before { 132 | content: "\2014"; 133 | position: absolute; left: 10px; 134 | } 135 | } 136 | @media print { 137 | ul li::marker { 138 | content: "\2014"; 139 | } 140 | [is=cxx-table].list ul li::marker { 141 | content: none; 142 | } 143 | } 144 | 145 | /* This is here rather than inside elements/toc.html because browsers 146 | don't understand leader() or target-counter(), so they drop them 147 | inside the CSSOM. */ 148 | @media print { 149 | /* Generate page numbers in the table of contents. */ 150 | cxx-toc::shadow a[href]::after { content: leader(" . ") target-counter(attr(href), page); } 151 | 152 | cxx-footnote::shadow aside { float: footnote; footnote-policy: line; } 153 | } 154 | -------------------------------------------------------------------------------- /exceptions.html: -------------------------------------------------------------------------------- 1 | 2 |

Parallel exceptions

3 | 4 |

Exception reporting behavior

5 |

6 | During the execution of a standard parallel algorithm, 7 | if temporary memory resources are required and none are available, 8 | the algorithm throws a std::bad_alloc exception. 9 |

10 |

11 | During the execution of a standard parallel algorithm, if the invocation of an element access function 12 | exits via an uncaught exception, the behavior of the program is determined by the type of 13 | execution policy used to invoke the algorithm: 14 | 15 |

    16 |
  • 17 | If the execution policy object is of type class parallel_vector_execution_policy, unsequenced_policy, or vector_policy, 18 | std::terminate shall be called. 19 |
  • 20 |
  • 21 | If the execution policy object is of type sequential_execution_policy or 22 | parallel_execution_policy, the execution of the algorithm exits via an 23 | exception. The exception shall be an exception_list containing all uncaught exceptions thrown during 24 | the invocations of element access functions, or optionally the uncaught exception if there was only one.
     25 | 
    26 | 27 | 28 | For example, when for_each is executed sequentially, 29 | if an invocation of the user-provided function object throws an exception, for_each can exit via the uncaught exception, or throw an exception_list containing the original exception. 30 |
     31 | 
    32 | 33 | 34 | These guarantees imply that, unless the algorithm has failed to allocate memory and 35 | exits via std::bad_alloc, all exceptions thrown during the execution of 36 | the algorithm are communicated to the caller. It is unspecified whether an algorithm implementation will "forge ahead" after 37 | encountering and capturing a user exception. 38 |
     39 | 
    40 | 41 | The algorithm may exit via the std::bad_alloc exception even if one or more 42 | user-provided function objects have exited via an exception. For example, this can happen when an algorithm fails to allocate memory while 43 | creating or adding elements to the exception_list object. 44 | 45 |
  • 46 | 47 |
  • 48 | If the execution policy object is of any other type, the behavior is implementation-defined. 49 |
  • 50 |
51 |

52 |
53 | 54 |

Header <experimental/exception_list> synopsis

55 |
 56 | 
 57 | namespace std {
 58 | namespace experimental {
 59 | namespace parallel {
 60 | inline namespace v2 {
 61 | 
 62 |   class exception_list : public exception
 63 |   {
 64 |     public:
 65 |       typedef unspecified iterator;
 66 |   
 67 |       size_t size() const noexcept;
 68 |       iterator begin() const noexcept;
 69 |       iterator end() const noexcept;
 70 | 
 71 |       const char* what() const noexcept override;
 72 |   };
 73 | }
 74 | }
 75 | }
 76 | }
 77 |       
78 | 79 |

80 | The class exception_list owns a sequence of exception_ptr objects. The parallel 81 | algorithms may use the exception_list to communicate uncaught exceptions encountered during parallel execution to the 82 | caller of the algorithm. 83 |

84 | 85 |

86 | The type exception_list::iterator shall fulfill the requirements of 87 | ForwardIterator. 88 |

89 | 90 | 91 | size_t size() const noexcept; 92 | 93 | 94 | The number of exception_ptr objects contained within the exception_list. 95 | 96 | 97 | 98 | Constant time. 99 | 100 | 101 | 102 | 103 | iterator begin() const noexcept; 104 | 105 | 106 | An iterator referring to the first exception_ptr object contained within the exception_list. 107 | 108 | 109 | 110 | 111 | iterator end() const noexcept; 112 | 113 | 114 | An iterator that is past the end of the owned sequence. 115 | 116 | 117 | 118 | 119 | const char* what() const noexcept override; 120 | 121 | 122 | An implementation-defined NTBS. 123 | 124 | 125 |
126 |
127 | -------------------------------------------------------------------------------- /bower_components/polymer/layout.html: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /bower_components/cxx-html-doc-framework/README.md: -------------------------------------------------------------------------------- 1 | C++ HTML document framework 2 | =========================== 3 | 4 | This is a [Polymer](http://www.polymer-project.org/)-based HTML framework for 5 | writing ISO C++ documents and papers. To use it for your document, you should 6 | 7 | 1. [Install Bower.](http://bower.io/#installing-bower) 8 | 2. Install this package by running `bower install cplusplus/html-doc-framework` in the root directory of your document. 9 | 3. Import this package into your main HTML file by adding two lines inside the `` element: 10 | 11 | ```HTML 12 | 13 | 14 | ``` 15 | 16 | 4. Run an HTTP server (e.g. [`python3 -m http.server`](https://docs.python.org/3/library/http.server.html#http-server-cli) or [`http-server`](https://www.npmjs.org/package/http-server)) in the directory of your main HTML file, and preview through that instead of a `file:///` URL. 17 | 18 | I recommend the [Prince rendering engine](http://www.princexml.com/) for converting your HTML file to PDF. It has significantly better support for page-related features than any browser as of 2014. 19 | 20 | Before I can accept a contribution to this project, you'll need to sign the 21 | Contributor License Agreement at https://developers.google.com/open-source/cla/individual. 22 | 23 | Custom C++-specific elements 24 | ---------------------------- 25 | 26 | Some of these elements define a `checkInvariants()` method, so you can run: 27 | 28 | document.querySelectorAll('*').array().forEach( 29 | function(node){ if (node.checkInvariants) node.checkInvariants(); }); 30 | 31 | to see if you've gotten anything wrong. 32 | 33 | ### `` 34 | 35 | This one isn't really C++-specific: it allows partitioning a main document 36 | into multiple pieces. `other.html`'s body will be copied in place of the 37 | `` element. 38 | 39 | 40 | ### `` and `` 41 | 42 | These automatically number clauses and sections, fill in 43 | table-of-contents data, and allow cross-linking. `` is for 44 | top-level sections, while `` can be nested arbitrarily. 45 | The title of the section is given in a nested `

` element. 46 | The `id` attribute is used for cross-linking. 47 | 48 | ### `` 49 | 50 | Wraps the title page of an ISO document. The title page takes a 51 | `stage` attribute whose value can be `draft` or (once I implement 52 | them) `CD`, `DTS`, `TS`, etc. The title page recognizes several 53 | nested elements that describe the document. 54 | 55 | #### `` 56 | 57 | The ISO project number for this TS or IS. Find this on https://isocpp.org/std/status. 58 | 59 | #### `` 60 | 61 | The D or N number for the document. 62 | 63 | #### `