在某些情况下,我想强制调用在 new 中自动调用但在 malloc 中不被调用的构造函数(在这种情况下,我们必须求助于放置新技术)。有什么方法可以让类仅适用于 new 而不是 malloc 吗?
编辑:编译时间限制会更可取(我猜像往常一样)。
最佳答案
没有办法。 malloc
基本上是无类型的——它只是分配一个字节缓冲区,你无法阻止它,就像你无法阻止某人将无类型指针转换为你的类型的指针一样。
无论如何,不要尝试! 正如 Damian Conway (probably) 所说的那样,您的代码应该防范 Murphy,而不是 Machiavelli:防止用户犯无心之失。但是,当他们故意决定破坏类型系统时,他们只能靠自己了。您的问题根本没有用例。不要在上面浪费资源。
关于c++ - 如何防止类被 malloc,只允许新的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47053747/