小编Kri*_*ssy的帖子

禁用部分javadoc的Eclipse代码格式

我有一个Java类,其中javadoc的一部分实际上是作为构建过程的一部分生成的:方法的返回值(静态字符串值)被插入到源文件中,就像$Revision: $标签在某些版本控制软件中工作一样.

虽然这种行为可能有问题,但我使用的框架(WEKA机器学习库)需要这种信息重复.我希望Eclipse的代码格式化程序不要干扰生成的注释.我正在使用Eclipse Indigo版本.

我可以用特殊的注释开启/格式化关闭//@formatter:on//@formatter:off.但是,@formatter标签仅在"正常"注释中起作用,而不在javadoc注释中起作用.显然,它们很容易与javadoc标签混淆.这意味着我无法关闭javadoc注释的生成部分的格式化程序(例如,自动换行),并将其保留为其余部分,因为@formatter指令必须放在javadoc注释周围.

有一个解决方法来切换javadoc注释中的代码格式?

eclipse code-generation javadoc weka eclipse-jdt

8
推荐指数
2
解决办法
4460
查看次数

什么是棱镜或仿射遍历的双重性?

棱镜为聚焦到联产品类型的光学部件,而仿射遍历是一种光学器件的可聚焦于0 1的元件,即,AffineTraversal s t a b是同构的(s -> Maybe a, (s, b) -> t).据我所知,如果镜头由棱镜组成,我们会得到一个仿射遍历,只要使用适当的棱镜编码.

我感兴趣的是将Maybe那个(幼稚)配方移动到设置器侧而不是吸气器侧,这样我就可以使用一个总是提取一个元素的光学元件,但可能无法将它放回去.

我的用例与细化类型有关.想象一下,我们有一个类型A及其细化B(B ? A).然后有一个棱镜refined :: Prism' A B:一个A可能或可能不是有效的B,但每个B都可以re进入一个A.结合了Lens' C Arefined,我们有一个仿射遍历.在另一个方向上,可以想象一个光学元件unrefined比一个光学元件更聪明re refined:如果它是有效的,A可以变成一个光学元件,或者如果它不是,则可以变成光学元件.现在,如果我们结合了有,我们有我们的双仿射穿越:它可以随时获得从,但放回任何旧的可能违反的不变和产量,而不是.可以以类似的方式确保更复杂的不变量.Just bBNothingLens' C BunrefinedACACNothingJust c

有趣的是,Scala 的单片机 …

haskell category-theory lenses haskell-lens

8
推荐指数
1
解决办法
223
查看次数

打破严格的走样和生活来讲述它?

我试图在我在C++ 11中编写的同一个应用程序中使用两个库LIBSVMLIBLINEAR.LIBSVM和LIBLINEAR都在基本上是基于行的稀疏矩阵表示中输入它们:存在节点结构

struct svm_node
{
    int index;
    double value;
};
Run Code Online (Sandbox Code Playgroud)

稀疏矩阵本身就是struct svm_node **,每行都是a struct svm_node *,行终止index = -1.调用此结构的LIBLINEAR版本feature_node并具有相同的定义.虽然LIBSVM和LIBLINEAR由同一作者写的,svm.hlinear.h,因此struct svm_nodestruct feature_node是没有丝毫关系.

在某些情况下,我想创建一个内核SVM模型(仅由LIBSVM实现)和一个逻辑回归模型(仅由LIBLINEAR实现)我的数据.数据集传递给它们各自的库---在二进制级别上,相同的---稀疏矩阵表示,可能非常大,我宁愿避免memcpy()全部.一个简单的reinterpret_cast<feature_node **>(svm_node_ptr_ptr_variable)似乎做得很好.

我也在-flto发布版本中使用LLVM的完整程序优化(),因此我希望确保代码不会以不可预测的方式进行优化.

有什么办法型双关语svm_node **feature_node **避免可能的(当前或未来)编译器优化导致的任何破损?__attribute__((__may_alias__))在这里有帮助,如果有,我应该如何使用它?


如果__attribute__((__may_alias__))只对类型有意义,那么如果我创建了自己的struct和指向结构的指针,它是否有效

struct __attribute__((__may_alias__)) SparseElement {
    int index;
    double value;
};
typedef SparseRow SparseElement * __attribute__((__may_alias__));
Run Code Online (Sandbox Code Playgroud)

然后将retinterpret_casted 传递SparseRow * …

c++ strict-aliasing type-punning c++11

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

static_assert,具有实际上独立的依赖表达式

考虑以下模板:

template <typename T>
void foo() {
  static_assert(sizeof(T) == 0, "Now what?");
}
Run Code Online (Sandbox Code Playgroud)

标准(第7.4节)说:

[如果static_assert的条件为false]程序格式错误,生成的诊断消息(1.4)应包含字符串文字的文本,[...]

(参考来自/sf/answers/773423451/)

实际上,在static_assert我们实例化函数模板之前不会失败foo,因为使用模板参数会强制编译器仅在两阶段查找期间评估条件.因此,除非实例化函数模板,否则上面的代码片段不会被视为格式错误.

另一方面,根据定义,C++中 sizeof(T)> 0 .因此,条件的值实际上独立于任何模板参数!是否允许"恶意"编译器利用这一事实,并拒绝将程序视为格式错误,无论是否foo实际实例化?

c++ templates static-assert language-lawyer c++11

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