gpt4 book ai didi

C++ 异构类型数组

转载 作者:行者123 更新时间:2023-11-30 03:01:03 28 4
gpt4 key购买 nike

我需要在 C++ 中构建一个异构类型数组。该数组是在编译时构造的,但是,它的构造分散在不同的编译单元(即不同的源文件)中。随着应用程序编程的进展,数组应该很容易扩展以包含新类型。应在运行时访问生成的数组。

这可能吗?

我深入研究了 boost mpl 和 boost fusion,但没有找到答案。

谢谢

最佳答案

The array is constructed at compile time, however, its construction is dispersed across different compilation unit

这是不可能的。翻译单元不知道其他翻译单元。由于除了 TU 之外什么都没有,所以不可能协调任何事情。

假设您要填充 foo.cpp 中的数组,添加类型为 Foo 的对象。它应该放在哪个索引处?无法确定,因为不知道还有哪些其他指标。

链接器知道所有的 TU。 las,链接器仍然很笨,不能在链接时运行用户代码。如果链接器更聪明一点,它可以为您的 TU 执行类似 myarray.push_back(Foo()) 的操作。但它不能。

当然,您仍然可以在运行时执行 push_back

也许如果您描述您的真实问题,集体就能找到解决方案。

关于C++ 异构类型数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11490071/

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