Files
C-CPP_Practise/ax_funktions.hpp

44 lines
1.1 KiB
C++

//Funktionsdeklaration ax_funktions.hpp
#pragma once
namespace ax{
void print_number(int x)
{
std::cout << "Die Zahl ist: " << x << std::endl;
std::cout << "Das doppelte der Zahl ist: " << x*2 << std::endl;
}
void print_char(char x)
{
std::cout << x;
}
int sqrt(int x){
return x*x;
}
char shift(char x){
return x-1;
}
//allgmeine Funktion Deklaration ohne Argumente oder returns für einen unbekannten Datentyp
template<typename T> std::string type_name();
//Spezialisierte Implementation von type_name() für einen entsprechenden Datentyp vgl. mit überladung
template<> std::string type_name<int>() {return "Integer";}
template<> std::string type_name<char>(){return "Char";}
template<> std::string type_name<float>(){return "Float";}
template<> std::string type_name<double>(){return "Double";}
template<> std::string type_name<bool>(){return "Bool";}
template<typename T>
void ausgebene(T a){
std::cout << a << " ist vom Type " << type_name<T>()<< std::endl ;
}
}