gpt4 book ai didi

c++ - 具有数据类型名称的C++表

转载 作者:行者123 更新时间:2023-12-03 07:02:06 26 4
gpt4 key购买 nike

我想实现一个包含一些数据类型名称的表,以便可以在循环中使用它们对我的函数进行cout编码。怎么做?我已经尝试过使用代码中的表,但是它不起作用。可能是带有指针的东西。

#include <iostream> 
#include <limits>
#include <iomanip>

using namespace std;

template<typename T>

void sizeF(string opis) {
int x = sizeof(T);
if (x==1)
cout << "Rozmiar typu "+opis+" to " << x << " bajt.\n";
else if (x==2 || x==4)
cout << "Rozmiar typu "+opis+" to " << x << " bajty.\n";
else
cout << "Rozmiar typu "+opis+" to " << x << " bajtów.\n";
}

template<typename T>
void maxMinF(string opis)
{
cout << opis << ": minimalna wartosc: " << numeric_limits<T>::min() << ", maksymalna wartosc: " << numeric_limits<T>::max() << endl;
}

int main()
{
char tab[1][15] = {"short int"};
sizeF<tab[0]>(tab[0]);
sizeF<int>("int");
sizeF<unsigned long long>("unsigned long long");
sizeF<bool>("bool");
sizeF<char>("char");
sizeF<double>("double");
sizeF<long double>("long double");
sizeF<long long>("long long");
sizeF<short>("short");
sizeF<unsigned short>("usigned short");

cout << endl;

maxMinF<short int>("short int");
maxMinF<int>("int");
maxMinF<unsigned long long>("unsigned long long");
maxMinF<bool>("bool");
maxMinF<char>("char");
maxMinF<double>("double");
maxMinF<long double>("long double");
maxMinF<long long>("long long");
maxMinF<short>("short");
maxMinF<unsigned short>("usigned short");
return 0;
}

最佳答案

我认为您在做自己的事情时走的是可怕的路。
您可能应该改为引用Boost.TypeIndex library。看这个:

#include <iostream>
#include <boost/type_index.hpp>

class Widget {
};

int main() {
Widget w1;
Widget& w2 = w1;
Widget const w3;
Widget const& w4 = w1;
std::cout << boost::typeindex::type_id_with_cvr<decltype(w1)>() << '\n';
std::cout << boost::typeindex::type_id_with_cvr<decltype(w2)>() << '\n';
std::cout << boost::typeindex::type_id_with_cvr<decltype(w3)>() << '\n';
std::cout << boost::typeindex::type_id_with_cvr<decltype(w4)>() << '\n';
}
确切地输出您期望的:
Widget                                                                                                                       
Widget&
Widget const
Widget const&
Here's the demo

关于c++ - 具有数据类型名称的C++表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64380241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com