Objective-C++ and .cpp files in Xcode

I’m trying to make a simple Objective-C++ applicaiton. All of my code is compiling fine, including the use of C++ in Objective-C classes, until I try and add a C++ class to the mix. I’ve created a simple C++ class:


  • How to class-dump iPad apps?
  • xcode not recognizing changes to class
  • Cannot enter input with gdb. Help!
  • Adding C++ code to an iOS project
  • Link errors compiling a mixed objective-C/C++ project with C++11 support in xcode 4.5.2
  • Xcode App No Longer Reads Input From the Folder The App is Stored In
  • class Test {

    and included this file in a Objective-C class (with a .mm extension) and I get the following build error:

    error: expected '=', ',', ';', 'asm' or '__attribute__' before 'Test'

    Clearly I’m missing some simple concept here. I’d appreciate some enlightment.

    4 Solutions Collect From Internet About “Objective-C++ and .cpp files in Xcode”

    helixed’s answer will not help, your class will be just skiped by preprocessor if __cplusplus undefined.

    Most of all you trying to include C++ class from *.m file, try to rename it to *.mm.
    This solve the same problem on my side.

    Shouldn’t the preprocessor command required be:

    #ifdef __cplusplus

    Well, after scanning more closely over Apple’s Documentation, it looks like the answer to to use the __cplusplus preprocessor flag in the header file. Here’s what the code looks like now:

    #ifdef __cplusplus
    class Test {

    In Xcode 6 there is the following option:

    Apple LLVM 6.0 - Language -> Compile Sources As

    You can set that to Objective-C++ and then the file extension does not matter. This is particularly useful if you are working cross-platform and need to use other file extensions.