为什么并发TS的部分内容不在C ++ 17中?

时间:2016-08-11 10:38:29

标签: c++ standards c++17

根据Michael Wong,并发TS不会进入,尽管完整,显然

  

虽然有实施经验,但它刚刚获得批准,而且太新鲜了,无法投票将其添加到C ++ 17中。

我最喜欢的提案最初是在N3327,但我首先在N3857 / N3784中读到它,并且预计它会用于C ++ 14。 futures自2013年以来.get()已经实施.then() in Boost,微软已在PPL中实施了这种形式,因此任何问题都会受到影响,讨论和纠正。 .then()的异步版本是必需的,并且似乎自2014年初开始时N3865('对std :: future'的更多改进)进行了讨论,好像.then()是给定的。这意味着,即使自N3327首次提出addDate(); function addDate() { date = new Date(); var month = date.getMonth() + 1; var day = date.getDate(); var year = date.getFullYear(); if (document.getElementById('startDate').value == '') { document.getElementById('startDate').value = month + '/' + day + '/' + year; } if (document.getElementById('endDate').value == '') { document.getElementById('endDate').value = month + '/' + (day + 1) + '/' + year; } } function changedDate(){ var arrivalDate = new Date(document.getElementById('startDate').value) ; var departureDate = new Date(document.getElementById('endDate').value) ; if(arrivalDate>=departureDate){ var arrDate = new Date(); arrDate.setDate(arrivalDate.getDate()+1); arrDate.setMonth(arrivalDate.getMonth()+1); arrDate.setFullYear(arrivalDate.getFullYear()); document.getElementById('endDate').value = arrDate.getMonth() + '/' + arrDate.getDate() + '/' + arrDate.getFullYear(); } }由于“精简”任何经过深思熟虑,讨论和实施的提案被与之相关的讨论所阻止,即使已经过了5年。

它现在将在2020年发货之前。

并发TS是完整的还是没有建议?如果是这样,为什么呢?

1 个答案:

答案 0 :(得分:3)

  

它现在将在2020年发货之前。

现在发货 。只是不在C ++标准本身。

您不应该将TS视为某种虚构的文档。这是真实的,许多供应商实施TS。例如,Microsoft和libc ++支持FileSystem TS。

完全使用C ++ 17功能后,编译器和标准库供应商可以完全实现这些功能。更不用说概念TS等等。因此,并发TS不是他们的最高优先级也就不足为奇了。

至于为什么部分并发没有添加到C ++ 17,杰克逊维尔会议的会议记录显示SG1(并发问题研究组)明确提出将Parallelism TS添加到标准中,但没有这样做对于并发TS。所以他们显然觉得Concurrency TS还没有准备好被添加到标准库中,甚至是部分。