由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - stl quiz 一问
相关主题
Compile issuesINIT_WORK从Linux kernel 2.6.20后改了?
typedef 的一个问题码工试题 (转载)
What does the default constructor do?forward declaration
给几个teacherwei代码的评审意见吧c++ initialize struct
{C语言}请教如何通过变量访问结构体内的各个属性从一个Embedded C++ quiz 调查看印度人的实力
Template Metaprogramming有啥实际用途么?STL 一问
c++标准函数传递一问static polymorphism一问
typedefc++ define 一问
相关话题的讨论汇总
话题: template话题: enum话题: struct话题: val话题: 120
进入Programming版参与讨论
1 (共1页)
c*****z
发帖数: 182
1
题目如下
#include
template
struct X
{
enum val {v = T * X::v };
};
template <>
struct X<0>
{
enum val {v = 1 };
};
int main() { std::cout<::v; }
a) Compilation error
b) Link error
c) 120
答案是C,能给解释一下吗
r********d
发帖数: 23
2
就是阶乘呗
X<5>::v = 5*X<4>::v = 5*4*X<3>::v = ... = 120*X<0>::v = 120
ps. this is a question about template, not about STL.

【在 c*****z 的大作中提到】
: 题目如下
: #include
: template
: struct X
: {
: enum val {v = T * X::v };
: };
: template <>
: struct X<0>
: {

e*****w
发帖数: 144
3
120
This technique is called TMP.

【在 c*****z 的大作中提到】
: 题目如下
: #include
: template
: struct X
: {
: enum val {v = T * X::v };
: };
: template <>
: struct X<0>
: {

b***y
发帖数: 2799
4
有点象递归函数。

【在 c*****z 的大作中提到】
: 题目如下
: #include
: template
: struct X
: {
: enum val {v = T * X::v };
: };
: template <>
: struct X<0>
: {

y******e
发帖数: 203
5
template(boost) meta programming现在没有什么用处吧?
1 (共1页)
进入Programming版参与讨论
相关主题
c++ define 一问{C语言}请教如何通过变量访问结构体内的各个属性
c++:constructor 一问Template Metaprogramming有啥实际用途么?
C & C++ mixing questionc++标准函数传递一问
C arraytypedef
Compile issuesINIT_WORK从Linux kernel 2.6.20后改了?
typedef 的一个问题码工试题 (转载)
What does the default constructor do?forward declaration
给几个teacherwei代码的评审意见吧c++ initialize struct
相关话题的讨论汇总
话题: template话题: enum话题: struct话题: val话题: 120