- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
const int DD_GOOD = 1;
const int DD_BAD = 2;
const int DD_BAD_VERT = 3;
auto segStatus = [&DD_GOOD, &DD_BAD, &DD_BAD_VERT](SomeClass* seg, EXTR ext, coord pickPt, double pickElev) -> int
{
Pt& pt = seg->ExtremePt(ext);
Line& line = seg->ExtremeLn(ext);
coord btPt = seg->GetExtremeWallPos(ext);
if (pt.GetCoord() != pickPt && btPt != pickPt)
{
return DD_BAD;
}
if (pt.pairGuid == GUID_NULL && EQ(pt.GetHeight(), pickElev))
{
return DD_GOOD;
}
if (!line.IsNonVert())
{
return DD_BAD;
}
double e1 = line.m_startPt.GetHeight();
double e2 = line.m_endPt.GetHeight();
if (e1 < e2 && e1 < pickElev && pickElev < e2)
{
return DD_GOOD;
}
if (e2 < e1 && e2 < pickElev && pickElev < e1)
{
return DD_GOOD;
}
return DD_BAD_VERT;
};
void_maln 26.08.2016 18:38 # 0
void_main 26.08.2016 19:17 # −19
Psionic 27.08.2016 00:23 # −1
kurwa 27.08.2016 18:30 # +1
kurwa 27.08.2016 18:31 # +1
Steve_Brown 29.08.2016 11:33 # 0
segStatus = SegStatus2;
?
kurwa 29.08.2016 11:58 # 0
yog_muskrat 29.08.2016 12:08 # +1
Эта лямбда объявляется внутри функции, а не в глобальной области, и в дальнейшем используется примерно так:
Т.е. сама по себе она, конечно, говнокод, но меня добил захват константных интов по ссылке.
Steve_Brown 29.08.2016 12:49 # 0
kurwa-nextgen 29.08.2016 14:08 # 0
Ты думаешь, это делает ее менее говнистой?
yog_muskrat 29.08.2016 14:09 # 0
Antervis 29.08.2016 12:11 # 0
Компилятор, по идее, должен соптимизировать захват констант