相关疑难解决方法(0)

C++模板Turing-complete?

我被告知C++中的模板系统在编译时是图灵完备的.这篇文章以及维基百科都提到了这一点.

你能提供一个利用这个属性的计算的重要例子吗?

这个事实在实践中有用吗?

c++ templates turing-complete template-meta-programming

100
推荐指数
9
解决办法
3万
查看次数

将字符串文字作为参数传递给C++模板类

我想要一个在其构造函数中包含两个参数的类.第一个可以是int,double或float,所以<typename T>,第二个总是字符串文字"my string",所以我想const char * const.

任何人都可以给我一些可编译的代码,声明一个简单的类模板,并声明该类的对象?

谢谢

c++ templates

39
推荐指数
10
解决办法
6万
查看次数

从variadic模板参数声明成员变量

显然,下面的代码不能用C++编译.但我有一个案例,我想基于模板参数参数化一个具有零个或多个数据项的类.

有没有什么办法可以声明一个数据成员依赖于可变参数模板参数的类,所以我可以访问它们中的每一个?或其他一些方式实现我想要的?

这是一个真正的程序,我已经解决了一个完全不同的方式,但现在我对如何做到这一点的更抽象的问题感兴趣.

template <typename... Types> class Data
{
    // Declare a variable of each type in the parameter pack
    // This is NOT valid C++ and won't compile...
    Types... items;
};

struct Item1
{
    int a;
};

struct Item2
{
    float x, y, z;
};

struct Item3
{
    std::string name;
}

int main()
{
    Data<Item1, Item2> data1;
    Data<Item3> data2;
}
Run Code Online (Sandbox Code Playgroud)

c++

22
推荐指数
4
解决办法
5226
查看次数

使用 Boost Preprocessor 解析元素序列

我定义了一个宏,它是

#define TYPES (height,int,10)(width,int,20)
Run Code Online (Sandbox Code Playgroud)

如何使用像这样的 Boost Preprocessor 扩展这个宏?

int height = 10;
int width = 20;
Run Code Online (Sandbox Code Playgroud)

最多我能得到的是height,int,10width,int,20作为字符串,但无法解析单个元素。

c++ boost boost-preprocessor

4
推荐指数
1
解决办法
545
查看次数