Non-standard 32-bit integer type causes conflict in Windows 64 bit (Bug #1474)


Added by Arman Savran over 13 years ago. Updated over 13 years ago.


Status:Done Start date:
Priority:High Due date:
Assignee:Marius Muja % Done:

0%

Category:flann
Target version:-
Affected version: Operating System:
Difficulty: HW Platform:
Pull request:

Description

The typedef for uint32_t in dist.h (shown below) is not standard as far as I know, since "long" & "unsigned long" are reserved for 32-bit integers, while "int" & "unsigned" can be 16 or 32-bit. I use another library which defines standard integer types for different platforms and compilers, and it does not work with OpenCV due to this non-standard definition, causing conflict.

This is simply solved by changing in dist.h:
typedef unsigned uint32_t;
TO
typedef unsigned long uint32_t;

#ifdef _MSC_VER
typedef unsigned uint32_t;
typedef unsigned +int64 uint64_t;
#else
#include <stdint.h>
#endif


Associated revisions

Revision 1ac1b9ae
Added by Roman Donchenko over 11 years ago

Merge pull request #1474 from f-morozov:for_pr

History

Updated by Marius Muja over 13 years ago

Fixed in r7006.

  • Status changed from Open to Done
  • (deleted custom field) set to fixed

Also available in: Atom PDF