... | ... |
@@ -27,12 +27,24 @@ |
27 | 27 |
|
28 |
// forward declaration |
|
29 |
#if !defined _GLP_PROB && !defined GLP_PROB |
|
30 |
#define _GLP_PROB |
|
31 |
#define GLP_PROB |
|
32 |
typedef struct { double _opaque_prob; } glp_prob; |
|
33 |
/* LP/MIP problem object */ |
|
34 |
#endif |
|
35 |
|
|
36 | 28 |
namespace lemon { |
37 | 29 |
|
30 |
namespace _solver_bits { |
|
31 |
class VoidPtr { |
|
32 |
private: |
|
33 |
void *_ptr; |
|
34 |
public: |
|
35 |
VoidPtr() : _ptr(0) {} |
|
36 |
|
|
37 |
template <typename T> |
|
38 |
VoidPtr(T* ptr) : _ptr(reinterpret_cast<void*>(ptr)) {} |
|
39 |
|
|
40 |
template <typename T> |
|
41 |
VoidPtr& operator=(T* ptr) { |
|
42 |
_ptr = reinterpret_cast<void*>(ptr); |
|
43 |
return *this; |
|
44 |
} |
|
45 |
|
|
46 |
template <typename T> |
|
47 |
operator T*() const { return reinterpret_cast<T*>(_ptr); } |
|
48 |
}; |
|
49 |
} |
|
38 | 50 |
|
... | ... |
@@ -45,4 +57,3 @@ |
45 | 57 |
|
46 |
typedef glp_prob LPX; |
|
47 |
glp_prob* lp; |
|
58 |
_solver_bits::VoidPtr lp; |
|
48 | 59 |
|
... | ... |
@@ -124,5 +135,5 @@ |
124 | 135 |
///Pointer to the underlying GLPK data structure. |
125 |
|
|
136 |
_solver_bits::VoidPtr lpx() {return lp;} |
|
126 | 137 |
///Const pointer to the underlying GLPK data structure. |
127 |
|
|
138 |
_solver_bits::VoidPtr lpx() const {return lp;} |
|
128 | 139 |
|
0 comments (0 inline)