小编Arn*_*rne的帖子

最简单但完整的CMake示例

不知何故,我对CMake的工作原理感到困惑.每当我认为我越来越了解CMake是如何写的时候,它就会在我读到的下一个例子中消失.我想知道的是,我应该如何构建我的项目,以便我的CMake在将来需要最少的维护.例如,当我在src树中添加一个新文件夹时,我不想更新我的CMakeList.txt,这与所有其他src文件夹完全一样.

这就是我想象我的项目结构的方式,但请这只是一个例子.如果推荐的方式不同,请告诉我,告诉我该怎么做.

myProject
    src/
        module1/
            module1.h
            module1.cpp
        module2/
            [...]
        main.cpp
    test/
        test1.cpp
    resources/
        file.png
    bin
        [execute cmake ..]
Run Code Online (Sandbox Code Playgroud)

顺便说一下,我的程序知道资源在哪里是很重要的.我想知道推荐的资源管理方式.我不想用"../resources/file.png"访问我的资源

c++ cmake project-setup

110
推荐指数
3
解决办法
9万
查看次数

如何为所有数字类型创建一个通用类?

我正在尝试创建一个对所有数字类型通用的Vector类.我最初的尝试是为所有类型编写一个类,如下所示:

class Vector3f(val x:Float, val y:Float, val z:Float)
Run Code Online (Sandbox Code Playgroud)

因为scala支持专门的注释,所以我可以使用它来为所有数字类型生成这些类

class Vector3[A <: What?](val x:A,val y:A, val z:A)
Run Code Online (Sandbox Code Playgroud)

但我发现作为数字的超级类型的所有东西都是AnyVal,但AnyVal不支持+ - */.那么正确的方法是什么,但不牺牲未装箱数字类型的性能?

polymorphism scala type-parameter

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

从Eclipse运行SBT Task

我使用SBT作为构建管理器,Ec​​lipse作为我的IDE,或者至少我想要.问题是,如何从Eclipse运行特定的SBT任务.我已经将项目正确地导出到了Eclipse,Eclipse在编写代码时非常有用,但是我如何使用Eclipse作为SBT的前端.如何从eclipse启动SBT运行命令?如何启动SBT测试命令?

eclipse plugins scala sbt scala-ide

20
推荐指数
2
解决办法
9139
查看次数

unordered_multimap - 迭代find()的结果产生具有不同值的元素

C++中的multimap看起来很奇怪,我想知道为什么

#include <iostream>
#include <unordered_map>

using namespace std;

typedef unordered_multimap<char,int> MyMap;

int main(int argc, char **argv)
{
    MyMap map;
    map.insert(MyMap::value_type('a', 1));
    map.insert(MyMap::value_type('b', 2));
    map.insert(MyMap::value_type('c', 3));
    map.insert(MyMap::value_type('d', 4));
    map.insert(MyMap::value_type('a', 7));
    map.insert(MyMap::value_type('b', 18));

    for(auto it = map.begin(); it != map.end(); it++) {
        cout << it->first << '\t';
        cout << it->second << endl;
    }

    cout << "all values to a" << endl;
    for(auto it = map.find('a'); it != map.end(); it++) {
        cout << it->first << '\t' << it->second << endl;
    }

}
Run Code Online (Sandbox Code Playgroud)

这是输出: …

c++ iteration stl unordered-map c++11

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

我如何获得sun.misc.Unsafe的实例?

我如何获得不安全类的实例?

我总是得到安全例外.我列出了OpenJDK 6实现的代码.我想把功能sun.misc.Unsafe提供给我,但我总是得到了SecurityException("Unsafe").

public static Unsafe getUnsafe() {
    Class cc = sun.reflect.Reflection.getCallerClass(2);
    if (cc.getClassLoader() != null)
        throw new SecurityException("Unsafe");
    return theUnsafe;
}
Run Code Online (Sandbox Code Playgroud)

(请不要试图告诉我使用这门课是多么不安全.)

java unsafe

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

find_package和pkg_search_module有什么区别

现在我只能说这些命令是pkg_search_module有一些奇怪的用法,我必须写两次我想要的依赖项.而不是像find_package中的一次

pkg_search_module(ZLIB REQUIRED zlib)
#seriously two times zlib and once in only capital case?
find_package(ZLIB)
#much cleaner but for some odd reason find_package does not work all the time
Run Code Online (Sandbox Code Playgroud)

cmake

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

如何匹配Rust宏中表达式的类型?

这只是伪代码:

macro_rules! attribute {
    $e: expr<f32> => { /* magical float stuff */ };
    $e: expr<i64> => { /* mystical int stuff */ };
};
Run Code Online (Sandbox Code Playgroud)

我希望有一个不同的扩展宏取决于我传递给宏的类型.

这就是它在C++中的工作方式

template <typename T>
struct Attribute{ void operator(T)() {} };

template <>
struct Attribute<float> {
    void operator(float)(float) { /* magical float stuff */ }
};

template <>
struct Attribute<long> {
    void operator()(long) { /* mystical int stuff */ }
}
Run Code Online (Sandbox Code Playgroud)

macros rust

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

了解CMake背后的目的

我想了解CMake背后的目的.为什么它的设计就像现在一样.以下是我想回答的一些问题.

  • 为什么cmake生成makefile而不是仅仅构建项目?
  • 为什么cmake文件是一系列命令而不仅仅是配置文件,例如:ini/xml/yaml
  • 我写入CMakeLists.txt的命令是什么?我想,只是调用编译器太容易了
  • 我应该按照哪个顺序执行命令?
  • 一切都不敏感吗?我可以写小写的一切吗?
  • 为什么教程建议我明确列出每个源文件?
  • 如何构建我的CMakeLists.txt以使其简短易维护.我在实际项目中查找的每个文件看起来都很杂乱.

build cmake

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

调试XQuery程序

一开始,我写了一个小小的XQuery脚本,专门用于完成一项小任务.现在它发现这个XQuery脚本不完整,我必须解决它.问题是,我的XQuery演变成一个程序,而XQuery是一个痛苦的调试.我需要的东西是:

在命令行中打印一些内容以检查程序当时是否具有正确的节点.

一个调试工具,显示存储的变量

debugging xquery

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

scala作为脚本语言

可能重复:
Scala中的"eval"

我知道scala是一种编译语言,但我也知道我可以动态地将类加载到jvm中,我可以在运行时调用scala编译器,最后但并非最不重要的是我也有一个很棒的repl,所以让scala作为一个脚本语言应该是可能的.

所以我需要运行一些任务:

简单解释:

val src = """ println("Hello World") """
interpret(src)
Run Code Online (Sandbox Code Playgroud)

调用外部函数:

object A{
    def foo = 
        println("Hello World")
}

val src = """ A.foo """
interpret(src)
Run Code Online (Sandbox Code Playgroud)

实现功能:

trait T{
    def foo:String
}

val src = """ class A extends T{ def foo = "Hello World" } """
interpret(src)
val t = loadClassAndCreatInstance.asInstanceOf[T]
println(t.foo)
Run Code Online (Sandbox Code Playgroud)

能够解决我所有的问题会很棒.

scripting interpreter scala runtime-compilation classloader

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