Ekra
Ekra

Reputation: 3301

How to use c++ template class in objective C

I want to use a Template class of C++ in my Objective C project. I have read that it is supported.

When I try to import the template class that is written in C++ I get lot of errors like
Cannot find protocol declaration for 'class' etc..

Can anyone give me a simple example of this.
Waiting for reply.

Upvotes: 1

Views: 1753

Answers (1)

Chris Becke
Chris Becke

Reputation: 36026

You are putting the objective c++ code in a .mm file? You need to use .mm files to tell the compiler its allows to parse c++ constructs in addition to objective-c and c.


You can't just change the name of a header file from .h to .mm - the name of the file containing the #include / #import directive needs to change.

// file: main.m
#import "cppclassdef.h" //will not work
#import "cppclassdef.mm" // also will not work. additionally will confuse XCode which will try to compile the .mm file by itself.

// file: main.mm
#import "cppclassdef.h" // this is how to do it.

Upvotes: 1

Related Questions