This will be the cause - just add 3 extra floats at the end to pad it out (in both your .cpp and your HLSL).
In my experience, creation of the cbuffer simply fails when you do not pass an initial size that is a multiple of 16 bytes.
I'm pretty sure directx adds padding to the end of constant buffers when they do not add up to a multiple of 4 bytes.
That would indicate that he has passed a multiple of 16 bytes if he is able to get any result at all.
But the reason I mentioned it is because I am also open to the possibility that I do not know about some quirks or such regarding DirectX 11, and maybe there are some circumstances that allow creating buffers of other sizes.
For now I am sitting on the fence. Since he is able to get any result at all, I am generally going to assume he passed a multiple of 16 when creating the buffer, but am waiting for evidence that this is not the case and that there is some other way to create a buffer that is not a multiple of 16 in size.