Ví dụ:boost :: call_traits - Tại sao gcc cho sai về điều này?
#include <iostream>
#include <boost/call_traits.hpp>
#include <type_traits>
boost::call_traits<int>::param_type f()
{
return 1;
}
int main()
{
std::cout << std::boolalpha;
std::cout <<
std::is_const<boost::call_traits<int>::param_type>::value
<< std::endl; // true
std::cout << std::is_const<decltype(f())>::value << std::endl; // false
}
Câu hỏi:
Trừ khi, tôi đang làm điều gì sai, tôi nghĩ rằng tôi nên nhận true
cho cả hai, nhưng gcc 4.7.0 ra false
cho sau này. Có điều gì tôi đang thiếu?