Opened 9 years ago
Closed 9 years ago
#9780 closed Bugs (fixed)
Error in boost_typetraits std::min example?
| Reported by: | Owned by: | John Maddock | |
|---|---|---|---|
| Milestone: | To Be Determined | Component: | type_traits | 
| Version: | Boost 1.55.0 | Severity: | Cosmetic | 
| Keywords: | Cc: | 
Description
In the documentation for boost_typetraits, an example is given on how to improve std::min. However, at least at first glance it looks like there is a typo. The example reads:
template <class T, class U>
typename common_type<T, U>::type min(T t, T u)
{
   return t < u ? t : u;
}
Notice that type T is being used for the argument u. If I understand the example better, the point is that the return type of min will be the correct type. But I would expect the u parameter to still have the type U not T.
As it is, I believe that this code will cast the second parameter to type T when it is passed to the function.
Change History (2)
comment:1 by , 9 years ago
| Component: | None → type_traits | 
|---|---|
| Owner: | set to | 
comment:2 by , 9 years ago
| Resolution: | → fixed | 
|---|---|
| Status: | new → closed | 
It's a typo, fixed in develop, thanks!
  Note:
 See   TracTickets
 for help on using tickets.
    

As this stands, you couldn't call min(x, y) because U can't be deduced.