小编Pet*_*den的帖子

不明确的函数调用C++基类

我正在尝试创建一个可变模板类,它为类型列表中的每个类提供一个方法.下面显示了一个示例,它print为类型列表中的每个类创建一个方法:

#include <iostream>
#include <string>

// Helper class providing a function call
template <typename T>
class PrintHelper
{
public:
    void print(const T& t) { std::cout << t << std::endl; }
};

// Provides a print method for each type listed
template <typename... Ts>
class Printer : public PrintHelper<Ts>...
{};

int main()
{
    Printer<int, std::string> p;
    p.print(std::string("Hello World")); // Ambiguous Call
}
Run Code Online (Sandbox Code Playgroud)

注释行导致GCC 4.6.3在注释行上出错.解决歧义的正确方法是什么,或者我应该考虑不同的设计?

c++ c++11

16
推荐指数
2
解决办法
3079
查看次数

标签 统计

c++ ×1

c++11 ×1