腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
2
回答
仅对
某些
类型
使用
enable_if
专门化
函数
的
最佳
方法
c++
、
c++14
我有这段代码,它为两种
类型
指定了打印
函数
,并为任何其他
类型
恢复为基本版本。 我
的
问题是,有没有一种
方法
可以在不为基本打印
函数
的
enable_if
中
的
所有专用版本键入负大小写
的
情况下编写此代码?也就是说,有没有一种
方法
可以删除所有的!std::is_same,同时仍然具有明确
的
打印功能? 欢迎任何版本
的
C++,但在c++14中工作
的
版本会很有帮助。
浏览 24
提问于2020-04-06
得票数 0
4
回答
基于
类型
特征
专门化
转换运算符
c++
、
casting
、
template-meta-programming
、
sfinae
我想通过为
某些
类型
标记强制转换操作符explicit来调整行为。然而,我找不到这样做
的
方法
。 这里有一个人工
的
例子:我想要一个对整数
类型
的
隐式转换操作符,对所有其他
类型
的
显式转换操作符。这不起作用,因为我们无法确定具有
类型
为typename std::
enable_if
<!operator U() const { } }; 我不能声明类templ
浏览 68
提问于2017-10-15
得票数 3
回答已采纳
2
回答
组类模板
专门化
c++
、
templates
、
c++11
、
traits
、
enable-if
是否有对
某些
类型
的
类模板
专门化
进行分组
的
技术/
最佳
样式?另一种方式是排版B#include <iostreamenum { val = 0 }; }; /
浏览 1
提问于2014-07-08
得票数 11
回答已采纳
2
回答
是否可以
使用
std::
enable_if
选择成员模板
专门化
?
c++
、
templates
、
c++11
、
template-specialization
给定一个类声明 template <typename T> T foo();我想
专门化
各种
类型
的
A::foo (int,...)和T
的
类型
类(POD,非POD)。不幸
的
是,我似乎不能为后者
使用
std::
enable_if
。以下代码无法编译: template <typename T
浏览 1
提问于2012-10-26
得票数 9
回答已采纳
3
回答
用std::
enable_if
?
c++
、
templates
、
template-specialization
、
enable-if
如果我在C++中有一个模板
函数
,并且希望它在特定
的
模板参数存在
的
情况下以不同
的
方式运行,我将
使用
模板
专门化
:#include <type_traits> templatestd::
enable_if
<bool B>
的
<type_traits>,可以为
某些
特定
的
模板
类型
激活类似的行为。任何其他
类型</e
浏览 20
提问于2022-09-13
得票数 1
回答已采纳
2
回答
enable_if
如何帮助选择类模板
的
专门化
?
c++
、
template-meta-programming
、
template-specialization
、
enable-if
、
class-template
我对SFINAE有一个基本
的
了解,我想我理解std::
enable_if
如何利用它来选择
函数
模板
专门化
的
许多例子,但是我很难理解它如何为类模板工作。std::
enable_if
如何帮助选择
专门化
。
专门化
A<T, void> ( T是float
类型
,void是
enable_if
表达式
的
结果)。 这些不是模棱两可吗?两者都有效地导致了A<T, void>,那么为什么选择<
浏览 6
提问于2020-05-28
得票数 3
回答已采纳
1
回答
如何通过
专门化
在模板类
的
独立声明和定义
方法
上
使用
std::
enable_if
c++
、
c++11
、
templates
、
enable-if
我试图在头文件和
使用
专门化
的
实现之间划分一个模板类,但我希望一个
方法
只出现在
某些
专门化
中。typename T>{ void foo();{} void A<T>::bar() ...
浏览 0
提问于2019-08-27
得票数 3
回答已采纳
2
回答
使用
std::
enable_if
c++
、
templates
、
c++11
、
enable-if
我正在尝试
使用
std::
enable_if
为一系列
类型
专门化
一个
函数
。{return s == data;} bool Equal(const std::string& s, const typename std::
enable_if
的
模板
函数
似乎没有参与解析,所以编译器告诉我没有与我
的
浏览 4
提问于2014-07-08
得票数 2
回答已采纳
4
回答
函数
模板:具有
类型
特征
的
不同
专门化
c++
、
templates
、
typetraits
、
function-templates
考虑到类模板,可以
使用
类型
特征和虚拟启用器模板参数为特定
类型
的
组提供模板
专门化
。我已经了。现在,我需要对
函数
模板做同样
的
事情:也就是说,我有一个模板
函数
,并想要一组
类型
的
专门化
,例如,作为类X
的
子
类型
的
所有
类型
。我可以用这样
的
类型
特征来表达: std::
enable_if
&l
浏览 2
提问于2012-09-03
得票数 6
回答已采纳
1
回答
尝试
使用
SFINAE (std::
enable_if
)和模板
专门化
时
的
编译错误
c++
、
templates
、
sfinae
'CByteArray序列化(const HLVariant &)‘不是
函数
模板
的
专门化
。错误C2783:'CByteArray序列化(const std::
enable_if
::type &)‘:无法推断'T’
的
模板参数 这个错误表明编译器没有可见
的
template <typenameT> CByteArray serialize(const T&);
函数
,我不明白为什么。请注意,这里我只是<em
浏览 3
提问于2014-11-03
得票数 0
回答已采纳
2
回答
模板
方法
enable_if
专门化
c++
、
class
、
templates
、
c++11
、
enable-if
我有以下不能编译
的
代码。这是接受参数
的
模板类中
的
两个
函数
} /
浏览 2
提问于2012-08-17
得票数 6
回答已采纳
1
回答
在两级模板中
使用
enable_if
c++
、
templates
、
sfinae
、
enable-if
我想
使用
enable_if
为
某些
类型
定义类。在这些
类型
中,我需要
使用
一些模板
类型
,并且我无法使它工作。这是一个MWE:template<typename T, typename Enable = void> class A;template<typename T> class A<T, std::<
浏览 4
提问于2017-07-20
得票数 1
回答已采纳
2
回答
将参数传递给模板
函数
的
方法
c++
、
c++11
、
templates
、
c++17
假设我有一个模板
函数
void do_sth(T const&);备注:我
的
最佳
选择是
使用
带有“简单”
类型
条件
的
enable_if</e
浏览 0
提问于2019-04-08
得票数 0
5
回答
在大型模板类中
专门化
单个
方法
c++
、
templates
、
c++11
在C++中,如果希望在模板类中部分地
专门化
单个
方法
,则必须
专门化
整个类(如中所述)。然而,
使用
C++11,我认为可能会有一个更优雅
的
解决方案,但我不知道如何处理它。也许在某种程度上与
enable_if
?有什么想法吗?
浏览 6
提问于2014-01-17
得票数 17
回答已采纳
3
回答
为
类型
集
专门化
函数
模板
c++
、
c++11
、
templates
、
sfinae
可以为不同
类型
的
集创建不同行为
的
函数
模板吗?template<typename T, typename = typename std::
enable_if
当然,代码不会编译,因为模板
的
参数不是模板签名
的
一部分(因此有两个具有相同签
浏览 0
提问于2018-08-21
得票数 1
回答已采纳
1
回答
变体模板特化,std::
enable_if
,SFINAE
c++
、
templates
、
template-specialization
、
sfinae
如果一旦实例已经创建,允许用户只调用:起初,我认为,要想使这种
方法
发挥作用,所需要
的
就是
专门化
模板化
方法
,例如: // Wrong,将
使用
此
专门化
而不是更一般
的
专门化
。我希望只有在T没有默认构造
函数
的
情况下才
使用
这种
专门化
。首先,我这样做是正确
的
方法
浏览 2
提问于2016-12-21
得票数 3
回答已采纳
1
回答
依赖于std::
enable_if
的
模糊部分
专门化
c++
、
templates
>::type返回void (如果没有指定默认
类型
)。这会导致“不明确
的
部分
专门化
”错误,因为编译器无法在第一和第二部分
专门化
之间作出决定。到现在为止还好。但是,当我将std::
enable_if
中
的
代码替换为简单
的
true (即第二个部分
专门化
就是template <class T> class A<T, typename std::
enable_if
<它输出"Here",表示选择了
浏览 0
提问于2017-02-22
得票数 5
回答已采纳
4
回答
将派生类传递给与基类
专门化
的
模板
函数
c++
、
templates
return 0;是否可以在不为派生类添加重复
的
f()
专门化
的
情况下编译和链接此代码? 谢谢。我
使用
的
是clang,Apple版本6.0 (clang-600.0.56) (基于LLVM 3.5svn)。
浏览 0
提问于2015-01-16
得票数 3
回答已采纳
2
回答
指针作为
函数
返回
类型
的
部分
专门化
c++
、
templates
、
c++11
我有一个模板包装
函数
,它返回如下所示
的
值:T foo(Bar& bar, const char* key) {}template<class T> return (T)bar.value我希望不要向每个
使用
指针
的
函数
浏览 1
提问于2015-05-13
得票数 4
回答已采纳
3
回答
在不创建参数对象
的
情况下获得解析
函数
c++
、
templates
、
c++11
、
constexpr
、
argument-dependent-lookup
简写版:constexpr bool has_some_property(Foo) { return true; } template<>
浏览 3
提问于2015-02-10
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C+模板元编程:探索无穷可能性的神技!
Python 你不能不知的那些事儿
我写了一个TypeScript虚拟机。
Go interface实现分析
Java 8 开发顶级技巧
热门
标签
更多标签
活动推荐
运营活动
广告
关闭
领券