小编lee*_*777的帖子

在CMake中,如何测试编译器是否为Clang?

我们有一套跨平台的CMake构建脚本,我们支持使用Visual C++GCC构建.

我们正在尝试Clang,但我无法弄清楚如何使用我们的CMake脚本测试编译器是否为Clang.

我应该测试什么来查看编译器是否是Clang?我们目前正在分别使用MSVCCMAKE_COMPILER_IS_GNU<LANG>测试Visual C++和GCC.

c c++ cmake clang

133
推荐指数
2
解决办法
6万
查看次数

如何使用Comet with Spring MVC?

我想在一个简单的Web应用程序中添加一些Comet /服务器推送功能.我无法找到有关如何执行此操作的最新信息.

有人能指出我使用Comet with Spring MVC的一些示例,教程,博客或最近的任何内容吗?

如果它很重要,我使用Freemarker来渲染视图,使用JQuery来构建JavaScript框架.

旁白:我已经了解了Lift及其内置的强大Comet支持.这个应用程序是我已经使用Lift实现的概念证明.现在我用Spring MVC构建它来进行比较和对比.

编辑:我已经开始尝试DWR了.这不是太棒了,但我能做出有用的东西.我也检查了Atmosphere,但我根本无法获得任何牵引力.

我要打开这个问题了.希望会有更好的建议.

java jquery comet dwr spring-mvc

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

为什么std :: find()不使用我的运算符==?

在下面的代码片段中,我已经重载了operator==以将我的对类型与字符串进行比较.但由于某种原因,编译器没有找到我的运算符作为find函数的匹配项.为什么不?

编辑:感谢所有替代方案的建议,但我仍然想了解原因.代码看起来应该可以工作; 我想知道为什么不这样做.

#include <vector>
#include <utility>
#include <string>
#include <algorithm>

typedef std::pair<std::string, int> RegPair;
typedef std::vector<RegPair> RegPairSeq;

bool operator== (const RegPair& lhs, const std::string& rhs)
{
    return lhs.first == rhs;
}

int main()
{
    RegPairSeq sequence;
    std::string foo("foo");
    // stuff that's not important
    std::find(sequence.begin(), sequence.end(), foo);
    // g++: error: no match for 'operator==' in '__first. __gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>*, _Container = std::vector<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, …
Run Code Online (Sandbox Code Playgroud)

c++ stl

30
推荐指数
3
解决办法
9496
查看次数

什么是班级的VTT?

最近遇到了一个对我来说很新的C++链接器错误.

libfoo.so: undefined reference to `VTT for Foo'
libfoo.so: undefined reference to `vtable for Foo'
Run Code Online (Sandbox Code Playgroud)

我认识到这个错误并解决了我的问题,但我还有一个唠叨的问题:什么是VTT?

旁白:对于那些感兴趣的人,当您忘记定义类中声明的第一个虚函数时,会出现问题.vtable进入类的第一个虚函数的编译单元.如果你忘了定义那个函数,你会得到一个链接器错误,它无法找到vtable而不是更加开发人员友好的找不到该函数.

c++ gcc virtual-inheritance vtable vtt

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

使用新的Scala反射API获取协同对象实例

使用Scala的新反射API,是否可以获得对类的伴随对象的引用?我正在考虑以下几点:

trait Base {
  def companion: MetaBase = someReflectionMagic(this).asInstanceOf[MetaBase]
}

trait MetaBase {
  // stuff
}

// ---

class Foo extends Base

object Foo extends MetaBase

assert(new Foo.companion == Foo)
Run Code Online (Sandbox Code Playgroud)

reflection scala

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

Scala Nil相当于Set

是否有一个等同NilSet在Scala呢?

我尝试使用Nil作为值Set,但我得到一个错误(预期因为类型NilList)

谢谢

scala scala-collections

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

如果标签名称为".",我如何获得Docker镜像标签?在里面?

docker inspect命令对于获取Docker镜像上的标签非常有用:

# -*- Dockerfile -*-
FROM busybox
LABEL foo="bar"
LABEL com.wherever.foo="bang"
Run Code Online (Sandbox Code Playgroud)

对于简单的标签名称,inspect命令有一个--format选项(使用Go模板)可以很好地工作.

$ docker build -t foo .
$ docker inspect -f '{{ .Config.Labels.foo }}' foo
bar
Run Code Online (Sandbox Code Playgroud)

但是如何访问名称中带有点的标签?

$ docker inspect -f '{{ .Config.Labels.com.wherever.foo }}' foo
<no value>
Run Code Online (Sandbox Code Playgroud)

我正在用bash脚本编写这个docker inspect,如果可能的话,我想避免重新解析JSON输出.

templates go docker

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

什么版本的gcc,llvm和clang在XCode 4中?

出于某种原因,这些信息很难获得.

我们想开始使用大多数编译器中提供的一些C++ 0x功能.但我们对XCode 3有点不屑一顾,因为它只提供GCC 4.2和LLVM 1.5.我们需要支持的所有其他平台已经拥有对C++ 0x功能的初步支持的编译器,或者他们有一个相对轻松的安装/升级编译器的方法.

可以使用XCode 4预览,但仅适用于Mac或iOS Developer Program中的预览.

c++ xcode gcc llvm clang

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

为什么Scala不会使用try/catch优化尾调用?

最近的StackOverflow答案中,我给出了以下递归代码:

def retry[T](n: Int)(fn: => T): T = {
  try {
    fn
  } catch {
    case e if n > 1 =>
      retry(n - 1)(fn)
  }
}
Run Code Online (Sandbox Code Playgroud)

如果我添加@tailrec注释,我得到:

无法优化@tailrec带注释的方法重试:它包含一个不在尾部位置的递归调用.

我能够破解尾部递归替代方案,但我仍然想知道为什么这没有优化.为什么不?

scala tail-recursion try-catch

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

OS X上动态符号绑定的细节是什么?

我在OS X上有一个非常奇怪的动态符号绑定情况,我希望得到一些关于如何解决的线索.

我有一个用C编写的应用程序,它用于dlopen()在运行时动态加载模块.其中一些模块导出全局符号,稍后加载的其他模块可以使用这些符号.

我们有一个模块(我称之为weird_module.so),它输出全局符号,其中一个是weird_module_function.如果weird_module.so与特定库(我将调用libsomething.dylib)链接,则weird_module_function无法绑定.但如果我删除-lsomething链接时weird_module.so,我可以绑定weird_module_function.

可能会发生什么libsomething.dylib会导致weird_module.so不导出符号?我可以做些什么来调试符号的导出方式(类似于我DYLD_PRINT_BINDINGS如何调试它们如何绑定)?

$ LDFLAGS="-bundle -mmacosx-version-min=10.6 -Xlinker -undefined -Xlinker dynamic_lookup /usr/lib/bundle1.o"

$ gcc -o weird_module.so ${LDFLAGS} weird_module.o -lsomething
$ nm weird_module.so | grep '_weird_module_function$'
00000000000026d0 T _weird_module_function

$ gcc -o other_module.so ${LDFLAGS} other_module.o -lsomething
$ nm other_module.so | grep '_weird_module_function$'
                 U _weird_module_function

$ run-app
Loading weird_module.so
Loading other_module.so
dyld: lazy symbol binding failed: Symbol …
Run Code Online (Sandbox Code Playgroud)

c macos dyld

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