C将变量类型传递给函数

新手上路,请多包涵

如何将变量类型传递给函数?像这样:

 void foo(type){
    cout << sizeof(type);
}

原文由 user3325976 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 405
2 个回答

你不能传递这样的类型,因为类型不是对象。它们在运行时不存在。相反,您需要一个模板,它允许您在编译时实例化具有不同类型的函数:

 template <typename T>
void foo() {
  cout << sizeof(T);
}

例如,您可以使用 foo<int>() 调用此函数。它将用 T 替换为 int 来实例化函数的一个版本。查找 功能模板

原文由 Joseph Mansfield 发布,翻译遵循 CC BY-SA 3.0 许可协议

有点晚了 - 但可以使用宏来实现 - 像这样:

 #define foo(T) std::cout << sizeof(T)
...
foo(MyType);

原文由 Myrddin Krustowski 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏