cost 352 ms
非原型对象作为终端 - Non-proto objects as terminals

我想将非原型类的实例用作所有用途的原型终端。 为了启用此功能,我使用is_terminal元函数并将其传递给BOOST_PROTO_DEFINE_OPERATORS() 。 这实际上定义了运算符,因此以下表达式按预期生成了一个表达式树: 但是,我不能这样做: 而相反的编译: 似乎我的对 ...

boost :: proto :: is_aggregate在聚合类型时返回false - boost::proto::is_aggregate returning false when it is an aggregate type

在测试聚合类型时,我尝试使用boost :: proto :: is_aggregate来检查我正在创建的类型是否真正聚合。 我写了这段代码: 我期望输出为真,因为聚合类型可以定义一个复制赋值运算符(根据这个: 什么是聚合和POD以及它们如何/为什么特殊? ) 但输出是错误的。 ...

Boost.Proto:Proto变换是否有可能评估矩阵和向量的混合表达式? - Boost.Proto : Is it possible for Proto transforms to evaluate a mixture expression of matrix & vector?

现在我正在尝试教g ++编译器线性代数,以便g ++可以重写像(matrix * vector)(index)这样的表达式作为评估表达式的循环。 基本上这是我期望的作为“ 表达式C ++ ”系列文章的最后一篇文章的下一篇文章 。 最后一篇文章解释了如何制作用于添加向量的EDSL,以便我编写另 ...

使用boost :: proto在C ++中编写DSL - Writing a DSL in C++ with boost::proto

对于提出这样一个开放式问题的道歉,但我想在C ++中模拟一些合成程序集(不是真正的处理器),我想将程序集与它运行的模拟器的实现分离。 编写DSL或类似的东西似乎是显而易见的方式,我有一些经验,在Groovy中做了类似的事情(实际上是DSL和解释器之间的混合)。 boost :: pr ...

如何添加对Boost.Proto表达式的父引用? - How can I add parent references to Boost.Proto expressions?

我想生成从子级到父级具有“反向”引用的表达式树。 有没有办法自定义Proto生成器或域,以便表达式包装类(使用proto::extends<> )包含对父表达式的引用? 这背后的目标是创建缓存评估结果的表达式树,以便可以有效地重新评估它们。 我的策略是更新终端值,然后将标记 ...

Boost.Proto:如何使原始数组而不是std :: vector的表达式终端? - Boost.Proto : How to make an expression terminal of a primitive array instead of std::vector?

现在,我正在尝试制作另一种用于向量表达式的微型EDSL(嵌入式领域特定语言)。 实际上,Boost.Proto用户指南已经提供了这样的EDSL示例“ 惰性向量 ”,其中向量表达式由std::vector<T> 。 但是我必须改用原始数组的那些表达式。 因为原始数组操作仍然是一些 ...

如何使用通用TR1函数对象包装多个函数重载? - How to wrap multiple function overloads with a generic TR1 function object?

我有一个在库上下文中提供的函数foo() 。 该库为此函数定义了一些重载,如: (我做了上面的参数/结果类型。要点是参数类型和重载的相应返回类型之间没有通用关系。) 这个想法是库用户可以根据需要为他们自己的用户定义类型添加foo()重载。 函数重载非常容易实现。 我想使f ...

是否可以在Boost.Proto中构建和增量评估/变异表达式树? - Is it possible to build and incrementally evaluate/mutate expression trees in Boost.Proto?

是否可以提取Boost.Proto表达式树的各个部分,分别(外部)对其进行求值,然后对表达式树进行变异,将提取的部分替换为结果? 在我的特定情况下,我正在尝试评估是否可以重复重写一些旧代码: 生成SQL 查询数据库 使用结果生成新的sql查询 再次查询数据 ...

使用Boost.Proto构造特征表达式模板 - Constructing Eigen expression templates with Boost.Proto

我想使用Boost.Proto将嵌入式领域特定语言转换为使用Eigen库实现的一系列矩阵运算。 由于效率很重要,我希望proto生成特征表达模板并避免过早评估。 我已经实现了一个可以生成矩阵乘法表达式的简单语法。 下面的代码编译时没有警告(在g ++ 4.8.0和Intel C ++ ...

获取Boost Proto子表达式的标记类型 - Obtaining the tag type of a Boost Proto child expression

在一个Boost Proto表达式中,我什么时候不应该期待一个proto_tag成员? 我可以使用以下任一方法查询占位符的标记类型: 但是,如果我问一个表达式的孩子的标签类型,似乎缺少proto_tag成员; 并且以下代码的第三行给出了错误: Clang和GCC的错误报告了所 ...

变量隐藏在Boost Phoenix中的嵌套let块中 - Variable hiding within nested let blocks in Boost Phoenix

当“内部”局部变量隐藏“外部”局部变量时,我在Boost Phoenix中遇到嵌套let块的问题。 即使使用此处文档中的“可见性”示例, 此处显示: 我收到错误开头: 有没有人知道我怎么能在凤凰城内部let块的范围内“遮蔽”这样一个变量? 我目前正在使用带有GCC版本4.8快 ...

模仿简单的Boost Proto C ++表达式评估器 - Templating a Simple Boost Proto C++ Expression Evaluator

我想建立在升压原“开箱表达式”例如,从这里通过使用模板参数指定的返回类型do_eval变换(迄今double )。 为简洁起见,我将提供一个有效的,简化的(仅限加)版本的do_eval : 然后我添加模板参数T而不是double : 并将关联的eval结构修改为: ...

在Boost Phoenix表达式中转换函数体 - Transforming Function Bodies within Boost Phoenix Expressions

如何在Boost Phoenix表达式的转换中包含函数体? 例如,我构建了Boost Phoenix Starter Kit的Lazy Functions部分,并创建了一个延迟添加函数: 然后,我从前一个问题准备一个简单的加号 - 减号变换,如下所示: 但是,当我将一个倒置 ...

转换Boost C ++ Phoenix Expression Tree - Transforming a Boost C++ Phoenix Expression Tree

在Boost Phoenix文章“转换表达式树”中, 这里 ,一组自定义invert_actions类的特化用于反转二进制算术表达式。 例如a+b变为ab ; a*b变为a/b ; 反之亦然。 这涉及表达式树的递归遍历 - 但是,当遇到涉及未明确处理的运算符的表达式时,此遍历​​将停 ...

为什么这个proto / phoenix玩具示例会崩溃? - Why does this proto/phoenix toy example crash?

我正在尝试原型和凤凰,我的第一个玩具示例是什么崩溃,我不知道我应该在哪里看。 由于#boost IRC频道上有人告诉我要确保首先对凤凰表达树进行深度复制(因此在构造x时没有留下悬空引用),我将表达式包裹在boost::proto::deep_copy 。 然而,这并没有奏效 。 使用-O2 ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM