当我尝试执行此操作时出现编译错误:
class A
{
virtual std::vector<A*> test() { /* do something */ };
}
class B: public A
{
virtual std::vector<B*> test() { /* do something */ };
}
Run Code Online (Sandbox Code Playgroud)
我假设 A 和 B 是协变类型,因此 A* 和 B* 也应该是(正确的?)通过推断,我本来期望 和 也std::vector<A*>应该std::vector<B*>是协变的,但情况似乎并非如此。为什么?
我有一个带签名的c ++方法
extern std::string os_dtoa_format(double x);
Run Code Online (Sandbox Code Playgroud)
我想从Fortran打来电话.我知道我必须构建一个显式接口,但我不确定如何去做.我对如何处理double有一个模糊的想法,但我还没有找到关于std :: string的任何信息.char*似乎很难,这让我想问是否有可能做我想做的事.