1 /************************************************************************************ 2 * * 3 * Copyright (c) 2014 - 2018 Axel Menzel <info@rttr.org> * 4 * * 5 * This file is part of RTTR (Run Time Type Reflection) * 6 * License: MIT License * 7 * * 8 * Permission is hereby granted, free of charge, to any person obtaining * 9 * a copy of this software and associated documentation files (the "Software"), * 10 * to deal in the Software without restriction, including without limitation * 11 * the rights to use, copy, modify, merge, publish, distribute, sublicense, * 12 * and/or sell copies of the Software, and to permit persons to whom the * 13 * Software is furnished to do so, subject to the following conditions: * 14 * * 15 * The above copyright notice and this permission notice shall be included in * 16 * all copies or substantial portions of the Software. * 17 * * 18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * 19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * 20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * 21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * 22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * 23 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * 24 * SOFTWARE. * 25 * * 26 *************************************************************************************/ 27 28 #ifndef RTTR_STD_CONVERSION_FUNCTIONS_H_ 29 #define RTTR_STD_CONVERSION_FUNCTIONS_H_ 30 31 #include "rttr/detail/base/core_prerequisites.h" 32 #include <string> 33 34 namespace rttr 35 { 36 namespace detail 37 { 38 ///////////////////////////////////////////////////////////////////////////////////////// 39 40 RTTR_API std::string to_string(int value, bool* ok); 41 42 ///////////////////////////////////////////////////////////////////////////////////////// 43 44 RTTR_API std::string to_string(long value, bool* ok); 45 46 ///////////////////////////////////////////////////////////////////////////////////////// 47 48 RTTR_API std::string to_string(long long value, bool* ok); 49 50 ///////////////////////////////////////////////////////////////////////////////////////// 51 52 RTTR_API std::string to_string(unsigned value, bool* ok); 53 54 ///////////////////////////////////////////////////////////////////////////////////////// 55 56 RTTR_API std::string to_string(unsigned long value, bool* ok); 57 58 ///////////////////////////////////////////////////////////////////////////////////////// 59 60 RTTR_API std::string to_string(unsigned long long value, bool* ok); 61 62 ///////////////////////////////////////////////////////////////////////////////////////// 63 64 RTTR_API std::string to_string(float value, bool* ok); 65 66 ///////////////////////////////////////////////////////////////////////////////////////// 67 68 RTTR_API std::string to_string(double value, bool* ok); 69 70 ///////////////////////////////////////////////////////////////////////////////////////// 71 ///////////////////////////////////////////////////////////////////////////////////////// 72 ///////////////////////////////////////////////////////////////////////////////////////// 73 74 ///////////////////////////////////////////////////////////////////////////////////////// 75 76 RTTR_API bool string_to_bool(std::string value, bool* ok); 77 78 ///////////////////////////////////////////////////////////////////////////////////////// 79 80 RTTR_API int string_to_int(const std::string& source, bool* ok); 81 82 ///////////////////////////////////////////////////////////////////////////////////////// 83 84 RTTR_API unsigned long string_to_ulong(const std::string& source, bool* ok); 85 86 ///////////////////////////////////////////////////////////////////////////////////////// 87 88 RTTR_API long long string_to_long_long(const std::string& source, bool* ok); 89 90 ///////////////////////////////////////////////////////////////////////////////////////// 91 92 RTTR_API unsigned long long string_to_ulong_long(const std::string& source, bool* ok); 93 94 ///////////////////////////////////////////////////////////////////////////////////////// 95 96 RTTR_API float string_to_float(const std::string& source, bool* ok); 97 98 ///////////////////////////////////////////////////////////////////////////////////////// 99 100 RTTR_API double string_to_double(const std::string& source, bool* ok); 101 102 ///////////////////////////////////////////////////////////////////////////////////////// 103 104 } // end namespace detail 105 } // end namespace rttr 106 107 #endif // RTTR_STD_CONVERSION_FUNCTIONS_H_ 108