Thank you for your response, this is what happened:
#ifdef __cplusplus
#include <iostream>
#include <string.h>
#endif
#define SECONDS_PER_MINUTE 60
#define MINUTES_PER_HOUR 60
using namespace std; //parse error before namespace
class Counter //syntax error before counter
{
private: //parse error before :
string myString; //parse error before myString
}; //parse error before }
This is in my header file not my .mm file.
Phil.
On 8 Feb 2008, at 23:31, Herb Petschauer wrote:
Seriously, add the #ifdef __cplusplus from my previous response :-)
On 08/02/2008, Philip Bridson <email@hidden> wrote:
OK then, I am now none the wiser because that is what I have been
doing all along.
To be more precise I declare a class as follows:
This is my header file...
MyClass.h
#include <iostream> //Here is where I
get the
error.
class MyClass
{
//Variables etc...
};
This is my implementation...
MyClass.mm
//Code...
I get the error in the header file. It says it cannot find
iostream.
From what everyone has been saying it sounds like I am doing it
right so why do I get an error?
Phil.
On 8 Feb 2008, at 23:20, John Stiles wrote:
No.
Headers stay headers.
The code files that include the headers need to be .cpps or .mms.
Philip Bridson wrote:
OK thats cool. My #include <iostream> is in a .h file. Just to
clarify do I need to make the .h file a .mm?
Thanks.
On 8 Feb 2008, at 23:06, John Stiles wrote:
Any file that #includes <iostream>, either directly or indirectly
via another header, needs to be a .cpp or .mm in order to
work. .c or .m will not work.
Philip Bridson wrote:
Thanks both to Dave and John,
I am using .mm for my implementation files but it is in the .h
files i am having problems. Do I need to put the entire class,
including deceleration in an .mm file?
Thanks guys.
Phil
On Feb 8, 2008, at 2:51 PM, Philip Bridson wrote:
I am trying to write using Objective-C++. I have read the docs
and understand what I can and can't do with it but I have a
really basic problem. When I put #include <iostream> in my
header files I get an error saying that the file cannot be
found? Why is this?
Most likely because the compiler doesn't think that it's
compiling an objective-c++ file, which means that it isn't using
the C++ header search paths. What extension are you using for
your filename? You have to use .mm to tell the compiler that
it's objective-c++.
Also when creating the file, do I create a C++ file or an Obj-C
file or doesn't it matter?
It should be a .mm file.
Finally, I want to do some thing like this
#ifdef _MAC_OS_X
//do some obj-c code
#endif
#ifdef _WIN32
//use WIN32 API coding
#endif
#ifdef __OBJC__
//objc only stuff
#endif
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the
list.
Contact the moderators at
cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
40gmail.com
This email sent to email@hidden