小编mar*_*hon的帖子

类型说明符的组合无效?

这适用于xcode,但不适用于visual studio.错误是

错误C2236:意外的'enum''abc :: def ::`anonymous-namespace'::'.你忘记了';'吗?

我无法弄清楚出了什么问题.

namespace abc {
namespace def {

namespace {

long long enum {
  aaa = 1L,
  bbb = 2L,
};

}
}
}
Run Code Online (Sandbox Code Playgroud)

c++ namespaces compiler-errors visual-studio-2010 c++11

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

如何测试引用是否为NULL?

我想检查一下是否为null,例如:

string xxx(const NotMyClass& obj) {
  if (obj == NULL) {
     //...
  }
}
Run Code Online (Sandbox Code Playgroud)

但是编译器抱怨这个:有5个可能的重载==.

所以我尝试了这个:

  if (obj == static_cast<NotMyClass>(NULL)) {
Run Code Online (Sandbox Code Playgroud)

这是因为崩溃NotMyClass==超载不处理空值.

编辑:对于每个人都告诉我它不能为NULL,我肯定会在我的调试器中得到一些NULL:

在此输入图像描述

c++ reference operator-overloading

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

是否可以直接分配volatile变量线程?像AtomicReference一样安全吗?

这与使用AtomicReference一样安全吗?

private volatile String myMember;

public void setMyMember(String s) { 
   myMember = s;
}
Run Code Online (Sandbox Code Playgroud)

private final AtomicReference<String> myMember = new AtomicReference<>();

public void setMyMember(String s) {
    while (true) {
        String current = myMember.get();
        if (myMember.compareAndSet(current, s))
            break;
    }
}    
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading atomic

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

为什么外部系统实体在 Chrome、IE 或 Netscape 中不适合我?

我正在尝试复制此答案中给出的示例:

/sf/answers/358954991/

该图说明了如何使用外部实体将 XML 文件的片段包含在另一个 XML 文件中。

文档.xml:

<?xml version="1.0" standalone="no" ?>
<!DOCTYPE doc [
        <!ENTITY otherFile SYSTEM "otherFile.xml">
        ]>
<doc>
    <foo>
        <bar>&otherFile;</bar>
    </foo>
</doc>
Run Code Online (Sandbox Code Playgroud)

其他文件.xml:

<baz>this is my content</baz>
Run Code Online (Sandbox Code Playgroud)

当我尝试通过在任何浏览器中打开 doc.xml 来测试这一点时,我只是得到:

 <doc>
   <foo>
      <bar/>
    </foo>
 </doc>
Run Code Online (Sandbox Code Playgroud)

呈现。

难道它不应该渲染包含的文件吗?

xml doctype dtd xml-parsing

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

为什么你声明/创建一个单独的变量来通过引用调用而不是仅仅在函数调用中创建一个自动对象?

给定:

void foo(std::string &s) { 
 ...
}
Run Code Online (Sandbox Code Playgroud)

为什么会导致编译器错误:

foo(std::string("fail"));
Run Code Online (Sandbox Code Playgroud)

这很好:

std::string s("winning");
foo(s);
Run Code Online (Sandbox Code Playgroud)

失败案例的错误是 error: no matching function for call to ‘foo(std::string)’

在胜诉的情况下,我认为编译器s无论如何都会优化.我在这里错过了什么概念?

c++ pass-by-reference

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

为什么Rust中的const函数不能调用相关函数?

这个:

const fn pow2(exp: u32) -> u32 {
    u32::pow(exp, 2)
}
Run Code Online (Sandbox Code Playgroud)

导致编译器错误:

error[E0015]: calls in constant functions are limited to constant functions, struct and enum constructors
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

我想这样做:

pub const MY_BITMASK: u32 = pow2(4);
Run Code Online (Sandbox Code Playgroud)

static rust

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

Oracle是否可能会改变Java为java.lang.String编写哈希码的方式?

Oracle是否可能会改变Java为java.lang.String编写哈希码的方式?

根据java文档,我正在进行一种优化,它依赖于为字符串计算哈希码的方式

s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
Run Code Online (Sandbox Code Playgroud)

http://download.oracle.com/javase/6/docs/api/java/lang/String.html#hashCode ()

java string hash

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

如果'x在clojure中评估为(var x),为什么它们不相等?

在O'Reilly的"Clojure编程:Java世界的实用Lisp"中,有一个声明:

var特殊形式执行此操作:

(def x 5)
(var x) 
;= #' user/x 
Run Code Online (Sandbox Code Playgroud)

你现在已经多次看到如何在REPL中打印变量:#',后跟一个符号.这是扩展为对var的调用的读者语法:

 #'x 
 ;= #' user/x
Run Code Online (Sandbox Code Playgroud)

(Kindle Locations 1278-1282).

对此进行测试似乎并非如此.我认为类型类型是相同的.

[user]> (def x 5)
#'user/x

[user]> (= 'x (var x))
false

[user]> (type 'x)
#<Class@c540f5a clojure.lang.Symbol>

[user]> (type (var x))
#<Class@77e9807f clojure.lang.Var>

[user]> 'x
x

[user]> (var x)
#'user/x
Run Code Online (Sandbox Code Playgroud)

clojure

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

Rust str和ffi :: CString之间的转换再次返回部分会破坏字符串

#![allow(non_camel_case_types)]

use libc::{c_uchar, size_t};
use std::str::FromStr;
use std::ffi::{CString, NulError};
use std::slice;

#[repr(C)]
pub struct c_str_t {
    pub len: size_t,
    pub data: *const c_uchar,
}

pub trait MyCStrExt<T> {
    fn to_c_str(&self) -> Result<c_str_t, NulError>;
}


pub trait MyCStringExt {
    fn from_c_str_ref(nstr: &c_str_t) -> Option<String>;
}

impl<'a> MyCStrExt<&'a str> for str {
    fn to_c_str(&self) -> Result<c_str_t, NulError> {
        let result = match CString::new(&self[..]) {
            Ok(result) => result,
            Err(e) => {
                return Err(e);
            }
        };
        Ok(c_str_t { data: result.as_ptr() as *const u8, len: …
Run Code Online (Sandbox Code Playgroud)

rust

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

如何在任何时候记录任何方法已经在Rails猴子修补

我想在Rails应用程序中重新定义方法时打印类和方法,即使它发生在包含的gem中.我知道有一个叫做的钩子method_added在重新定义一个方法时会被回调,但是我不知道怎么用它来捕获重新定义的东西.

我该怎么用method_added

我把它添加到boot.rb:

class Module
  def method_added(name)
    puts "adding #{self.name.underscore.capitalize}  #{name}\n"
  end
end
Run Code Online (Sandbox Code Playgroud)

但这似乎是每个班级中的每一种方法都在捕捉?

ruby monkeypatching ruby-on-rails

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

获取列表中某个给定数字的3个最接近的值?

给定一个整数列表,找到给定数字的3个最接近的值.

=> (def mylist '(3 6 7 8 9 12 14))
=> (get_closest mylist 10)
(8 9 12)
Run Code Online (Sandbox Code Playgroud)

clojure

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