在C ++中定义以下两个方法是否安全并使用它们而没有在运行时混淆的风险?
void map(float (&a)[10], const double (&b)[6]);
void map(float (&a)[10], const double (&b)[3]);
或
void map(double (&a)[6], const float (&b)[10]);
void map(double (&a)[3], const float (&b)[10]);
他们编译好了,所以我认为他们的签名应该是不同的,一切都会好的。但是,我目前遇到了内存问题,所以我想确定。
答案 0 :(得分:2)
是的,这是非常安全的。而且,你的句子
没有在运行时混淆的风险?
完全没有意义,因为重载解析发生在编译时。