gpt4 book ai didi

c++ - 功率(C++ - {模板})=功率(C++)?

转载 作者:行者123 更新时间:2023-11-27 22:51:56 28 4
gpt4 key购买 nike

我想知道是否可以在不使用模板的情况下使用 C++ 进行泛型编程。是否可以编写 C++ 中所有可用的库,这些库是使用模板编写的,而不使用模板。在 C++ 中是否有其他可用的模板替代方案?

我想知道是否可以使用为我提供相同功能的模板对用 C++ 编写的库进行抽象

最佳答案

从理论上讲,没有模板的 C++ 仍然是图灵完备的,因此您可以用该语言为每个函数编写一个程序,也可以用带有模板的 C++ 编写。据我所知,C++ 中的宏预处理器不是图灵完备的,但模板是。所以必须存在可以纯粹作为模板而不是宏来实现的函数。

实际上,我认为不可能用相同的语义重新实现所有内容。如果没有模板,您可能不得不牺牲类型安全性并坚持使用宏、void* 或基于继承的方法,就像早期的 Java 类对简单的容器库所做的那样。

对于更高级的元编程库,例如表达式模板、维度分析框架、Boost.Spirit Boost.Proto,我怀疑它们是否可以在没有另一种形式的元编程的情况下实现。宏可能会起作用,但这更像是一个代码生成器,将类型检查推迟到编译器,错误消息将比我们现在使用模板的情况更糟糕。此外,语义与参数传递不同。

关于c++ - 功率(C++ - {模板})=功率(C++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36419007/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com