Search Results

Search found 1 results on 1 pages for 'answeror'.

Page 1/1 | 1 

  • Lifetime of implicitly casted temporaries

    - by Answeror
    I have seen this question. It seems that regardless of the cast, the temporary object(s) will "survive" until the fullexpression evaluated. But in the following scenario: void foo(boost::tuple<const double&> n) { printf("%lf\n", n.get<0>()); } int main() { foo(boost::tuple<const double&>(2));//#1 foo(boost::make_tuple(2));//#2 return 0; } 1 run well, but 2 do not. And MSVC gave me a warning about 2: "reference member is initialized to a temporary that doesn't persist after the constructor exits" Now I am wondering why they both make a temporary "double" object and pass it to boost::tuple<const double&> and only 2 failed.

    Read the article

1