小编Zan*_*ith的帖子

knitr:在fig.cap块选项中使用内联表达式

我的问题是关于knitr选项fig.cap,当使用LaTeX时.是否可以在fig.cap字符串中包含\ rinline或\ Sexpr?

例如,我想有类似的东西(我正在使用.Rtex文件):

\documentclass{article}
\begin{document}
%% begin.rcode fig.cap="x is \\rinline{x}"
% x <- 5
% p <- seq(0,5)
% q <- x*p
% plot(p,q)
%% end.rcode
\end{document}
Run Code Online (Sandbox Code Playgroud)

我真的很喜欢这个块在我的.tex文档中生成一个情节,标题为"x为5".相反,它会在pdflatex编译时抛出"未定义的控制序列"错误.

如果我没有逃脱rinline(即只使用\ rinline {x}),那么它会编译,但标题是"x islinex".

我问的可能吗?

这是我的第一个SO问题(虽然在这里多次使用答案.谢谢!),所以我很感激有关如何提出更好问题的任何反馈.

谢谢您的帮助!

knitr

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

OCaml漂浮盒装或非盒装?

我知道浮点数通常是在OCaml中装箱,但我的难度是这个词:通常.他们什么时候没有盒装?并且,如果它们没有盒装,它们是如何表示的,因此运行时将它们识别为与int或指针不同?

我找到了http://caml.inria.fr/pub/old_caml_site/ocaml/numerical.html,其中列出了浮动没有盒装的某些时间,但它已经11年了,所以我不知道它是否仍然存在到目前为止,并没有解释他们如何在没有盒装时被代表.

我是OCaml的新手,很抱歉,如果这是一个愚蠢的noob问题.谢谢!

floating-point ocaml

7
推荐指数
1
解决办法
416
查看次数

带有泛型类方法定义的长模板参数列表

如果我有一个模板类,我稍后在文件中为其定义了一个成员函数,有没有办法避免重复长参数列表?例如

template<class tempParam1, class tempParam2, class tempParam3>
class Foo {
  ...
  int Bar(int funcParam1, int funcParam2, int funcParam3);
}
template<class tempParam1, class tempParam2, class tempParam3>
int Foo<tempParam1, tempParam2, tempParam3>::Bar(int funcParam1, int funcParam2, int funcParam3) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

有没有办法让函数定义行不那么长?像这样定义一堆方法使我的代码难以阅读。

我尝试了一个 typedef 像

template<class tempParam1, class tempParam2, class tempParam3>
typedef Foo<tempParam1, tempParam2, tempParam3> FooClass;
int FooClass::Bar(int funcParam1, int funcParam2, int funcParam3) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

但是编译器(g++)抱怨(“错误:'typedef'的模板声明”)。

谢谢!

c++ templates

5
推荐指数
1
解决办法
910
查看次数

好风格 - 返回枚举或int?

如果我有一个定义枚举的类,那么返回该枚举的成员函数是应该声明为返回该枚举还是返回一个int?

例如:

class Foo {

  public:

    enum Stooge { larry, moe, curly};

    Stooge WhoToPoke();
    // OR: int WhoToPoke(); ???

}
Run Code Online (Sandbox Code Playgroud)

我一直在声明这样一个方法,如返回枚举,但不知道它是'更好的风格'还是以某种方式更可用于客户端,如果我将其声明为int.

c++ enums coding-style

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

函数调用在复合类中需要更长时间

尝试用类组合理解运行时性能,我编写了以下测试代码.在其中,我比较了直接将函数作为类的成员函数调用所花费的时间,而不是通过将原始类作为成员的复合类来调用它.

看起来这些方法应该花费相当的时间,但它们不会:通过复合类调用几乎需要两倍的时间.

这是代码:

const int REPS(1e8);
const double INPUT(5.29);

class Base {
public:
  inline double BaseFunc(double x) const;
};

double Base::BaseFunc(double x) const {
  return 2.718*x + 3.14;
};

class Super {
public:
  inline double BaseFunc(double x) const;
private:
  Base b_; 
};

double Super::BaseFunc(double x) const {
  return b_.BaseFunc(x);
};

int main() {
  auto t0 = std::chrono::high_resolution_clock::now();

  // Construct objects.
  Base b;
  Super s;

  // Call to base directly.
  for (int i = 0; i < REPS; ++i)
    b.BaseFunc(INPUT);
  auto …
Run Code Online (Sandbox Code Playgroud)

c++ performance

2
推荐指数
1
解决办法
188
查看次数