Skip to content

Commit 874e2d9

Browse files
Fixes for Minsky build.
1 parent 1be4f00 commit 874e2d9

13 files changed

+110
-11
lines changed

Makefile

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ CPLUSPLUS=g++
55
# -I/usr/include/tirpc is needed for Fedora
66
FLAGS=-g -I. -I/usr/include/tirpc
77

8-
CDHEADERS=multiArray object poly polyBase polyRESTProcess polyRESTProcessBase polyXMLBase RESTProcess_base signature stringKeyMap xml_pack_base xml_unpack_base
9-
DESCRIPTORS=dump pack json_pack random_init RESTProcess xml_pack typeName
8+
CDHEADERS=multiArray object poly polyBase polyRESTProcess polyRESTProcessBase polyXMLBase RESTProcess_base signature stringKeyMap xml_pack_base xml_unpack_base xml_common
9+
DESCRIPTORS=dump pack json_pack random_init RESTProcess xml_pack xsd_generate typeName
1010
CDFILES=$(foreach d,$(DESCRIPTORS),$(foreach h,$(CDHEADERS),$(h)-$(d).cd))
1111

1212
ifdef GCOV
@@ -206,6 +206,9 @@ $(DESCRIPTORS:%=%-allCDs.h): Makefile createCDs.sh
206206
%-xml_pack.cd: %.h classdesc
207207
./classdesc -nodef -onbase -respect_private -i $< xml_pack xml_unpack >$@
208208

209+
%-xsd_generate.cd: %.h classdesc
210+
./classdesc -nodef -onbase -respect_private -i $< xsd_generate >$@
211+
209212
%-random_init.cd: %.h classdesc
210213
./classdesc -nodef -onbase -i $< random_init >$@
211214

RESTProcess-allCDs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@
3636
#ifdef CLASSDESC_XML_UNPACK_BASE_H
3737
#include "xml_unpack_base-RESTProcess.cd"
3838
#endif
39+
#ifdef CLASSDESC_XML_COMMON_H
40+
#include "xml_common-RESTProcess.cd"
41+
#endif
3942
#endif

RESTProcess_base.h

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ namespace classdesc
333333
}
334334

335335
template <class E>
336-
typename enable_if<is_enum<E>,void>::T
336+
typename enable_if<And<is_enum<E>,Not<is_const<E>>>, void>::T
337337
convert(E& x, const REST_PROCESS_BUFFER& j)
338338
{
339339
string tmp; j>>tmp;
@@ -343,6 +343,10 @@ namespace classdesc
343343
template <class X>
344344
void convert(const X* x, const REST_PROCESS_BUFFER& j)
345345
{}
346+
347+
template <class X>
348+
void convert(const X& x, const REST_PROCESS_BUFFER& j)
349+
{}
346350

347351
template <class F, int N> struct DefineFunctionArgTypes;
348352

@@ -884,7 +888,14 @@ namespace classdesc
884888
template <class T, class Enable=void> struct MappedType;
885889
template <class T> struct MappedType // for maps
886890
<T, typename enable_if<is_pair<typename T::value_type>, void>::T>
887-
{using type=typename T::value_type::second_type;};
891+
{
892+
using type=typename transfer_const<
893+
T,
894+
typename T::value_type::second_type,
895+
Or<is_const<T>, is_const<typename T::value_type>,
896+
is_const<typename T::value_type::second_type>>::value
897+
>::type;
898+
};
888899

889900
template <class T> struct MappedType // for sets
890901
<T, typename enable_if<Not<is_pair<typename T::value_type>>, void>::T>
@@ -904,7 +915,17 @@ namespace classdesc
904915

905916
/// get element if a map
906917
template <class I>
907-
typename enable_if<is_pair<typename std::iterator_traits<I>::value_type>, typename std::iterator_traits<I>::value_type::second_type&>::T
918+
typename enable_if<
919+
is_pair<typename std::iterator_traits<I>::value_type>,
920+
// in C++20, std::iterator_traits<I>::value_type has any const
921+
// attribute stripped off, hence this convoluted mouthful
922+
typename transfer_const<
923+
typename std::remove_reference<
924+
typename std::iterator_traits<I>::reference
925+
>::type,
926+
typename std::iterator_traits<I>::value_type::second_type
927+
>::type&
928+
>::T
908929
elem_of(const I& i) const {return i->second;}
909930

910931
/// get element if a set
@@ -1289,8 +1310,8 @@ namespace classdesc
12891310
template <class T>
12901311
typename enable_if<
12911312
And<
1292-
Not<is_floating_point<typename remove_reference<T>::type> >,
1293-
Not<is_container<T> >,
1313+
Not<is_floating_point<T>>,
1314+
Not<is_container<T>>,
12941315
Not<And<is_reference<T>,is_const<typename remove_reference<T>::type>>>
12951316
>, bool>::T
12961317
partiallyMatchable(const REST_PROCESS_BUFFER& x);
@@ -1311,8 +1332,8 @@ namespace classdesc
13111332
template <class T>
13121333
typename enable_if<
13131334
And<
1314-
Not<is_floating_point<typename remove_reference<T>::type> >,
1315-
Not<is_container<T> >,
1335+
Not<is_floating_point<T>>,
1336+
Not<is_container<T>>,
13161337
Not<And<is_reference<T>,is_const<typename remove_reference<T>::type>>>
13171338
>, bool>::T
13181339
partiallyMatchable(const REST_PROCESS_BUFFER& x)

classdesc_epilogue.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ namespace
3434
#include "xml_pack_epilogue.h"
3535
#endif
3636

37+
#ifdef CLASSDESC_XSD_GENERATE_BASE_H
38+
#include "xsd_generate-allCDs.h"
39+
#endif
40+
3741
#ifdef CLASSDESC_DUMP_BASE_H
3842
#include "dump_epilogue.h"
3943
#endif

dump-allCDs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@
3636
#ifdef CLASSDESC_XML_UNPACK_BASE_H
3737
#include "xml_unpack_base-dump.cd"
3838
#endif
39+
#ifdef CLASSDESC_XML_COMMON_H
40+
#include "xml_common-dump.cd"
41+
#endif
3942
#endif

json_pack-allCDs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@
3636
#ifdef CLASSDESC_XML_UNPACK_BASE_H
3737
#include "xml_unpack_base-json_pack.cd"
3838
#endif
39+
#ifdef CLASSDESC_XML_COMMON_H
40+
#include "xml_common-json_pack.cd"
41+
#endif
3942
#endif

pack-allCDs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@
3636
#ifdef CLASSDESC_XML_UNPACK_BASE_H
3737
#include "xml_unpack_base-pack.cd"
3838
#endif
39+
#ifdef CLASSDESC_XML_COMMON_H
40+
#include "xml_common-pack.cd"
41+
#endif
3942
#endif

random_init-allCDs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@
3636
#ifdef CLASSDESC_XML_UNPACK_BASE_H
3737
#include "xml_unpack_base-random_init.cd"
3838
#endif
39+
#ifdef CLASSDESC_XML_COMMON_H
40+
#include "xml_common-random_init.cd"
41+
#endif
3942
#endif

typeName-allCDs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@
3636
#ifdef CLASSDESC_XML_UNPACK_BASE_H
3737
#include "xml_unpack_base-typeName.cd"
3838
#endif
39+
#ifdef CLASSDESC_XML_COMMON_H
40+
#include "xml_common-typeName.cd"
41+
#endif
3942
#endif

xml_pack-allCDs.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,7 @@
3636
#ifdef CLASSDESC_XML_UNPACK_BASE_H
3737
#include "xml_unpack_base-xml_pack.cd"
3838
#endif
39+
#ifdef CLASSDESC_XML_COMMON_H
40+
#include "xml_common-xml_pack.cd"
41+
#endif
3942
#endif

0 commit comments

Comments
 (0)