
Sorry, Daniel, I didn't see this the first time around... On 10/1/2012 3:33 AM, Daniel James wrote:
On 1 October 2012 01:59, Eric Niebler <eric@boostpro.com> wrote:
For 1.52, we'll need a big, prominent note about decltype result_of. I don't think putting it in a release note is enough. Not sure where it should go, though. Thoughts?
Something could be added to the summary, which is displayed on the home page.
I was thinking that on boost.org, where it says: Downloads Current Release * Version 1.52.0 Details | Download | Documentation November 5th, 2012 16:05 GMT A small link in red could be added that simply says, "IMPORTANT: See here for a special note about this release." Then on a separate page, a note to this effect: A Special Note for Boost 1.52.0 and Higher ========================================== Starting in Boost 1.52.0, the boost::result_of component defaults to an implementation that uses the C++11 decltype keyword to deduce the return type of callables on compilers with strong decltype support. As boost::result_of is a key piece of library infrastructure, we at Boost have found this change to be moderately disruptive. You should be aware of the issue when making the decision to upgrade from an older version of Boost. Why the Change Was Made ----------------------- In C++11, std::result_of is required to use decltype. Boost has decided to change its implementation to minimize the differences between boost::result_of and std::result_of. Also, the use of decltype should help to improve compile times and increase the accuracy of the type computation. Who is Effected? ---------------- If you use a compiler with sufficiently bug-free decltype support (including N3276 <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf>), then you will get the new behavior. At the time of writing (Nov 4, 2012), the only compiler in that category is clang built from trunk, but as other compilers improve, this will change. What Problems Can the Change Cause? ----------------------------------- The use of decltype in result_of can result in a different type being computed than if the now-obsolete TR1 result_of protocol. This will often be the case for incorrectly written TR1-style function objects that misreport their result types. This is unfortunately too common. But it can even happen for some correctly written function objects. Where Can I Learn More? ----------------------- Please see the documentation for boost::result_of <link> to understand the differences between TR1 result_of and decltype result_of, and to find out how you can write your code to accommodate both.
A news story could be created, which would be a surprise to anyone who follows that feed and thinks it only consists of release details.
Yes, please. With a link to the above notice.
Could add something to the top of the left hand column of the home page (just have to edit index.html - I'd use some inline css to make it stand out, as I don't think the stylesheets contain appropriate styles).
Just the red link I suggest above, near the download link. Would there also be a way to put a notice here: http://sourceforge.net/projects/boost/files/boost/1.52.0/ ? After all, people might go straight there and skip the Boost homepage. (Aside: why does it say this at sourceforge: "Looking for the latest version? Download boost_1_47_pdf.zip (31.4 MB)"? That's misleading and makes it sound like 1.47 is the latest version.)
In the distribution, a note could be added to index.html in the root directory, although I don't know if anyone actually reads that. If you want to be unreasonably intrusive, a warning could be added to the header.
I guess it's too late for that. :-/ Thanks Daniel! -- Eric Niebler BoostPro Computing http://www.boostpro.com