E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
SFINAE
Modern C++ idiom2:
SFINAE
SFINAE
,即“替换失败不是错误”(SubstitutionFailureIsNotAnError),是C++模板元编程中的一种原则,允许在模板实例化过程中某些替换失败而不引起编译错误。
深山老宅
·
2024-02-01 22:20
modern
C++
c++
modern
C++
SFINAE
C++
idiom
principle
C++20 高级编程
文章目录前言前奏lambda浅谈std::ref的实现浅谈is_same浅谈std::function的实现std::visit与std::variant与运行时多态
SFINAE
类型内省标签分发(tagdispatching
Computer_Tech
·
2024-01-28 16:44
C/C++
c++20
C++ 实现 std::is_shared_ptr、std::is_unique_ptr 模板(判断是否为智能指针)
比如:C++11标准上面,是不支持这两个
SFINAE
测试模板的C++17也并非任何版本都支持,如果想要保证代码在编译器上面的通用性,我们是需要自行实现这两个模板类的。
liulilittle
·
2024-01-25 16:19
C/C++
c++
开发语言
C++20:从0到1学懂concept
一些优点包括:对模版参数强制类型约束提高代码可读性(替换了较长的
SFINAE
代码)提供更友好的报错信息通过限制可以使用的类型来防止意外的
guangcheng0312q
·
2024-01-12 21:20
c++20
C++(20):通过concept检测类是否有某个成员函数
C++(11):基于函数指针检查类中是否有某个成员函数-CSDN博客C++(11):基于
SFINAE
/decltype检查类中是否有某个成员函数-CSDN博客
风静如云
·
2023-12-27 19:36
C/C++
c++
c++学习笔记(11)-
SFINAE
1、概念
SFINAE
是SubstitutionFailureIsNotAnError的缩写,表示“替换失败不是一个错误”。
开始沸腾了
·
2023-12-27 04:43
C++笔记
c++
学习
笔记
C++常见面试题-进阶部分50题
问题3:C++中的
SFINAE
原则是什么?答案:
SFINAE
(替换失败不是错误)是一种用于模板元编程的机制,用于在模
康熙聊编程
·
2023-12-20 20:57
Basic
C++
面试题
开发语言
c++
面试
Crow:Middlewares 庖丁解牛1 检查Middlewares的成员类型
其实个人觉得与下文的实现目的是相同的,但是方式有点不同C++(11):基于
SFINAE
/enable_if检查类中是否有某个成员函数
风静如云
·
2023-12-18 14:15
C/C++
c++
从 enable_if 了解模板元编程
前言在阅读学习ZLToolKit源码时,从如下一段代码中了解到enable_if和
SFINAE
的概念,从而引入了对模板元编程的了解。
coolhuhu~
·
2023-12-15 11:52
c++
开发语言
C++泛型编程之函数模板
目录前言一、函数模板1函数模版特化1.1C++代码示例2默认模板参数3可变参数模板4模板元编程4.1C++代码简单示例4.2C++代码一般示例4.3C++代码一般示例4.4
SFINAE
(SubstitutionFailureIsNotAnError
Fuxi-
·
2023-11-16 04:39
c++
开发语言
模板方法模式
使用C++11模板
SFINAE
实现enum class与整数的比较
在C++11中添加了enumclass类型,与enum类型不同的是,使用enumclass中的枚举值时必须加上类型限定符,而原来的enum枚举是可以不用加类型限定符的,它们都会被当作全局(如果没有在命名空间内)整数来对待。这样就会导致不同的模块,不能定义相同的枚举值。比如:头文件a.h中定义了一个枚举:enumETest1{A,B,};头文件b.h需要包含a.h,如果此时在b.h中定义:enumE
witton
·
2023-10-29 19:51
编程语言
C++11
SFINAE
enum
class
整数
比较
c++_learning-模板与泛型编程
模板与泛型编程模板概念、函数模板定义、调用:各种函数:替换失败不是一个错误`
SFINAE
`(substitutionfailureisnotanerror):由来:特性:*c++11引入的类模板`enable_if
小白要努力sgy
·
2023-10-19 22:49
c++
开发语言
c++ 模版元编程-
SFINAE
(Substitution Failure Is Not An Error)技术
SFINAE
(SubstitutionFailureIsNotAnError)是C++编程语言中的一种技术,它是一种编译器错误处理机制。
陈庆之的论衡
·
2023-09-28 16:58
c++
c++
开发语言
算法
CPP-Templates-2nd--第十九章 萃取的实现 19.4-19.5
目录19.4基于
SFINAE
的萃取(
SFINAE
-BasedTraits)19.4.1用
SFINAE
排除某些重载函数另一种基于
SFINAE
的萃取的实现策略将基于
SFINAE
的萃取变参预测型萃取19.4.2
小猴啊0.0
·
2023-09-17 13:26
开发语言
c++
C++模板
CPP-Templates-2nd--第十五章 模板实参推导
目录15.1推导过程15.2推导上下文15.7
SFINAE
(SubstitutionFailureIsNotAnError)15.7.1立即上下文15.8推导的限制15.8.1合法的实参转换15.8.3
小猴啊0.0
·
2023-09-16 21:46
c++
开发语言
C++模板
C++ concept的概念和使用
C++concept的概念和使用concept这套语法优化了模板编程,替代了原来的
SFINAE
编程模式,通过给模板类参数加入限制条件,使得代码可读性更强、编译更快、错误提示更容易理解。
Ahxing1985
·
2023-09-13 00:40
c++
技术
c++
java
开发语言
C++中std::enable_if和
SFINAE
介绍
_Testtemplatestructenable_if{//typeis_Tyfor_Testusingtype=_Ty;};
SFINAE
再说清楚这部分代码之前,我们先来说明一下
SFINAE
I_belong_to_jesus
·
2023-09-09 09:44
c++
算法
开发语言
SFINAE
的技巧应用
一、
SFINAE
的技巧
SFINAE
,SubstitutionFailureIsNotAnError。
fpcc
·
2023-08-06 14:09
C++11
c++
c++ 给无名形参提供默认值
应用
SFINAE
(substitutefalseisnotanerror)原则,若没推断出形参类型,也不报错,若推断出形参类型,则为其提供默认值。
zhangzhangkeji
·
2023-07-31 14:43
c++学习总结
c++
设计 C++ 接口文件的小技巧之 PIMPL
#设计C++接口文件的小技巧之PIMPLC++里面有一些惯用法(idioms),如RAII,PIMPL,copy-swap、CRTP、
SFINAE
等。
Zijian/TENG
·
2023-06-18 08:00
C++模板类及其应用
模板类的高级特性模板特化模板偏特化可变模板参数非类型模板参数模板成员函数模板别名
SFINAE
技术什么是模板类?模板类是C++中的一种泛
扫地的小何尚
·
2023-06-06 23:13
c++
开发语言
算法
人工智能
数据结构
《C++那些事》之
SFINAE
介绍c++的
SFINAE
概念:类成员的编译时内省0.导语1.C++自省?
guangcheng0312q
·
2023-04-18 17:58
c++
python
开发语言
C++编译期分支选择相关技术
文章目录一、函数重载和标签分发1.1函数重载1.2标签分发二、模板特化三、
SFINAE
3.1类型相关3.2表达式相关3.3偏特化相关四、ifconstexpr程序员写的代码里,最核心的内容之一就是根据不同的条件判断执行不同的逻辑分支
wxj1992
·
2022-09-21 18:57
C++重点实用技术
if
constexpr
标签分发
tag
dispatch
模板特化
SFINAE
[读书笔记]《Hands on Design Patterns with C++》——RAII,
SFINAE
第5章RAIIRAII(ResourceAcquisitionisInitialization)构造函数获取资源,析构函数释放资源。注意拷贝和释放,有的需要禁止拷贝移动等。WhatisconsideredaresourceinaC++program?每一个程序运行都需要一定的资源,最常使用的资源就是内存,但资源这个概念是多种多样的。只要是资源就会设计到一个问题,如何确保资源管理是正确的。首先人为的
Chris_zhangrx
·
2022-09-20 11:19
读书笔记
c++
开发语言
后端
SFINAE
#includetemplatestructis_pointer{templatestaticcharis_ptr(U*);templatestaticcharis_ptr(MC::*);templatestaticcharis_ptr(U(*)());templatestaticdoubleis_ptr(...);enum{value=sizeof(is_ptr((T)(0)))==sizeof
hygge_254d
·
2021-03-10 12:10
boost enable_if——
SFINAE
(匹配失败不是错误)
让我们看下这段程序:很简单的一个重载;如我所愿,程序正常运行结果如下:voidfunc(int)voidfunc(T)[withT=Test]现在,取消最后一行的注释,再次编译。。。出现了如下编译错误:test0.cc:Infunction‘voidfunc(T)[withT=shortint]’:test0.cc:28:instantiatedfromheretest0.cc:12:error:
cd2108006026
·
2020-08-22 16:04
boost-asio
编译器
function
struct
class
C++中的值与引用
我第一次接触右值引用的时候是在看
SFINAE
相关方面的内容时,当我第一次看到了auto&&这种写法,一脸蒙蔽,这是啥啊?
lordmr
·
2020-08-19 10:39
c++
DirectX 11 学习笔记-Part2-4【Cubemap/贴图置换/阴影/屏幕空间环境光遮蔽】【原理篇】
另外在阅读源码时,为了剔除枝干让整体的代码更加一目了然,我用了模板和
SFINAE
(主要在SceneObject.h),如果看不懂的话也没有关系,不重要,关键是了解这些技术的主要
Zealot_Alie
·
2020-08-17 00:18
C++
DirectX
muduo库源码学习(base)singleton
/*
SFINAE
的意思是这样的,假如有一个特化会导致编译时错误(即出现编译失败),只要还有别的选择可以被选择,那么就无视这个特化错误而去选择另外的可选选择。
lsaejn
·
2020-08-14 17:34
C++
muduo
深入浅出
SFINAE
compile-timeintrospectionofaclassmemberPostedonSat31October2015inC++原文链接:http://jguegant.github.io/blogs/tech/
sfinae
-introduction.htmlTrivia
b1206
·
2020-07-29 17:41
有关
SFINAE
的一个小应用
之前在实现一个类模板时遇到一个问题:如何判断一个类型是否重载了operatorvoidprint(intrnval){std::coutvoidprint(Trnt,typenameT::value_type*rndummy_ptr=nullptr){std::coutvoidprint(...)",那此时就是精确匹配了,但是该实例print的第二个形参却会发生错误,所以概括来说就是编译器此时宁可
rnnear
·
2020-07-16 04:53
SFINAE
使用
什么是
SFINAE
在C++中有很多的编程技巧(Trick),
SFINAE
就是其中一种,他的全义可以翻译为“匹配失败并不是一个错误(Substitutionfailureisnotanerror)”。
进步不是一点点
·
2020-07-16 02:22
C++
C++11新特性--std::enable_if和
SFINAE
https://www.jianshu.com/p/a961c35910d2名词解释
SFINAE
SFINAE
是英文Substitutionfailureisnotanerror的缩写,意思是匹配失败不是错误
libaineu2004
·
2020-07-16 02:28
C/C++
C++11
SFINAE
and enable_if 详解
https://eli.thegreenplace.net/2014/
sfinae
-and-enable_if/There'saninterestingissueonehastoconsiderwhenmixingfunctionoverloadingwithtemplatesinC
jeffasd
·
2020-07-16 01:31
C++
boost::enable_if与
SFINAE
原则
模板函数的重载遵循
SFINAE
原则(substitution-failure-is-not-an-error):当一个模板函数的返回值或参数类型无效的时候,该实例不会参与重载解析,也不会导致编译错误。
cbNotes
·
2020-07-15 21:15
经验技巧
C++11: enable_if
首先了解一个概念:
SFINAE
:substitutionfailureisnotanerror,替代失败不是错误templatetypenamestd::enable_if4>::typefoo(){}
Mccreejia
·
2020-07-15 17:58
C++
C++ 模板函数返回值"重载"
C++模板函数返回值"重载"不想看梳理过程的看这里1简析(真实应用在3.1,不想看那些梳理的直接跳过去)1.1问题产生原因1.2突破口C++11特性2解决利器2.1
SFINAE
2.2std::enable_if2.2.1
IceSun1995
·
2020-07-15 17:47
c-c++
模板
C++11
C++模板之
SFINAE
技术
今天在阅读muduo库的源码时,里面有这样几行代码:templatestructhas_no_destroy{templatestaticchartest(typeof(&C::no_destroy));//ordecltypeinC++11templatestaticint32_ttest(...);conststaticboolvalue=sizeof(test(0))==1;};有一个模板类
FreeeLinux
·
2020-07-15 17:26
C/C++
(
SFINAE
)C++检查成员函数是否存在
1.什么是
SFINAE
?请看下面的链接
SFINAE
2.如果使用
SFINAE
检查类或者结构体是否定义某个成员函数?
Ron_Tang
·
2020-07-15 16:27
C/C++
C++11新特性之std::enable_if和
SFINAE
C++11新特性之std::enable_if和
SFINAE
注:本文转载自于天佐的简书https://www.jianshu.com/p/a961c35910d2名词解释SFINAESFINAE是英文Substitutionfailureisnotanerror
uouo88
·
2020-07-15 15:29
C++
现代C++之
SFINAE
介绍c++的
SFINAE
概念:类成员的编译时内省0.导语1.C++自省?
guangcheng0312q
·
2020-07-15 14:05
C++11 type_traits 之is_convertible源码分析
请看源码:struct__
sfinae
_types{typedefchar__one;typedefstruct{char__arr[2];}__two;};template,is_function,is_array
banliu8076
·
2020-07-15 14:33
C++模板之
SFINAE
和enable_if分析
文章目录C++模板之
SFINAE
和enable_if分析1.
SFINAE
2.isClass的实现3.enable_ifC++模板之
SFINAE
和enable_if分析在C++typetraits分析这篇文章我
xdesk
·
2020-06-29 23:39
C++语言编程
C++11新特性--std::enable_if和
SFINAE
名词解释
SFINAE
SFINAE
是英文Substitutionfailureisnotanerror的缩写,意思是匹配失败不是错误。这句话什么意思呢?
于天佐
·
2020-03-21 03:12
SFINAE
与 type_traits
SFINAE
与type_traitsSFINAE替换失败不是错误(SubstitutionFailureIsNotAnError),此特性被用于模板元编程。
小胖西瓜
·
2020-02-05 12:00
C++ 11实现检查是否存在特定的成员函数
这样一个ToString实现可以使用std::enable_if来做到,但是这里的难点在于如何判断类型T中存在这样一个ToString方法,以便可以放入enable_if中做
SFINAE
。
·
2019-09-22 19:38
C++ 模板简介(一)——
SFINAE
SFINAE
,类型检查,ConceptsSFINAE机制是组成C++模板机制及类型安全的相当重要的基础。全称是Substitutionfailureisnotanerror。
huanghongxun
·
2018-12-18 14:07
C++
如何让模板函数 对不同类型的参数做不同的处理
dynamic_casttemplateT*ConvertA(F*from){//如果是std::is_convertable_v是true就用static_cast,否则dynamic_cast}方案1.
SFINAE
killer4747
·
2018-07-28 11:58
C++
C++17 之 "void_t"
的工作原理一个有趣的例子C++17提供了void_t,它是一个模板别名,定义为templateusingvoid_t=void;void_t一般用于元编程.从定义上看,void_t的定义平淡无奇,但利用
SFINAE
地球在动
·
2018-04-19 20:36
C/CPP
VS2013编译boost 1.62:.\boost/type_traits/common_types.h(42) : fatal error C1001: 编译发生内部错误
type_traits/common_types.h(42):fatalerrorC1001:编译发生内部错误根据网上找到了这篇文章《vs2013编译boost1.60库》搞明白是和VS2013对C++11
SFINAE
10km
·
2017-07-03 14:12
开发工具
上一页
1
2
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他