sfinae

sfinae

文章 0 浏览 6

如何使用enable_if根据类的模板参数启用成员函数

在代码中: template struct is_builtin { enum {value = 0}; }; template<> struct is_builtin { enum {value = 1}; }; template<> struct is_builti…

赠意 2024-10-01 15:57:16 10 0

为什么以下 SFINAE 测试无法检测到模板成员函数?

使用 GCC 进行编译时,我从以下代码中得到的总是 false。我相信这是一个编译器错误,但有人可能更了解。 #include template class has_apply { typede…

以为你会在 2024-10-01 13:32:58 8 0

如果模板类型是可实例化的,则执行某些操作

如果我可以实例化某个模板类,我想使用 SFINAE 模式来执行一些代码。让我们想象一下: //Only instantiable with types T for which T.x() is ok: tem…

那请放手 2024-09-30 06:10:13 5 0

为什么类模板的成员函数声明都应该是格式良好的?

好的,假设我想检查模板参数是否有嵌套类型/typedef XYZ。 template struct hasXZY { typedef char no; typedef struct { char x[2]; } yes; template…

幸福%小乖 2024-09-29 00:29:23 7 0

使用 sfinae 测试命名空间成员是否存在

我试图弄清楚是否可以使用 sfinae 来测试 命名空间 成员的存在。 谷歌对此保持沉默。我尝试过以下代码,但失败了。 namespace xyz{ struct abc{}; } s…

江城子 2024-09-16 16:32:57 9 0

解释一下 C++ SFINAE 到非 C++程序员

C++ 中的 SFINAE 是什么? 您能用不懂 C++ 的程序员可以理解的语言解释一下吗?另外,SFINAE 对应于 Python 这样的语言中的什么概念?…

草莓酥 2024-09-12 16:28:00 16 0

SFINAE 检测非成员函数是否存在

有谁知道根据是否定义非成员方法来专门化模板的方法吗?我知道如果成员函数存在,有很多方法可以专门化,但我从未见过非成员示例。具体问题是专门化操…

别靠近我心 2024-09-12 09:16:46 3 0

boost::enable_if 类模板方法

我得到了带有模板方法的类,它查看了这个: struct undefined {}; template struct is_undefined : mpl::false_ {}; template : mpl::true_ {}; templ…

几度春秋 2024-09-03 03:41:58 10 0

部分模板特化:匹配特化模板参数的属性

template class A { // Use Y::Q, a useful property, not used for specialization. }; enum Property {P1,P2}; template class B {}; class C {}; …

九公里浅绿 2024-09-03 02:17:46 9 0

检测类是否具有重载函数在 Comeau 编译器上失败

我正在尝试使用 SFINAE 来检测类是否具有采用某种类型的重载成员函数。我的代码似乎可以在 Visual Studio 和 GCC 中正常工作,但无法使用 Comeau 在线…

弃爱 2024-08-31 11:02:12 5 0

SFINAE 因枚举模板参数而失败

有人可以解释以下行为(我正在使用 Visual Studio 2010)。 标题: #pragma once #include using boost::enable_if_c; enum WeekDay {MONDAY, TUESDAY…

眼中杀气 2024-08-31 09:13:48 6 0

多个 SFINAE 规则

阅读此答案后 问题,我了解到SFINAE可以用来根据类是否具有某个成员函数来在两个函数之间进行选择。它与以下内容等效,只是 if 语句中的每个分支都被…

两相知 2024-08-30 22:03:36 6 0

声明用于日志记录的类的模块名称

我目前正在向我们的日志库添加一些功能。其中之一是可以为一个类声明一个模块名称,该名称会自动添加到从该类中写入的任何日志消息之前。但是,如果未…

心头的小情儿 2024-08-26 10:59:26 15 0

为什么 SFINAE 不适用于此?

我在尝试 Visual Studio 10(Beta 2)时编写了一些简单的点代码,并且在我希望 SFINAE 启动的地方遇到了这段代码,但似乎没有: template struct poin…

油饼 2024-08-08 19:00:13 6 0

如果模板化函数存在,如何调用它,否则如何调用其他函数?

我想做一些事情,就像 template void foo(const T& t) { IF bar(t) would compile bar(t); ELSE baz(t); } 我认为使用 enable_if 可以完成这里的工作…

橙味迷妹 2024-08-03 22:27:06 6 0
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文