Here's the prompt immediately before that, writing the code to a file. (Which I'm now realizing wasn't quite formatted right, but it worked anyway.)
Interestingly, it didn't like so I had to manually add the declaration for printf.
Here's the prompt immediately before that, writing the code to a file. (Which I'm now realizing wasn't quite formatted right, but it worked anyway.)
Interestingly, it didn't like so I had to manually add the declaration for printf.
My guess is that ChatGPT is just getting it wrong. Here are some of the other errors it gave when I had it retry:
ref.cpp: In function ‘int main()’: ref.cpp:6:12: error: invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int’ int& i = k; ^ ref.cpp:10:12: error: invalid conversion from ‘int’ to ‘int&’ [-fpermissive] if (i == 17) { ^
and
ref.c: In function ‘int main()’: ref.c:7:11: error: ‘int& i’ declared as reference but not initialized int& i = k; ^
and
ref.c: In function ‘int main()’: ref.c:7:10: error: ISO C++ prohibits declaration of ‘k’ with no type [-fpermissive] int k = 17; ^ ref.c:7:10: error: ISO C++ prohibits declaration of ‘i’ with no type [-fpermissive] ref.c:7:14: error: ISO C++ prohibits declaration of ‘i’ with no type [-fpermissive]
I know that last one has to be wrong,
int k = 17;
is perfectly fine and has a type unlike what the error said.Weirdly I can't find where I tried to compile it with gcc and it said I needed to use g++.
The original code is c++, so
g++
was the right call. The first couple errors are c++ like, as&
isn't part of the type system in C. But it's valid c++. This is the correct error in C, for some new-ish version of gcc:main.c: In function ‘main’: main.c:7:8: error: expected identifier or ‘(’ before ‘&’ token int& i = k;^ main.c:9:5: error: ‘i’ undeclared (first use in this function) if (i == 17)
This one is really interesting as it's the most basic bitch variable declaration, but it might get confused because
int k
probably isn't in the training lexicon.ref.c: In function ‘int main()’: ref.c:7:10: error: ISO C++ prohibits declaration of ‘k’ with no type [-fpermissive] int k = 17;