如果我创建了一个std :: function,它包含了我动态加载的库中的函数,那么当我第一次动态卸载库时,应该运行什么行为。然后让std :: function析构函数运行。
我问,因为我在不同平台上看到过不同的行为,运行析构函数没有问题,抛出异常并终止。我不喜欢未定义的行为,在这种情况下它似乎很容易避免。
那么有理由支持一种行为而不是另一种行为吗?有没有人听过有关这个话题的讨论?我知道标准没有谈论动态加载,尽管有一些论文如http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2407.html但它们并没有真正解决这个问题。