#include <iostream>
// 示例代码展示 decltype 的用法
void example() {
int x = 42;
auto y = x; // y 的类型是 int
decltype(x) z = x; // z 的类型也是 int
std::cout << "x: " << x << ", y: " << y << ", z: " << z << std::endl;
// 使用 decltype 确定表达式的类型
int a = 10, b = 20;
decltype(a + b) sum = a + b; // sum 的类型是 int,因为 a + b 的结果是 int
std::cout << "sum: " << sum << std::endl;
// decltype 与引用
int& ref = x;
decltype(ref) ref2 = x; // ref2 是 int& 类型的引用
ref2 = 100; // 修改 x 的值
std::cout << "x after modifying ref2: " << x << std::endl;
// decltype 与常量
const int cx = 5;
decltype(cx) cy = 5; // cy 是 const int 类型
// decltype 与指针
int* p = &x;
decltype(p) p2 = &y; // p2 是 int* 类型
std::cout << "*p: " << *p << ", *p2: " << *p2 << std::endl;
}
int main() {
example();
return 0;
}
基本用法:
decltype 可以用于确定变量或表达式的类型。例如,decltype(x) 返回 x 的类型。表达式类型:
decltype(a + b) 返回表达式 a + b 的类型。在这个例子中,a + b 的结果是 int,因此 sum 的类型也是 int。引用类型:
x 是一个引用(如 int& ref = x),那么 decltype(ref) 会返回引用类型(即 int&)。因此,ref2 也是一个引用,并且修改 ref2 会影响原始变量 x。常量类型:
const int cx = 5),那么 decltype(cx) 会返回 const int 类型。指针类型:
int* p = &x),decltype(p) 会返回指针类型(即 int*)。通过这些示例,可以看到 decltype 是一个非常强大的工具,可以帮助我们在编译时推导出复杂的类型信息。
上一篇:c++ 析构函数
下一篇:c++运行
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站