Typename给出了奇怪的输入结果代码块
typename gives strange result - in codeblocks
这段代码来自main:
Int<> a;
cout << typeid(Int<>::range_type).name();
在GCC 4.6.1的代码块中编译时会输出'x'。有什么原因吗?
template<class Int_T>
struct Best_Fit
{//evaluate it lazily ;)
typedef typename if_<std::is_signed<Int_T>::value,Signed_Type,Unsigned_Type>::type type;
};
template<class Int_T = int, typename Best_Fit<Int_T>::type Min_Range = std::numeric_limits<Int_T>::min(), typename Best_Fit<Int_T>::type Max_Range = std::numeric_limits<Int_T>::max()>
class Int {
public:
typedef decltype(Min_Range) range_type;
};
typename Best_Fit<Int_T>::type
在实例化中将生成Signed_Type
。因为你没有给出它的定义,所以我们不知道它是什么类型。但是c++filt -t x
说它是long long
。
回想一下,typeid(...).name()
可以产生它想要的任何名称。GNU libstdc++产生了修改过的类型名。
相关文章:
- ";结果类型必须是可从输入范围的值类型""构造的;创建std::vector时
- 将公式的结果链接到用户输入,并验证它们是否匹配
- 读取一组用户输入,按升序排序,然后打印结果
- 我有两棵二叉树.我想在不更改输入树的情况下深度复制两个二叉树的结果
- 为什么在我的程序中输入另一个输入会给我不同的结果
- 如何将C++输入流分隔符包含在结果令牌中
- 当我输入分数值时,它返回不正确的结果
- 二项式系数程序输出错误的结果,如果输入是大的(C++)
- 为什么 protobuf 只读取最后一条消息作为输入结果
- C++ microshell,输入一个命令并使用fork(),dup(),pipe()将其通过管道传输到进程。只是我没有得到我想要的结果
- 在C++中使用用户输入变量声明数组大小。不同的 IDE 会产生不同的结果?
- 如果我输入错误的 dos 命令,shellexecute 会给出正确的结果
- 相机校准结果:为什么与输入相似
- 对于相同的输入参数,多个函数调用返回不同的结果
- C++简单的程序 - 为什么我的"res"不进入我的向量?创建一个接受输入 (4+44-67+235) 并输出结果的程序
- 将结果与用户输入-SQLITE3 C 进行比较
- OpenCV级联分类器检测输入Mat边界外的MultiScale结果Rect
- 将 QByteArray 转换为“long”会为相同的输入输出不同的结果
- 对输入'age'名称进行排序,然后显示结果
- Typename给出了奇怪的输入结果代码块