estoy trabajando a través "C++ Template Metaprogramming" by Abrahams & Gurtovoy " Esto no es en realidad en el capítulo dos, pero es algo que he intentado mientras trabajaba en el primer ejercicio (2.10, 2.0) que me está confundiendo:¿Por qué boost :: is_same <int const &, boost :: add_const <int &> :: value es igual a false?
#include <iostream>
#include <boost/type_traits.hpp>
std::string display(bool b)
{
return (b ? "true" : "false");
}
int main()
{
using namespace std;
cout << display(boost::is_same<int const&, boost::add_const<int &>::type >::value) << "\n";
return 0;
}
La salida es" falsa'. sin embargo si quito las referencias, es decir, 'const int' y 'int'. La salida es 'verdadero'.
BTW Puede evitar su función 'display' configurando' std :: cout << std :: boolalpha; ' – juanchopanza