小编Wan*_*Qin的帖子

当我向作为std :: mem_fun()参数的成员函数添加引用参数时,为什么编译错误?

首先,我有一个片段如下:

struct D
{

  int sum;

  D():sum(0){accum();}

  void incre(int arg){sum+=arg;}

  void accum()
  {
    int arr[]={1,2,3,4,5};

    std::for_each(arr,arr+ sizeof(arr)/sizeof(int),
                  std::bind1st(std::mem_fun(&D::incre),this));

    cout << sum <<endl;
  }
};

int main()
{
  D();
}
Run Code Online (Sandbox Code Playgroud)

它编译得正确.但是在我将成员函数更改incre为之后

void incre(int &  arg){sum+=arg;}
Run Code Online (Sandbox Code Playgroud)

它产生了错误,比如

typename _Operation::result_type std::binder1st<_Operation>::operator()
    (typename _Operation::second_argument_type&) const [with _Operation = 
    std::mem_fun1_t<void, D, int&>]’ cannot be overloaded
Run Code Online (Sandbox Code Playgroud)

你对发生了什么有什么想法吗?我会感激任何帮助.

c++ stl

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

关于Linux上Java的类路径设置

大家.

我在arch linux上使用openjdk-7.我最近开始学习Java,遇到了这样的问题:

我在/home/hqwrong/Code/java/mew/Mouth.java创建了一个文件:

package mew;

public class Mouth{
   public static void main(String argv[]){
       pickle.Say s = new pickle.Say();
  }
}
Run Code Online (Sandbox Code Playgroud)

另一个在/home/hqwrong/Code/java/pickle/Say.java:

package pickle;

public class Say{
   public Say(){
      System.out.println("Say");
   }
}
Run Code Online (Sandbox Code Playgroud)

我将Say.java编译为Say.class,使用:

$ cd /home/hqwrong/Code/java/pickle
$ javac Say.java
Run Code Online (Sandbox Code Playgroud)

这是成功的.

我编译了Mouth.java,使用:

$ cd ../mew
$ export CLASSPATH=.:/home/hqwrong/Code/java/
$ javac Say.java
Run Code Online (Sandbox Code Playgroud)

没有错误消息.

但在我输入之后:

$ java说

我有:

Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.mew
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:649)
at java.lang.ClassLoader.defineClass(ClassLoader.java:785)
 at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native …
Run Code Online (Sandbox Code Playgroud)

java openjdk

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

关于elisp的亮点区域

看看这个简单的程序:

(defun test ()
  (interactive)
  (push-mark)
  (setq mark-active t)
  (search-forward "a" nil nil 1))
Run Code Online (Sandbox Code Playgroud)

它将光标移动到最近的'a',并突出显示路径.当然,这很明显.

但它的行为有所不同,具体取决于执行此过程后您的下一个输入是什么,例如,您输入一个字符,如'b'或\ Cg,突出显示消失,但如果您输入\ Cf或\ Ce,则突出显示保持不变.所以这是我的问题:是什么让这些输入表现不同?

emacs elisp

0
推荐指数
2
解决办法
410
查看次数

标签 统计

c++ ×1

elisp ×1

emacs ×1

java ×1

openjdk ×1

stl ×1