问题标签 [result-of]
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++ - c++推演“非类型函数指针”类模板参数
考虑一个模板类,如:
这可以通过使用实例化:
但是显式声明返回值类型似乎是不必要的。我想要实现的是:
不幸的是,我不是 c++ 期望的,这似乎是语言的一个隐藏角落(至少对我来说)。
如果我可以从指向函数的指针获取其类型 - 类似于: std::tr1::result_of<&fn>::type // 错误 1 错误 C2923: 'std::tr1::result_of' : 'fn1 ' 不是参数 '_Fty' 的有效模板类型参数
该错误是有道理的,因为该参数根本不是“类型”
C++0x 有 decltype(&fn1) 但那是几年后的事了。
在 C++03 (+ tr1) 中有什么方法可以做到这一点?
限制: - 我不想传递函子,f1 和 f2 必须保留具有返回值的全局函数(不能将其移动到参数)。)
c++ - std::result_of 和 decltype 之间的区别
我在理解std::result_of
C++0x 中的需求时遇到了一些麻烦。如果我理解正确的话,result_of
是用来获取调用具有某些类型参数的函数对象的结果类型。例如:
我真的看不出与以下代码的区别:
或者
我可以看到这两种解决方案的唯一问题是我们需要:
- 有一个函子的实例以在传递给 decltype 的表达式中使用它。
- 知道函子的定义构造函数。
我是否认为decltype
和之间的唯一区别result_of
是第一个需要表达而第二个不需要?
c++ - 如何使用 boost 确定给定数组类型的下标运算符的返回类型?
如果我想使用 boost 确定数组 (T) 的下标运算符返回的类型,我需要使用什么类型签名?请注意,我将使用它的数组不包含 typedef 并且是第三方的。
例子。我想确定:
就像是
? 我一直在类型签名中遇到 operator[] 的问题。:|
谢谢!
visual-c++ - 获取模板 lambda 参数的返回值,如何简化代码?
这是我的把戏:
使用示例:
如果 F 是 lambda:
我认为函数 get_return_value 看起来很难看......如何简化它?
c++ - result_of 对我不起作用
两个 typedef 都给出错误
c++ - std::result_of 简单函数
请解释为什么std::result_of<f(int)>::type x;
无效...
cppreference 说“(std::result_of
)在编译类型推导出函数调用表达式的返回类型。”。
有什么问题?
c++ - c++错误std::result_of没有命名类型
g++ -std=c++0x
'ing后std::result_of
产生以下错误信息
(SUSE 上的 g++ 版本 4.5.0。)
足以重现错误的相关代码如下
此外,我尝试从 wikipedia 或 cpluplus.com 编译示例,但无济于事。这是特定编译器的问题还是我做错了什么?
c++ - 基本的提升精神语义动作无法编译
我正在尝试向 ast 添加大于运算符>
:代码与文档中的代码 95% 相同。
下面的两个兴趣点
- 我正在尝试编写对大于的支持的代码块:在下面的代码中注释。
- 解析中的一行
term
无法编译,因为我还不了解语义动作:不确定如何通过 phoenix 和语义动作绑定lhs
of 。lhs > rhs
对于 Spirit 的普通用户来说,该解决方案应该是微不足道的,但我仍在学习,到目前为止只能通过示例获得。
任何帮助,将不胜感激。TIA。
代码
c++ - 检测函数参数类型
我使用以下代码来检测给定函数的长参数。
所以,给定:
我想提取int *
.
这是我的尝试:
然而,这不起作用并且 gcc 4.6 给出了错误
所以,我有两个问题:
a) 上面的代码有什么问题?
b)是否有可能以任何其他方式/方式做到这一点?
c++ - 类方法的结果类型?
考虑以下示例:
有没有办法得到返回的类型T::operator[](unsigned int)
?
目前,g++ 说:argument in position '1' is not a potential constant expression