Skip to content

Commit 59e2c82

Browse files
committed
Fix build errors and warnings
- Fix C4099 warnings by changing struct to class in all traits forward declarations to match dynamic_graph.hpp - Fix static assertion failures for unordered container iterators to work with both MSVC (bidirectional) and GCC (forward-only) implementations - Fix CMake clang-debug configuration to use clang-cl instead of clang++ on Windows - Fix narrowing conversion errors in test files for clang compiler by adding explicit static_cast All tests now build successfully on MSVC and Clang on Windows.
1 parent 1f5c1bd commit 59e2c82

28 files changed

Lines changed: 49 additions & 56 deletions

CMakePresets.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@
103103
{
104104
"name": "windows-clang-debug",
105105
"displayName": "Windows Clang Debug",
106-
"description": "Windows development build with Clang (Debug)",
106+
"description": "Windows development build with Clang (Debug) - requires MSVC environment",
107107
"inherits": "windows-base",
108108
"cacheVariables": {
109109
"CMAKE_BUILD_TYPE": "Debug",
110-
"CMAKE_C_COMPILER": "clang",
111-
"CMAKE_CXX_COMPILER": "clang++",
110+
"CMAKE_C_COMPILER": "clang-cl",
111+
"CMAKE_CXX_COMPILER": "clang-cl",
112112
"BUILD_TESTS": "ON",
113113
"BUILD_EXAMPLES": "ON"
114114
}
@@ -120,8 +120,8 @@
120120
"inherits": "windows-base",
121121
"cacheVariables": {
122122
"CMAKE_BUILD_TYPE": "Release",
123-
"CMAKE_C_COMPILER": "clang",
124-
"CMAKE_CXX_COMPILER": "clang++",
123+
"CMAKE_C_COMPILER": "clang-cl",
124+
"CMAKE_CXX_COMPILER": "clang-cl",
125125
"BUILD_TESTS": "ON",
126126
"BUILD_EXAMPLES": "ON"
127127
}

include/graph/container/traits/dod_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ namespace graph::container {
66

77
// Forward declarations
88
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
9-
struct dynamic_edge;
9+
class dynamic_edge;
1010

1111
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
12-
struct dynamic_vertex;
12+
class dynamic_vertex;
1313

1414
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1515
class dynamic_graph;

include/graph/container/traits/dofl_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ namespace graph::container {
77

88
// Forward declarations
99
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
10-
struct dynamic_edge;
10+
class dynamic_edge;
1111

1212
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
13-
struct dynamic_vertex;
13+
class dynamic_vertex;
1414

1515
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1616
class dynamic_graph;

include/graph/container/traits/dol_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ namespace graph::container {
77

88
// Forward declarations
99
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
10-
struct dynamic_edge;
10+
class dynamic_edge;
1111

1212
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
13-
struct dynamic_vertex;
13+
class dynamic_vertex;
1414

1515
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1616
class dynamic_graph;

include/graph/container/traits/dov_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ namespace graph::container {
77

88
// Forward declarations
99
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
10-
struct dynamic_edge;
10+
class dynamic_edge;
1111

1212
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
13-
struct dynamic_vertex;
13+
class dynamic_vertex;
1414

1515
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1616
class dynamic_graph;

include/graph/container/traits/mod_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ namespace graph::container {
88

99
// Forward declarations
1010
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
11-
struct dynamic_edge;
11+
class dynamic_edge;
1212

1313
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
14-
struct dynamic_vertex;
14+
class dynamic_vertex;
1515

1616
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1717
class dynamic_graph;

include/graph/container/traits/mofl_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ namespace graph::container {
88

99
// Forward declarations
1010
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
11-
struct dynamic_edge;
11+
class dynamic_edge;
1212

1313
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
14-
struct dynamic_vertex;
14+
class dynamic_vertex;
1515

1616
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1717
class dynamic_graph;

include/graph/container/traits/mol_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ namespace graph::container {
88

99
// Forward declarations
1010
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
11-
struct dynamic_edge;
11+
class dynamic_edge;
1212

1313
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
14-
struct dynamic_vertex;
14+
class dynamic_vertex;
1515

1616
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1717
class dynamic_graph;

include/graph/container/traits/mov_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ namespace graph::container {
88

99
// Forward declarations
1010
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
11-
struct dynamic_edge;
11+
class dynamic_edge;
1212

1313
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
14-
struct dynamic_vertex;
14+
class dynamic_vertex;
1515

1616
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1717
class dynamic_graph;

include/graph/container/traits/uod_graph_traits.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ namespace graph::container {
88

99
// Forward declarations
1010
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
11-
struct dynamic_edge;
11+
class dynamic_edge;
1212

1313
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
14-
struct dynamic_vertex;
14+
class dynamic_vertex;
1515

1616
template <class EV, class VV, class GV, class VId, bool Sourced, class Traits>
1717
class dynamic_graph;

0 commit comments

Comments
 (0)