小编Sim*_*Sim的帖子

函数声明是否应包含参数名称?

您实际上会考虑更好的编码风格:在标题内声明函数/方法的参数名称,或仅在源文件中声明参数名称,因为可以同时执行这两种操作:如果您实际上只考虑在源文件中声明函数/方法的参数名称,那么您将如何声明默认值?

外标题:

//One.hpp
#ifndef ONE_HPP
#define ONE_HPP
namespace eins {

/** \brief description
 *  
 * \param one represents ....
 * \param two represents ....
 */
void function(int,int);

}
#endif

// One.cpp
#include "One.hpp"

eins::function(int one,int two) {
  //Do stuff//
}
Run Code Online (Sandbox Code Playgroud)

内部标题:

//One.hpp
#ifndef ONE_HPP
#define ONE_HPP
namespace eins {

/** \brief description
 *  
 * \param one represents ....
 * \param two represents ....
 */
void function(int one,int two);

}
#endif

// One.cpp
#include "One.hpp"

eins::function(int one,int two) {
  //Do stuff// …
Run Code Online (Sandbox Code Playgroud)

c++ coding-style

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

如何确定变量的数据类型

这是一个很容易回答的问题(我猜),但我找了一段时间没找到任何东西,所以我会向你提问.

typep确定给定变量是否属于某种特定数据类型,例如整数,散列表等,但是有一个返回数据类型的函数吗?

例如

(defvar *x* 1)
*x*

(typep *x* 'integer)
T

(the-type-function *x*)
INTEGER
Run Code Online (Sandbox Code Playgroud)

types common-lisp

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

geany,自动完成.它是如何工作的

这个问题可能看起来有点奇怪,但我搜索了一个小时,并没有找到任何实际回答我关于geany的自动完成功能的问题的命中:

*它有自动完成

- >哪些语言有自动完成(插件?)

- >我如何使用自动完成

ide autocomplete geany

16
推荐指数
4
解决办法
4万
查看次数

创建虚拟蓝牙设备/服务,让执行计算机发现/使用它们

阅读这个问题我很想知道,是否有可能不仅让一个程序模拟一个蓝牙设备,而且还让(执行)计算机认为它实际上是一个他正在与之通信的外部蓝牙设备.

我查看了bluez和有关bluez的文档,但找不到任何允许我将蓝牙数据提供给设备/计算机或者让计算机"发现"自己运行的服务.

这甚至可以使用Linux/bluez吗?

linux bluetooth linux-device-driver bluez

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

如何将本地项目添加到由quicklisp配置的asdf

我想通过asdf向已知项目添加一个本地项目,但由于*central-registry*aslis由quicklisp 安装和配置,并且指向"#P/home/user/quicklisp/quicklisp /",其中包含.lisp文件.我不知道该怎么做,因为手册解释了目录中的符号链接会做到这一点,但我不想在quicklisp里乱搞.(它确实可以作为修补程序使用!)

因此:如何将本地项目添加到由quicklisp安装和配置的asdf(NOT QUICKLISP)?

common-lisp asdf quicklisp

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

如何将buildapp与quicklisp结合使用

我想使用buildapp来生成curl-lisp可执行文件作为示例:

buildapp --output lisp-curl --asdf-path ~/src/clbuild/systems/ \
    --load-system drakma \
    --eval '(defun main (args) (write-string (drakma:http-request (second args))))' \
    --entry main
Run Code Online (Sandbox Code Playgroud)

这绝对不会起作用,因为我没有路径"〜/ src/clbuild/systems /",因为我使用quicklisp我的系统应该在"〜/ quicklisp/dists/quicklisp/software",但是当我执行时:

buildapp --output lisp-curl  \
         --asdf-path ~/quicklisp/dists/quicklisp/software      \
         --load-system drakma     \
         --eval '(defun main (args) (write-string (drakma:http-request (second args))))'   \
         --entry main

; file: /home/simkoc/dumper-YKYna1b3.lisp
; in: DEFUN DUMP-FILE-DEBUGGER
;     (QUIT :UNIX-STATUS 111)
; 
; caught STYLE-WARNING:
;   SB-EXT:QUIT has been deprecated as of SBCL 1.0.56.55. Use SB-EXT:EXIT or
;   SB-THREAD:ABORT-THREAD instead.
;   
; …
Run Code Online (Sandbox Code Playgroud)

sbcl common-lisp quicklisp

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

如何利用SBCL提供的信号量来对抗竞争条件

就我对信号量的了解而言,信号量用于保护可以计算且易受竞争条件影响的资源.但是在阅读信号量的SBCL文档时我无法弄清楚,如何正确使用提供的信号量实现来保护资源.

我记得通常的工作流程是:

  1. 进程想要通过信号量保护的数据检索一些(这是为了示例一个简单的队列).由于信号量计数器为0,因此进程等待

  2. 另一个进程将一些东西放入队列中,当信号量递增时,一个信号被发送到所有等待的进程

考虑到交错的可能性,必须保护任何这些资源访问,因为它们可能不是那种顺序,或者根本不是任何线性顺序.因此,例如,Java将每个类解释为隐式监视器,并提供一个syncronized关键字,程序员可以使用该关键字定义一个只能由一个进程一次访问的受保护区域.

我如何在common-lisp中模拟这个功能,因为我很确定我的当前代码是没有信号量的线程安全,因为信号量不知道要保护什么代码.

;;the package 
(defpackage :tests (:use :cl :sb-thread)) 
(in-package :tests)

(defclass thread-queue ()
  ((semaphore
    :initform (make-semaphore :name "thread-queue-semaphore"))
   (in-stack
    :initform nil)
   (out-stack
    :initform nil)))


(defgeneric enqueue-* (queue element)
  (:documentation "adds an element to the queue"))

(defgeneric dequeue-* (queue &key timeout)
  (:documentation "removes and returns the first element to get out"))

(defmethod enqueue-* ((queue thread-queue) element)
  (signal-semaphore (slot-value queue 'semaphore))
  (setf (slot-value queue 'in-stack) (push element (slot-value queue 'in-stack))))


(defmethod dequeue-* ((queue thread-queue) &key …
Run Code Online (Sandbox Code Playgroud)

sbcl common-lisp

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

Android webrequest简单的解决方案

我想通过一个简单的URL连接到一个Web服务器(一个页面),该URL已经包含了我想发送的任何参数,例如:www.web-site.com/action.php/userid/42/secondpara/23/和然后获取网站生成的页面内容(不会是简单的OK/NOK).我该如何设法做到这一点?我找不到任何似乎适合我的问题的示例代码或文档.

谢谢你的帮助.

android webrequest

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

如何使用cppunit显示testmethod名称

如何从点更改cppunit的输出,指示对测试的实际名称进行了多少次测试,或者至少只是给测试调用者的字符串,如计算点和猜测哪些测试 - 它所代表的功能是非常无效的,如果是分段错误,它实际上会杀死整个程序.我确实找到了在断言失败的情况下更改错误输出的参考,但在一般输出上没有任何内容.

我的Testclass的套件功能:

static CppUnit::Test *suite() {
                CppUnit::TestSuite *suiteOfTests = new CppUnit::TestSuite( "Map Parser" );
                //string to state
                suiteOfTests->addTest( new CppUnit::TestCaller<Parser_test>("string to state I",&Parser_test::test_string_to_state_I));
                ....
                return suiteOfTests;
}
Run Code Online (Sandbox Code Playgroud)

Main.cpp的

CppUnit::TextUi::TestRunner runner;
runner.addTest( Parser_test::suite() );
runner.run();
Run Code Online (Sandbox Code Playgroud)

我希望有这样的输出:

string to state I : OK
string to state II : OK
...
Run Code Online (Sandbox Code Playgroud)

然后,我能够确定程序何时由于不可捕获的异常(如SegFault)而崩溃.

但此刻我的ouptut看起来像这样:

...........
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

c++ cppunit

5
推荐指数
2
解决办法
1784
查看次数

如何告诉 htmlunit 忽略某些错误

我目前正在试用 HtmlUnit。我想填写一个表格,然后提交。但这会导致错误,这似乎是由无法访问的文件引起的,从而导致连接重置被抛出。我怎样才能抑制这一点,因为考虑到整个网站的加载过程,这并不重要?不过,它似乎不会影响程序,我只是想让它静音。

Apr 05, 2012 12:25:13 PM com.gargoylesoftware.htmlunit.html.HtmlPage loadExternalJavaScriptFile
Schwerwiegend(severe): Error loading JavaScript from [*link*].
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:149)
    at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:110)
    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:264)
    at org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:252)
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281)
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:247)
    at org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:219)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:298)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:776)
    at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:152)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1439)
    at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1358)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.loadJavaScriptFromUrl(HtmlPage.java:1008)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.loadExternalJavaScriptFile(HtmlPage.java:950)
    at com.gargoylesoftware.htmlunit.html.HtmlScript.executeScriptIfNeeded(HtmlScript.java:349)
    at com.gargoylesoftware.htmlunit.html.HtmlScript$1.execute(HtmlScript.java:230)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.doProcessPostponedActions(JavaScriptEngine.java:642)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.access$400(JavaScriptEngine.java:79)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:590)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:537)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:538)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:499)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.execute(JavaScriptEngine.java:474) …
Run Code Online (Sandbox Code Playgroud)

java htmlunit

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