我可以将逻辑运算符与函数参数一起使用吗?

时间:2016-12-22 12:53:55

标签: c++ function variables parameters logical-operators

我想创建一个函数,您可以使用intstring变量作为参数,但我不知道如何。

我正在写一个我想要实现的例子:

#include <iostream>
#include <string>

using namespace std;

int function((int a) || (string a))
{
    ...;
}

int main()
{
    int intvar;
    string stringvar;

    function(intvar);
    function(stringvar);
    return 0;
}

2 个答案:

答案 0 :(得分:3)

  

我可以将逻辑运算符与函数参数一起使用吗?

不,你不能。

您基本上想要的是功能模板或重载。后者是最简单的方法:

int function(int a)
{
    // ...;
}

int function(string a)
{
    // ...;
}

如果你有不同类型的相同代码,请使用模板:

template<typename T>
int function(T a)
{
    static_assert(std::is_convertible<T,int>() || std::is_convertible<T,std::string>());
    // ...;
}

答案 1 :(得分:1)

您可能希望重载该函数并从另一个调用一个函数,例如:

int function(int a) {
    // handle int parameter
}

int function(const string& s) {
    int a = stoi(s);
    return function(a);
}