我正在学习如何获取重载函数test()
vstest(double)
的返回值的type
。
我修改了SO答案中的代码(由chris编写)。
#include <type_traits>
#include <utility>
int test();
double test(double x);
template<typename... Ts>
using TestType = decltype(test(std::declval<Ts>()...))(Ts...);
int main() {
std::result_of< TestType<double> >::type n = 0;
//^ ### compile error ###
using doubleDat = std::result_of< TestType<double> >::type ;
doubleDat n=0;
}
我有一个编译错误。
错误:“std::result\u of”中没有名为“type”的类型
据我所知:-
>
测试类型
TestType
问:为什么它不编译?怎么解决呢?
我读过:-
重载成员函数的decltype-没有关于std::result\u的示例
线索:经过长时间的搜索,我隐约感觉到我的代码遭受了“最令人烦恼的解析”。
看看你的TestType是什么
test(std::declval<double>())(double)
测试d::decvlal
的结果
答案是否定的,因为
double
不可调用,所以没有嵌套类型。
您需要阅读
result_of
的留档以了解如何使用它。类型result_of
因此,这将起作用:
using func_type = TestType<double>;
using doubleDat = std::result_of<func_type*(double)>::type;
这将为类型为
TestType的函数创建别名
我目前正在学习C#,有人告诉我,可以使用explicit关键字重载方法返回类型,但他从未解释过如何重载。我搜索了所有地方,也阅读了一些关于stackoverflow的问题和答案,但我没有发现这样的事情,而且,在大多数情况下,回答的人说不可能通过返回类型重载方法。在这一切之后,我开始认为没有这种可能性。现在有人真的知道如何通过使用explicit关键字来重载方法返回类型了吗?或者这是可能的吗?先谢谢
问题内容: 我有一个返回记录类型的函数。 我想从Java代码中调用此函数,并在Java中获取该记录类型。请指导我如何做。谢谢 问题答案: 首先让我们从更正您的代码开始。我可以看到您发布的代码无法编译,并且会引发问题。正确的代码如下: 执行此代码时,您可能会遇到类似的问题。这是因为a 仅限在中使用。 ORA-00902:无效的数据类型 最好的方法是先创建一个对象的a 和a ,然后在您的函数中创建它:
我有一个匿名函数,如下所示: 我想指定cb必须返回一个布尔值,但我是一个打字稿新手,不知道我是否可以(或者即使我这样做或不这样做会对解析器产生影响)。 我该怎么做?
我正在尝试在Linux中编译这个repo,但在这一步中遇到了一些麻烦。 *util/BinarySerialization.hpp *序列化/ElementBS.cpp *xdlrc/model/Element.hpp util/BinarySerialization。hpp:在'typename boost::disable_if'的实例化中 ElementB中的第一个writeBinary。c
问题内容: JDK中是否有一个标准功能接口,该接口什么都不做,什么也不返回?我找不到一个。类似于以下内容: 问题答案: 那么Runnable呢:
如您所见,它将参数和的和保存在变量中,然后将包含它们的和的eax寄存器保存在变量中,就像函数返回值一样。 这样做是因为函数是用返回值定义的吗?