2 sinat 23086219 sinat_23086219 于 2014.11.08 15:23 提问

关于C++中common_type 的实现
template <typename T1, typename T2>

struct common_type<T1, T2> {
    typedef decltype(true ? declval<T1>() : declval<T2>()) type;
};

这个? : 语句中条件语句不是true吗, 那岂不是总是选第一个? 这个? : 有什么意义? 而实际测试中经常能得到第二个type...甚至除了这两个type以外的其他type.难道是我理解错误还是...求解释...谢谢.

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
std::common_type用法
common_type函数 包含于当中。 作用是返回参数列表中的参数都可以转换成的类型(有些拗口)。 C++11中的用法为 syd::common_type::type // 返回值为double #include #include int main() {     typedef std::common_type::type test;     std::
【C/C++开发】C++11的模板类型判断——std::is_same和std::decay
C++11的模板类型判断——std::is_same和std::decay 问题提出:有一个模板函数,函数在处理int型和double型时需要进行特殊的处理,那么怎么在编译期知道传入的参数的数据类型是int型还是double型呢?  如: #include templatetypename TYPE> void typeCheck(TYPE data) { //do somet
关于C语言中继承和多态的实现
    以下的内容综合了多篇文章,加上一点自己的理解而成。目的为了给自己阅读他们文章后做一个笔记。在末尾给出了这些文章的地址。    多态的实现可以采用以下几种方式:    (1)使用 vod * (万能指针)来实现“编译时多态”。    (2)使用函数指针来实现“运行时多态”。    (3)使用型如struct struct_name{              ............
二叉树的基本操作及遍历
严蔚敏数据结构中关于二叉树的操作,C语言实现
网络程序设计中关于FTP的c语言实现
ftpclient,网络程序设计中关于FTP的c语言实现
数据结构中的栈操作
严蔚敏数据结构教材中关于栈操作的实现C代码
迷宫算法的C语言实现源代码
迷宫算法的c语言实现,数据结构中关于栈的应用。
《C语言接口与实现》实验——链表(List_T)
实验程序是用vc6编译,一定注意文件扩展名为c,不是cpp,在http://download.csdn.net/detail/dijkstar/4035350下载; 里面的库【libcii.lib】编译过程,见另一篇文档。 实验程序如下: #include #include #include "include/list.h" #pragma comment(lib, "libcii
C标准库 assert
   C标准库的assert.ht头文件提供了一个名为assert的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。   已定义的宏assert指向另一个宏NOEBUG,宏NDEBUG不是&amp;lt;assert.h&amp;gt;的一部分。如果已在引用&amp;lt;assert.h&amp;gt;的源文件中定义NDEBUG为宏名称,则assert宏的定义如下:#define assert(ignore) ((...
C 链表及其接口的实现
/* 表处理接口: 下面的代码可能保存在list.h文件中,指定了节点和链接的类型,而且声明了一些可能要作用 于他们的运算。声明自定义函数来分配和释放节点使用的内存。函数initNodes就是为了实现的 方便而编制的函数。Node的typedef以及函数next和Item让客户在不依赖实现细节的前提下使用 表 */ typedef struct node * link; struc