【发布时间】:2015-07-08 19:30:31
【问题描述】:
有没有办法将 auto 作为参数传递给另一个函数?
int function(auto data)
{
//DOES something
}
【问题讨论】:
-
取决于您期望它能够做什么。您需要什么功能模板不提供的功能?
-
这是一个可怕的想法。参数类型不仅适合您,还可以让其他人知道您的函数想要什么类型。只需花 3 秒写类型,不要那么懒惰(如果类型不固定,则使用模板)。
-
是的,使用 C++1z 概念,您可以做到这一点 :)
-
@Synxis 这并不总是一个可怕的想法。如果类型足够复杂,则将其替换为
auto可能更易读(假设变量名有意义)。另外,我认为void f(auto t);比template<typename T> void f(T t);更具可读性,假设T在f中没有明确要求。 -
@pasbi
assuming a meaningful variable name这听起来像字符串输入,希望最好(实际上,你总是会被欺骗)。我也更喜欢较长的形式,因为它对模板更明确;也许有一天我会改变,但只有在有了概念之后!
标签: c++ function arguments auto