1

次の 2 つのメソッドを 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]);

それらは正常にコンパイルされるので、署名は異なるはずであり、すべてがうまくいくと考えました。ただし、現在メモリの問題が発生しているため、確認したいと思います。

4

1 に答える 1

2

はい、それは完全に安全です。さらに、あなたの文章

それらが実行時に混同されるリスクなしに?

オーバーロードの解決はコンパイル時に行われるため、まったく意味がありません。

于 2013-01-24T11:12:07.137 に答える