Created
December 9, 2011 17:23
-
-
Save Machx/1452465 to your computer and use it in GitHub Desktop.
NSNumberWithValue function overloading in C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// NSNumber_Extensions.h | |
// TouchCode | |
// | |
// Created by Jonathan Wight on 12/8/11. | |
// Copyright (c) 2011 TouchCode. All rights reserved. | |
// | |
#import <Foundation/Foundation.h> | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(char inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned char inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(short inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned short inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(int inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned int inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(long inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned long inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(long long inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned long long inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(float inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(double inValue); | |
extern __attribute__((overloadable)) NSNumber *NSNumberWithValue(BOOL inValue); | |
// SNIP SNIP SNIP | |
// | |
// NSNumber_Extensions.m | |
// TouchCode | |
// | |
// Created by Jonathan Wight on 12/8/11. | |
// Copyright (c) 2011 TouchCode. All rights reserved. | |
// | |
#import "NSNumber_Extensions.h" | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(char inValue) | |
{ | |
return([NSNumber numberWithChar:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned char inValue) | |
{ | |
return([NSNumber numberWithUnsignedChar:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(short inValue) | |
{ | |
return([NSNumber numberWithShort:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned short inValue) | |
{ | |
return([NSNumber numberWithUnsignedShort:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(int inValue) | |
{ | |
return([NSNumber numberWithInt:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned int inValue) | |
{ | |
return([NSNumber numberWithUnsignedInt:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(long inValue) | |
{ | |
return([NSNumber numberWithLong:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned long inValue) | |
{ | |
return([NSNumber numberWithUnsignedLong:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(long long inValue) | |
{ | |
return([NSNumber numberWithLongLong:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(unsigned long long inValue) | |
{ | |
return([NSNumber numberWithUnsignedLongLong:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(float inValue) | |
{ | |
return([NSNumber numberWithFloat:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(double inValue) | |
{ | |
return([NSNumber numberWithDouble:inValue]); | |
} | |
__attribute__((overloadable)) NSNumber *NSNumberWithValue(BOOL inValue) | |
{ | |
return([NSNumber numberWithBool:inValue]); | |
} | |
// No NSInteger or NSUInteger versions because these are identical to int/unsigned int or long/unsigned long (and the compiler will complain). | |
//__attribute__((overloadable)) NSNumber *NSNumberWithValue(NSInteger inValue) | |
// { | |
// return([NSNumber numberWithInteger:inValue]); | |
// } | |
// | |
//__attribute__((overloadable)) NSNumber *NSNumberWithValue(NSUInteger inValue) | |
// { | |
// return([NSNumber numberWithUnsignedInteger:inValue]); | |
// } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment