Why We Should Double-Check the AI Output: Claude Lies (AKA AI Hallucinations) Anthropic's Claude chatbot incorrectly claimed that Google's C++ Style Guide recommends #pragma once over #define guards, a factual error that remains uncorrected as of August 18, 2026, according to the guide's official page. The incident, reported by developer Giovanni Dicanio, underscores that AI outputs can contain hallucinations and must be carefully verified against primary sources. I was “discussing” with Claude about using define guards vs. pragma once for C++ header files. At some point, Claude wrote that: If your library is only ever going to target modern mainstream compilers which, realistically, is true for almost everyone today , plain pragma once is fine and is what most modern C++ style guides including Google’s and LLVM’s now recommend by default. I did remember that, last time I checked, Google’s C++ Style Guide required define guards https://google.github.io/styleguide/cppguide.html The define Guard not pragma once for header files. That is still true as of today August 18th, 2026 ; quoting Google’s C++ Style Guide on this point: All header files should have define guards to prevent multiple inclusion. The format of the symbol name should be .