0
7
0
| ... | ... |
@@ -63,23 +63,23 @@ |
| 63 | 63 |
# C4355: 'this' : used in base member initializer list |
| 64 | 64 |
# C4503: 'function' : decorated name length exceeded, name was truncated |
| 65 | 65 |
# C4800: 'type' : forcing value to bool 'true' or 'false' |
| 66 | 66 |
# (performance warning) |
| 67 | 67 |
# C4996: 'function': was declared deprecated |
| 68 | 68 |
ELSE() |
| 69 |
SET(CXX_WARNING "-Wall |
|
| 69 |
SET(CXX_WARNING "-Wall") |
|
| 70 | 70 |
ENDIF() |
| 71 | 71 |
ENDIF() |
| 72 | 72 |
SET(LEMON_CXX_WARNING_FLAGS ${CXX_WARNING} CACHE STRING "LEMON warning flags.")
|
| 73 | 73 |
|
| 74 | 74 |
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LEMON_CXX_WARNING_FLAGS}")
|
| 75 | 75 |
|
| 76 |
SET( CMAKE_CXX_FLAGS_MAINTAINER "-Werror -ggdb" CACHE STRING |
|
| 76 |
SET( CMAKE_CXX_FLAGS_MAINTAINER "-Werror -ggdb -O0" CACHE STRING |
|
| 77 | 77 |
"Flags used by the C++ compiler during maintainer builds." |
| 78 | 78 |
FORCE ) |
| 79 |
SET( CMAKE_C_FLAGS_MAINTAINER "-Werror" CACHE STRING |
|
| 79 |
SET( CMAKE_C_FLAGS_MAINTAINER "-Werror -O0" CACHE STRING |
|
| 80 | 80 |
"Flags used by the C compiler during maintainer builds." |
| 81 | 81 |
FORCE ) |
| 82 | 82 |
SET( CMAKE_EXE_LINKER_FLAGS_MAINTAINER |
| 83 | 83 |
"-Wl,--warn-unresolved-symbols,--warn-once" CACHE STRING |
| 84 | 84 |
"Flags used for linking binaries during maintainer builds." |
| 85 | 85 |
FORCE ) |
| ... | ... |
@@ -1248,12 +1248,13 @@ |
| 1248 | 1248 |
visitor.reach(node); |
| 1249 | 1249 |
visitor.process(node); |
| 1250 | 1250 |
visitor.discover(arc); |
| 1251 | 1251 |
visitor.examine(arc); |
| 1252 | 1252 |
} |
| 1253 | 1253 |
_Visitor& visitor; |
| 1254 |
Constraints() {}
|
|
| 1254 | 1255 |
}; |
| 1255 | 1256 |
}; |
| 1256 | 1257 |
#endif |
| 1257 | 1258 |
|
| 1258 | 1259 |
/// \brief Default traits class of BfsVisit class. |
| 1259 | 1260 |
/// |
| ... | ... |
@@ -112,12 +112,13 @@ |
| 112 | 112 |
b = (ia == INVALID) && (ib != INVALID); |
| 113 | 113 |
b = (ia < ib); |
| 114 | 114 |
} |
| 115 | 115 |
|
| 116 | 116 |
const _GraphItem &ia; |
| 117 | 117 |
const _GraphItem &ib; |
| 118 |
Constraints() {}
|
|
| 118 | 119 |
}; |
| 119 | 120 |
}; |
| 120 | 121 |
|
| 121 | 122 |
/// \brief Base skeleton class for directed graphs. |
| 122 | 123 |
/// |
| 123 | 124 |
/// This class describes the base interface of directed graph types. |
| ... | ... |
@@ -171,12 +172,13 @@ |
| 171 | 172 |
n = digraph.target(e); |
| 172 | 173 |
n = digraph.oppositeNode(n, e); |
| 173 | 174 |
} |
| 174 | 175 |
} |
| 175 | 176 |
|
| 176 | 177 |
const _Digraph& digraph; |
| 178 |
Constraints() {}
|
|
| 177 | 179 |
}; |
| 178 | 180 |
}; |
| 179 | 181 |
|
| 180 | 182 |
/// \brief Base skeleton class for undirected graphs. |
| 181 | 183 |
/// |
| 182 | 184 |
/// This class describes the base interface of undirected graph types. |
| ... | ... |
@@ -287,12 +289,13 @@ |
| 287 | 289 |
bool d = graph.direction(e); |
| 288 | 290 |
ignore_unused_variable_warning(d); |
| 289 | 291 |
} |
| 290 | 292 |
} |
| 291 | 293 |
|
| 292 | 294 |
const _Graph& graph; |
| 295 |
Constraints() {}
|
|
| 293 | 296 |
}; |
| 294 | 297 |
|
| 295 | 298 |
}; |
| 296 | 299 |
|
| 297 | 300 |
/// \brief Skeleton class for \e idable directed graphs. |
| 298 | 301 |
/// |
| ... | ... |
@@ -366,12 +369,13 @@ |
| 366 | 369 |
ignore_unused_variable_warning(nid); |
| 367 | 370 |
eid = digraph.maxArcId(); |
| 368 | 371 |
ignore_unused_variable_warning(eid); |
| 369 | 372 |
} |
| 370 | 373 |
|
| 371 | 374 |
const _Digraph& digraph; |
| 375 |
Constraints() {}
|
|
| 372 | 376 |
}; |
| 373 | 377 |
}; |
| 374 | 378 |
|
| 375 | 379 |
/// \brief Skeleton class for \e idable undirected graphs. |
| 376 | 380 |
/// |
| 377 | 381 |
/// This class describes the interface of \e idable undirected |
| ... | ... |
@@ -418,12 +422,13 @@ |
| 418 | 422 |
edge = graph.edgeFromId(ueid); |
| 419 | 423 |
ueid = graph.maxEdgeId(); |
| 420 | 424 |
ignore_unused_variable_warning(ueid); |
| 421 | 425 |
} |
| 422 | 426 |
|
| 423 | 427 |
const _Graph& graph; |
| 428 |
Constraints() {}
|
|
| 424 | 429 |
}; |
| 425 | 430 |
}; |
| 426 | 431 |
|
| 427 | 432 |
/// \brief Concept class for \c NodeIt, \c ArcIt and \c EdgeIt types. |
| 428 | 433 |
/// |
| 429 | 434 |
/// This class describes the concept of \c NodeIt, \c ArcIt and |
| ... | ... |
@@ -495,12 +500,13 @@ |
| 495 | 500 |
++(++it1); |
| 496 | 501 |
|
| 497 | 502 |
Item bi = it1; |
| 498 | 503 |
bi = it2; |
| 499 | 504 |
} |
| 500 | 505 |
const GR& g; |
| 506 |
Constraints() {}
|
|
| 501 | 507 |
}; |
| 502 | 508 |
}; |
| 503 | 509 |
|
| 504 | 510 |
/// \brief Concept class for \c InArcIt, \c OutArcIt and |
| 505 | 511 |
/// \c IncEdgeIt types. |
| 506 | 512 |
/// |
| ... | ... |
@@ -583,12 +589,13 @@ |
| 583 | 589 |
++(++it1); |
| 584 | 590 |
Item e = it1; |
| 585 | 591 |
e = it2; |
| 586 | 592 |
} |
| 587 | 593 |
const Base& node; |
| 588 | 594 |
const GR& graph; |
| 595 |
Constraints() {}
|
|
| 589 | 596 |
}; |
| 590 | 597 |
}; |
| 591 | 598 |
|
| 592 | 599 |
/// \brief Skeleton class for iterable directed graphs. |
| 593 | 600 |
/// |
| 594 | 601 |
/// This class describes the interface of iterable directed |
| ... | ... |
@@ -759,12 +766,13 @@ |
| 759 | 766 |
n = digraph.runningNode(oait); |
| 760 | 767 |
ignore_unused_variable_warning(n); |
| 761 | 768 |
} |
| 762 | 769 |
} |
| 763 | 770 |
|
| 764 | 771 |
const _Digraph& digraph; |
| 772 |
Constraints() {}
|
|
| 765 | 773 |
}; |
| 766 | 774 |
}; |
| 767 | 775 |
|
| 768 | 776 |
/// \brief Skeleton class for iterable undirected graphs. |
| 769 | 777 |
/// |
| 770 | 778 |
/// This class describes the interface of iterable undirected |
| ... | ... |
@@ -883,12 +891,13 @@ |
| 883 | 891 |
n = graph.baseNode(ieit); |
| 884 | 892 |
n = graph.runningNode(ieit); |
| 885 | 893 |
} |
| 886 | 894 |
} |
| 887 | 895 |
|
| 888 | 896 |
const _Graph& graph; |
| 897 |
Constraints() {}
|
|
| 889 | 898 |
}; |
| 890 | 899 |
}; |
| 891 | 900 |
|
| 892 | 901 |
/// \brief Skeleton class for alterable directed graphs. |
| 893 | 902 |
/// |
| 894 | 903 |
/// This class describes the interface of alterable directed |
| ... | ... |
@@ -940,12 +949,13 @@ |
| 940 | 949 |
|
| 941 | 950 |
ignore_unused_variable_warning(nn); |
| 942 | 951 |
ignore_unused_variable_warning(en); |
| 943 | 952 |
} |
| 944 | 953 |
|
| 945 | 954 |
const _Digraph& digraph; |
| 955 |
Constraints() {}
|
|
| 946 | 956 |
}; |
| 947 | 957 |
}; |
| 948 | 958 |
|
| 949 | 959 |
/// \brief Skeleton class for alterable undirected graphs. |
| 950 | 960 |
/// |
| 951 | 961 |
/// This class describes the interface of alterable undirected |
| ... | ... |
@@ -981,12 +991,13 @@ |
| 981 | 991 |
typename _Graph::EdgeNotifier& uen |
| 982 | 992 |
= graph.notifier(typename _Graph::Edge()); |
| 983 | 993 |
ignore_unused_variable_warning(uen); |
| 984 | 994 |
} |
| 985 | 995 |
|
| 986 | 996 |
const _Graph& graph; |
| 997 |
Constraints() {}
|
|
| 987 | 998 |
}; |
| 988 | 999 |
}; |
| 989 | 1000 |
|
| 990 | 1001 |
/// \brief Concept class for standard graph maps. |
| 991 | 1002 |
/// |
| 992 | 1003 |
/// This class describes the concept of standard graph maps, i.e. |
| ... | ... |
@@ -1058,12 +1069,13 @@ |
| 1058 | 1069 |
// ignore_unused_variable_warning(m3); |
| 1059 | 1070 |
} |
| 1060 | 1071 |
|
| 1061 | 1072 |
const _Map &m; |
| 1062 | 1073 |
const GR &g; |
| 1063 | 1074 |
const typename GraphMap::Value &t; |
| 1075 |
Constraints() {}
|
|
| 1064 | 1076 |
}; |
| 1065 | 1077 |
|
| 1066 | 1078 |
}; |
| 1067 | 1079 |
|
| 1068 | 1080 |
/// \brief Skeleton class for mappable directed graphs. |
| 1069 | 1081 |
/// |
| ... | ... |
@@ -1196,12 +1208,13 @@ |
| 1196 | 1208 |
checkConcept<GraphMap<_Digraph, typename _Digraph::Arc, Dummy>, |
| 1197 | 1209 |
DummyArcMap >(); |
| 1198 | 1210 |
} |
| 1199 | 1211 |
} |
| 1200 | 1212 |
|
| 1201 | 1213 |
const _Digraph& digraph; |
| 1214 |
Constraints() {}
|
|
| 1202 | 1215 |
}; |
| 1203 | 1216 |
}; |
| 1204 | 1217 |
|
| 1205 | 1218 |
/// \brief Skeleton class for mappable undirected graphs. |
| 1206 | 1219 |
/// |
| 1207 | 1220 |
/// This class describes the interface of mappable undirected graphs. |
| ... | ... |
@@ -1281,12 +1294,13 @@ |
| 1281 | 1294 |
checkConcept<GraphMap<_Graph, typename _Graph::Edge, Dummy>, |
| 1282 | 1295 |
DummyEdgeMap >(); |
| 1283 | 1296 |
} |
| 1284 | 1297 |
} |
| 1285 | 1298 |
|
| 1286 | 1299 |
const _Graph& graph; |
| 1300 |
Constraints() {}
|
|
| 1287 | 1301 |
}; |
| 1288 | 1302 |
}; |
| 1289 | 1303 |
|
| 1290 | 1304 |
/// \brief Skeleton class for extendable directed graphs. |
| 1291 | 1305 |
/// |
| 1292 | 1306 |
/// This class describes the interface of extendable directed graphs. |
| ... | ... |
@@ -1325,12 +1339,13 @@ |
| 1325 | 1339 |
node_b = digraph.addNode(); |
| 1326 | 1340 |
typename _Digraph::Arc arc; |
| 1327 | 1341 |
arc = digraph.addArc(node_a, node_b); |
| 1328 | 1342 |
} |
| 1329 | 1343 |
|
| 1330 | 1344 |
_Digraph& digraph; |
| 1345 |
Constraints() {}
|
|
| 1331 | 1346 |
}; |
| 1332 | 1347 |
}; |
| 1333 | 1348 |
|
| 1334 | 1349 |
/// \brief Skeleton class for extendable undirected graphs. |
| 1335 | 1350 |
/// |
| 1336 | 1351 |
/// This class describes the interface of extendable undirected graphs. |
| ... | ... |
@@ -1369,12 +1384,13 @@ |
| 1369 | 1384 |
node_b = graph.addNode(); |
| 1370 | 1385 |
typename _Graph::Edge edge; |
| 1371 | 1386 |
edge = graph.addEdge(node_a, node_b); |
| 1372 | 1387 |
} |
| 1373 | 1388 |
|
| 1374 | 1389 |
_Graph& graph; |
| 1390 |
Constraints() {}
|
|
| 1375 | 1391 |
}; |
| 1376 | 1392 |
}; |
| 1377 | 1393 |
|
| 1378 | 1394 |
/// \brief Skeleton class for erasable directed graphs. |
| 1379 | 1395 |
/// |
| 1380 | 1396 |
/// This class describes the interface of erasable directed graphs. |
| ... | ... |
@@ -1408,12 +1424,13 @@ |
| 1408 | 1424 |
digraph.erase(node); |
| 1409 | 1425 |
const typename _Digraph::Arc arc(INVALID); |
| 1410 | 1426 |
digraph.erase(arc); |
| 1411 | 1427 |
} |
| 1412 | 1428 |
|
| 1413 | 1429 |
_Digraph& digraph; |
| 1430 |
Constraints() {}
|
|
| 1414 | 1431 |
}; |
| 1415 | 1432 |
}; |
| 1416 | 1433 |
|
| 1417 | 1434 |
/// \brief Skeleton class for erasable undirected graphs. |
| 1418 | 1435 |
/// |
| 1419 | 1436 |
/// This class describes the interface of erasable undirected graphs. |
| ... | ... |
@@ -1447,12 +1464,13 @@ |
| 1447 | 1464 |
graph.erase(node); |
| 1448 | 1465 |
const typename _Graph::Edge edge(INVALID); |
| 1449 | 1466 |
graph.erase(edge); |
| 1450 | 1467 |
} |
| 1451 | 1468 |
|
| 1452 | 1469 |
_Graph& graph; |
| 1470 |
Constraints() {}
|
|
| 1453 | 1471 |
}; |
| 1454 | 1472 |
}; |
| 1455 | 1473 |
|
| 1456 | 1474 |
/// \brief Skeleton class for clearable directed graphs. |
| 1457 | 1475 |
/// |
| 1458 | 1476 |
/// This class describes the interface of clearable directed graphs. |
| ... | ... |
@@ -1475,12 +1493,13 @@ |
| 1475 | 1493 |
void constraints() {
|
| 1476 | 1494 |
checkConcept<Base, _Digraph>(); |
| 1477 | 1495 |
digraph.clear(); |
| 1478 | 1496 |
} |
| 1479 | 1497 |
|
| 1480 | 1498 |
_Digraph& digraph; |
| 1499 |
Constraints() {}
|
|
| 1481 | 1500 |
}; |
| 1482 | 1501 |
}; |
| 1483 | 1502 |
|
| 1484 | 1503 |
/// \brief Skeleton class for clearable undirected graphs. |
| 1485 | 1504 |
/// |
| 1486 | 1505 |
/// This class describes the interface of clearable undirected graphs. |
| ... | ... |
@@ -1503,12 +1522,13 @@ |
| 1503 | 1522 |
void constraints() {
|
| 1504 | 1523 |
checkConcept<Base, _Graph>(); |
| 1505 | 1524 |
graph.clear(); |
| 1506 | 1525 |
} |
| 1507 | 1526 |
|
| 1508 | 1527 |
_Graph& graph; |
| 1528 |
Constraints() {}
|
|
| 1509 | 1529 |
}; |
| 1510 | 1530 |
}; |
| 1511 | 1531 |
|
| 1512 | 1532 |
} |
| 1513 | 1533 |
|
| 1514 | 1534 |
} |
| ... | ... |
@@ -65,12 +65,13 @@ |
| 65 | 65 |
ignore_unused_variable_warning(own_key); |
| 66 | 66 |
ignore_unused_variable_warning(own_val); |
| 67 | 67 |
} |
| 68 | 68 |
const Key& key; |
| 69 | 69 |
const typename _ReadMap::Key& own_key; |
| 70 | 70 |
const _ReadMap& m; |
| 71 |
Constraints() {}
|
|
| 71 | 72 |
}; |
| 72 | 73 |
|
| 73 | 74 |
}; |
| 74 | 75 |
|
| 75 | 76 |
|
| 76 | 77 |
/// Writable map concept |
| ... | ... |
@@ -106,12 +107,13 @@ |
| 106 | 107 |
} |
| 107 | 108 |
const Key& key; |
| 108 | 109 |
const Value& val; |
| 109 | 110 |
const typename _WriteMap::Key& own_key; |
| 110 | 111 |
const typename _WriteMap::Value& own_val; |
| 111 | 112 |
_WriteMap& m; |
| 113 |
Constraints() {}
|
|
| 112 | 114 |
}; |
| 113 | 115 |
}; |
| 114 | 116 |
|
| 115 | 117 |
/// Read/writable map concept |
| 116 | 118 |
|
| 117 | 119 |
/// Read/writable map concept. |
| ... | ... |
@@ -126,13 +128,14 @@ |
| 126 | 128 |
/// \brief The value type of the map. |
| 127 | 129 |
/// (The type of objects associated with the keys). |
| 128 | 130 |
typedef T Value; |
| 129 | 131 |
|
| 130 | 132 |
/// Returns the value associated with the given key. |
| 131 | 133 |
Value operator[](const Key &) const {
|
| 132 |
|
|
| 134 |
Value *r = 0; |
|
| 135 |
return *r; |
|
| 133 | 136 |
} |
| 134 | 137 |
|
| 135 | 138 |
/// Sets the value associated with the given key. |
| 136 | 139 |
void set(const Key &, const Value &) {}
|
| 137 | 140 |
|
| 138 | 141 |
template<typename _ReadWriteMap> |
| ... | ... |
@@ -166,18 +169,20 @@ |
| 166 | 169 |
typedef CR ConstReference; |
| 167 | 170 |
|
| 168 | 171 |
public: |
| 169 | 172 |
|
| 170 | 173 |
/// Returns a reference to the value associated with the given key. |
| 171 | 174 |
Reference operator[](const Key &) {
|
| 172 |
|
|
| 175 |
Value *r = 0; |
|
| 176 |
return *r; |
|
| 173 | 177 |
} |
| 174 | 178 |
|
| 175 | 179 |
/// Returns a const reference to the value associated with the given key. |
| 176 | 180 |
ConstReference operator[](const Key &) const {
|
| 177 |
|
|
| 181 |
Value *r = 0; |
|
| 182 |
return *r; |
|
| 178 | 183 |
} |
| 179 | 184 |
|
| 180 | 185 |
/// Sets the value associated with the given key. |
| 181 | 186 |
void set(const Key &k,const Value &t) { operator[](k)=t; }
|
| 182 | 187 |
|
| 183 | 188 |
template<typename _ReferenceMap> |
| ... | ... |
@@ -202,12 +207,13 @@ |
| 202 | 207 |
ConstReference cref; |
| 203 | 208 |
const typename _ReferenceMap::Key& own_key; |
| 204 | 209 |
typename _ReferenceMap::Value& own_val; |
| 205 | 210 |
typename _ReferenceMap::Reference own_ref; |
| 206 | 211 |
typename _ReferenceMap::ConstReference own_cref; |
| 207 | 212 |
_ReferenceMap& m; |
| 213 |
Constraints() {}
|
|
| 208 | 214 |
}; |
| 209 | 215 |
}; |
| 210 | 216 |
|
| 211 | 217 |
// @} |
| 212 | 218 |
|
| 213 | 219 |
} //namespace concepts |
| ... | ... |
@@ -165,12 +165,13 @@ |
| 165 | 165 |
ignore_unused_variable_warning(l); |
| 166 | 166 |
ignore_unused_variable_warning(e); |
| 167 | 167 |
ignore_unused_variable_warning(id); |
| 168 | 168 |
ignore_unused_variable_warning(ed); |
| 169 | 169 |
} |
| 170 | 170 |
_Path& p; |
| 171 |
PathDumperConstraints() {}
|
|
| 171 | 172 |
}; |
| 172 | 173 |
|
| 173 | 174 |
template <typename _Digraph, typename _Path> |
| 174 | 175 |
struct PathDumperConstraints< |
| 175 | 176 |
_Digraph, _Path, |
| 176 | 177 |
typename enable_if<typename _Path::RevPathTag, void>::type |
| ... | ... |
@@ -190,12 +191,13 @@ |
| 190 | 191 |
ignore_unused_variable_warning(l); |
| 191 | 192 |
ignore_unused_variable_warning(e); |
| 192 | 193 |
ignore_unused_variable_warning(id); |
| 193 | 194 |
ignore_unused_variable_warning(ed); |
| 194 | 195 |
} |
| 195 | 196 |
_Path& p; |
| 197 |
PathDumperConstraints() {}
|
|
| 196 | 198 |
}; |
| 197 | 199 |
|
| 198 | 200 |
} |
| 199 | 201 |
|
| 200 | 202 |
|
| 201 | 203 |
/// \brief A skeleton structure for path dumpers. |
| ... | ... |
@@ -1190,12 +1190,13 @@ |
| 1190 | 1190 |
visitor.discover(arc); |
| 1191 | 1191 |
visitor.examine(arc); |
| 1192 | 1192 |
visitor.leave(node); |
| 1193 | 1193 |
visitor.backtrack(arc); |
| 1194 | 1194 |
} |
| 1195 | 1195 |
_Visitor& visitor; |
| 1196 |
Constraints() {}
|
|
| 1196 | 1197 |
}; |
| 1197 | 1198 |
}; |
| 1198 | 1199 |
#endif |
| 1199 | 1200 |
|
| 1200 | 1201 |
/// \brief Default traits class of DfsVisit class. |
| 1201 | 1202 |
/// |
0 comments (0 inline)