|
126 | 126 | <div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div> |
127 | 127 | <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">public</span>:</div> |
128 | 128 | <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">template</span> <<span class="keyword">typename</span> S></div> |
129 | | -<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">explicit</span> sched_attrs(S s) : sched(::std::move(s)) {}</div> |
130 | | -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div> |
131 | | -<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Tag></div> |
132 | | -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">auto</span> query(const ::beman::execution::get_completion_scheduler_t<Tag>&) <span class="keyword">const</span> <span class="keyword">noexcept</span> {</div> |
133 | | -<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">return</span> this->sched;</div> |
134 | | -<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> }</div> |
135 | | -<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div> |
136 | | -<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T = <span class="keywordtype">bool</span>></div> |
137 | | -<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">requires</span> <span class="keyword">requires</span>(Scheduler&& s) { s.query(::beman::execution::get_domain); }</div> |
138 | | -<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">auto</span> query(const ::beman::execution::get_domain_t& q, T = <span class="keyword">true</span>) const noexcept {</div> |
139 | | -<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> this->sched.query(q);</div> |
140 | | -<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> }</div> |
141 | | -<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>};</div> |
142 | | -<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div> |
143 | | -<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">template</span> <<span class="keyword">typename</span> Scheduler></div> |
144 | | -<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span>sched_attrs(Scheduler&&) -> sched_attrs<::std::remove_cvref_t<Scheduler>>;</div> |
145 | | -<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span>} <span class="comment">// namespace beman::execution::detail</span></div> |
146 | | -<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div> |
147 | | -<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">// ----------------------------------------------------------------------------</span></div> |
148 | | -<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div> |
149 | | -<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#endif</span></div> |
| 129 | +<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">requires</span>(!::std::same_as<sched_attrs, ::std::remove_cvref_t<S>>)</div> |
| 130 | +<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">explicit</span> sched_attrs(S&& s) : sched(::std::forward<S>(s)) {}</div> |
| 131 | +<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div> |
| 132 | +<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">template</span> <<span class="keyword">typename</span> Tag></div> |
| 133 | +<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">auto</span> query(const ::beman::execution::get_completion_scheduler_t<Tag>&) <span class="keyword">const</span> <span class="keyword">noexcept</span> {</div> |
| 134 | +<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">return</span> this->sched;</div> |
| 135 | +<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> }</div> |
| 136 | +<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div> |
| 137 | +<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T = <span class="keywordtype">bool</span>></div> |
| 138 | +<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">requires</span> <span class="keyword">requires</span>(Scheduler&& s) { s.query(::beman::execution::get_domain); }</div> |
| 139 | +<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">auto</span> query(const ::beman::execution::get_domain_t& q, T = <span class="keyword">true</span>) const noexcept {</div> |
| 140 | +<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> this->sched.query(q);</div> |
| 141 | +<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div> |
| 142 | +<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>};</div> |
| 143 | +<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div> |
| 144 | +<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="keyword">template</span> <<span class="keyword">typename</span> Scheduler></div> |
| 145 | +<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span>sched_attrs(Scheduler&&) -> sched_attrs<::std::remove_cvref_t<Scheduler>>;</div> |
| 146 | +<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>} <span class="comment">// namespace beman::execution::detail</span></div> |
| 147 | +<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> </div> |
| 148 | +<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">// ----------------------------------------------------------------------------</span></div> |
| 149 | +<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div> |
| 150 | +<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#endif</span></div> |
150 | 151 | </div><!-- fragment --></div><!-- contents --> |
151 | 152 | </div><!-- doc-content --> |
152 | 153 | <!-- start footer part --> |
|
0 commit comments