gpt4 book ai didi

c++ - 是否可以在不向函数传递参数的情况下获取函数的返回类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:23 26 4
gpt4 key购买 nike

显然,您可以使用 decltype(foo()) 获取函数的返回类型,但是如果 foo 接受无效的参数,您必须将一些伪参数传递给 foo 才能使其正常工作.但是,有没有一种方法可以在不向函数传递任何参数的情况下获取函数的返回类型?

最佳答案

假设返回类型不依赖于参数类型(在这种情况下你应该使用像 std::result_of 这样的东西,但你必须提供那些参数的类型),你可以编写一个简单的类型特征,让您可以从函数类型中推断出返回类型:

#include <type_traits>

template<typename T>
struct return_type;

template<typename R, typename... Args>
struct return_type<R(Args...)>
{
using type = R;
};

int foo(double, int);

int main()
{
using return_of_foo = return_type<decltype(foo)>::type;
static_assert(std::is_same<return_of_foo, int>::value, "!");
}

关于c++ - 是否可以在不向函数传递参数的情况下获取函数的返回类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16679984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com