fix ambiguous type uint64_t and int64_t in matlab toolbox, happens on gcc 4.8 and boost 1.50
							parent
							
								
									bd8129d3f7
								
							
						
					
					
						commit
						16145f5e01
					
				|  | @ -60,15 +60,15 @@ using namespace boost; // not usual, but for conciseness of generated code | |||
| // "Unique" key to signal calling the matlab object constructor with a raw pointer
 | ||||
| // to a shared pointer of the same C++ object type as the MATLAB type.
 | ||||
| // Also present in utilities.h
 | ||||
| static const uint64_t ptr_constructor_key = | ||||
|   (uint64_t('G') << 56) | | ||||
|   (uint64_t('T') << 48) | | ||||
|   (uint64_t('S') << 40) | | ||||
|   (uint64_t('A') << 32) | | ||||
|   (uint64_t('M') << 24) | | ||||
|   (uint64_t('p') << 16) | | ||||
|   (uint64_t('t') << 8) | | ||||
|   (uint64_t('r')); | ||||
| static const boost::uint64_t ptr_constructor_key = | ||||
|   (boost::uint64_t('G') << 56) | | ||||
|   (boost::uint64_t('T') << 48) | | ||||
|   (boost::uint64_t('S') << 40) | | ||||
|   (boost::uint64_t('A') << 32) | | ||||
|   (boost::uint64_t('M') << 24) | | ||||
|   (boost::uint64_t('p') << 16) | | ||||
|   (boost::uint64_t('t') << 8) | | ||||
|   (boost::uint64_t('r')); | ||||
| 
 | ||||
| //*****************************************************************************
 | ||||
| // Utilities
 | ||||
|  | @ -244,9 +244,9 @@ template <typename T> | |||
| T myGetScalar(const mxArray* array) { | ||||
|   switch (mxGetClassID(array)) { | ||||
|     case mxINT64_CLASS: | ||||
|       return (T) *(int64_t*) mxGetData(array); | ||||
|       return (T) *(boost::int64_t*) mxGetData(array); | ||||
|     case mxUINT64_CLASS: | ||||
|       return (T) *(uint64_t*) mxGetData(array); | ||||
|       return (T) *(boost::uint64_t*) mxGetData(array); | ||||
|     default: | ||||
|       // hope for the best!
 | ||||
|       return (T) mxGetScalar(array); | ||||
|  | @ -349,7 +349,7 @@ mxArray* create_object(const std::string& classname, void *pointer, bool isVirtu | |||
|   int nargin = 2; | ||||
|   // First input argument is pointer constructor key
 | ||||
|   input[0] = mxCreateNumericMatrix(1, 1, mxUINT64_CLASS, mxREAL); | ||||
|   *reinterpret_cast<uint64_t*>(mxGetData(input[0])) = ptr_constructor_key; | ||||
|   *reinterpret_cast<boost::uint64_t*>(mxGetData(input[0])) = ptr_constructor_key; | ||||
|   // Second input argument is the pointer
 | ||||
|   input[1] = mxCreateNumericMatrix(1, 1, mxUINT32OR64_CLASS, mxREAL); | ||||
|   *reinterpret_cast<void**>(mxGetData(input[1])) = pointer; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue