在C++中实现is_same_type类型特征的程序

4

你好,能否给出一个在C++中实现is_same_type类型特性的示例程序?


1
当然可以,如果您提供了这样一个程序应该做什么的详细规格说明。我们都在这里等待这样的请求 - 给我们规格说明,我们就会立即着手处理! - anon
1
这并不是一个“帮我写程序”的请求,而更像是一个“我听说过这个东西,但我不知道如何做,但我认为我需要它”的请求。同意;这不是世界上最好的问题,但我认为它并没有违反任何指南,除了不够具体。 - i_am_jorf
1个回答

12
#include <iostream>

template< typename T1, typename T2 >
struct is_same_type      { enum { result = false }; };

template< typename T>
struct is_same_type<T,T> { enum { result = true }; };


int main()
{
    std::cout << is_same_type<int,float>::result << '\n'
              << is_same_type<char,char>::result << '\n';
    return 0;
}

4
@Neil:通常情况下,如果有人没有正确标记作业问题,我会是第一个批评的人,但我非常怀疑除了我之外,没有其他人会在作业中给他们的学生提出TMP问题。而且,如果人们礼貌地询问是否有人能够向他们展示某些东西,并且如果这些内容足够简单,以至于我可以在不到3分钟的时间内做出来,那么我通常不会犹豫地向他们展示。毕竟,这就是我在这里的原因(还有其他人很快指出我的错误)。 - sbi
1
嗨,这绝对不是一个家庭作业..我只是对模板和类型特征非常困惑..我尝试查找了很多网站,但没有找到一个能简单准确地解释类型特征或模板的..我决定下一个最好的学习方法是阅读代码示例并尝试理解其中的要点..如果有任何有经验的人有更好的理解元编程和类型特征的方法,我将非常高兴和感激。 - Eternal Learner
1
@Srinivasa:获取一本《现代C++编程》的副本,它应该能让你入门。 - Georg Fritzsche
3
@Srinivasa: 那么也许一本更基础的书会更好(比如《C++模板完全指南》)-请注意,SO上有一份C++书目清单:https://dev59.com/_3RC5IYBdhLWcg3wK9yV - Georg Fritzsche
2
@Srinivasa:如果你想学习traits,Nathan Myers的经典著作http://www.cantrip.org/traits.html可能是第一本介绍它的出版物。我赞同_C++ Templates The Complete Guide_的推荐。它包含了你需要理解模板的所有基础知识。你可以从那里开始。_Modern C++ Design_和_C++ Template Metaprogramming_都是很棒的书,但对于不了解模板基础知识的人来说可能有些困难。 - sbi
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接