问题标签 [enable-if]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何使用 enable_if<>::type 返回类型对函数进行原型设计?
下面我有3个原型。我希望第一个(注释掉)可以工作,但这是唯一一个不工作的(请参阅代码中的注释以了解错误)。更令我惊讶的是,以下两种方法中的任何一种都有效,即使两者都存在。
哪个是正确的原型,为什么第一个不起作用?我正在使用 VS2010 和 VS2012
javascript - KnockoutJS:基于数组启用按钮的长度
在我们正在做的一个项目中,我们创建了一个收件箱,用户(除其他外)可以在其中选择项目。如果用户选择了一个项目,则应启用该按钮——如果未选择任何项目,则应禁用该按钮。
很简单,但对于我的生活,我无法让它工作:-(
你可以在这里找到一个小提琴:http: //jsfiddle.net/rzrfp/
我想我错过了一些非常、非常、非常简单和愚蠢的东西,但我已经尝试了几乎所有的东西,但无法让它工作......
c++ - enable_if 迭代器作为默认模板参数?
我有一个这样的构造函数:
我只想在 TI 是一个迭代器时启用这个构造函数(这意味着我认为 TI 有一个 iterator_category)。如何在 C++ 2011 中使用 enable_if 作为默认模板参数(在声明和定义中)?
非常感谢。
c++ - 模板方法 enable_if 特化
我有以下无法编译的代码。这是模板类中的两个函数,它们接受参数
我想根据 Ret 的类型对成员方法进行专门化。
有人有什么想法吗?
inheritance - enable_if 只允许基类
我目前正在使用基类template<class CRTP> Base
和派生类实现一些 CRTP Derived1 : public Base<Derived1>
,Derived2 : public Base<Derived2>
...
数学运算符在中定义,Base
并且属于CRTP Base<CRTP>::operator+(const CRTP& rhs)
那种意味着我们可以将 a 添加Derived1
到 aDerived1
但不能将 a 添加到Derived2
a 的类型Derived1
。
此外,我已经定义了运算符Base<CRTP>& Base<CRTP>::operator()()
,这意味着Derived1()
将返回Base<Derived1>&
。
我想知道是否有解决方案来执行以下操作:
根据最后两行:
- 我防止用户犯错误
- 但是如果他真的想做这个操作,他可以将派生类型“强制转换”为基类型,这样就可以了
我唯一需要做的就是定义一个这样的运算符:
在 enable_if 我想要的是:
true
: 如果 rhs 是Base
类型false
: 如果 rhs 是一个Derived
类型
存在这样的事情吗?您有其他解决方案吗?
非常感谢你 !
c++ - enable_if 和 has_member 我做错了什么?
我想我已经盯着这个太久了,但我在这里找不到我的错误:
Visual Studio 2012 报告:
(注意,我真的很喜欢这里描述的这个测试的新 C++11 版本,但是 VS2012 还不支持 constexpr。)
c++ - 如何使这个 boost::enable_if 代码编译(SFINAE)?
我很困惑为什么以下使用的代码boost::enable_if
无法编译。它检查 typeT
是否有成员函数hello
,如果是,则调用它:
我越来越
与gcc 4.4.4
.
静态断言没问题,has_hello<Foo>::value
确实如此true
。我用boost::enable_if
错了吗?
c++ - 如何编写类型特征`is_container`或`is_vector`?
是否可以编写一个类型特征,其值对于所有常见的 STL 结构(例如,、、、vector
... set
)都为真map
?
首先,我想编写一个类型特征,它对 a 为真,vector
否则为假。我试过这个,但它没有编译:
错误消息是template parameters not used in partial specialization: U
。
c++ - 在构造函数中提升 enable_if
我有一个模板类,我只想在类型为双精度时启用某个构造函数。这段代码有什么问题?
我收到错误消息:“'boost::enable_if_c' 类型参数的默认参数的类型为 'int'”,但我不确定这是什么意思。
非常感谢你。