Yuxxxxxxxxxx's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

C++标签派发

2026-05-24

C++ std::function

在现代 C++ 中,std::function(定义在 <functional> 头文件中)是一个通用的多态函数封装器,能够存储、复制和调用任何可调用对象 。你可以把它理解为一个“能够持有任何可调用对象”的容器。 在 std::function 出现之前,我们无法在一个容器或变量中存储不同类型的“可调用对象”。 普通函数指针只能存函数指针 Lambda 的类型在编译期是唯一的匿名类型
2026-05-19
C++ > 语言特性 > C++11
#C++ #语言特性 #C++11

C++ std::result_of和std::invoke_result

在 C++ 中,有时我们需要获取函数或可调用对象的返回值类型,以便进行后续的操作,在泛型编程中很常用,特别是当不同的参数集的结果类型不同时。 在早期的 C++ 版本中,我们需要手动推导函数返回值类型,这个过程非常复杂,也容易出错。为了解决这个问题,C++11 引入了 std::result_of 和 std::result_of_t(C++14),这两个模板可以方便地获取函数或可调用对象的返回值类
2026-05-18
C++ > 语言特性 > C++11
#C++ #语言特性 #C++11 #C++17

C++ 强制类型转换运算符

将类型名作为强制类型转换运算符的做法是 C 语言的老式做法,C++ 为保持兼容而予以保留。 C++ 引入了四种功能不同的强制类型转换运算符以进行强制类型转换:static_cast、reinterpret_cast、const_cast 和 dynamic_cast。 强制类型转换是有一定风险的,有的转换并不一定安全,如把整型数值转换成指针,把基类指针转换成派生类指针,把一种函数指针转换成另一种函
2026-05-17
C++
#C++

C++ decay/decltype/declval

一、decay 在 C++ 14 后,可使用别名 std::decay_t 在 C++ 中,Decay(退化)是指将一种类型转换为另一种更简单、更“原始”的类型的过程。这通常发生在将表达式传递给函数参数或进行模板推导时。 在 C++11 中,标准库提供了 std::decay(定义在 `` 头文件中) ,它精确地实现了上述规则。它是模板元编程中非常重要的工具。 Decay-co
2026-05-17
C++ > 模板
#C++ #模板 #语言特性 #C++11

C++ SFINAE机制

使用情景: 在 C++11 之前,SFINAE 是实现类型检查的唯一手段。例如,你想编写一个函数,它只接受数字类型,而不接受字符串或自定义类,这时就需要 SFINAE SFINAE(Substitution Failure Is Not An Error) 是 C++ 模板元编程的基石之一,字面意思是:“替换失败并非错误”。 简单来说,当编译器在模板实例化过程中,如果在替换模板参数时发生失败(
2026-05-17
C++ > 模板
#C++ #模板

C++ std::exception

C++ 语言本身或者标准库抛出的异常都是 exception 的子类,称为标准异常(Standard Exception)。可以通过下面的语句来捕获所有的标准异常: 12345try{ //可能抛出异常的语句}catch(exception &e){ //处理异常的语句} 一、简介std::exception:标准异常类的基类,其类的声明在头文件
2026-05-16
C++
#C++

VS Code配置Claude Code(通过API方式)

一、前置下载首先在VS Code中下载扩展 Claude Code for VS Code: Claude Code 在 Windows 上依赖 Git Bash,必须先安装 Git。 下载地址: https://git-scm.com/install/windows 二、通过API平台获取API由于没有海外信用卡,无法直接使用 Anthropic 官方 API,可以使用国内中转平台。 在平台上
2026-05-15
工具 > AI
#AI

启用或关闭Windows功能里没有Hyper-V选项

今天在弄 WSL2 的时候有如下报错: 123456PS C:\Users\1> wsl --set-default-version 2当前计算机配置不支持 WSL2。请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用虚拟化。通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution有关信息,请访问 https://aka.ms/ena
2026-05-14
查错记录
#查错记录

C++智能指针

一、什么是智能指针智能指针就是帮我们 C++ 程序员管理动态分配的内存的,它会帮助我们自动释放 new 出来的内存,从而避免内存泄漏。 下面就是一个内存泄露的例子: 1234567891011121314151617181920212223242526272829303132333435363738394041#include <iostream>#include <string
2026-05-13
C++
#C++
123…11

搜索

Hexo Fluid