main
関数では、const int
ポインタの変数を作成し、auto&
で宣言された変数に割り当てます。次に、decltype(x)
を使用してタイプを確認します。私はそのタイプがconst int*
であると予想しました。しかしis_same
はfalse
を返します。タイプはauto&x = const int *ですか?
int main()
{
int a = 10;
const int * cp_val= &a;
auto& x = cp_val;
bool is_const_int_ptr = std::is_same<decltype(x), const int *>::value; // returns 0
// *x = 100; // error: assignment of read-only location '* x'
}
しかし、私は、次のヘルパー関数追加した場合:メインで
#include <boost/type_index.hpp>
template<typename T>
void print_type(T)
{cout << "type T is: "<< boost::typeindex::type_id_with_cvr<T>().pretty_name()<< '\n';}
を、私は
print_type(x); // It returns int const*
は、私がstd::is_same
で何かが欠けアム機能を呼び出しますか?