/// #include "stdafx.h"
#include <stdio.h> ///
#include <vector>
#define fp32 float
#define u32 unsigned int
class BV
{
public:
BV(fp32 x, fp32 y)
: _x(x)
, _y(y)
{
}
public:
fp32 _x;
fp32 _y;
};
std::pair<u32, BV&> GetValue(std::vector<BV>& values, u32 index)
{
/// return std::make_pair(index, values[index]);
return std::make_pair<u32, BV&>(index, values[index]); ///
}
void TestAll()
{
std::vector<BV> values;
values.push_back(BV(0.0, 0.0));
values.push_back(BV(2.0, 0.0));
values.push_back(BV(3.0, 0.0));
std::pair<u32, BV&> pair1 = GetValue(values, 0);
BV& val1 = GetValue(values, 0).second;
//BV& val1 = pair1.second;
fp32 a = val1._x + 1.0f;
std::pair<u32, BV&> pair2 = GetValue(values, 0);
BV& val2 = GetValue(values, 2).second;
//BV& val2 = pair1.second;
fp32 b = val2._x + 1.0f;
printf("val1 x = %f; y = %f;\n", val1._x, val1._y);
printf("val2 x = %f; y = %f;\n", val2._x, val2._y);
fp32 c = val1._x + 1.0f;
printf("val1 x = %f; y = %f;\n", val1._x, val1._y);
printf("val2 x = %f; y = %f;\n", val2._x, val2._y);
}
/// int _tmain(int argc, _TCHAR* argv[])
int main() ///
{
TestAll();
return 0;
}
Ly8vICNpbmNsdWRlICJzdGRhZnguaCIKI2luY2x1ZGUgPHN0ZGlvLmg+IC8vLwojaW5jbHVkZSA8dmVjdG9yPgojZGVmaW5lIGZwMzIgZmxvYXQgCiNkZWZpbmUgdTMyIHVuc2lnbmVkIGludCAKY2xhc3MgQlYKewpwdWJsaWM6CglCVihmcDMyIHgsIGZwMzIgeSkKCQk6IF94KHgpCgkJLCBfeSh5KQoJewoJfQoKcHVibGljOgoJZnAzMiBfeDsKCWZwMzIgX3k7Cn07CnN0ZDo6cGFpcjx1MzIsIEJWJj4gR2V0VmFsdWUoc3RkOjp2ZWN0b3I8QlY+JiB2YWx1ZXMsIHUzMiBpbmRleCkKewoJLy8vIHJldHVybiBzdGQ6Om1ha2VfcGFpcihpbmRleCwgdmFsdWVzW2luZGV4XSk7CglyZXR1cm4gc3RkOjptYWtlX3BhaXI8dTMyLCBCViY+KGluZGV4LCB2YWx1ZXNbaW5kZXhdKTsgLy8vCn0KCnZvaWQgVGVzdEFsbCgpCnsKCXN0ZDo6dmVjdG9yPEJWPiB2YWx1ZXM7Cgl2YWx1ZXMucHVzaF9iYWNrKEJWKDAuMCwgMC4wKSk7Cgl2YWx1ZXMucHVzaF9iYWNrKEJWKDIuMCwgMC4wKSk7Cgl2YWx1ZXMucHVzaF9iYWNrKEJWKDMuMCwgMC4wKSk7CglzdGQ6OnBhaXI8dTMyLCBCViY+IHBhaXIxID0gR2V0VmFsdWUodmFsdWVzLCAwKTsKCUJWJiB2YWwxID0gR2V0VmFsdWUodmFsdWVzLCAwKS5zZWNvbmQ7CgkvL0JWJiB2YWwxID0gcGFpcjEuc2Vjb25kOwoJZnAzMiBhID0gdmFsMS5feCArIDEuMGY7CglzdGQ6OnBhaXI8dTMyLCBCViY+IHBhaXIyID0gR2V0VmFsdWUodmFsdWVzLCAwKTsKCUJWJiB2YWwyID0gR2V0VmFsdWUodmFsdWVzLCAyKS5zZWNvbmQ7CgkvL0JWJiB2YWwyID0gcGFpcjEuc2Vjb25kOwoJZnAzMiBiID0gdmFsMi5feCArIDEuMGY7CglwcmludGYoInZhbDEgeCA9ICVmOyB5ID0gJWY7XG4iLCB2YWwxLl94LCB2YWwxLl95KTsKCXByaW50ZigidmFsMiB4ID0gJWY7IHkgPSAlZjtcbiIsIHZhbDIuX3gsIHZhbDIuX3kpOwoJZnAzMiBjID0gdmFsMS5feCArIDEuMGY7CglwcmludGYoInZhbDEgeCA9ICVmOyB5ID0gJWY7XG4iLCB2YWwxLl94LCB2YWwxLl95KTsKCXByaW50ZigidmFsMiB4ID0gJWY7IHkgPSAlZjtcbiIsIHZhbDIuX3gsIHZhbDIuX3kpOwp9CgovLy8gaW50IF90bWFpbihpbnQgYXJnYywgX1RDSEFSKiBhcmd2W10pCmludCBtYWluKCkgLy8vCnsJCglUZXN0QWxsKCk7CglyZXR1cm4gMDsKfQ==