C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
Can a C++ method have different return types depending on parameters passed to the constructor?
我在C++中有一个模板类,它有一个方法,如果某个参数为 1(在构造对象之前不知道此参数(,理论上应该返回 T(特定类型(,如果参数大于 1,则应返回该类的另一个实例化。有什么简单的方法可以做到这一点吗?
考虑一下:您将该函数的返回值分配给某个auto
变量。编译器需要能够决定该变量必须是什么类型...在编译时。
所以不,没有办法做到。您可以使用例如std::variant
或std::any
为返回类型,但不能通过任何运行时机制更改返回类型。
参数在
构造对象之前是未知的。
答案是 是
如果以上以静态方式表示 否 如果以上表示以动态方式
表示
上面给出的代码没有意味着没有有用的方法
(对不起,还不能评论任何事情(
您不能拥有一个具有不同类型返回的函数(不再符合函数的技术定义(,但是如果您能够检查您所说的可能是== 1
或> 1
的参数,您可能会调用两个不同的方法之一,每个方法针对各自的情况执行所需的操作。
相关文章:
- 函数作为模板参数,是否对返回类型强制约束
- 在 c++ 中将函数返回类型指定为模板参数
- C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
- 基于类型作为参数的字符串表示形式具有不同返回类型的函数
- 具有"templated"返回类型和参数的函数指针
- 如何创建两个具有相同名称和不同返回类型并基于布尔参数运行的函数
- 通过引用传递参数;函数返回类型是否必须为 VOID?
- 有没有办法根据 lambda 参数返回类型部分专用化我的模板化函数?
- 如何定义依赖于参数包转换的函数的返回类型
- 无法推断返回类型的模板参数
- C++模板;作为模板参数传递的函数的自动推导返回类型
- 如何在模板参数中分离函数类型返回类型和参数
- 如何修复用于根据参数返回不同类型的模板类中的错误C2679?
- 为什么函数返回类型中不允许参数推导?
- 模板化函数以从输入参数推断返回类型 stl-container
- 将 2D 数组作为函数参数,并返回 2D 数组作为函数的返回类型
- 推论成员函数参数 /返回类型
- C++ 基于模板参数返回类型的模板函数
- 根据参数返回类型
- 隐藏规则-参数/返回类型必须相同吗?