Objective-C++0xなう
Objective-C++とは
Objective-CとC++をとりあえず一緒にした謎言語。
Objective-C++0x(造語)とは
Objective-C++でC++0xを有効にした超言語。
Install(Ubuntu)
% sudo aptitude install gobjc++
Makefile
#!/bin/make CXX = g++ CXXFLAGS = -O2 -Wall -std=c++0x LDFLAGS = -lobjc OBJS = hello .PHONY: all clean .SUFFIXES: .mm .o .mm: $(CXX) $(LDFLAGS) $(CXXFLAGS) $< -o $@ .mm.o: $(CXX) $(CXXFLAGS) -c $< -o $@ all: $(OBJS) clean: $(RM) $(OBJS)
hello.mm
#import <iostream> #import <objc/Object.h> using namespace std; @interface TestClass1 : Object - (void) hello; @end @implementation TestClass1 - (void) hello { cout << "Hello, Objective-"; } @end class TestClass2 { public: void world() { cout << "C++ world!" << endl; } }; int main(int argc, char **argv) { id obj1 = [ TestClass1 alloc ]; [ obj1 hello ]; [ obj1 free ]; auto *obj2 = new TestClass2(); obj2->world(); delete obj2; return 0; }
autoのあたりが、さりげなくC++0x機能。