Thanks for your help Ceylo; that definitely got me on the right track. In case this helps someone else, here are some additional notes.
It turns out that, for C++, the simd_prefix is not required. Instead simply specify the namespace simd::
So in the .cpp file use simd::float2, and use plain float2 in the .metal file.
As Ceylo indicated, #include <simd/simd.h> in the .cpp file.