gpt4 book ai didi

c++ - 自动参数如何在内部工作?

转载 作者:太空狗 更新时间:2023-10-29 20:02:15 24 4
gpt4 key购买 nike

考虑代码,

#include <cstdio>

auto f(const auto &loc){
printf("Location: %p\n", &loc);
}

int main()
{
auto x {1};
auto y {2.3};
f(x);
f(y);
}

g++ -std=c++14 dummy.cpp 编译

问题:

对于模板函数,类型在编译时明确提及(f<int>(2))。

函数f如何实现?接受不同类型的参数?

最佳答案

Concept Technical Specification下“功能”

auto f(const auto &loc){
printf("Location: %p\n", &loc);
}

实际上是一个模板(缩写的函数模板声明)并且等同于(但更短且更易于阅读)

template<typename T>
void f(const T&loc){
printf("Location: %p\n", &loc);
}

但是请注意,使用auto 的形式目前还不是任何C++ 标准的一部分,而只是Concept Technical Specification 的一部分。对于概念和约束,它看起来非常强大(但 AFAIK 仅受 GNU 的 gcc 版本 ≥6.1 和选项 -fconcepts 支持)。

关于c++ - 自动参数如何在内部工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44249878/

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