Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when compiling with class that declare a min or max function visual .net 2005 #29

Closed
GoogleCodeExporter opened this issue Aug 14, 2015 · 5 comments

Comments

@GoogleCodeExporter
Copy link

What steps will reproduce the problem?
1. Comiling the following file (attach) (on windows, visual .net 2005)
2.
3.

What is the expected output? What do you see instead?
if the undef min if commented, this file does not compile :
error C2059: syntax error : ')'        10
error C2062: type 'int' inattendu       10
error C2143: syntax error : missing ')' before '}' Line    10
error C2143: syntax error : missing ';' before '}' Line    10
error C2143: syntax error : missing '}' before ')' Line    10
error C2238: jetons inattendus before ';'   Line    10
error C2334: jetons inattendus before ':' ; corps apparent de la fonction
ignoré Line    10
error C2059: syntax error : '}'    Line    11
error C2059: syntax error : '}'    Line    11
error C2143: syntax error : missing ';' before '}' Line    11
error C2143: syntax error : missing ';' before '}' Line    11
error C2059: syntax error : '('    Line    18


if undef min is not commented, it compile well. Unfortunately our code has
a lot of min and max function, cannot change them all.

What version of the product are you using? On what operating system?
windows xp sp2, visual compiler .net 2005 sp1 (french)

Please provide any additional information below.


Thanks Laurent

Original issue reported on code.google.com by L.VanMiegroet on 24 Feb 2009 at 4:30

Attachments:

@GoogleCodeExporter
Copy link
Author

I tried compiling this on unix, and it worked fine.  So I believe the problem is
likely that some windows header file somewhere is defining min. This post 
suggests
it's windows.h:

 https://www-old.cae.wisc.edu/pipermail/octave-maintainers/2007-February/001812.html

But it's hard for me to believe you wouldn't have seen this problem before, 
because
other code -- perhaps code you've written -- must include windows.h as well!  So
maybe it's somewhere else?

Try this: edit src/windows/google/sparseconfig.h, and after the line
   #include <windows.h>
add the lines
   #undef min
   #undef max

Does this fix the problem for you?

Original comment by csilv...@gmail.com on 24 Feb 2009 at 7:22

  • Added labels: Priority-Medium, Type-Defect

@GoogleCodeExporter
Copy link
Author

Hi, 

Your correction fixed the problem. We hadn't the problem before because we never
include windows.h. Moreover, i've seen that it is in windef.h (included from
windows.h ) that min and max macros are defined.

Thank you very much
Laurent

Original comment by L.VanMiegroet on 25 Feb 2009 at 10:21

@GoogleCodeExporter
Copy link
Author

Hmm, I'm not sure what to do about this.  I can't just #undef min in my .h file,
since folks may write windows programs that legitimately depend on the 'min' in
winbase.h.  I don't want their code to break when they include one of the 
sparsehash
header files.

On the other hand, sparsehash needs some of the code in windows.h to work 
properly.

The basic problem is that a fundamental windows header file defines macros with
common names like min and max; but there's nothing we can do about that now. 
:-(  I
think you may have to just keep the #undef min as a local change.  I'll look 
into
whether there's anything better we can do.

Original comment by csilv...@gmail.com on 25 Feb 2009 at 8:34

  • Changed state: Accepted

@GoogleCodeExporter
Copy link
Author

On further investigation, it looks like sparsehash doesn't need windows.h after 
all.
 So I just removed the #include entirely.  This should be fixed in the next version
of sparsehash.

Original comment by csilv...@gmail.com on 25 Feb 2009 at 8:42

  • Changed state: Started

@GoogleCodeExporter
Copy link
Author

This should be fixed in sparsehash 1.5, just released.

Original comment by csilv...@gmail.com on 7 May 2009 at 3:10

  • Changed state: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant