Changeset 8071 for code/branches/kicklib/src/libraries/util/Convert.h
- Timestamp:
- Mar 14, 2011, 3:53:38 AM (14 years ago)
- Location:
- code/branches/kicklib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/kicklib
-
code/branches/kicklib/src/libraries/util/Convert.h
r7401 r8071 143 143 struct ConverterFallback 144 144 { 145 FORCEINLINE static bool convert(ToType* output, const FromType& input)145 ORX_FORCEINLINE static bool convert(ToType* output, const FromType& input) 146 146 { 147 147 COUT(2) << "Could not convert value of type " << typeid(FromType).name() … … 155 155 struct ConverterFallback<FromType*, ToType*> 156 156 { 157 FORCEINLINE static bool convert(ToType** output, FromType* const input)157 ORX_FORCEINLINE static bool convert(ToType** output, FromType* const input) 158 158 { 159 159 ToType* temp = dynamic_cast<ToType*>(input); … … 182 182 struct ConverterStringStream 183 183 { 184 FORCEINLINE static bool convert(ToType* output, const FromType& input)184 ORX_FORCEINLINE static bool convert(ToType* output, const FromType& input) 185 185 { 186 186 return orxonox::ConverterFallback<FromType, ToType>::convert(output, input); … … 198 198 /// Fallback operator <<() (delegates to orxonox::ConverterFallback) 199 199 template <class FromType> 200 FORCEINLINE bool operator <<(std::ostream& outstream, const FromType& input)200 ORX_FORCEINLINE bool operator <<(std::ostream& outstream, const FromType& input) 201 201 { 202 202 std::string temp; … … 215 215 struct ConverterStringStream<FromType, std::string> 216 216 { 217 FORCEINLINE static bool convert(std::string* output, const FromType& input)217 ORX_FORCEINLINE static bool convert(std::string* output, const FromType& input) 218 218 { 219 219 using namespace fallbackTemplates; … … 241 241 /// Fallback operator >>() (delegates to orxonox::ConverterFallback) 242 242 template <class ToType> 243 FORCEINLINE bool operator >>(std::istream& instream, ToType& output)243 ORX_FORCEINLINE bool operator >>(std::istream& instream, ToType& output) 244 244 { 245 245 std::string input(static_cast<std::istringstream&>(instream).str()); … … 252 252 struct ConverterStringStream<std::string, ToType> 253 253 { 254 FORCEINLINE static bool convert(ToType* output, const std::string& input)254 ORX_FORCEINLINE static bool convert(ToType* output, const std::string& input) 255 255 { 256 256 using namespace fallbackTemplates; … … 276 276 /// %Template delegates to ::ConverterStringStream 277 277 template <class FromType, class ToType> 278 FORCEINLINE bool convertImplicitely(ToType* output, const FromType& input, Loki::Int2Type<false>)278 ORX_FORCEINLINE bool convertImplicitely(ToType* output, const FromType& input, Loki::Int2Type<false>) 279 279 { 280 280 return ConverterStringStream<FromType, ToType>::convert(output, input); … … 283 283 /// Makes an implicit cast from \a FromType to \a ToType 284 284 template <class FromType, class ToType> 285 FORCEINLINE bool convertImplicitely(ToType* output, const FromType& input, Loki::Int2Type<true>)285 ORX_FORCEINLINE bool convertImplicitely(ToType* output, const FromType& input, Loki::Int2Type<true>) 286 286 { 287 287 (*output) = static_cast<ToType>(input); … … 303 303 { 304 304 enum { probe = ImplicitConversion<FromType, ToType>::exists }; 305 FORCEINLINE static bool convert(ToType* output, const FromType& input)305 ORX_FORCEINLINE static bool convert(ToType* output, const FromType& input) 306 306 { 307 307 // Use the probe's value to delegate to the right function … … 327 327 */ 328 328 template <class FromType, class ToType> 329 FORCEINLINE bool convertValue(ToType* output, const FromType& input)329 ORX_FORCEINLINE bool convertValue(ToType* output, const FromType& input) 330 330 { 331 331 return ConverterExplicit<FromType, ToType>::convert(output, input); … … 348 348 */ 349 349 template<class FromType, class ToType> 350 FORCEINLINE bool convertValue(ToType* output, const FromType& input, const ToType& fallback)350 ORX_FORCEINLINE bool convertValue(ToType* output, const FromType& input, const ToType& fallback) 351 351 { 352 352 if (convertValue(output, input)) … … 361 361 /// Directly returns the converted value, but uses the fallback on failure. @see convertValue 362 362 template<class FromType, class ToType> 363 FORCEINLINE ToType getConvertedValue(const FromType& input, const ToType& fallback)363 ORX_FORCEINLINE ToType getConvertedValue(const FromType& input, const ToType& fallback) 364 364 { 365 365 ToType output; … … 380 380 */ 381 381 template<class ToType, class FromType> 382 FORCEINLINE ToType multi_cast(const FromType& input)382 ORX_FORCEINLINE ToType multi_cast(const FromType& input) 383 383 { 384 384 ToType output; … … 395 395 struct ConverterExplicit<const char*, ToType> 396 396 { 397 FORCEINLINE static bool convert(ToType* output, const char* input)397 ORX_FORCEINLINE static bool convert(ToType* output, const char* input) 398 398 { 399 399 return convertValue<std::string, ToType>(output, input); … … 405 405 struct ConverterExplicit<char, std::string> 406 406 { 407 FORCEINLINE static bool convert(std::string* output, const char input)407 ORX_FORCEINLINE static bool convert(std::string* output, const char input) 408 408 { 409 409 *output = input; … … 415 415 struct ConverterExplicit<unsigned char, std::string> 416 416 { 417 FORCEINLINE static bool convert(std::string* output, const unsigned char input)417 ORX_FORCEINLINE static bool convert(std::string* output, const unsigned char input) 418 418 { 419 419 *output = input; … … 425 425 struct ConverterExplicit<std::string, char> 426 426 { 427 FORCEINLINE static bool convert(char* output, const std::string& input)427 ORX_FORCEINLINE static bool convert(char* output, const std::string& input) 428 428 { 429 429 if (!input.empty()) … … 438 438 struct ConverterExplicit<std::string, unsigned char> 439 439 { 440 FORCEINLINE static bool convert(unsigned char* output, const std::string& input)440 ORX_FORCEINLINE static bool convert(unsigned char* output, const std::string& input) 441 441 { 442 442 if (!input.empty()) … … 453 453 struct ConverterExplicit<bool, std::string> 454 454 { 455 FORCEINLINE static bool convert(std::string* output, const bool& input)455 ORX_FORCEINLINE static bool convert(std::string* output, const bool& input) 456 456 { 457 457 if (input)
Note: See TracChangeset
for help on using the changeset viewer.