1 // LAF Base Library 2 // Copyright (c) 2001-2016 David Capello 3 // 4 // This file is released under the terms of the MIT license. 5 // Read LICENSE.txt for more information. 6 7 #ifndef BASE_CONVERT_TO_H_INCLUDED 8 #define BASE_CONVERT_TO_H_INCLUDED 9 #pragma once 10 11 #include "base/base.h" 12 #include "base/ints.h" 13 #include <string> 14 15 namespace base { 16 17 class Sha1; 18 19 // Undefined convertion 20 template<typename To, typename From> convert_to(const From & from)21 To convert_to(const From& from) { 22 static_assert(false && sizeof(To), "Invalid conversion"); 23 } 24 25 template<> int convert_to(const std::string& from); 26 template<> std::string convert_to(const int& from); 27 28 template<> uint32_t convert_to(const std::string& from); 29 template<> std::string convert_to(const uint32_t& from); 30 31 template<> double convert_to(const std::string& from); 32 template<> std::string convert_to(const double& from); 33 34 template<> Sha1 convert_to(const std::string& from); 35 template<> std::string convert_to(const Sha1& from); 36 37 } 38 39 #endif 40