小编Ela*_*ich的帖子

使用Scala作为Eclipse的脚本语言

有没有办法使用scala插件从Eclipse 执行scala 脚本

scala脚本是一个逐行执行的scala文件,不会强制您编写main方法.请参阅scala手册页中Description部分.

eclipse scripting scala eclipse-plugin

17
推荐指数
2
解决办法
7292
查看次数

为什么std :: sort不通过引用接受比较?

上的std ::的reference_wrapper标准解释std::sort现在可以接受std::reference_wrapper,允许一个通过引用传递的比较器.

是否有理由首先std::sort没有通过引用接受比较器?

c++ stl c++11

17
推荐指数
2
解决办法
2739
查看次数

修改git中过去提交中的单个文件

我想在过去的提交中修复一个文件.这可能会影响所有提升提交.

有一个简单的方法吗?你能给我一个如何做到这一点的指导方针吗?

很多次,当我提交两次时,我发现我在第一次提交时遇到错误,我希望修复错误而不必'git reset'我最后一次提交.

为了澄清.我想更改实际的提交,也就是说,我希望更改过去提交的内容.我想改变历史!

git

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

"Intellitrace"的开源替代品

微软最近宣布推出"Intellitrace",这是VS2010恕我直言的杀手级功能.

基本上它记录了程序运行的一些指令(特别是函数调用),并允许您轻松查看执行日志.

开源工具是否有类似的功能?具体来说,这种Java与Eclipse集成的功能将是一件好事.

java open-source visual-studio intellitrace

15
推荐指数
2
解决办法
3540
查看次数

仿函数和"仿制药"之间有什么区别

我正在看OCaml的仿函数.它看起来与C++/ C#/中所谓的通用对象完全相同Java.如果您暂时忽略Java的类型擦除,并忽略C++模板的实现细节(我对语言功能感兴趣),仿函数对于泛型非常简洁.如果我理解正确,仿函数会从您提供的类型中为您提供一组新函数,例如

List<MyClass>.GetType() != List<MyOtherClass>.GetType()
Run Code Online (Sandbox Code Playgroud)

但你可以大致重写OCaml的

#module Set =
   functor (Elt: ORDERED_TYPE) ->
     struct
       type element = Elt.t
       type set = element list
       let empty = []
       let rec add x s =
         match s with
           [] -> [x]
         | hd::tl ->
            match Elt.compare x hd with
              Equal   -> s         (* x is already in s *)
            | Less    -> x :: s    (* x is smaller than all elements of s *) …
Run Code Online (Sandbox Code Playgroud)

c# oop generics ocaml functional-programming

14
推荐指数
2
解决办法
1505
查看次数

图书馆支持Scala的NotNull特性

注意:从Scala 2.11开始,NotNull不推荐使用.

据我所知,如果你想让一个引用类型不可为空,你必须混合魔法NotNull特性,编译器会自动阻止你在其中放入null-able值.例如,请参阅此邮件列表线程.

缺乏的是,对非可空类型的图书馆支持不错.如果我想编写一个不需要直接连接java代码的软件包,并且我希望防止此软件包中的所有类型null默认使用,我别无选择,只能重新定义所有构建变量,如此

//can't actually do that, but just to give the general idea
class NString extends String with NotNull
class NMap[X,Y] extends Map[X,Y] with NotNull
...
Run Code Online (Sandbox Code Playgroud)

我希望scala有(作为编译器插件或库)选项供我编写

import collections.notnull._
Run Code Online (Sandbox Code Playgroud)

为了轻松禁止null在特定的scala文件中使用.

是否有一个选项可以轻松强制标准库中的许多有用类型不可为空?

scala notnull

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

替代C++异常

我正在编写一个反应软件,它反复接收输入,处理它并发出相关输出.主循环看起来像:

initialize();
while (true) {
    Message msg,out;
    recieve(msg);
    process(msg,out);
    //no global state is saved between loop iterations!
    send(out);
}
Run Code Online (Sandbox Code Playgroud)

我想要在进程阶段发生的任何错误,无论是内存错误,逻辑错误,无效的断言等,程序都会清理它所做的任何事情,并继续运行.我假设它是无效输入,只是忽略它.

对于那种情况,C++的异常非常好,我可以processtry/catch子句包围,并且只要有问题就抛出异常.我唯一需要确保在抛出异常之前清理所有资源.这可以通过RAII验证,也可以通过编写全局资源分配器(例如,如果析构函数可能抛出异常)来验证,并专门用于所有资源.

Socket s = GlobalResourceHandler.manageSocket(new Socket());
...
try {
    process(msg,out);
catch (...) {
    GlobalResourceHandler.cleanUp();
}
Run Code Online (Sandbox Code Playgroud)

但是,在我们的编码标准中(也在Google的C++标准 BTW中)禁止使用异常,因此所有代码都是在异常关闭的情况下编译的,我相信没有人会改变一切只为我的设计问题工作的方式.

此外,这是嵌入式平台的代码,因此我们使用的C++额外功能越少,代码就越快,便携性也就越高.

我可以考虑一种替代设计吗?

更新: 我感谢大家对愚蠢代码标准的回答.我唯一可以说的是,在大型组织中,你必须有严格的,有时不合逻辑的规则,以确保没有白痴会来,让你的好代码不可维护.标准更多的是人而不是技术性.是的,坏人可以让每个代码都变得一团糟,但是如果你给他额外的工具来完成任务会更糟糕.

我还在寻找技术上的答案.

c++ exception

14
推荐指数
3
解决办法
3847
查看次数

是否有基于类似inotify的机制的构建工具

在使用普通旧项目的相对较大的项目中make,甚至在没有任何改变的情况下构建项目需要几十秒.特别是对于许多执行make -C,其具有新的进程开销.

这个问题的显而易见的解决方案是基于inotify操作系统的类似功能的构建工具.它会在某个文件发生变化时查看,并根据该列表单独编译该文件.

那里有这样的机器吗?开源项目的奖励积分.

makefile build inotify

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

两个迭代器之间有多少个元素

计算迭代器中所有元素的最佳方法是什么?

我希望代码与此相当

template<typename T,typename S,S val>
struct ConstantFunctor : unary_function<T,S>
{S operator()(const T&) const {return val;}};
template<typename T>
struct TrueFunctor : ConstantFunctor<T,bool,true>{};
...
count_if(c.begin(),c.end(),TrueFunctor());
Run Code Online (Sandbox Code Playgroud)

最好的方法是什么?

我可以使用boost::lambda::constant(true),但也许有更清楚的东西.

c++ stl

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

cmake可以生成非递归的makefile吗?

我正在使用cmake,它似乎生成了递归的makefile.这意味着在一个大型项目中,空构建可能需要大约5秒钟,这实在是不可接受.

我还没有找到使用cmake生成非递归makefile的方法.可能吗?

cmake

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