小编Ben*_*ich的帖子

模板别名,模板特化和模板模板参数

我想通过使用模板别名和模板特化的组合来确定模板参数的基础模板.下面的代码在gcc 4.8,6.2.1上编译得很好,但在clang 3.5,3.8上却没有.

#include <iostream>

template <typename T> struct First {};

template <typename T> struct Second {};

template <template <typename> class F, typename T> struct Foo {};

template <typename T> struct Foo<First, T>
{
  void f() { std::cout << __PRETTY_FUNCTION__ << std::endl; }
};

template <typename T> struct Foo<Second, T> 
{
  void f() { std::cout << __PRETTY_FUNCTION__ << std::endl; }
};

template <typename F, typename T> struct Resolution {};

template <typename T> struct Resolution<First<T>, T>
{
   template <typename P> using …
Run Code Online (Sandbox Code Playgroud)

c++ template-templates c++11 template-aliases

10
推荐指数
1
解决办法
287
查看次数

标签 统计

c++ ×1

c++11 ×1

template-aliases ×1

template-templates ×1