C ++创建一个采用不同数据类型的函数

时间:2016-05-15 00:45:21

标签: c++

我想知道我是否可以创建这样的函数:

void printSomething(whatevertype thingsToPrint)

{
    std::cout << thingsToPrint << std::endl;
}

所以我可以这样做:

printSomething("I can print String");

还有:

printSomething(9);

因此它将string和int数据类型作为唯一参数。

我不确定这是否可行。

感谢。

3 个答案:

答案 0 :(得分:2)

那些被称为模板

routingContext.getBody();
routingContext.getBodyAsJson();

答案 1 :(得分:2)

template<typename T>
void printSomething(const T& t) 
{
    std::cout << t << std::endl;
}

这将接受任何类型的对象,但如果(std :: cout&lt;&lt; t)无法编译,则无法编译。

答案 2 :(得分:-1)

以下代码可以打印并打印任意数量的内容。它会返回cout,因此如果需要,可以将endl放在最后。

#include <iostream>
using namespace std;


std::ostream & print_things(){return cout;}

template<class Head, class... Tail>
std::ostream & print_things(Head && head, Tail&&... tail) {
    cout << head;
    print_things(std::forward<Tail>(tail)...);
    return cout;
}

int main()
{
    print_things(5, "hello") << endl;
}

直播:http://melpon.org/wandbox/permlink/OtRfheFc5T62sskb