In the following, I haven't defined the type doesntexist.  void myfunction(doesntexist argument) { }   GCC 4.7.2 says "error: variable or field ‘myfunction’ declared void"  My question is this: What's going through the compilers mind here to refer to the function name being void and not the argument type?  [EDIT] Before downvoting, be aware the answer to this issue is related to the order of the errors and -Wfatal-errors stopping the more immediately relevant message from being printed. This is not simply me having a go at a slightly vague compiler message.
121551
I have a function called:  void initializeJSP(string Experiment)   And in my MyJSP.h file I have:  2: void initializeJSP(string Experiment);   And when I compile I get this error:     MyJSP.h:2 error: variable or field initializeJSP declared void   Where is the problem?
109393
Consider the following code:  template&lt;class T&gt; class Foo { public:   Foo() { a = 1; }  protected:   int a; };  template&lt;class T&gt; class Bar : public Foo&lt;T&gt; { public:   Bar() { b = 4; };    int Perna(int u);  protected:   int b;  };  template&lt;class T&gt; int Bar&lt;T&gt;::Perna(int u)  {    int c = Foo&lt;T&gt;::a * 4; // This works   return (a + b) * u;    // This doesn't }   g++ 3.4.6, 4.3.2 and 4.1.2 give error   test.cpp: In member function `int Bar&lt;T&gt;::Perna(int)': test.cpp:25: error: `a' was not declared in this scope   g++ 2.96 and MSVC 6, 7, 7.1, 8 and 9 accept it, as do (at least) older Intel and SGI c++ compilers.   Do the new Gnu C++ compiler obey the standard or not? If they do, what is the rationale behind that inheriting class is not able to see a protected inherited member variable?  Also, if there's  int A() { return a; }    in Foo, I get error  test.cpp:25: error: there are no arguments to A that depend on a template parameter, so a declaration of A must be available test.cpp:25: error: (if you use -fpermissiveâ, G++ will accept your code, but allowing the use of an undeclared name is deprecated)   when I try to use it in a member function of Bar. I find that curious as well: Bar inherits Foo, so I think it's obvious that A() in scope of Bar is Foo::A().
4671
What are the proper uses of:   static_cast dynamic_cast const_cast reinterpret_cast C-style cast (type)value Function-style cast type(value)   How does one decide which to use in which specific cases?
124139
I have a class which has many small functions. By small functions, I mean functions that doesn't do any processing but just return a literal value. Something like:  string Foo::method() const{     return "A"; }   I have created a header file "Foo.h" and source file "Foo.cpp". But since the function is very small, I am thinking about putting it in the header file itself. I have the following questions:   Is there any performance or other issues if I put these function definition in header file? I will have many functions like this. My understanding is when the compilation is done, compiler will expand the header file and place it where it is included. Is that correct?
19506
I have a function that is declared and defined in a header file. This is a problem all by itself. When that function is not inlined, every translation unit that uses that header gets a copy of the function, and when they are linked together there are duplicated. I "fixed" that by making the function inline, but I'm afraid that this is a fragile solution because as far as I know, the compiler doesn't guarantee inlining, even when you specify the "inline" keyword. If this is not true, please correct me.  Anyways, the real question is, what happens to static variables inside this function? How many copies do I end up with?
84261
Good afternoon,  I'm trying to learn lambda calculus, and I do understand the notation (it's not hard, $f=\lambda a_1.\cdots\lambda a_n.x=\lambda a_1\cdots a_n.x\Leftrightarrow f(a_1;\cdots;a_n)=x$), but not what is defined by it. For an example of something I don't understand, take the Church numerals:  $$ 0=\lambda f.\lambda x.x\\ 1=\lambda fx.f\ x\\ 2=\lambda fx.f(f(x))\\ \cdots\\ n=\lambda nfx.f^n\ x $$ (where $f^n$ is $f$ composed with itself $n$ times)  I see $0$'s definition is to not apply a function (apply it zero times), and $1$'s to apply it once, and $n$'s to apply it $n$ times. This kind of makes sense; however, what I don't get is how, formally, can a function be turned into a number. Shouldn't $\lambda f.\lambda x\ x$ be a function with two arguments, one of which is a function? Is it a function or is it a number? Wouldn't one have to pass values of to $f$ and $x$ to it for it to be a value? Is it a representation of the number? How does that really work?  Also, with true ($\lambda xy.x$) and false's ($\lambda xy.y$) definitions? How are those boolean values? They seem two argument functions that yield the first and second argument, respectively. Again, are they values or are they functions? Please help me out here, it's just so confusing to me. I've   like , but I'm still clueless. I know some programming, so any working program showing this would be most welcome.
51439
How do you do "inline functions" in C#? I don't think I understand the concept. Are they like anonymous methods? Like lambda functions?  Note: The answers almost entirely deal with the ability to , i.e. "a manual or compiler optimization that replaces a function call site with the body of the callee." If you are interested in , see  or .
101830
There is a Java Void -- uppercase V-- . The only situation I have ever seen it used is to parameterize Callables    final Callable&lt;Void&gt; callable = new Callable&lt;Void&gt;() {             public Void call() {                 foobar();                 return null;             }         };   Are there any other uses for the Java Void reference type? Can it ever be assigned anything other than null? If yes, do you have examples?
118686
This question is about finding reasons for compile errors when using tikz.  Consider the files compiles.tex, compiles-not1.tex and compiles-not2.tex. Then it is clear that compiles-not1.tex does not compile, because the name C has not been assigned. The file compiles-not2.tex does not compile, because \draw (A) -- (A -| B ); contains a space after the name B. However, this is difficult to see from the error message.   Is it possible to tweak the error messages generated by tikz to perhaps mark tikz-code and names in some way? What I mean is that in the example, an error message ! Package pgf Error: No shape named 'B ' is known. might be more helpful, as the space in the name B\␣ (B with a trailing space) is more clearly delimited from the message.   File compiles.tex compiles without errors.  \documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture}     \node (A) {A};     \node[above right of=A] (B) {B};     \draw (A) -- (A -| B); \end{tikzpicture} \end{document}   On compilation compiles-not1.tex generates ! Package pgf Error: No shape named C is known.  \documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture}     \node (A) {A};     \node[above right of=A] (B) {B};     \draw (A) -- (A -| C); \end{tikzpicture} \end{document}   compiles-not2.tex generates ! Package pgf Error: No shape named B  is known.  \documentclass{article} \usepackage{tikz} \begin{document} \begin{tikzpicture}     \node (A) {A};     \node[above right of=A] (B) {B};     \draw (A) -- (A -| B ); \end{tikzpicture} \end{document}
13479
Note that this function does not have a "{" and "}" body.  Just a try/catch block:  void func( void ) try {     ... } catch(...) {     ... }   Is this intentionally part of C++, or is this a g++ extension?  Is there any purpose to this other than bypass 1 level of {}?  I'd never heard of this until I ran into
1257
I'm currently refactoring/tidying up some old C code used in a C++ project, and regularly see functions such as:  int f(void)   which I would tend to write as:  int f()   Is there any reason not to replace (void) with () throughout the codebase in order to improve consistency, or is there a subtle difference between the two that I am unaware of?  More specifically, if a virtual member function in C++ is described as:  virtual int f(void)   and a derived class includes a member function:  int f()   is this a valid override?  Additionally, am I likely to encounter any linker problems based on almost identical signatures?
70139
How can I find the codes related to a function in GAP? When I use "??" in front of the name of function there is no help, so I want to find the code of function among packages.
105280
C++ guarantees that variables in a compilation unit (.cpp file) are initialised in order of declaration. For number of compilation units this rule works for each one separately (I mean static variables outside of classes).  But, the order of initialization of variables, is undefined across different compilation units.  Where can I see some explanations about this order for gcc and MSVC (I know that relying on that is a very bad idea - it is just to understand the problems that we may have with legacy code when moving to new GCC major and different OS)?
73116
I recently read this sentence:     Do not declare this callback function with a void return type and cast the function pointer to LPTHREAD_START_ROUTINE when creating the thread.   and wasn't sure if it was ambiguous or not. Which of these are correct interpretations:         do not declare this callback function with a void return type   do not cast the function pointer to LPTHREAD_START_ROUTINE when creating the thread   do cast the function pointer to LPTHREAD_START_ROUTINE when creating the thread      Edit: I found some example code, seems like (1) and (3) is the intended interpretation.
341
Quote from :     The only portable way of using templates at the moment is to implement them in header files by using inline functions.   Why is this?  (Clarification: header files are not the only portable solution. But they are the most convenient portable solution.)
118553
In C++ I can't use a method if I declare it after the calling method.    Does this order matter in other languages like Java or C#?
89683
I wrote this program:  #include&lt;stdio.h&gt; int main() { printf(“Hello World\n”); return 0; }   I saved it as first.c and tried to compile but receiving this problem I have installed even gcc compiler too.  $ gcc first.c -o first1 first.c: In function ‘main’: first.c:4:1: error: stray ‘\342’ in program first.c:4:1: error: stray ‘\200’ in program first.c:4:1: error: stray ‘\234’ in program first.c:4:11: error: ‘Hello’ undeclared (first use in this function) first.c:4:11: note: each undeclared identifier is reported only once for each function  it appears in first.c:4:17: error: expected ‘)’ before ‘World’ first.c:4:17: error: stray ‘\’ in program first.c:4:17: error: stray ‘\342’ in program first.c:4:17: error: stray ‘\200’ in program first.c:4:17: error: stray ‘\235’ in program   How can I fix this problem?