[jira] [Assigned] (MESOS-7142) Revisit MSVC decltype bug
[ https://issues.apache.org/jira/browse/MESOS-7142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Schwartzmeyer reassigned MESOS-7142: --- Assignee: (was: Andrew Schwartzmeyer) > Revisit MSVC decltype bug > - > > Key: MESOS-7142 > URL: https://issues.apache.org/jira/browse/MESOS-7142 > Project: Mesos > Issue Type: Improvement > Environment: Windows with Visual Studio 2017 RC >Reporter: Andrew Schwartzmeyer >Priority: Minor > Labels: libprocess, windows > Original Estimate: 2h > Remaining Estimate: 2h > > Review https://reviews.apache.org/r/56781/ works around an existent and > acknowledged bug in MSVC. From MSVC team: > {quote} > I have preprocessed file from Andy yesterday, thank you. I can verify that > this is a bug in the latest compiler where it’s failing to get the right > context for the decltype expression for the return type of function. However, > MSVC does deduce the right type from the return expression in the body. We > have a bug in the compiler logged now and will be tracked for next release. > We’ll be adding Mesos project to our daily RealWorld Testing set from now on > as continuous validation for MSVC compiler. Thank you for bringing this up to > our attention. > template > auto then(F&& f) const-> decltype(this->then(std::forward(f), Prefer())) > Should really expand to this expression, but it’s failing. > template > auto then(F&& f) const -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > The workaround from Michael to skip explicit return type for auto function > should be actually better source change for MSVC compiler. For completeness > sake, you can also just remove ‘this->’ from the decltype expression to make > it work for MSVC compiler > -> decltype(then(std::forward(f), Prefer())) > Another thing worth pointing out is, adding ‘this->’ in the body of the > function shows that MSVC does correctly deduce the return type. > template > auto then(F&& f) const > // -> decltype(then(std::forward(f), Prefer())) > // -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > { > return this->then(std::forward(f), Prefer()); > } > {quote} > This issue tracks revisiting the work-around when the first patch to VS2017 > is released, as the compiler bug itself should be fixed then. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Assigned] (MESOS-7142) Revisit MSVC decltype bug
[ https://issues.apache.org/jira/browse/MESOS-7142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Schwartzmeyer reassigned MESOS-7142: --- Assignee: Andrew Schwartzmeyer > Revisit MSVC decltype bug > - > > Key: MESOS-7142 > URL: https://issues.apache.org/jira/browse/MESOS-7142 > Project: Mesos > Issue Type: Improvement > Environment: Windows with Visual Studio 2017 RC >Reporter: Andrew Schwartzmeyer >Assignee: Andrew Schwartzmeyer >Priority: Minor > Labels: libprocess, windows > Original Estimate: 2h > Remaining Estimate: 2h > > Review https://reviews.apache.org/r/56781/ works around an existent and > acknowledged bug in MSVC. From MSVC team: > {quote} > I have preprocessed file from Andy yesterday, thank you. I can verify that > this is a bug in the latest compiler where it’s failing to get the right > context for the decltype expression for the return type of function. However, > MSVC does deduce the right type from the return expression in the body. We > have a bug in the compiler logged now and will be tracked for next release. > We’ll be adding Mesos project to our daily RealWorld Testing set from now on > as continuous validation for MSVC compiler. Thank you for bringing this up to > our attention. > template > auto then(F&& f) const-> decltype(this->then(std::forward(f), Prefer())) > Should really expand to this expression, but it’s failing. > template > auto then(F&& f) const -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > The workaround from Michael to skip explicit return type for auto function > should be actually better source change for MSVC compiler. For completeness > sake, you can also just remove ‘this->’ from the decltype expression to make > it work for MSVC compiler > -> decltype(then(std::forward(f), Prefer())) > Another thing worth pointing out is, adding ‘this->’ in the body of the > function shows that MSVC does correctly deduce the return type. > template > auto then(F&& f) const > // -> decltype(then(std::forward(f), Prefer())) > // -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > { > return this->then(std::forward(f), Prefer()); > } > {quote} > This issue tracks revisiting the work-around when the first patch to VS2017 > is released, as the compiler bug itself should be fixed then. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Assigned] (MESOS-7142) Revisit MSVC decltype bug
[ https://issues.apache.org/jira/browse/MESOS-7142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Park reassigned MESOS-7142: --- Assignee: (was: Michael Park) > Revisit MSVC decltype bug > - > > Key: MESOS-7142 > URL: https://issues.apache.org/jira/browse/MESOS-7142 > Project: Mesos > Issue Type: Improvement > Environment: Windows with Visual Studio 2017 RC >Reporter: Andrew Schwartzmeyer >Priority: Minor > Labels: libprocess, windows > Original Estimate: 2h > Remaining Estimate: 2h > > Review https://reviews.apache.org/r/56781/ works around an existent and > acknowledged bug in MSVC. From MSVC team: > {quote} > I have preprocessed file from Andy yesterday, thank you. I can verify that > this is a bug in the latest compiler where it’s failing to get the right > context for the decltype expression for the return type of function. However, > MSVC does deduce the right type from the return expression in the body. We > have a bug in the compiler logged now and will be tracked for next release. > We’ll be adding Mesos project to our daily RealWorld Testing set from now on > as continuous validation for MSVC compiler. Thank you for bringing this up to > our attention. > template > auto then(F&& f) const-> decltype(this->then(std::forward(f), Prefer())) > Should really expand to this expression, but it’s failing. > template > auto then(F&& f) const -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > The workaround from Michael to skip explicit return type for auto function > should be actually better source change for MSVC compiler. For completeness > sake, you can also just remove ‘this->’ from the decltype expression to make > it work for MSVC compiler > -> decltype(then(std::forward(f), Prefer())) > Another thing worth pointing out is, adding ‘this->’ in the body of the > function shows that MSVC does correctly deduce the return type. > template > auto then(F&& f) const > // -> decltype(then(std::forward(f), Prefer())) > // -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > { > return this->then(std::forward(f), Prefer()); > } > {quote} > This issue tracks revisiting the work-around when the first patch to VS2017 > is released, as the compiler bug itself should be fixed then. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Assigned] (MESOS-7142) Revisit MSVC decltype bug
[ https://issues.apache.org/jira/browse/MESOS-7142?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrew Schwartzmeyer reassigned MESOS-7142: --- Assignee: Michael Park (was: Andrew Schwartzmeyer) > Revisit MSVC decltype bug > - > > Key: MESOS-7142 > URL: https://issues.apache.org/jira/browse/MESOS-7142 > Project: Mesos > Issue Type: Improvement > Environment: Windows with Visual Studio 2017 RC >Reporter: Andrew Schwartzmeyer >Assignee: Michael Park >Priority: Minor > Labels: libprocess, windows > Original Estimate: 2h > Remaining Estimate: 2h > > Review https://reviews.apache.org/r/56781/ works around an existent and > acknowledged bug in MSVC. From MSVC team: > {quote} > I have preprocessed file from Andy yesterday, thank you. I can verify that > this is a bug in the latest compiler where it’s failing to get the right > context for the decltype expression for the return type of function. However, > MSVC does deduce the right type from the return expression in the body. We > have a bug in the compiler logged now and will be tracked for next release. > We’ll be adding Mesos project to our daily RealWorld Testing set from now on > as continuous validation for MSVC compiler. Thank you for bringing this up to > our attention. > template > auto then(F&& f) const-> decltype(this->then(std::forward(f), Prefer())) > Should really expand to this expression, but it’s failing. > template > auto then(F&& f) const -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > The workaround from Michael to skip explicit return type for auto function > should be actually better source change for MSVC compiler. For completeness > sake, you can also just remove ‘this->’ from the decltype expression to make > it work for MSVC compiler > -> decltype(then(std::forward(f), Prefer())) > Another thing worth pointing out is, adding ‘this->’ in the body of the > function shows that MSVC does correctly deduce the return type. > template > auto then(F&& f) const > // -> decltype(then(std::forward(f), Prefer())) > // -> decltype(static_cast Future*>(this)->then(std::forward(f), Prefer())) > { > return this->then(std::forward(f), Prefer()); > } > {quote} > This issue tracks revisiting the work-around when the first patch to VS2017 > is released, as the compiler bug itself should be fixed then. -- This message was sent by Atlassian JIRA (v7.6.3#76005)