Здравствуйте, Qbit86, Вы писали:
Q>Здравствуйте, vdimas, Вы писали:
V>>Вот простой пример
Q>Не наблюдаю такого в отладчике после лёгкой модифиации кода:
Q>#include <vector>
Q>int main()
Q>{
Q> std::vector<char> chars;
Q> std::vector<double> doubles;
Q> chars.push_back(1);
Q> doubles.push_back(1);
Q> return 0;
Q>}
Q> chars.push_back(1);
Q>00CE107B push eax
Q>00CE107C lea ecx,[chars]
Q>00CE107F mov byte ptr [ebp-29h],1
Q>00CE1083 call std::vector<char,std::allocator<char> >::emplace_back<char> (0CE12F0h)
Q> doubles.push_back(1);
Q>00CE1088 movsd xmm0,mmword ptr [__real@3ff0000000000000 (0CE31A8h)]
Q>00CE1090 lea eax,[ebp-34h]
Q>00CE1093 push eax
Q>00CE1094 lea ecx,[doubles]
Q>00CE1097 movsd mmword ptr [ebp-34h],xmm0
Q>00CE109C call std::vector<double,std::allocator<double> >::emplace_back<double> (0CE1220h)
У char и double размер разный, а у float и int одинаковый.
Поэтому и код для float-int одинаковый, а для char-double разный.
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 67>>