gpt4 book ai didi

c++ - 当 ParamType 既不是指针也不是引用时自动类型推导

转载 作者:太空宇宙 更新时间:2023-11-03 10:39:01 26 4
gpt4 key购买 nike

关于自动类型推导,我引用了 Scott Meyers 的“更有效的 C++”。提到它与模板类型推导的工作方式相同,并且提到了 3 种情况。我的问题属于情况 3(当 ParamType 不是指针或引用时),但结果与所描述的不匹配。

#include <iostream>

int main (void)
{
auto i = 2;
const auto c = &i;

*c = 4;

std::cout << "i is " << i;
}

它应该像

template<typename T>
void f(const T param);

f(&i); // int *

所以,这里的T应该匹配int *param的完整类型应该是const int *

但是,如上面的程序所示,c 不是 const int * 而是 int *

有人可以解释一下我在这里缺少什么吗?

最佳答案

当你有

template<typename T>
void f(const T param);

T 是指针类型,您没有 const type * 而是 type * const 因为您正在制作 Tconst,而不是它指向的内容。

这意味着

const auto c = &i;

是一个int * const,一个指向非常量整数的常量指针。

关于c++ - 当 ParamType 既不是指针也不是引用时自动类型推导,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49433185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com