/* * Copyright (c) 2011 Remko Tronçon * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once // Conversion utilities #define NS2STDSTRING(a) (a == nil ? std::string() : std::string([a cStringUsingEncoding:NSUTF8StringEncoding])) #define STD2NSSTRING(a) [NSString stringWithCString:a.c_str() encoding:NSUTF8StringEncoding] // Intrusive pointer for NSObjects namespace boost { inline void intrusive_ptr_add_ref(NSObject* object) { [object retain]; } inline void intrusive_ptr_release(NSObject* object) { [object release]; } } // Including intrusive_ptr after ref/release methods to avoid compilation // errors with CLang #include <boost/intrusive_ptr.hpp>